+161
−196
Loading
Admins will be upgrading ORNL GitLab Servers on Saturday, 16 May 2026, from 7 AM until 11 AM EST. Repositories will experience intermittent outages during this time.
While the currently packages Zoom version 6.3.11.7212 is still usabe without FHS environment, the newer version 6.4.1.587 isn't: The dynamic loader trick of commit 3f58227a can also be applied to `ZoomLauncher`, making it start again. However, `ZoomWebviewHost` won't work anymore: Apparently it also requires the dynamic loader trick; However, it tries to call itself, calling the dynamic loader, which then doesn't know what to do. The result is Zoom causing high CPU load while the main window is visible, as it endlessly tries to start `ZoomWebviewHost`, which is apparently needed to show the dashboard. The commit at hand wraps Zoom in a `buildFHSEnv`. This is the only possible way to ensure Zoom programs can be executed without altering them with patchelf or wrapping them. In detail: * The derivation that was created before this commit is still needed (also for linus system). It is now moved into a let-in variable (`unpacked`) so it can be used for darwin (still unchanged) and for linux (wrapped by FHS env). Linux-specific wrapping is removed as we now need the zoom directory structure unmodified, as packaged by Zoom. In particular, this removes the `postFixup` section, or rather, keeps only the darwin-specific part. This part of the commit's diff is likely best readable with `git diff --color-words=.`. * As a convenience for later updates, a comment is added that might help searching for missing library dependencies. * The lists of dependencies (`libs` and `binPath`) are merged into a function `linuxGetDependencies`. It is no longer meaningful to keep them separate as the FHS environment merges all those packages into on unified tree. It is also not always clear whether a package is used as "program" or a "library" (e.g. pipewire, or possibly `xdg-desktop-portal`). As required by `buildFHSEnv`, the function `linuxGetDependencies` is called with `pkgs` as its only argument and returns a list of packages that will be made available in the FHS environment. This mechanism is meant to facilitate multi-arch packages (e.g. i686 running on x86-64), so zoom should work alright (on x86_64-linux) if we ignore `pkgs` and just provide our packages as before; but there is no reason to deviate from the mechanism that is provided by `buildFHSEnv`.