Planet Guix

‘guix substitute’ and ‘guix pull’ Vulnerabilities

Several security issues (CVE IDs pending) have been identified in guix substitute , a helper utility invoked by guix-daemon , which enable a variety of harmful activities including remote privilege escalation to the build daemon user , remote store corruption , and potentially local disclosure of sensitive files accessible to the build daemon user. All systems are affected, whether or not guix-daemon is running with root privileges; the harm that can be done when guix-daemon runs without root privileges is more limited. You are strongly advised to upgrade your daemon now (see…

One year with Codeberg

A year ago, Guix migrated to Codeberg for source code hosting, issue tracking, and pull requests. This is a significant change for a project with more than 400 people contributing code each year, after more than decade hosting code at Savannah and dealing with bug reports and patches by email, tracked by a Debbugs instance . This article discusses the process that led to this change and lists some takeaways, a year later. The non-obvious choice For years before, the question of our choice of source code hosting and collaboration tools would regularly come up. However, with…

Time travel without borders

When offered the option to run other people’s code, a prime consideration is often ease of deployment. While much progress has been made in support of rapid deployment, the security implications of those quick deployments is often overlooked. In this post, we look at a new feature of guix time-machine and guix pull in support of one-line deployment commands : the ability to download channel files, but without compromising on security. Sharing code The normal workflow to share software and make it easily deployable with Guix goes like this: someone puts their packager hat on and…

Arguments parsing in Guile

While Guile Scheme has a lot of hidden gems, like (ice-9 peg), parsing command line arguments is not one of its strengths in my opinion. Even if there are many powerful approaches to structured argument parsing, there is no API simple enough for me to know it by heart (as opposed for example to Python ArgumentParser).