Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linuxbrew is based on appimage which requires recent-ubuntu-compatible glibc #4036

Open
feribg opened this issue Jul 20, 2023 · 3 comments
Open
Labels
bug Something isn't working PR-welcome Wez doesn't have plans to work on this, but will accept a PR if someone feels motivated!

Comments

@feribg
Copy link

feribg commented Jul 20, 2023

What Operating System(s) are you seeing this problem on?

Linux X11

Which Wayland compositor or X11 Window manager(s) are you using?

no window manager

WezTerm version

20230712-072601

Did you try the latest nightly build to see if the issue is better (or worse!) than your current version?

Yes, and I updated the version box above to show the version of the nightly that I tried

Describe the bug

Seems like only 2 versions of glibc are supported making this unusable on older distros. Since the wezterm daemon is needed on the remote and it needs to be the same version as the as client (usually latest) this makes the multiplexer effectively useless unless your glibc happens to match the one the linked against. Should the homebrew be changed to link to the system glibc and build from source instead, I guess because of using ubuntu app image it tends to be linked against whats compatible with ubuntu...

(base) brew tapbrew install --HEAD wezterm
(base) brew install --HEAD wezterm
Error: wezterm 20230712-072601 is already installed
To install HEAD, first run:
  brew unlink wezterm
(base) brew unlink wezterm
Unlinking /home/linuxbrew/.linuxbrew/Cellar/wezterm/20230712-072601... 1 symlinks removed.
(base) brew install --HEAD wezterm
==> Fetching wez/wezterm-linuxbrew/wezterm
==> Downloading https://github.com/wez/wezterm/releases/download/nightly/WezTerm-nightly-Ubuntu20.04.AppImage
==> Downloading from https://objects.githubusercontent.com/github-production-release-asset-2e65be/120568143/56a4d70c-e6c6-40aa-ab4a-8ea61b3a5c34?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20
##################################################################################################################################################################################################################### 100.0%
Warning: Cannot verify integrity of '4bf81ec007638ff41f3e5bd7b7720c94ab3430f47bdb3d38daed445f799d71c7--WezTerm-nightly-Ubuntu20.04.AppImage'.
No checksum was provided.
For your reference, the checksum is:
  sha256 "931cd4b1893e70330d436638f1de9c51ad7181958557c58dc5affd24c42347d3"
==> Installing wezterm from wez/wezterm-linuxbrew
🍺  /home/linuxbrew/.linuxbrew/Cellar/wezterm/HEAD: 3 files, 52.5MB, built in 2 seconds
==> Running `brew cleanup wezterm`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
Removing: /home/ec2-user/.cache/Homebrew/wezterm--20230712-072601.AppImage... (51.5MB)
(base) wezterm --version
wezterm: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by wezterm)
wezterm: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by wezterm)
wezterm: /lib64/libc.so.6: version `GLIBC_2.29' not found (required by wezterm)
wezterm: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by wezterm)
(base)

To Reproduce

No response

Configuration

default

Expected Behavior

No response

Logs

No response

Anything else?

No response

@feribg feribg added the bug Something isn't working label Jul 20, 2023
@wez
Copy link
Owner

wez commented Jul 20, 2023

The linuxbrew recipe uses the appimage for simplicity. It could be changed to build from source instead, but for your situation, you might actually want a separate recipe that builds just the mux server so that you don't pull in the other gui dependencies.
I'd be open to PRs that do some work in this area, but have no plans to work on this directly at this time.

@wez wez changed the title Glibc version restrictive linuxbrew is based on appimage which requires recent-ubuntu-compatible glibc Jul 20, 2023
@wez wez added the PR-welcome Wez doesn't have plans to work on this, but will accept a PR if someone feels motivated! label Jul 20, 2023
@feribg
Copy link
Author

feribg commented Jul 21, 2023

Yep that makes sense, thanks! I don't think i have time to do it now i kinda wanted to bench test the native mux vs something like zellij (do you have any intuition about that? Im assuming you buffer and draw only once instead of twice in that setup) and see if there is merit to it performance wise, but considering that it needs to be built manually, versions needs to matched and synced upon updates etc, I don't think its very practical right now unless you have full control over both machines.

@wez
Copy link
Owner

wez commented Jul 22, 2023

zellij is probably the path of least resistance for your situation.

The main benefit of wezterm's mux is that it avoids having multiple different layers of terminal emulation (eg: your TE of choice, running mosh to a remote host running tmux and hoping that all the term/terminfo is setup correctly in order for italics, underlines and true color to survive end to end through all those layers), and allows native GUI control over things like tabs and panes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working PR-welcome Wez doesn't have plans to work on this, but will accept a PR if someone feels motivated!
Projects
None yet
Development

No branches or pull requests

2 participants