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)
18 *** Cross-compilation support
20 Guix can now cross-build packages. On the command-line, this is achieved with
21 the new ‘--target’ command-line option of ‘guix build’. At the Scheme level,
22 the guts of this is the ‘package-cross-derivation’ procedure. Core packages
23 of the distribution can already be cross-compiled. See the manual for
26 *** New ‘--max-silent-time’ option for “guix build” and “guix package”
28 See the manual for details.
30 *** New ‘--fallback’ option for “guix build” and “guix package”
32 This option instructs to fall back to local builds when the substituter fails
33 to download a substitute.
35 *** New ‘--requisites’ option for “guix gc”
37 See the manual for details.
39 *** New ‘--key-download’ option for “guix refresh”
41 See the manual for details.
43 ** Programming interfaces
45 *** New ‘package-cross-derivation’ procedure in (guix derivations)
47 See the manual for details.
49 *** New ‘%current-target-system’ SRFI-39 parameter
51 This parameter is like ‘%current-system’, but for cross-compilation. It
52 allows code in package definitions (such as in the ‘arguments’ field) to know
53 whether it is being cross-compiled, and what the target system is.
55 *** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures
57 This improves performance of SHA256 computations.
64 alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd,
65 gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2,
66 iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket,
67 rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore
69 *** 25 package updates
71 automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3,
72 glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8,
73 libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error
74 1.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu
75 1.5.1, tzdata 2013d, xorriso 1.3.0
77 *** Binary packages now available for i686-linux
79 The build farm at http://hydra.gnu.org now provides 32-bit GNU/Linux binaries
80 (i686-linux), in addition to the x86_64-linux binaries. Both can be
81 transparently used as substitutes for local builds on these platforms.
83 *** Debug info packages
85 Some packages now have a “debug” output containing debugging information. The
86 “debug” output can be used by GDB, and can be installed separately from the
87 other outputs of the package. See “Installing Debugging Files” in the manual.
89 *** Bootstrap binaries can be cross-compiled
91 The distribution can now be ported to new architectures (currently
92 GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting”
95 *** Bootstrapping documented
97 See “Bootstrapping” in the manual, for information on how the GNU
98 distribution builds “from scratch”.
100 ** Internationalization
102 New translations: eo, pt_BR.
105 *** “guix --help” now works when using Guile 2.0.5
106 *** Binary substituter multi-threading and pipe issues fixed
108 These could lead to random substituter crashes while substituting a binary.
109 See commits 0332386 and 101d9f3 for details.
111 *** Binary substituter gracefully handles lack of network connectivity
113 *** Daemon properly handles rebuilds of multiple-output derivations
115 Previously it would fail when rebuilding a multiple-output derivation when
116 some (but not all) of its outputs were already present. See
117 http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and
118 https://github.com/NixOS/nix/issues/122 .
120 *** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’
122 Previously only the ‘out’ output of package ‘foo’ would be kept in the
125 *** Replacement (srfi srfi-37) provided if the user’s one is broken
127 When the user’s (srfi srfi-37) is affected by http://bugs.gnu.org/13176 (Guile
128 < 2.0.9), a replacement with the bug fix is provided. This bug would affect
129 command-line argument processing in some cases.
131 * Changes in 0.2 (since 0.1)
133 ** Package management
135 *** Guix commands are now sub-commands of the “guix” program
137 Instead of typing “guix-package”, one now has to type “guix package”, and so
138 on. This has allowed us to homogenize the user interface and initial program
139 setup, and to allow commands to be upgradable through “guix pull”.
141 *** New “guix package --upgrade” option
143 As the name implies, this option atomically upgrades all the packages
144 installed in a profile or the set of packages matching a given regexp.
145 See “Invoking guix package” in the manual.
147 *** New “guix package --search” option
149 Performs a full text search in package synopses and descriptions, and returns
150 the matching packages in recutils format. See “Invoking guix package” in the
153 *** New “guix pull” command
155 The command pulls the latest version of Guix–both the package management
156 modules and the distribution. See the manual for details.
158 *** New binary substituter
160 The “substituter” mechanism allows pre-built binaries to be transparently
161 downloaded instead of performing a build locally. Currently binaries are
162 available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
163 distribution is continuously built and binaries are made available from there.
165 See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
166 available binary packages.
168 *** New “guix refresh” command
170 The command is used by Guix maintainers. It automatically updates the
171 distribution to the latest upstream releases of GNU software.
173 *** New “guix hash” command
175 Convenience command to compute the hash of a file. See the manual for
178 *** Nix daemon code updated
180 The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
181 to current Nix ‘master’.
183 ** Programming interfaces
185 *** (guix download) now supports HTTPS, using GnuTLS
187 It allows package source tarballs to be retrieved over HTTPS.
189 *** New ‘native-search-path’ and ‘search-path’ package fields
191 Packages can define in their ‘native-search-path’ field environment variables
192 that define search paths and need to be set for proper functioning of the
193 package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
194 ‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
195 These environment variables are automatically set when building a package that
198 *** Package inputs can be a function of the target system type
200 The ‘inputs’ field of a package can now be conditional on the value of
201 (%current-system). This is useful for packages that take system-dependent
202 tarballs as inputs, such as GNU/MIT Scheme.
204 *** New build systems
206 The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
207 been added. They implement the standard build systems for Perl, Python, and
210 *** Tools to build Linux initrds, QEMU images, and more
212 The (gnu packages linux-initrd) module provides a procedure to build a Linux
213 initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
214 evaluate the given expression. The example below returns an initrd that
215 mounts the /proc file system and starts a REPL:
220 (mount "none" "/proc" "proc")
221 ((@ (system repl repl) start-repl))))
223 More examples in the linux-initrd.scm file.
225 Experimental interfaces to produce and use QEMU images are provided by the
226 (gnu system vm) module. For instance, the
227 ‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in
228 a QEMU virtual machine running the Linux kernel and Guile.
232 Many updates and additions have been made to the distribution. Here are the
237 GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
238 Coreutils 8.20, GDB 7.6, Texinfo 5.1.
240 *** Noteworthy new packages
242 TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
243 CHICKEN, Scheme48, Hugs, Python, Lua, Samba.