Hi all,
I think I’ve discovered a very weird bug in guix system
, but if anyone can find a logical explanation for this, I would love to know.
Here’s my experience so far with the command: I’ve used it to build a Guix system from a single configuration file os.scm
and update the operating system from there with guix system reconfigure
. All normal stuff. Now, I want to expand my configuration to multiple files very similarly to how David Wilson has managed it in his daviwil/dotfiles github repo. Ignoring the update wrapper scripts, he’s basically just used #:include-module
statements in the module declaration for his operating system in the file that he runs guix system reconfigure
on.
So I tried this, too. The result for me, on my Guix system, was that guix system reconfigure
reports a failure to load .scm: no such file or directory. Of course, the file very much does exist. Now, we can prove that guix system
can in fact find the file because if you introduce any syntax error in it, it will point that out to you, complaining about the mistake you made. If I remove the -L ~/.dotfiles
argument from guix system reconfigure
, which tells it where to find the other modules, it will similarly complain about the .scm file because it lacks code for the modules it’s trying to pull in (but it will find the file and point out the error).
So sometimes guix system
selectively lies about finding configuration files. However, I tested this again in a bunch of different ways. I tried using guix installation media, both built with the linux and the linux-libre kernels, and the same thing happened with guix system init
. Same results from inside a chroot
, also from using the Guix package manager on my gentoo system to run guix system init
. I tried rebuilding the OS using all of these methods with single configuration files, but then guix system reconfigure
fails on the multi-file setup.
Finally, guix system init
worked once in a qemu qcow2-based guix system (taken from the Guix website) that was then given access to my hard drive, but as soon as I remembered to guix pull
I got the same error again.
I have tried this over nearly every conceivable setup, and yet guix system
returns this error every time. It’s so strange because I’m sure I’m invoking everything correctly, but if this is a bug then how does David Wilson’s configuration, and the no doubt numerous derived from it, actually work?
…
Thoughts?