Functional Package Management for the People

GNU Hackers Meeting in Düsseldorf, 2012. The following is the video of the presentation "Guix, functional package management for the people, and for GNU?", by Ludovic Courtès (get the slides).

Guix is a purely functional package manager written in Guile Scheme, and building on the Nix package manager. It implements purely functional package build and composition: a build process is a Scheme function that returns the path of its result in the "store"-the /nix/store directory. The store acts as a build cache, subject to garbage collection. Changing a bit in the build process's inputs (dependencies, environment variables, etc.) changes the result.

This approach provides users with features such as transactional upgrades and rollback, unprivileged package installation, coexistence of variants or versions of packages, etc. By construction, it allows users to track down all the packages involved in a build, down to the initial bootstrapping binaries.

This talk will present Guix, detail this incredible feature set, and show what it's like to package software with it. We will discuss whether and how it could fit in the Grand Plan of making a "GNU Distro"