NixOS 24.11 Part 1
2024 Nov 27 ( 3 minutes )
It’s that time of the year: a new release for NixOS!
Recently this year, (around june 2024), I migrated all my machines to NixOS. This was a journey on its own, and I should probably document it a bit, especially for the devices that are not “standards”.
So for this upgrade to 24.11 (almost released), I started with my laptop.
Usually, this is a rather painless process, but this time I experienced some fun little surprises :-)
Booting yes but…
After fixing the trivial changes, basically configuration elements being renamed, I booted the machine to the usual gdm login, did login, after realized that no GTK based applications couldn’t start!
Hopefully, I was able to start the venerable xterm, and tried to launch the Gnome Terminal: kgx. And instead, I got the following answer
Gdk-Message: 13:33:24.116: Error 71 (Protocol error) dispatching to Wayland display.
So OK, after some research about it, I found the following bug reports:
- https://gitlab.gnome.org/GNOME/gtk/-/issues/7010
- https://gitlab.freedesktop.org/mesa/mesa/-/issues/11723
And sure, there is a bug in the latest nvidia 56x driver in conflict with wayland and gnome 47 which uses the latest GTK library.
Hopefully, there is simple workaround for now, simply set the following variable:
GSK_RENDERER=ngl
Which in NixOS configuration is done with:
environment.variables = {
GSK_RENDERER = "ngl";
};
Once applied, all GTK based applications could start flawlessly.
Git can’t commit
As I was trying to commit that previous change to my git repository, git refused by saying it couldn’t create temporary files.
For this, I use direnv
which set nixos environement via the local flake. I realized TMPDIR was set to a temporary directory like /tmp/nix-shell-xxx-x
, but didn’t exist at all.
After a while of tinkering, and searching, I realized that a nix version of direnv exists, called nix-direnv
and available. So I removed the direnv
entry in my applications to install, then popped the following:
programs.direnv.enable = true;
And sure enough, it worked like a charm.
This is both the beauty (and the curse) of NixOS: a lot is done for you, and a lot will have to follow Nix convention to actually work. This is also a lesson to keep in mind: if nixos has an entry to “enable” a software, use that instead of simply installing it.
Overall … not bad
So, yes 24.11 is live on this laptop, those 2 small issues were the extent of my “troubles” with this new release of NixOS.
Again, at any moment, I could boot to a 100% stable version of 24.05, that’s the awesomeness ability of the nixos generation system.
Next is going to migrate several raspberry pi 4 and orange pi 5+ to this new release … Part 2 will be more “interesting” for sure :)