GNU Guix and GuixSD 0.16.0 released
We are pleased to announce the new release of GNU Guix and GuixSD, version 0.16.0! This release is (hopefully!) the last one before 1.0—we have been closing most key items for 1.0 over the last few months.
The release comes with GuixSD ISO-9660 installation
a virtual machine image of
and with tarballs to install the package manager on top of your
GNU/Linux distro, either from
Guix users can update by running
It’s been 5 months since the previous release, during which 95 people contributed code and packages. Here are the highlights.
- The default substitute
has been changed to
https://ci.guix.info. This is backed by a more powerful build farm with terabytes of storage kindly donated by the Bioinformatics platform of the Berlin Institute of Medical Systems Biology (BIMSB) at the Max Delbrück Center (MDC). The build farm front-end runs Cuirass, our continuous integration tool that was partly developed during two GSoC internships.
guix pullnow lists new and upgraded packages, and it has a
--profileoption that allows you to keep several Guix revisions in parallel. Related to that, the new
guix describecommand displays information about the Guix revision you are using.
guix pullnow supports channels. In a nutshell, you can specify in
~/.config/guix/channels.scmthe channels from which
guix pullwill fetch Guix as well as, optionally, third-party package repositories. Again
guix describedisplays all the channels in use and
guix describe -f channelsproduces a “pinned channel” specification that can be used as the
- Using the new inferior mechanism, you can now interact with a different revision of Guix and even compose packages coming from different revisions of Guix!
- The output of the command-line tools has been noticeably improved:
important events are colorized,
guix systemno longer display build logs, and
guix buildcolorizes build logs (in a way that is similar to what Emacs-Guix does.)
- There are new package transformation
--with-commitallow you to obtain a package variant straight from its Git repository.
- Guix had reproducible builds and now it has “reproducible source code downloads”: when a package refers to a Git repository that has disappeared (which is unfortunately not uncommon!), the checkout can be fetched from Software Heritage. That makes Guix one of the first distros to be backed by a long-term archive. See this issue for more info.
- Our Rust packages are now fully bootstrapped from source, starting from mrustc, a Rust compiler written in C++. This is a victory on this instance of “yogurt software”, and Guix is probably the first distro to achieve this. More on that in a future post!
- On GuixSD,
guix system reconfigurewill now always load replacements of system services. That way, when you deem appropriate, you can run
herd restart SERVICEto start the upgraded service.
- As usual, 985 packages were added and 1,945 were upgraded, notably the GNU C Library now at version 2.28 (which, incidentally, allowed us to get rid of our Hurd-specific glibc variant, at last!). Today Guix provides 8,715 packages.
- The manual is now partially translated into German. The French translation is now 90% complete. You can help translate the manual into your native language by joining the Translation Project.
Pffew, quite a long list already! The release announcement lists additional noteworthy changes and bug fixes you may be interested in.
About GNU Guix
GNU Guix is a transactional package manager for the GNU system. The Guix System Distribution or GuixSD is an advanced distribution of the GNU system that relies on GNU Guix and respects the user's freedom.
In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. Guix uses low-level mechanisms from the Nix package manager, except that packages are defined as native Guile modules, using extensions to the Scheme language. GuixSD offers a declarative approach to operating system configuration management, and is highly customizable and hackable.
GuixSD can be used on an i686, x86_64, ARMv7, and AArch64 machines. It is also possible to use Guix on top of an already installed GNU/Linux system, including on mips64el and aarch64.