Closed Fuuzetsu closed 4 months ago
I ended up finding a version of nixpkgs that
is able to build recent nvidia version with new nixGL repo: if nixpkgs is too old, the new drivers fail to build, presumably the packaging changed mid-way
is able to open applications built recent nixpkgs/glibc
is able to open applications built with nixpkgs from end of 2022
So for now everything works for us. Things will break if drivers change built process and/or nixGL changes in incompatible way with that ancient nixpkgs so the solution is not perfect, but it works for now...
There is nothing that can be done here, don't mix glibc versions.
That's what I thought. Shame...
We have a graphical application that was built with glibc 2.37 at the time. Time has passed, we updated nixpkgs we all use and now people are getting nixGL (nvidia) built against glibc 2.38. When we try to start our application, it fails. The error message from our application is poor and I'm not 100% sure it's a glibc issue but I can replicate something similar with glxgears.
Let's get on old-enough glxgears from nixpkgs: let's use the commit
95dc6a031b8365744241990d0ff51698c1b536d7
. This gives me/nix/store/mbsylms2izzlm4w7zqjs0khwvzr1sllp-glxinfo-8.4.0/bin/glxgears
.I then get nixGL built with modern nixpkgs:
037d07f325ad1d811aa3b89e7bf2b0788f645947
.I now try to run modern nixGL against the old
glxgears
.Welp, that doesn't work. Just to demonstrate that the nixGL install is working, let's try it with modern glxgears from the modern nixpkgs.
Perfect, so it works.
What I also tried, as I'm on NixOS, is just running both glxgears directly: it works for me! I'm not sure what the magic is. Perhaps I'm still on the old glibc for my system driver and it is forwards compatible but the too-new nixGL doesn't work backwards. To verify this, I installed nixGL against the old nixpkgs. With this, I was able to run both the old and new glxgears. So our current work-around is to pin nixGL against old nixpkgs in our repository and have people install that.
I guess this ticket is a question on what is a good solution to this. Not being able to open old applications kind of sucks. Installing nixGL against old versions also kind of sucks but it's a workaround that could work. Opinions welcome!