Blog — Scheme API

Write package definitions in a breeze

November 24, 2023

More than 28,000 packages are available in Guix today, not counting third-party channels. That’s a lot—the 5th largest GNU/Linux distro ! But it’s nothing if the one…

Parameterized Packages for GNU Guix

June 9, 2023

Hello Guix! I'm Sarthak and I'll be working on implementing Parameterized Packages for GNU Guix as a Google Summer of Code intern under the guidance of Pjotr Prins…

Dissecting Guix, Part 3: G-Expressions

April 19, 2023

Welcome back to Dissecting Guix ! Last time, we discussed monads , the functional programming idiom used by Guix to thread a store connection through a series of store-related…

Building Toolchains with Guix

March 15, 2023

In order to deploy embedded software using Guix we first need to teach Guix how to cross-compile it. Since Guix builds everything from source, this means we must teach…

Dissecting Guix, Part 2: The Store Monad

February 20, 2023

Hello again! In the last post , we briefly mentioned the with-store and run-with-store macros. Today, we'll be looking at those in further…

Dissecting Guix, Part 1: Derivations

January 4, 2023

To a new user, Guix's functional architecture can seem quite alien, and possibly offputting. With a combination of extensive #guix -querying, determined manual-reading, and plenty of source-perusing, they…

Keeping one’s home tidy

March 21, 2022

How much effort to recreate your work environment when you switch to a new machine? What would it take to roll back to your previous environment once you’ve noticed…

The Big Change

December 15, 2021

Making cross-cutting changes over a large code base is difficult, but it's occasionally necessary if we are to keep the code base tidy and malleable. With almost 800K source…

Taming the ‘stat’ storm with a loader cache

August 2, 2021

It was one of these days where some of us on IRC were rehashing that old problem—that application startup in Guix causes a “ stat storm”—and lamenting…

Reproducible data processing pipelines

June 11, 2021

Last week, we at Guix-HPC published videos of a workshop on reproducible software environments we organized on-line. The videos are well worth watching—especially if you’re into reproducible…

Getting bytes to disk more quickly

March 26, 2021

Let’s face it: functional package managers like Guix provide unequaled support for reproducibility and transactional upgrades, but the price to pay is that users often spend a fair amount of…

Securing updates

July 1, 2020

Software deployment tools like Guix are in a key position when it comes to securing the “software supply chain”—taking source code fresh from repositories and providing users with ready-to-use binaries.…

GNU Shepherd user services

May 17, 2020

One of the things which sets Guix apart from other GNU/Linux distributions is that it uses GNU Shepherd instead of the now ubiquitous systemd. A side effect of…

Grafts, continued

May 6, 2020

Guix includes a mechanism called grafts that allows us to provide users with security updates in a timely fashion, even for core packages deep down in the…

Guile 3 & Guix

January 24, 2020

Version 3.0 of GNU Guile, an implementation of the Scheme programming language , was released just last week . This is a major milestone for Guile, which gets compiler improvements and…

Spreading the news

November 12, 2019

Like most free software projects, Guix has no shortage of communication channels: there’s this blog , the NEWS file for release notes, a bunch of …

Managing Servers with GNU Guix: A Tutorial

November 4, 2019

The outcome of this year's GSoC is a Guile-based programming interface named guix deploy for automatically creating, upgrading, and changing the configurations of machines running the Guix System.…

Towards Guix for DevOps

July 12, 2019

Hey, there! I'm Jakob, a Google Summer of Code intern and new contributor to Guix. Since May, I've been working on a DevOps automation tool for the Guix System, which…

Substitutes are now available as lzip

June 17, 2019

For a long time, our build farm at ci.guix.gnu.org has been delivering substitutes (pre-built binaries) compressed with gzip. Gzip was never the best choice in terms of compression…

Connecting reproducible deployment to a long-term source code archive

March 29, 2019

GNU Guix can be used as a “package manager” to install and upgrade software packages as is familiar to GNU/Linux users, or as an environment manager, but it can also provision…

A packaging tutorial for Guix

October 10, 2018

Introduction GNU Guix stands out as the hackable package manager, mostly because it uses GNU Guile , a powerful high-level programming language, one of the…

Multi-dimensional transactions and rollbacks, oh my!

July 24, 2018

One of the highlights of version 0.15.0 was the overhaul of guix pull , the command that updates Guix and its package collection. In Debian terms,…

Customize GuixSD: Use Stock SSH Agent Everywhere!

May 26, 2018

I frequently use SSH. Since I don't like typing my password all the time, I use an SSH agent. Originally I used the GNOME Keyring as my SSH…

Guix at the 2014 GNU Hackers Meeting

October 11, 2014

The Guix talk of this summer's GNU Hackers Meeting is now available (get the slides ). DOWNLOAD VIDEO (WebM, 60 minutes) …

Guix at the European Lisp Symposium

May 21, 2013

A paper presenting the design of Guix's Scheme API and packaging language has been accepted for the 2013 European Lisp Symposium (ELS) . ELS…