GNU Guix Changelog

What's new in GNU Guix 1.0.0

May 5, 2019
  • The ISO installation image now runs a cute text-mode graphical installer—big thanks to Mathieu Othacehe for writing it and to everyone who tested it and improved it! It is similar in spirit to the Debian installer. Whether you’re a die-hard GNU/Linux hacker or a novice user, you’ll certainly find that this makes system installation much less tedious than it was! The installer is fully translated to French, German, and Spanish.
  • The new VM image better matches user expectations: whether you want to tinker with Guix System and see what it’s like, or whether you want to use it as a development environment, this VM image should be more directly useful.
  • The user interface was improved: aliases for common operations such as guix search and guix install are now available, diagnostics are now colorized, more operations show a progress bar, there’s a new --verbosity option recognized by all commands, and most commands are now “quiet” by default.
  • There’s a new --with-git-url package transformation option, that goes with --with-branch and --with-commit.
  • Guix now has a first-class, uniform mechanism to configure keyboard layout—a long overdue addition. Related to that, Xorg configuration has been streamlined with the new xorg-configuration record.
  • We introduced guix pack -R a while back: it creates tarballs containing relocatable application bundles that rely on user namespaces. Starting from 1.0, guix pack -RR (like “reliably relocatable”?) generates relocatable binaries that fall back to PRoot on systems where user namespaces are not supported.
  • More than 1,100 packages were added, leading to close to 10,000 packages, 2,104 packages were updated, and several system services were contributed.
  • The manual has been fully translated to French, the German and Spanish translations are nearing completion, and work has begun on a Simplified Chinese translation. You can help translate the manual into your language by joining the Translation Project.

New in GNU Guix 0.15.0 (Jul 6, 2018)

  • The unloved guix pull command, which allows users to upgrade Guix and its package collection, has been overhauled and we hope you will like it. We’ll discuss these enhancements in another post soon but suffice to say that the new guix pull now supports rollbacks (just like guix package) and that the new --list-generations option allows you to visualize past upgrades. It’s also faster, not as fast as we’d like though, so we plan to optimize it further in the near future.
  • guix pack can now produce relocatable binaries. With -f squashfs it can now produce images stored as SquashFS file systems. These images can then be executed by Singularity, a “container engine” deployed on some high-performance computing clusters.
  • GuixSD now runs on ARMv7 and AArch64 boxes! We do not provide an installation image though because the details depend on the board you’re targeting, so you’ll have to build the image yourself following the instructions. On ARMv7 it typically uses U-Boot, while AArch64 boxes such as the OverDrive rely on the EFI-enabled GRUB. Bootloader definitions are available for many boards—Novena, A20 OLinuXino, BeagleBone, and even NES.
  • We further improved error-reporting and hints provided by guix system. For instance, it will now suggest upfront kernel modules that should be added to the initrd—previously, you could install a system that would fail to boot simply because the initrd lacked drivers for your hard disk.
  • OS configuration has been simplified with the introduction of things like the initrd-modules field and the file-system-label construct.
  • There’s a new guix system docker-image command that does exactly what you’d expect. :-)
  • There’s a dozen new GuixSD services: the Enlightenment and MATE desktops, Apache httpd, support for transparent emulation with QEMU through the qemu-binfmt service, OpenNTPD, and more.
  • There were 1,200 new packages, so we’re now close to 8,000 packages.
  • Many bug fixes!
  • The manual is now partially translated into French and you can help translate it into your native language by joining the Translation Project.

New in GNU Guix 0.13.0 (May 22, 2017)

  • Guix now supports aarch64 (64-bit ARM processors). This release does not include a binary installation tarball though, and our build farm does not provide aarch64 substitutes yet. We are looking for aarch64 hardware to address this. Please get in touch with us if you can help!
  • Likewise, this release no longer includes a mips64el tarball, though Guix still supports that platform. We do not know whether we will continue to support mips64el in the long run; if you’d like to weigh in, please email us on [email protected]!
  • The GuixSD installation image now supports UEFI. GuixSD can also be installed on Btrfs now.
  • GuixSD has support to run system services (daemons) in isolated containers as a way to mitigate the harm that can be done by vulnerabilities in those daemons. See this article from April.
  • A new guix pack command to create standalone binary bundles is available. We presented it in March.
  • Guix now runs on the brand-new 2.2 series of GNU Guile. The transition led to hiccups that we have been addressing, in particular for users of guix pull. Among other things though, the noticeable performance improvement that comes for free is welcome!
  • guix publish, which is what we use to distribute binaries, has a new --cache operation mode that improves performance when distributing binaries to a large number of users, as is the case of our build farm.
  • Many reproducibility issues found in packages have been addressed—more on that in a future post.
  • 840 new packages, leading to a total of 5,400+, and many updates, including glibc 2.25, Linux-libre 4.11, and GCC 7.
  • New system services for Redis, Exim, Open vSwitch, and more. The interface of existing services, notably that of the NGINX service, has been greatly improved.
  • Many bug fixes!

New in GNU Guix 0.11.0 (Aug 3, 2016)

  • New GuixSD system services, including an mcron service, a Dropbear SSH service, and a Dico dictionary service.
  • Infrastructure for whole-system tests.
  • Compression support for guix publish.
  • An Emacs mode to browse package definition locations.
  • GuixSD support for RAID devices.
  • 484 new packages, 678 package updates notably glibc 2.23 and linux-libre 4.7, as well as several bit-reproducibility issues fixed
  • Assorted improvements to all the tool set, many bug fixes and improvements to the manual!

New in GNU Guix 0.10.0 (Mar 29, 2016)

  • Our “grafting” mechanism for security updates has been fixed to be generally applicable. Read this post for more information on the challenges behind this.
  • Substitutes are now fetched by default over HTTPS and from a faster mirror.
  • A number of packages have been made bit-for-bit reproducible, including glibc, Perl, Emacs packages, and Python packages. This work was simplified by guix challenge and by the new --check and --rounds build options, and also by the insight gathered from other reproducible builds efforts.
  • GNOME is now available, via the gnome-desktop-service procedure.
  • 639 new packages, about as many package updates, greatly simplified by the addition of new importers and auto-updaters.
  • A wealth of bug fixes, documentation improvements, Emacs niceties, and more!

New in GNU Guix 0.8.3 (Jul 22, 2015)

  • The ability to declare the packages that must be present in your profile, and to pass that to guix package's new --manifest option.
  • guix environment has a new --ad-hoc option to quickly spawn ad hoc development environments.
  • New tools: guix edit to open a package recipe, guix size to profile the disk usage of a package and its dependencies, guix gc --verify to check the integrity of the store.
  • 179 new packages, notably LibreOffice, Coq, and a Guile-Emacs snapshot.
  • Many bug fixes and assorted improvements!

New in GNU Guix 0.8.1 (Jan 29, 2015)

  • A new port to ARMv7.
  • New guix system vm options to share file systems with the host.
  • New configuration interfaces for locale definitions and for nscd.
  • The addition of a CPAN importer to guix import, and more checkers for guix lint.
  • 164 new packages and 222 package updates.
  • Many bug fixes and usability improvements.

New in GNU Guix 0.8 Alpha (Nov 18, 2014)

  • A new guix environment command for the bookkeeping and reproduction of development environments.
  • An Emacs user interface as an alternative to the command-line interface for package management.
  • An experimental mechanism for faster deployment of security updates.
  • operating-system declarations can now specify swap devices, mapped devices, firmware, and more.
  • More developer tools, notably guix lint and guix import.
  • 162 packages have been added, with more than 100 package updates.