for various reasons beyond my control, I currently work professionally mainly inside a (SUSE) Linux shell. To make my life easier there, I decided to let home-manager in a user chroot manage my user account’s software. So far, so good. However, most of my work is done inside GNU Emacs. In the nixpkgs I can now find GNU Emacs 31, which would give me a few relevant improvements over GNU Emacs 30.
As far as I know, home-manager uses the “latest” version of the Nix packages by default; I have actively set nixpkgs to point to unstable either way.
Nixpkgs, has a few channels, and the main two are a stable channel and an unstable channel. It looks like the version of emacs-nox in Nixpkgs stable 26.05, is 30.2
nixpkgs-unstable, however, has emacs-nox 31.
If you run: nix-channel -–list then you can see what channels are in use. (Or you might have to run sudo nix-channel if the channels are managed as root, in which case you need to run nix-channel –update with root.
Thank you - I did, indeed, check the list of channels: The channels that are in use are home-manager’s master.tar.gz and nixpkgs unstable, so I thought that my script would upgrade my packages. (No root on this system, I’m afraid.)
I also emptied the .cache, but I’m still stuck with emacs-nox 30.2. Confusing…
What about the channels of the root within the nix user chroot?
Otherwise, that’s strange. Can you confirm that the versions of other packages you have installed have the stable version, and not the unstable version, or is it specific to emacs-nox?
If nix-channel --update does not solve your issue, then you will have to share more information about your setup.
Like, I had similar issues debugged in the past, and eventually we figured that those users used flakes without realizing or some other pinning, but only for some things and forgot about it.