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