My first contributions to Guix System

Guix System is a fairly new GNU System or GNU/Linux distribution, the pure GNU version ships with the Hurd kernel, while the Linux version ships with linux-libre a linux fork with all of the binary blobs, obfuscated code and portions of code under proprietary licenses removed.

It is the GNU implementation of the pure functional deployment model, inaugurated by Nix and NixOS.

As I can see, Guix cares much more about reprodutibility than NixOS and it has a dedicated HPC team. But since it is less mature, it is kind of rough around the edges, so I decided to contribute to it!

First bug report

My first contact with the community was this bug report, which was quickly closed, because it was not considered a bug.

First patch

Guix is, by default, a source based distribution, thus a package is actually a recipe to build a given software. This recipes are stored in the folder gnu/packages.

My first submitted patch proposed the addition of the Golang library jwt. The recipe for Golang libraries are very simple, because no compilation is required, to install a Golang library, you just need to download its source files.

Before sending the patch to the mailing list I checked the file golang-xyz.scm, that constains a lot of Golang libraries and didn’t find jwt. But after submitting it, a contributer pointed out that this project is already present using guix’s packages search tool webpage. This web page shows the location of the library as being golang-crypto.scm, a simple grep in guix’s source code confirms that. So my patch was not accepted.

Current Contribution

Now I’m updating the Docker package to version 28.1.1, the current package is version 20.10.27, which is two years old. This update is tracked in the issue 74746.

Future Contributions

In the futere I also plan to add the package act and ghidra. Also configure a default wallpaper for Gnome, currently there is no default wallpaper and a blank dark blue backgroud is the default behavior.