system: Add default PAM entries for xlock and xscreensaver.
[jackhill/guix/guix.git] / NEWS
1 -*- org -*-
2 #+TITLE: Guix NEWS – history of user-visible changes
3 #+STARTUP: content hidestars
4
5 Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
6
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.
10
11 Please send Guix bug reports to bug-guix@gnu.org.
12
13 * Changes in 0.7 (since 0.6)
14 ** Package management
15 *** Binaries for mips64el-linux now available from hydra.gnu.org
16
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.
20
21 *** ‘guix package’ has a new ‘--show’ option
22 *** ‘guix refresh’ has a new ‘--list-dependent’ option
23
24 ** Programming interfaces
25 *** New (guix gexp) module, which implements “G-expressions”
26
27 G-expressions are a new mechanism to embed build-side code in host-side
28 code. See “G-Expressions” in the manual.
29
30 *** (gnu system) and related modules now use G-expressions
31
32 This greatly simplifies code, and guarantees that build code carries
33 references to the packages or derivations it uses.
34
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
45
46 This allows services to specify code to run at system activation time.
47
48 ** GNU distribution
49 *** An image to install the GNU system from a USB stick is provided
50
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!
54
55 *** Support for more parameters in ‘operating-system’ declarations
56
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.
60
61 *** ‘guix system’ supports more actions
62
63 Newly supported actions are ‘init’, ‘build’, ‘reconfigure’, and ‘disk-image’.
64 See “Invoking guix system” in the manual.
65
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
71
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
91
92 *** 87 package updates
93
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
113
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
127
128 * Changes in 0.6 (since 0.5)
129 ** Package management
130 *** Default store directory changed to /gnu/store
131
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.
134
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
156
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
170
171 *** 90 package updates
172
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
193
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)
211
212 * Changes in 0.5 (since 0.4)
213 ** Package management
214 *** GNU package descriptions synchronized with the ‘gnumaint’ repository
215
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.
219
220 ** Programming interfaces
221 *** Patches are now listed as part of ‘origin’
222
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.
226
227 *** New (guix monads) monadic interface to operate on the store
228
229 See “The Store Monad” in the manual. The (gnu system …) modules have been
230 rewritten to use this monadic interface.
231
232 *** New (guix profiles) module
233
234 It provides an API for dealing with profiles, as with the ‘guix package’
235 command.
236
237 *** New (gnu system) module
238
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.
242
243 This is work in progress. Send feedback to guix-devel@gnu.org!
244
245 *** ‘build-expression->derivation’ uses more parameters
246
247 Some positional parameters have been changed to keyword parameters.
248 See “Derivations” in the manual.
249
250 ** GNU distribution
251 *** New port to the Loongson MIPS64 processors, n32 ABI (‘mips64el-linux’)
252
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.
256
257 Pre-built binaries are not yet available via hydra.gnu.org, so Guix will
258 build from source on this platform.
259
260 *** 110 new packages
261
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
279
280 *** 47 package updates
281
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
293
294 *** Packages are now built with GCC 4.8.2 by default (was 4.7.3)
295
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
302
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 .
305
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)
313
314 * Changes in 0.4 (since 0.3)
315
316 ** Package management
317
318 *** New ‘--list-generations’ and ‘--delete-generations’ options
319
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.
322
323 *** New ‘guix-register’ program
324
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.
327
328 ** Programming interfaces
329
330 *** New API to bootstrap Autotools-based packages
331
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.
335
336 *** ‘derivation’ and related procedures have a #:references-graphs parameter
337
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.
342
343 *** Extended API to build a GNU system virtual machine image
344
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.
350
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.
355
356 *** <derivation> objects supersede .drv file names in the API
357
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.
362
363 ** GNU distribution
364
365 *** 60 new packages
366
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
377
378 *** 27 package updates
379
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
386
387 *** Fontconfig font search path made more convenient
388
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.
392
393 *** More GUI applications
394
395 The ‘emacs’ and ‘racket’ packages are now linked against GTK+. New GTK+
396 applications have been added (see above.)
397
398 *** Packaging guidelines
399
400 The documentation of packaging guidelines has been augmented. See the manual
401 under “GNU Distribution”.
402
403 *** Support for Python 3 along with Python 2
404
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.
408
409 ** Internationalization
410
411 Updated translations: eo.
412
413 ** Bugs fixed
414
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)
421
422 * Changes in 0.3 (since 0.2)
423
424 ** Package management
425
426 *** Cross-compilation support
427
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.
433
434 *** New ‘--max-silent-time’ option for “guix build” and “guix package”
435
436 See the manual for details.
437
438 *** New ‘--fallback’ option for “guix build” and “guix package”
439
440 This option instructs to fall back to local builds when the substituter fails
441 to download a substitute.
442
443 *** New ‘--requisites’ option for “guix gc”
444
445 See the manual for details.
446
447 *** New ‘--key-download’ option for “guix refresh”
448
449 See the manual for details.
450
451 ** Programming interfaces
452
453 *** New ‘package-cross-derivation’ procedure in (guix derivations)
454
455 See the manual for details.
456
457 *** New ‘%current-target-system’ SRFI-39 parameter
458
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.
462
463 *** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures
464
465 This improves performance of SHA256 computations.
466
467
468 ** GNU distribution
469
470 *** 33 new packages
471
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
476
477 *** 25 package updates
478
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
484
485 *** Binary packages now available for i686-linux
486
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.
490
491 *** Debug info packages
492
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.
496
497 *** Bootstrap binaries can be cross-compiled
498
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.
502
503 *** Bootstrapping documented
504
505 See “Bootstrapping” in the manual, for information on how the GNU
506 distribution builds “from scratch”.
507
508 ** Internationalization
509
510 New translations: eo, pt_BR.
511
512 ** Bugs fixed
513 *** “guix --help” now works when using Guile 2.0.5
514 *** Binary substituter multi-threading and pipe issues fixed
515
516 These could lead to random substituter crashes while substituting a binary.
517 See commits 0332386 and 101d9f3 for details.
518
519 *** Binary substituter gracefully handles lack of network connectivity
520
521 *** Daemon properly handles rebuilds of multiple-output derivations
522
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 .
527
528 *** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’
529
530 Previously only the ‘out’ output of package ‘foo’ would be kept in the
531 profile.
532
533 *** Replacement (srfi srfi-37) provided if the user’s one is broken
534
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.
538
539 * Changes in 0.2 (since 0.1)
540
541 ** Package management
542
543 *** Guix commands are now sub-commands of the “guix” program
544
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”.
548
549 *** New “guix package --upgrade” option
550
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.
554
555 *** New “guix package --search” option
556
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.
560
561 *** New “guix pull” command
562
563 The command pulls the latest version of Guix–both the package management
564 modules and the distribution. See the manual for details.
565
566 *** New binary substituter
567
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.
572
573 See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
574 available binary packages.
575
576 *** New “guix refresh” command
577
578 The command is used by Guix maintainers. It automatically updates the
579 distribution to the latest upstream releases of GNU software.
580
581 *** New “guix hash” command
582
583 Convenience command to compute the hash of a file. See the manual for
584 details.
585
586 *** Nix daemon code updated
587
588 The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
589 to current Nix ‘master’.
590
591 ** Programming interfaces
592
593 *** (guix download) now supports HTTPS, using GnuTLS
594
595 It allows package source tarballs to be retrieved over HTTPS.
596
597 *** New ‘native-search-path’ and ‘search-path’ package fields
598
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.
605
606 *** Package inputs can be a function of the target system type
607
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.
611
612 *** New build systems
613
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.
617
618 *** Tools to build Linux initrds, QEMU images, and more
619
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:
624
625 (expression->initrd
626 '(begin
627 (mkdir "/proc")
628 (mount "none" "/proc" "proc")
629 ((@ (system repl repl) start-repl))))
630
631 More examples in the linux-initrd.scm file.
632
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.
637
638 ** GNU distribution
639
640 Many updates and additions have been made to the distribution. Here are the
641 highlights.
642
643 *** Major updates
644
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.
647
648 *** Noteworthy new packages
649
650 TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
651 CHICKEN, Scheme48, Hugs, Python, Lua, Samba.