I've been reading https://tazj.in/blog/trying-guix.
I also went in a #guix sidequest last year, and found a solution to
untangle Guix from the Guix pull modules. I realize I never documented
that publicly. Here we go
There's this popular workflow in the Nix space: using a local git
Nixpkgs checkout to override your system Nixpkgs. This is super useful
when hacking on NixOS modules, you can iteratively load them to your
desktop/servers. It also pretty useful when you quickly want to apply
a patch that is not merged upstream yet.
On Guix, this is a bit tricky to do. By default, Guix itself is tying
your system config with the different channels (guix, nonguix). The
trick is to leverage the pre-inst-env
script to load the local guix
checkout. I did that through a small wrapper script I run when I want
to run guix system reconfigure.
See
https://codeberg.org/picnoir/guix-config/src/branch/master/home/bin/guix-rebuild-all#L5.
This works great, however, this will rewrite the guile load path, and
using this, you won't be able to use your extra channels (like
nonguix).
To work around that, the trick is to wrap your channels in a inferior
(see
https://codeberg.org/picnoir/guix-config/src/branch/master/systems/framework.scm#L29)
and combine them with the guix channel itself (loaded from your local
checkout).
Then use the lookup-inferior-packages
function to retrieve packages
from this inferior
https://codeberg.org/picnoir/guix-config/src/branch/master/systems/framework.scm#L81.
Doing this makes hacking on Guix as I hack on NixOS. I can cherry pick
patches, apply them in my guix setup and transparently deploy them on
my host system if I need to.
There's an extra accidental benefit: incremental compilation. Since
we're evaluating Guix on a long-living repository, we don't have to
rebuild the channel from scratch on each pull. There's a caveat
though: incremental recompilation is somewhat buggy, I had to manually
clean the compiled files a couple of times. The error message was
super puzzling, took me a while to figure that out.
Kudos goes to cbaines, he helped me figuring out the inferior part of
this setup!
I've been reading https://tazj.in/blog/trying-guix.
I also went in a #guix sidequest last year, and found a solution to
untangle Guix from the Guix pull modules. I realize I never documented
that publicly. Here we go
There's this popular workflow in the Nix space: using a local git
Nixpkgs checkout to override your system Nixpkgs. This is super useful
when hacking on NixOS modules, you can iteratively load them to your
desktop/servers. It also pretty useful when you quickly want to apply
a patch that is not merged upstream yet.
On Guix, this is a bit tricky to do. By default, Guix itself is tying
your system config with the different channels (guix, nonguix). The
trick is to leverage the pre-inst-env
script to load the local guix
checkout. I did that through a small wrapper script I run when I want
to run guix system reconfigure.
See
https://codeberg.org/picnoir/guix-config/src/branch/master/home/bin/guix-rebuild-all#L5.
This works great, however, this will rewrite the guile load path, and
using this, you won't be able to use your extra channels (like
nonguix).
To work around that, the trick is to wrap your channels in a inferior
(see
https://codeberg.org/picnoir/guix-config/src/branch/master/systems/framework.scm#L29)
and combine them with the guix channel itself (loaded from your local
checkout).
Then use the lookup-inferior-packages
function to retrieve packages
from this inferior
https://codeberg.org/picnoir/guix-config/src/branch/master/systems/framework.scm#L81.
Doing this makes hacking on Guix as I hack on NixOS. I can cherry pick
patches, apply them in my guix setup and transparently deploy them on
my host system if I need to.
There's an extra accidental benefit: incremental compilation. Since
we're evaluating Guix on a long-living repository, we don't have to
rebuild the channel from scratch on each pull. There's a caveat
though: incremental recompilation is somewhat buggy, I had to manually
clean the compiled files a couple of times. The error message was
super puzzling, took me a while to figure that out.
Kudos goes to cbaines, he helped me figuring out the inferior part of
this setup!
This script can be adapted and used in any channel:
https://codeberg.org/hako/Rosenthal/src/branch/trunk/pre-inst-env
And how I use them in my configurations:
https://codeberg.org/hako/Testament/src/commit/0eacd34ed6173b371115fc3cb8ee5157e4388772/pre-inst-env
(without using pre-inst-env scripts)
https://codeberg.org/hako/Testament/src/commit/9a8e39e32999c220f61fb4927c9893b0f5c7cb87/.envrc
#guix

Tomorrow is #RDE meetup day! Join us to talk about my internship, Arei/Ares, #guix and cool stuff :)
https://lists.sr.ht/~abcdw/rde-announce/%3C87sejmomn5.fsf@trop.in%3E
I've spent many hours on #Guix the last two weeks, and I'm planning to do a writeup of what I've learned setting up a virtual machine running #Nextcloud. With both Guix on the host and as the guest.
Guix is fun! It takes some turning your brain inside out but in a way that feels goooood.

Long-time contributors are launching a cooperative specializing in #Guix & #Guile: Guixotic 👇
https://guixotic.coop/
A beautiful initiative; wishing them success!!
Just submitted a patch to #Guix adding Sourcetrail[1]! (PR #1129 [2]) It's a cool little tool and it was fun packaging it. Walking around a C/C++ project with a graphical tool is a great way to try and get a handle on what the big important functions and data structures are.
[1] https://github.com/OpenSourceSourceTrail/Sourcetrail
[2] https://codeberg.org/guix/guix/pulls/1229
Great post "GNU Guix: How to run foreign binaries" by https://fosstodon.org/@zie

we're pleased to announce https://guixotic.coop, a new free software cooperative focused on gnu guix and guile cofounded by @podiki, maxim cournoyer and me. we offer services including training, commercial support, development, system administration (CI/CD, HPC), packaging -- in short, everything guix and guile.
our goal is to strengthen & expand the community, bringing in new people and organizations (our clients), supporting development work, and growing the network of organizations supporting these technologies.
could you or an organization you know of benefit from our services? email contact@guixotic.coop or contact us here!
full announcement: https://lists.gnu.org/r/guix-devel/2025-07/msg00113.html

Worker co-op for #guix and #guile jobs. Sounds interesting!
Guixotic | GNU Guix and Guile Worker Cooperative
https://guixotic.coop/
GNU Guix: How to run foreign binaries

https://recrutement.inria.fr/public/classic/fr/offres/2025-09146