tmux-python / tmux-python/libtmux
libtmux is picking up the wrong tmux version
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 127
- Avg merge
- 2h 13m
- Merged PRs (30d)
- 1
Description
See: https://github.com/tmux-python/tmuxp/issues/794
Started new server, protocol mismatch. tmuxp seems to be using /usr/bin/tmux instead of what I have aliased.
$ tmux -V
tmux.orig 2.8
$ /usr/bin/tmux -V
tmux 1.8
The problem for me is https://github.com/tmux-python/libtmux/blob/master/libtmux/common.py#L241
Your search paths are then placing the system paths AFTER the custom patch which tmux pulls up:
241 def __init__(self, *args: t.Any, **kwargs: t.Any) -> None:
242 tmux_bin = which(
243 "tmux",
244 default_paths=kwargs.get(
245 "tmux_search_paths",
246 ["/bin", "/sbin", "/usr/bin", "/usr/sbin", "/usr/local/bin"],
247 ),
248 append_env_path=kwargs.get("append_env_path", True),
249 )
This really should be the other way around.
$ which tmux
tmux=/apollo/env/envImprovement/bin/tmux
I'd hate to have to fork this, so can we just perform a subprocess.run which tmux instead? Why do we need to search paths?
tmuxp:
-------------------------
environment:
dist: Linux-5.4.204-124.362.amzn2int.x86_64-x86_64-with-glibc2.2.5
arch: x86_64
uname: Linux; dev-dsk-deguzim-1a-fa82568b.us-east-1.amazon.com; 5.4.204-124.362.amzn2int.x86_64
version: #1 SMP Wed Jul 13 03:24:31 UTC 2022
-------------------------
tmux version: 1.8
libtmux version: 0.12.0
tmuxp version: 1.12.1
tmux path: /usr/bin/tmux
tmuxp path: /home/deguzim/.local/lib/python3.7/site-packages/tmuxp
shell: /bin/zsh
-------------------------
tmux sessions:
protocol version mismatch (client 7, server 8)
tmux windows:
protocol version mismatch (client 7, server 8)
tmux panes:
protocol version mismatch (client 7, server 8)
tmux global options:
protocol version mismatch (client 7, server 8)
tmux window options:
protocol version mismatch (client 7, server 8)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read libtmux/common.py around line 241 and the linked tmuxp report first; inspect how which combines default_paths with append_env_path. Done means the selected tmux executable follows the user's intended environment path rather than /usr/bin/tmux, addressing the reported protocol mismatch.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100