2 #+TITLE: Guix NEWS – history of user-visible changes
3 #+STARTUP: content hidestars
5 Copyright © 2013, 2014 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.
13 * Changes in 0.7 (since 0.6)
15 *** ‘guix package’ has a new ‘--show’ option
16 *** ‘guix refresh’ has a new ‘--list-dependent’ option
18 ** Programming interfaces
19 *** New (guix gexp) module, which implements “G-expressions”
21 G-expressions are a new mechanism to embed build-side code in host-side
22 code. See “G-Expressions” in the manual.
24 *** (gnu system) and related modules now use G-expressions
26 This greatly simplifies code, and guarantees that build code carries
27 references to the packages or derivations it uses.
29 *** ‘build-expression->derivation’ is deprecated in favor of G-expressions
30 *** The (gnu system) module has been largely augmented and factorized
31 *** New (guix build vm) module, support for virtual machine images
32 *** New (guix build activation) module, for “system activation”
33 *** New (guix build syscalls) module
34 *** New (guix build install) and module for whole system installation
35 *** New (gnu system install) module, for the installation system
36 *** New (gnu system file-systems) module, for ‘file-system’ declarations
37 *** New (gnu) module, which aggregates common (gnu …) modules
38 *** ‘service’ records now have an optional ‘activate’ field
40 This allows services to specify code to run at system activation time.
43 *** An image to install the GNU system from a USB stick is provided
45 This is the first time an installation image is provided. See “System
46 Installation” in the manual for details. This is work in progress as noted
47 in “Limitations”. Your feedback and help are welcome!
49 *** Support for more parameters in ‘operating-system’ declarations
51 Operating system declarations can now provide a list of file systems, a list
52 of setuid programs, bootloader options, and more. See “System Configuration”
55 *** ‘guix system’ supports more actions
57 Newly supported actions are ‘init’, ‘build’, ‘reconfigure’, and ‘disk-image’.
58 See “Invoking guix system” in the manual.
60 *** User accounts and groups are created at system activation time
61 *** Virtual machine support uses para-virtualized devices
62 *** GCC package now has an additional ‘lib’ output, for run-time support libs
63 *** GLib package now has a separate “bin” output (<http://bugs.gnu.org/17853>)
66 abbaye, aegis, attica, babl, barcode, behave, btar, busybox, ccache, ccrtp,
67 chess, clucene, cmatrix, commoncpp, conkeror, cook, cssc, datamash, diffstat,
68 doxygen, dropbear, dtach, duplicity, e2fsck-static, exosip, fftw-openmpi,
69 fish, gconf, gegl, gimp, gmsh, gnome-mime-data, gnome-vfs, gnumeric, goffice,
70 gsegrafix, guile-opengl, guile-static-stripped, hdup, hwloc, inotify-tools,
71 jrnl, kbd, kmod, lftp, libarchive, libart-lgpl, libbonobo, libbonoboui,
72 libcroco, libdbusmenu-qt, libftdi, libglade, libgnome, libgnomecanvas,
73 libgnomeprint, libgnomeprintui, libgnomeui, libgsf, libidl, libmcrypt,
74 libmhash, librsvg, librsync, libsodium, libuv, libvpx, links, lzop, man-pages,
75 maxima, mcrypt, mosh, mpg123, mplayer, mu, ncmpcpp, node, notmuch, numactl,
76 offlineimap, openmpi, orbit2, osip, pangox-compat, perl-io-tty, petsc,
77 petsc-complex, petsc-complex-openmpi, petsc-openmpi, pingus, podofo, protobuf,
78 pt-scotch, python-enum34, python-keyring, python-lockfile, python-mock,
79 python-parse, python-parse-type, python-parsedatetime, python-pycrypto,
80 python-six, python-tzlocal, python2-lockfile, python2-mock, qjson, qrencode,
81 rasqal, rdiff-backup, rdup, redland, rottlog, scotch, sipwitch, sshfs-fuse,
82 strigi, sudo, superlu, superlu-dist, talkfilters, talloc, tcpdump, tinyproxy,
83 transmission, ucommon, udev, vlc, vtk, wakelan, wireless-tools,
84 wpa-supplicant, xboard, youtube-dl
86 *** 87 package updates
88 bitlbee-3.2.2, cursynth-1.5, ddrescue-1.18.1, dfc-3.0.4, dmd-0.2,
89 docbook-xml-4.3, docbook-xml-4.4, docbook-xsl-1.78.1, dvdisaster-0.72.6,
90 ffmpeg-2.3, fftw-3.3.4, fftwf-3.3.4, flac-1.3.0, gawk-4.1.1, gcc-4.7.4,
91 gcc-4.8.3, gcc-4.8.3, gcc-4.9.1, gcc-cross-mips64el-linux-gnuabi64-4.8.3,
92 gcc-objc++-4.8.3, gcc-objc-4.8.3, gcc-stripped-tarball-4.8.3,
93 gcc-toolchain-4.8.3, gcc-toolchain-4.9.1, gccgo-4.8.3, gdb-7.7.1,
94 gettext-0.19.2, gfortran-4.8.3, glib-2.40.0, global-6.3, gmp-6.0.0a,
95 gnupg-1.4.18, gnupg-2.0.25, gnutls-3.2.15, gp2c-0.0.9pl1, grep-2.20,
96 gst-plugins-base-1.0.10, gstreamer-0.10.36, gtk+-3.10.1, gtkmm-2.24.2,
97 guile-2.0.11, guile-2.0.11, guix-0.6, guix-0.6.0ae8c15, htop-1.0.3,
98 icu4c-53.1, imagemagick-6.8.9-0, json-c-0.12, libdrm-2.4.33, libgc-7.2e,
99 libgcrypt-1.5.3, libgpg-error-1.13, libjpeg-8d, libmicrohttpd-0.9.37,
100 libogg-1.3.2, libotr-4.0.0, libtasn1-3.6, libvorbis-1.3.4, lightning-2.0.4,
101 linux-libre-3.15.6, lua-5.1.5, lua-5.2.3, mcron-1.0.8, moe-1.6, nano-2.3.6,
102 neon-0.29.6, nettle-3.0, openssl-1.0.1h, parallel-20140722, pari-gp-2.7.1,
103 pspp-0.8.3, python-2.7.6, python-dateutil-2.2, python2-dateutil-2.2,
104 qemu-2.0.0, qemu-headless-2.0.0, qt-4.8.6, qt-5.2.1, readline-6.2,
105 screen-4.2.1, soprano-2.9.4, texinfo-5.2, texlive-2014, tor-0.2.4.22,
106 wdiff-1.2.2, xorriso-1.3.8, xterm-304
108 ** Native language support
109 *** New translations: de (German), and hu (Hungarian)
110 *** Updated translations: eo, pt_BR, sr, vi
111 *** Package descriptions moved from the ‘guix’ text domain to ‘guix-packages’
113 *** Downloads are now faster (<http://bugs.gnu.org/15368>)
114 *** ‘guix authenticate’ properly writes signatures to stdout
115 (<http://bugs.gnu.org/17312>)
116 *** Progress report of downloads is now properly displayed
117 *** Error reporting of pk-crypto errors has been improved
118 *** The 'patches' field now works for origins with no extension
119 *** Synchronization and GC issues fixed in the offload hook
120 *** (guix ftp-client) emits USER commands suitable for all servers
122 * Changes in 0.6 (since 0.5)
123 ** Package management
124 *** Default store directory changed to /gnu/store
126 Although it is still possible to configure Guix to use the old store
127 directory, we recommend that you start with a fresh install to /gnu/store.
129 *** Substitutes from hydra.gnu.org must now be signed and authorized
130 *** Support for offloading builds to other Guix machines over SSH
131 *** New ‘guix archive’ command
132 *** New ‘guix system’ command; it can currently build VM images
133 *** ‘guix package’ accepts several arguments after -i, -r, and -u
134 *** Updating a profile with ‘guix package’ is now noticeably faster
135 *** ‘guix build’ can override a package’s source with the new ‘--with-source’
136 *** ‘guix build’ has a new ‘--no-build-hook’ option
137 *** ‘guix’ commands that build packages have a common set of options
138 *** ‘guix hash’ has a new ‘--recursive’ option
139 *** Daemon no longer bind-mounts the host’s /dev (improves reproducibility)
140 ** Programming interfaces
141 *** New (guix pk-crypto) and (guix pki) modules for public key cryptography
142 *** New #:local-build? parameter for derivations that shouldn’t be offloaded
143 *** (gnu system vm) has procedures to build VMs that share the host’s store
144 *** New ‘text-file*’ procedure in (guix monads)
145 *** System service definitions are now provided by the (guix services) modules
146 *** New X and SLiM services in (gnu services xorg)
147 *** New (guix git-download) and (guix svn-download) for git/svn checkouts
151 a2ps, asciidoc, aspell-dict-en, aspell-dict-eo, aspell-dict-es,
152 aspell-dict-fr, aumix, bitlbee, bogofilter, boost, calcurse, clusterssh,
153 corkscrew, cursynth, docbook-xml, docbook-xsl, elfutils, enscript, fftwf,
154 fltk, fuse, gcc-toolchain, giflib, glade, gmime, gnome-desktop, gnubg, gnubik,
155 gnumach-headers, gnunet, gnuplot, gnurl, gphoto2, gtkglext, guile-json,
156 guile-reader-for-guile_2.0.11, gxmessage, hdf5, hurd-headers, inkscape, iotop,
157 isc-dhcp, iso-codes, jnettop, libatomic-ops, libexif, libgphoto2, libmpcdec,
158 libmpdclient, libotr, libpcap, libpeas, libpipeline, libtirpc, libwebsockets,
159 ltrace, luajit, lynx, man-db, mc, mig, miniupnpc, moe, mpc123, mpd, ncdc,
160 ncdu, ncmpc, neon, neon, octave, opus, paperkey, patchutils, perl-tk,
161 perl-x11-protocol, pinentry, python2-element-tree, python2-pybugz, quilt,
162 source-highlight, stalonetray, trueprint, ttf-dejavu, unionfs-fuse,
163 unionfs-fuse-static, uucp, vera, windowmaker, xapian, xterm
165 *** 90 package updates
167 apl-1.3, autoconf-2.68, automake-1.14.1, bash-4.3, bash-light-4.3,
168 bigloo-4.1a, binutils-2.24, binutils-static-stripped-tarball-2.24,
169 coreutils-8.22, curl-7.35.0, ed-1.10, ffmpeg-2.1.4, file-5.18, freeipmi-1.4.1,
170 gcc-4.8.2, gcc-4.8.2, gdb-7.7, gdbm-1.11, gettext-0.18.3.2, glib-2.39.1,
171 glibc-2.19, glibc-stripped-tarball-2.19, global-6.2.12, glpk-4.54,
172 gnu-pw-mgr-1.2, gnupg-1.4.16, gnutls-3.2.12, gp2c-0.0.8pl1, grep-2.18,
173 gst-plugins-base-0.10.36, gstreamer-1.0.10, gtk+-3.10.1, gtkmm-2.24.2,
174 guile-2.0.11, guile-ssh-0.6.0, guile-static-stripped-tarball-2.0.11,
175 guile-wm-1.0, guile-xcb-1.3, guix-0.5, help2man-1.45.1, icu4c-52.1,
176 imagemagick-6.8.8-10, inetutils-1.9.2, lapack-3.5.0, libcdio-0.92,
177 libdrm-2.4.46, libextractor-1.3, libgc-7.2e, libgc-7.4.0, libgcrypt-1.6.1,
178 libjpeg-9, libmicrohttpd-0.9.34, libssh-0.6.3, libtasn1-3.4, lightning-2.0.3,
179 linux-libre-3.13.7, mpc-1.0.2, mutt-1.5.23, net-base-5.2, ocrad-0.23,
180 openssh-6.6p1, openssl-1.0.1g, parallel-20140322, pari-gp-2.7.0, pspp-0.8.2,
181 pulseaudio-5.0, python-2.7.6, python-3.3.5, python-wrapper-3.3.5,
182 python2-pysqlite-2.6.3a, qemu-1.7.1, qemu-headless-1.7.1,
183 qemu-with-multiple-smb-shares-1.7.1, qt-4.8.5, qt-5.2.0, readline-6.3,
184 recutils-1.7, slim-1.3.6, sqlite-3.8.4.3, subversion-1.7.14, texinfo-4.13a,
185 tor-0.2.4.21, tzdata-2014a, units-2.11, valgrind-3.9.0, vim-7.4, wget-1.15,
186 xnee-3.18, xorriso-1.3.6.pl01, zile-2.4.11
188 *** New ‘gcc-toolchain’ meta-package, makes it easy to install a GCC tool chain
189 *** libc’s Info manual is now installed
190 *** Binutils is built with --enable-deterministic-archives
191 *** Packages that populated man/man* now populate share/man/man*
192 *** Many other packaging improvements
194 *** ‘guix pull’ consumes less memory, compiles in parallel
195 *** ‘guix package --list-*’ gracefully handles EPIPE when used in a pipeline
196 *** ‘guix package’ handles collisions between a symlink and a directory
197 (http://bugs.gnu.org/17083)
198 *** HTTP downloads provide a ‘User-Agent’ field (http://bugs.gnu.org/16703)
199 *** ‘guix package’ no longer shows misleading installed package number
200 (http://bugs.gnu.org/16484)
201 *** Manual suggests ‘useradd --system’ (http://bugs.gnu.org/16289)
202 *** Python is built with ctypes support (http://bugs.gnu.org/16569)
203 *** HTTP/TLS connection not terminated properly (http://bugs.gnu.org/14884)
204 *** Gracefully handle poorly behaved HTTP servers (http://bugs.gnu.org/15733)
206 * Changes in 0.5 (since 0.4)
207 ** Package management
208 *** GNU package descriptions synchronized with the ‘gnumaint’ repository
210 In addition to synopses, descriptions of GNU packages are now kept in sync
211 with the ‘gnumaint’ repository, which is the canonical place for GNU package
214 ** Programming interfaces
215 *** Patches are now listed as part of ‘origin’
217 The ‘origin’ form supports two new fields: ‘patches’ (list of patches), and
218 ‘snippet’ (code snippet to modify the source.) These are applied when running
219 ‘guix build --source’. See “Defining Packages” in the manual.
221 *** New (guix monads) monadic interface to operate on the store
223 See “The Store Monad” in the manual. The (gnu system …) modules have been
224 rewritten to use this monadic interface.
226 *** New (guix profiles) module
228 It provides an API for dealing with profiles, as with the ‘guix package’
231 *** New (gnu system) module
233 This module provides a generic way to describe the system’s configuration,
234 and to instantiate it, regardless of the final medium (QEMU image, etc.)
235 See “System Configuration” in the manual.
237 This is work in progress. Send feedback to guix-devel@gnu.org!
239 *** ‘build-expression->derivation’ uses more parameters
241 Some positional parameters have been changed to keyword parameters.
242 See “Derivations” in the manual.
245 *** New port to the Loongson MIPS64 processors, n32 ABI (‘mips64el-linux’)
247 Bootstrap binaries have been built for that architecture, and several
248 Loongson-specific patches not yet available upstream have been applied to core
249 packages. See “GNU Distribution” and “Porting” in the manual.
251 Pre-built binaries are not yet available via hydra.gnu.org, so Guix will
252 build from source on this platform.
256 acct, alive, alsa-utils, apl, at-spi2-atk, at-spi2-core, atkmm, autogen,
257 automoc4, brasero, bridge-utils, cairomm, catkin, complexity, evince, ffmpeg,
258 fftw, ftgl, gcc-objc, gcc-objc++, gccgo, gcl, gfortran, glibmm, glpk,
259 gnome-icon-theme, gnu-pw-mgr, gp2c, gpgme, gsettings-desktop-schemas, gtkmm,
260 gtksourceview, guile-ssh, guile-wm, gvpe, hicolor-icon-theme, httpd, icecat,
261 icon-naming-utils, json-c, lapack, libcanberra, libcap, libgnome-keyring,
262 libmikmod, libnl, libnotify, libsamplerate, libsigc++, libsndfile, libssh,
263 libtheora, libxkbcommon, mercurial, mtools, netcat, pangomm, parallel,
264 pavucontrol, pciutils, pem, perl-encode-locale, perl-file-list,
265 perl-file-listing, perl-html-parser, perl-html-tagset, perl-http-cookies,
266 perl-http-daemon, perl-http-date, perl-http-message, perl-http-negotiate,
267 perl-io-html, perl-libwww, perl-libxml, perl-lwp-mediatypes, perl-net-http,
268 perl-uri, perl-www-robotrules, perl-xml-dom, perl-xml-regexp, perl-xml-simple,
269 phonon, powertop, pulseaudio, python2-dogtail, python2-empy, qemu-headless,
270 qt, qt, raptor2, scons, sdl, sdl-gfx, sdl-image, sdl-mixer, sdl-net, sdl-ttf,
271 sdl2, serveez, shared-mime-info, sharutils, skribilo, slim, soprano, swig,
272 xcb-util, xcb-util-image, xcb-util-keysyms, xcb-util-renderutil, xcb-util-wm
274 *** 47 package updates
276 atk 2.10.0, bison 3.0.2, cmake 2.8.12, dmd 0.1, freeipmi 1.3.3, gcc 4.8.2,
277 gcc 4.8.2, gcc-cross-mips64el-linux-gnuabi64 4.8.2, gcc-stripped-tarball 4.8.2,
278 gdb 7.6.2, gettext 0.18.3.1, glib 2.38.0, global 6.2.9, gmp 5.1.3,
279 gnupg 2.0.22, gobject-introspection 1.38.0, grep 2.15, gsl 1.16,
280 gtk+ 2.24.21, gtk+ 3.10.1, guile 2.0.9, guile 2.0.9, guile-xcb 1.2,
281 harfbuzz 0.9.22, hello 2.9, iproute2 3.12.0, libdrm 2.4.46,
282 libextractor 1.2, libjpeg 9, libmicrohttpd 0.9.32, lightning 2.0.2,
283 linux-libre 3.12, lzip 1.15, make 4.0, mit-krb5 1.11.3, pari-gp 2.5.5,
284 pixman 0.32.4, python 3.3.2, qemu 1.6.1,
285 qemu-with-multiple-smb-shares 1.6.1, rcs 5.9.2, recutils 1.6, rsync 3.1.0,
286 tar 1.27.1, texinfo 5.2, units 2.02, xorriso 1.3.2
288 *** Packages are now built with GCC 4.8.2 by default (was 4.7.3)
290 ** Native language support
291 *** New ‘sr’ (Serbian) translation
292 *** New ‘vi’ (Vietnamese) translation
293 *** Updated ‘pt_BR’ (Brazilian Portuguese) translation
295 *** ‘guix pull’ compiles Guix deterministically and correctly
297 Previously, the build environment was not cleared in between ‘compile-file’
298 calls, leading to build errors due to Guile bug http://bugs.gnu.org/15602 .
300 *** ‘guix package’ allows removal of a specific package output
301 (http://bugs.gnu.org/15756)
302 *** ‘guix-daemon’ always sets umask to 022
303 (http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00033.html)
304 *** Files referenced by environment variables are protected from GC
305 *** Yet unbuilt packages get correctly installed (http://bugs.gnu.org/15283)
306 *** ‘bootstrap-graph.{png,eps,pdf}’ built in srcdir (http://bugs.gnu.org/15640)
308 * Changes in 0.4 (since 0.3)
310 ** Package management
312 *** New ‘--list-generations’ and ‘--delete-generations’ options
314 The ‘guix package’ command has these two new options, which make it easier to
315 deal with a profile’s generation. See “Invoking guix package” in the manual.
317 *** New ‘guix-register’ program
319 This program allows the meta-data of a new store to be initialized, by
320 copying info from an existing store. It is mostly an internal tool.
322 ** Programming interfaces
324 *** New API to bootstrap Autotools-based packages
326 The (guix build-system gnu) has a new ‘dist-package’ procedure that takes a
327 package object and source directory, and returns a new package object that
328 runs ‘./bootstrap && make dist’ or anything similar.
330 *** ‘derivation’ and related procedures have a #:references-graphs parameter
332 This parameter instructs the build daemon to populate the derivation’s build
333 tree with files containing the list of references of the given store files.
334 This is useful to write code that copies a packages and all its dependencies
335 to another storage device, such as a QEMU disk image.
337 *** Extended API to build a GNU system virtual machine image
339 The (gnu system vm) module has been augmented in many ways: the ‘qemu-image’
340 procedure can now populate and initialize the image’s store; the new
341 ‘system-qemu-image’ procedure returns a QEMU image that runs dmd as its init
342 system, has ‘login’ running on several consoles, has a set of installed
343 packages, and where Guix can be used.
345 New (gnu system …) modules have been added to handle the configuration of the
346 various parts of a GNU/Linux system. For instance, (gnu system dmd) provides
347 support for instantiating dmd services; (gnu system linux) helps with Linux
348 PAM configuration; and so on.
350 *** <derivation> objects supersede .drv file names in the API
352 ‘derivation’ and similar procedures no longer return two values (a
353 <derivation> and a .drv file name); they now return a single value, which is
354 a <derivation> object. The <derivation> object embeds the corresponding .drv
355 file name. See “Derivations” in the manual for details.
361 apr, apr-util, cdparanoia, dbus-glib, dfc, dmd, dvdisaster, exiv2, fetchmail,
362 freefont-ttf, freeglut, geeqie, git, gkrellm, glu, gnome-doc-utils,
363 gst-plugins-base, gstreamer, guile-cairo, guile-lib, guile-xcb, guix, htop,
364 itstool, lame, libextractor, libmicrohttpd, lightning, lzip, mingetty, mutt,
365 net-base, net-tools, ocrad, pspp, python-babel, python-dateutil, python-pytz,
366 python-setuptools, python-simplejson, python-wrapper, python2-babel,
367 python2-dateutil, python2-mechanize, python2-pyicu, python2-pysqlite,
368 python2-pytz, python2-setuptools, python2-simplejson, qemu-system-initrd,
369 qemu-with-multiple-smb-shares, ripperx, shadow, ttf-bitstream-vera, units,
370 valgrind, xmlto, xnee, yasm
372 *** 27 package updates
374 bigloo 4.0b, cairo 1.12.16, ddrescue 1.17, fontconfig 2.10.93, fplll 4.0.4,
375 gcc 4.7.3, gcc 4.7.3, glibc 2.18, glibc 2.18, glibc-stripped-tarball 2.18,
376 gnupg 2.0.21, gnutls 3.2.4, guile 2.0.9, guile 2.0.9, harfbuzz 0.9.21,
377 imagemagick 6.8.6-9, libdrm 2.4.46, libgcrypt 1.5.3, libjpeg 9, libksba 1.3.0,
378 linux-libre 3.11, m4 1.4.17, mpfrcx 0.4.2, pari-gp 2.5.4, python 2.7.5, python
381 *** Fontconfig font search path made more convenient
383 Fontconfig, the library used by many graphical applications, such as those
384 based on GTK+, now knows where to find the default set of fonts. Additional
385 fonts installed in the user profile are automatically picked up.
387 *** More GUI applications
389 The ‘emacs’ and ‘racket’ packages are now linked against GTK+. New GTK+
390 applications have been added (see above.)
392 *** Packaging guidelines
394 The documentation of packaging guidelines has been augmented. See the manual
395 under “GNU Distribution”.
397 *** Support for Python 3 along with Python 2
399 Python 3 has been added to the distribution, and Python packages that support
400 it are now built for both Python 2 and Python 3. See the “Python Modules”
401 section of the manual for details.
403 ** Internationalization
405 Updated translations: eo.
409 *** Workarounds for Guile 2.0.5 now work on Debian derivatives
410 *** The dependency graph image has correct size in PDF output
411 *** 'ldd' now works correctly on x86_64
412 *** Xorg server test suite no longer fails (http://bugs.gnu.org/15392)
413 *** module-init-tools now builds (http://bugs.gnu.org/15182, http://bugs.gnu.org/15187)
414 *** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194)
416 * Changes in 0.3 (since 0.2)
418 ** Package management
420 *** Cross-compilation support
422 Guix can now cross-build packages. On the command-line, this is achieved with
423 the new ‘--target’ command-line option of ‘guix build’. At the Scheme level,
424 the guts of this is the ‘package-cross-derivation’ procedure. Core packages
425 of the distribution can already be cross-compiled. See the manual for
428 *** New ‘--max-silent-time’ option for “guix build” and “guix package”
430 See the manual for details.
432 *** New ‘--fallback’ option for “guix build” and “guix package”
434 This option instructs to fall back to local builds when the substituter fails
435 to download a substitute.
437 *** New ‘--requisites’ option for “guix gc”
439 See the manual for details.
441 *** New ‘--key-download’ option for “guix refresh”
443 See the manual for details.
445 ** Programming interfaces
447 *** New ‘package-cross-derivation’ procedure in (guix derivations)
449 See the manual for details.
451 *** New ‘%current-target-system’ SRFI-39 parameter
453 This parameter is like ‘%current-system’, but for cross-compilation. It
454 allows code in package definitions (such as in the ‘arguments’ field) to know
455 whether it is being cross-compiled, and what the target system is.
457 *** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures
459 This improves performance of SHA256 computations.
466 alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd,
467 gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2,
468 iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket,
469 rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore
471 *** 25 package updates
473 automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3,
474 glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8,
475 libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error
476 1.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu
477 1.5.1, tzdata 2013d, xorriso 1.3.0
479 *** Binary packages now available for i686-linux
481 The build farm at http://hydra.gnu.org now provides 32-bit GNU/Linux binaries
482 (i686-linux), in addition to the x86_64-linux binaries. Both can be
483 transparently used as substitutes for local builds on these platforms.
485 *** Debug info packages
487 Some packages now have a “debug” output containing debugging information. The
488 “debug” output can be used by GDB, and can be installed separately from the
489 other outputs of the package. See “Installing Debugging Files” in the manual.
491 *** Bootstrap binaries can be cross-compiled
493 The distribution can now be ported to new architectures (currently
494 GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting”
497 *** Bootstrapping documented
499 See “Bootstrapping” in the manual, for information on how the GNU
500 distribution builds “from scratch”.
502 ** Internationalization
504 New translations: eo, pt_BR.
507 *** “guix --help” now works when using Guile 2.0.5
508 *** Binary substituter multi-threading and pipe issues fixed
510 These could lead to random substituter crashes while substituting a binary.
511 See commits 0332386 and 101d9f3 for details.
513 *** Binary substituter gracefully handles lack of network connectivity
515 *** Daemon properly handles rebuilds of multiple-output derivations
517 Previously it would fail when rebuilding a multiple-output derivation when
518 some (but not all) of its outputs were already present. See
519 http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and
520 https://github.com/NixOS/nix/issues/122 .
522 *** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’
524 Previously only the ‘out’ output of package ‘foo’ would be kept in the
527 *** Replacement (srfi srfi-37) provided if the user’s one is broken
529 When the user’s (srfi srfi-37) is affected by http://bugs.gnu.org/13176 (Guile
530 < 2.0.9), a replacement with the bug fix is provided. This bug would affect
531 command-line argument processing in some cases.
533 * Changes in 0.2 (since 0.1)
535 ** Package management
537 *** Guix commands are now sub-commands of the “guix” program
539 Instead of typing “guix-package”, one now has to type “guix package”, and so
540 on. This has allowed us to homogenize the user interface and initial program
541 setup, and to allow commands to be upgradable through “guix pull”.
543 *** New “guix package --upgrade” option
545 As the name implies, this option atomically upgrades all the packages
546 installed in a profile or the set of packages matching a given regexp.
547 See “Invoking guix package” in the manual.
549 *** New “guix package --search” option
551 Performs a full text search in package synopses and descriptions, and returns
552 the matching packages in recutils format. See “Invoking guix package” in the
555 *** New “guix pull” command
557 The command pulls the latest version of Guix–both the package management
558 modules and the distribution. See the manual for details.
560 *** New binary substituter
562 The “substituter” mechanism allows pre-built binaries to be transparently
563 downloaded instead of performing a build locally. Currently binaries are
564 available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
565 distribution is continuously built and binaries are made available from there.
567 See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
568 available binary packages.
570 *** New “guix refresh” command
572 The command is used by Guix maintainers. It automatically updates the
573 distribution to the latest upstream releases of GNU software.
575 *** New “guix hash” command
577 Convenience command to compute the hash of a file. See the manual for
580 *** Nix daemon code updated
582 The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
583 to current Nix ‘master’.
585 ** Programming interfaces
587 *** (guix download) now supports HTTPS, using GnuTLS
589 It allows package source tarballs to be retrieved over HTTPS.
591 *** New ‘native-search-path’ and ‘search-path’ package fields
593 Packages can define in their ‘native-search-path’ field environment variables
594 that define search paths and need to be set for proper functioning of the
595 package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
596 ‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
597 These environment variables are automatically set when building a package that
600 *** Package inputs can be a function of the target system type
602 The ‘inputs’ field of a package can now be conditional on the value of
603 (%current-system). This is useful for packages that take system-dependent
604 tarballs as inputs, such as GNU/MIT Scheme.
606 *** New build systems
608 The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
609 been added. They implement the standard build systems for Perl, Python, and
612 *** Tools to build Linux initrds, QEMU images, and more
614 The (gnu packages linux-initrd) module provides a procedure to build a Linux
615 initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
616 evaluate the given expression. The example below returns an initrd that
617 mounts the /proc file system and starts a REPL:
622 (mount "none" "/proc" "proc")
623 ((@ (system repl repl) start-repl))))
625 More examples in the linux-initrd.scm file.
627 Experimental interfaces to produce and use QEMU images are provided by the
628 (gnu system vm) module. For instance, the
629 ‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in
630 a QEMU virtual machine running the Linux kernel and Guile.
634 Many updates and additions have been made to the distribution. Here are the
639 GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
640 Coreutils 8.20, GDB 7.6, Texinfo 5.1.
642 *** Noteworthy new packages
644 TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
645 CHICKEN, Scheme48, Hugs, Python, Lua, Samba.