My Guix contribution journal - 0x01
TL;DR
I got my first two accepted patches:
- Update httpd: 78570 as 9f33cb8825
- Update dropbear: 78600 as ac88ea15c7
Total accepted patches: 2
Docker
In my last post I commented that I was working on updating Guix’s Docker package to version v28. I got the build phase to succeed, but failed in the check phase due to a new unit test that was introduced.
I got tired trying to make this test succeed or to avoid this test a all. So I decided to share my work on the related issue and focus my energy on lower hanging fruits to clear my mind.
Patches
As a low hanging fruit, I decided to update an existing package, it is a very simple thing to do, you just need to:
- Update the
versionfield in the recipe; - Update the tarball sha256 hash;
- Check if the recipe still build the package;
- Fix any problem that arises.
In Docker’s case, the last packaged version is two years old. So there are a lot more tests to patch in the recipe. So step 4 needs a lot of work.
We can find packages that need to be updated using the guix refresh command.
Just be aware that it takes some time, because it fetches a lot of metadata from the internet.
$ guix refresh
nongnu/packages/wine.scm:25:13: winetricks would be upgraded from 20230212 to 20250102
nongnu/packages/wine.scm:145:13: dxvk would be upgraded from 2.0 to 2.6.1
nongnu/packages/wasm.scm:109:4: wasm32-wasi-clang would be upgraded from 15.0.7 to 20.1.6
nongnu/packages/wasm.scm:129:13: wasm32-wasi-libcxx would be upgraded from 15.0.7 to 20.1.6
nongnu/packages/vpn.scm:15:13: zerotier would be upgraded from 1.12.2 to 1.14.2
nongnu/packages/video.scm:84:13: intel-media-driver would be upgraded from 25.1.4 to 2018Q2.1
nongnu/packages/video.scm:119:2: intel-media-driver-nonfree would be upgraded from 25.1.4 to 2018Q2.1
nongnu/packages/video.scm:211:2: obs-with-cef would be upgraded from 30.1.2 to 31.0.3
nongnu/packages/video.scm:26:13: ffmpeg-nvenc would be upgraded from 6.1.2 to 7.1.1
After looking at my options, I choosed to update httpd (Apache), because the last packaged version was reasonably recent, so I guessed that step 4 wouldn’t need any work and I was right, I just updated the version and sha256 and the build recipe was successful. The patch is simple and was submited as issue 78570. A commiter reviewed and accepted my patch! and commited as commit 9f33cb8825, this is my first accepted patch. But there was a problem, I was credited as “arthurhdrodrigues— via Guix-patches via” instead of Arthur Rodrigues or just arthurhdrodrigues.
I have some theories about this:
- I didn’t configured a name in my email; and
- I didn’t use
git send-emailto submit the patches, I just copy-and-pasted the patch as in a plain text email. So some meta-data differed, to be precise theCc:field in the email header usinggit send-emailwas set to my email, as shown below.
From 8f5469ee21374ac5712ac9d2e0c5e46d59e8bd9c Mon Sep 17 00:00:00 2001
Message-ID: <8f5469ee21374ac5712ac9d2e0c5e46d59e8bd9c.1749085808.git.arthurhdrodrigues@proton.me>
From: Arthur Rodrigues <arthurhdrodrigues@proton.me>
Date: Wed, 4 Jun 2025 22:07:40 -0300
Subject: [PATCH] docker
Change-Id: I6f1ee9bfa263f9ebb9b75c6d8c2b1110d36b040c
---
gnu/packages/docker.scm | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/docker.scm b/gnu/packages/docker.scm
index b03019de08..bd341ded42 100644
--- a/gnu/packages/docker.scm
+++ b/gnu/packages/docker.scm
After fixing these problems, I submited another patch that updates dropbear, a lightweight ssh server. This second patch was also accepted and commited as ac88ea15c7 and this time I was credited correctly!
Now I’m ready to update more packages and go back to work with Docker v28 :D