Describe the bug
I just installed zoom-us 3.0.287250.0828 on ubuntu 16.04. When I try to run it, it fails:
$ ls -al $(which zoom-us)
lrwxrwxrwx 1 me me 79 janv. 1 1970 /home/me/.nix-profile/bin/zoom-us -> /nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/bin/zoom-us
$ zoom-us
ZoomLauncher started.
cmd line:
CreateReportChannel bp_server_fd=4
$HOME = /home/me
Can't load/home/me/.config/zoomus.conf
export SSB_HOME=/home/me/.zoom; export QSG_INFO=1; export LD_LIBRARY_PATH=/nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us; export BREAKPAD_CLIENT_FD=3; /nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us/zoom ""
zoom started.
Client: Breakpad is using Client-Server Mode! client fd = 3
qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
Could not initialize GLX
Aborted (core dumped)
success to create child process,status is 34304.
zoom exited normally.
Something went wrong while running zoom,exit code is 134.
ZoomLauncher exit.
To Reproduce
Steps to reproduce the behavior:
nix-channel --update
and install zoom-us with nix-env -iA nixpkgs
zoom-us
Expected behavior
Should not crash
Metadata
Please run nix-shell -p nix-info --run "nix-info -m"
and paste the result.
Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute: zoom-us
# a list of nixos modules affected by the problem
module:
I suspect it's the libGL drivers causing this issue. I think something like https://github.com/guibou/nixGL can resolve this. That one ends up just setting LD_LIBRARY_PATH for you.
Perhaps? we can bundle swrast mesa drivers with zoom-us so that this works out of the box. It's only like 18M so doesn't hurt closure too much.
it's hard to even reproduce this issue. Would be nice to provide any details.
Do we even support ubuntu 16? We support nixos for shorter period of time, I don't see why ubuntu versions would be longer supported than nixos itself.
Do we even support ubuntu 16? We support nixos for shorter period of time, I don't see why ubuntu versions would be longer supported than nixos itself.
Sort of - at least we want everything to be "pure" enough that it doesn't matter what distro you're running. All that should matter is you have a supported version of Nixpkgs (and a post 2.6 kernel is required I think). I would suspect that ubuntu 18 or 20 or whatever also has the same issue. If it's the problem I'm thinking of, it is really a case of NixOS vs. non-NixOS.
But you're right that it's probably not a good idea to fight specific quirks in other distros. Verifying it happens in another distro might be helpful.
Also see https://github.com/NixOS/nixpkgs/issues/66755#issuecomment-567016193
Thanks for the answers. So as explained by matthewbauer, Nix is supposed to be as pure as possible, i.e. it should not depend on the OS running behind, otherwise it indicates some non-purity, and therefore non-reproducibility (of course, if some very specific OS have some internal bug making it very hard to work for nix, I understand, but I don't think it's the case here as the same error is hapenning on both debian unstable and ubuntu 16.04). So I tried with my debian unstable, freshly updated, and I have a similar error:
$ zoom-us
ZoomLauncher started.
cmd line:
CreateReportChannel bp_server_fd=4
$HOME = /home/me
Can't load/home/me/.config/zoomus.conf
export SSB_HOME=/home/me/.zoom; export QSG_INFO=1; export LD_LIBRARY_PATH=/nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us; export BREAKPAD_CLIENT_FD=3; /nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us/zoom ""
Daemon not responding.
zoom started.
Client: Breakpad is using Client-Server Mode! client fd = 3
qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
Could not initialize GLX
Aborted
success to create child process,status is 34304.
zoom exited normally.
Something went wrong while running zoom,exit code is 134.
ZoomLauncher exit.
I suspect it's the libGL drivers causing this issue. I think something like https://github.com/guibou/nixGL can resolve this. That one ends up just setting LD_LIBRARY_PATH for you.
Perhaps? we can bundle swrast mesa drivers with zoom-us so that this works out of the box. It's only like 18M so doesn't hurt closure too much.
So if I understand, it means that people could use this inefficient swarst driver out of the box, and if they need more efficient drivers, then the option for the user is to go through this?
However, I tried this second approach (I don't want to use my nvidia graphical card for that, so I just wanted to use the embeded intel card, that's why I used nixGLIntel
), but it also fails (here it's on my debian unstable):
me@medeb:/tmp$ git clone https://github.com/guibou/nixGL
Clonage dans 'nixGL'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 126 (delta 2), reused 5 (delta 2), pack-reused 116
R茅ception d'objets: 100% (126/126), 26.65 Kio | 1.16 Mio/s, fait.
R茅solution des deltas: 100% (42/42), fait.
me@medeb:/tmp$ cd nixGL/
me@medeb:/tmp/nixGL$ nix-build -A nixGLIntel
[...]
building '/nix/store/in28gggqkkwd1gwikkvrx076qifna3iv-nixGLIntel.drv'...
/nix/store/sw4rr0w27p09w67a3ziqsjpwq79bsays-nixGLIntel
me@medeb:/tmp/nixGL$ nix-env -i ./result
installing 'nixGLIntel'
building '/nix/store/qj517irncvvsp1rpjrjdjzrpzs492b30-user-environment.drv'...
created 73 symlinks in user environment
me@medeb:/tmp/nixGL$ ls result/bin/
nixGLIntel
me@medeb:/tmp/nixGL$ nixGLIntel zoom-us
ZoomLauncher started.
cmd line:
CreateReportChannel bp_server_fd=4
$HOME = /home/me
Can't load/home/me/.config/zoomus.conf
export SSB_HOME=/home/me/.zoom; export QSG_INFO=1; export LD_LIBRARY_PATH=/nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us; export BREAKPAD_CLIENT_FD=3; /nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us/zoom ""
Le d茅mon ne r茅pond pas.
zoom started.
Client: Breakpad is using Client-Server Mode! client fd = 3
qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
qt.glx: qglx_findConfig: Failed to finding matching FBConfig for QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize -1, redBufferSize 1, greenBufferSize 1, blueBufferSize 1, alphaBufferSize -1, stencilBufferSize -1, samples -1, swapBehavior QSurfaceFormat::SingleBuffer, swapInterval 1, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
Could not initialize GLX
Aborted
success to create child process,status is 34304.
zoom exited normally.
Something went wrong while running zoom,exit code is 134.
ZoomLauncher exit.
I also tried the following command, which works with the nix version of glxinfo (otherwise it segfault with debian's version):
$ nixGLIntel glxinfo | grep -i 'OpenGL version string'
OpenGL version string: 3.0 Mesa 19.3.3
summoning @guibou
@tobiasBora looks like your nixGL is working fine (based on the output of glxInfo
). However it may be possible that zoom
is doing some weird stuffs with the OpenGL environment. Could you open an issue with more details on nixGL issue tracker please?
Hey, it seems that zoom does reexport LD_LIBRARY_PATH
, see the log:
export SSB_HOME=/home/me/.zoom; export QSG_INFO=1; export LD_LIBRARY_PATH=/nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us; export BREAKPAD_CLIENT_FD=3; /nix/store/rdsghgkbs56pyqkasb42k0g72yf9gfa4-zoom-us-3.5.361976.0301/share/zoom-us/zoom ""
This may be the reason why nixGL is not effective.
@tobiasBora could you try to run /nix/store/b7nlczqm4za17i0y6bhidvyzcl4s6msg-zoom-us-3.5.361976.0301/share/zoom-us/zoom
(change the nix store path to the one which is the correct for you) under nixGL
please?
zoom
is a nightmare of wrapper calling warppers calling wrappers. By doing so, I'm short-circuiting one wrapper, the one which override LD_LIBRARY_PATH
.
Hum, interesting, if I run nixGLIntel /nix/store/XXX/share/zoom-us/ZoomLauncher
, then it fails, but if I run the nixGLIntel /nix/store/XXX/share/zoom-us/zoom
program (not the launcher) directly, then it succeeds. So I guess you're right, the problem comes from the first wrapper.
Should I still write an issue on the nixGL bug tracker?
@tobiasBora no need for issue on nixGL bug tracker, I think we can confirm that the issue comes from zoom
.
I wonder if it may be a good idea to fix the nix derivation so /bin/zoom-us
points to the working zoom file.
I was having the same issue as reported by @tobiasBora on Ubuntu 18.04. After properly installing nixGLIntel, and typing nixGLIntel /nix/store/7ff40rlja3drjf1pqdkdid9vkm9rg12c-zoom-us-3.5.385850.0413/share/zoom-us/zoom
, it worked.
Does this help?
export QT_XCB_GL_INTEGRATION=none
@hmenke Yeah, that allows it to start!
I was having the same error with a different application from nixpkgs. @hmenke's tip https://github.com/NixOS/nixpkgs/issues/82959#issuecomment-657306112 also worked for me.
Most helpful comment
Does this help?