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