2 #+TITLE: Guix NEWS – history of user-visible changes
3 #+STARTUP: content hidestars
5 Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
7 Copying and distribution of this file, with or without modification,
8 are permitted in any medium without royalty provided the copyright
9 notice and this notice are preserved.
11 Please send Guix bug reports to bug-guix@gnu.org.
14 * Changes in 0.3 (since 0.2)
17 *** New ‘--max-silent-time’ option for “guix build” and “guix package”
19 See the manual for details.
22 *** “guix --help” now works when using Guile 2.0.5
23 *** Binary substituter multi-threading and pipe issues fixed
25 These could lead to random substituter crashes while substituting a binary.
26 See commits 0332386 and 101d9f3 for details.
28 * Changes in 0.2 (since 0.1)
32 *** Guix commands are now sub-commands of the “guix” program
34 Instead of typing “guix-package”, one now has to type “guix package”, and so
35 on. This has allowed us to homogenize the user interface and initial program
36 setup, and to allow commands to be upgradable through “guix pull”.
38 *** New “guix package --upgrade” option
40 As the name implies, this option atomically upgrades all the packages
41 installed in a profile or the set of packages matching a given regexp.
42 See “Invoking guix package” in the manual.
44 *** New “guix package --search” option
46 Performs a full text search in package synopses and descriptions, and returns
47 the matching packages in recutils format. See “Invoking guix package” in the
50 *** New “guix pull” command
52 The command pulls the latest version of Guix–both the package management
53 modules and the distribution. See the manual for details.
55 *** New binary substituter
57 The “substituter” mechanism allows pre-built binaries to be transparently
58 downloaded instead of performing a build locally. Currently binaries are
59 available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
60 distribution is continuously built and binaries are made available from there.
62 See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
63 available binary packages.
65 *** New “guix refresh” command
67 The command is used by Guix maintainers. It automatically updates the
68 distribution to the latest upstream releases of GNU software.
70 *** New “guix hash” command
72 Convenience command to compute the hash of a file. See the manual for
75 *** Nix daemon code updated
77 The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
78 to current Nix ‘master’.
80 ** Programming interfaces
82 *** (guix download) now supports HTTPS, using GnuTLS
84 It allows package source tarballs to be retrieved over HTTPS.
86 *** New ‘native-search-path’ and ‘search-path’ package fields
88 Packages can define in their ‘native-search-path’ field environment variables
89 that define search paths and need to be set for proper functioning of the
90 package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
91 ‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
92 These environment variables are automatically set when building a package that
95 *** Package inputs can be a function of the target system type
97 The ‘inputs’ field of a package can now be conditional on the value of
98 (%current-system). This is useful for packages that take system-dependent
99 tarballs as inputs, such as GNU/MIT Scheme.
101 *** New build systems
103 The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
104 been added. They implement the standard build systems for Perl, Python, and
107 *** Tools to build Linux initrds, QEMU images, and more
109 The (gnu packages linux-initrd) module provides a procedure to build a Linux
110 initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
111 evaluate the given expression. The example below returns an initrd that
112 mounts the /proc file system and starts a REPL:
117 (mount "none" "/proc" "proc")
118 ((@ (system repl repl) start-repl))))
120 More examples in the linux-initrd.scm file.
122 Experimental interfaces to produce and use QEMU images are provided by the
123 (gnu system vm) module. For instance, the
124 ‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in
125 a QEMU virtual machine running the Linux kernel and Guile.
129 Many updates and additions have been made to the distribution. Here are the
134 GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
135 Coreutils 8.20, GDB 7.6, Texinfo 5.1.
137 *** Noteworthy new packages
139 TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
140 CHICKEN, Scheme48, Hugs, Python, Lua, Samba.