Update NEWS.
[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 *** ‘guix package’ has a new ‘--show’ option
16 *** ‘guix refresh’ has a new ‘--list-dependent’ option
17
18 ** Programming interfaces
19 *** New (guix gexp) module, which implements “G-expressions”
20
21 G-expressions are a new mechanism to embed build-side code in host-side
22 code. See “G-Expressions” in the manual.
23
24 *** (gnu system) and related modules now use G-expressions
25
26 This greatly simplifies code, and guarantees that build code carries
27 references to the packages or derivations it uses.
28
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
39
40 This allows services to specify code to run at system activation time.
41
42 ** GNU distribution
43 *** An image to install the GNU system from a USB stick is provided
44
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!
48
49 *** Support for more parameters in ‘operating-system’ declarations
50
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”
53 in the manual.
54
55 *** ‘guix system’ supports more actions
56
57 Newly supported actions are ‘init’, ‘build’, ‘reconfigure’, and ‘disk-image’.
58 See “Invoking guix system” in the manual.
59
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>)
64 *** 134 new packages
65
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
85
86 *** 87 package updates
87
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
107
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’
112 ** Bugs fixed
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
121
122 * Changes in 0.6 (since 0.5)
123 ** Package management
124 *** Default store directory changed to /gnu/store
125
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.
128
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
148 ** GNU distribution
149 *** 91 new packages
150
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
164
165 *** 90 package updates
166
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
187
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
193 ** Bugs fixed
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)
205
206 * Changes in 0.5 (since 0.4)
207 ** Package management
208 *** GNU package descriptions synchronized with the ‘gnumaint’ repository
209
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
212 meta-data.
213
214 ** Programming interfaces
215 *** Patches are now listed as part of ‘origin’
216
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.
220
221 *** New (guix monads) monadic interface to operate on the store
222
223 See “The Store Monad” in the manual. The (gnu system …) modules have been
224 rewritten to use this monadic interface.
225
226 *** New (guix profiles) module
227
228 It provides an API for dealing with profiles, as with the ‘guix package’
229 command.
230
231 *** New (gnu system) module
232
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.
236
237 This is work in progress. Send feedback to guix-devel@gnu.org!
238
239 *** ‘build-expression->derivation’ uses more parameters
240
241 Some positional parameters have been changed to keyword parameters.
242 See “Derivations” in the manual.
243
244 ** GNU distribution
245 *** New port to the Loongson MIPS64 processors, n32 ABI (‘mips64el-linux’)
246
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.
250
251 Pre-built binaries are not yet available via hydra.gnu.org, so Guix will
252 build from source on this platform.
253
254 *** 110 new packages
255
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
273
274 *** 47 package updates
275
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
287
288 *** Packages are now built with GCC 4.8.2 by default (was 4.7.3)
289
290 ** Native language support
291 *** New ‘sr’ (Serbian) translation
292 *** New ‘vi’ (Vietnamese) translation
293 *** Updated ‘pt_BR’ (Brazilian Portuguese) translation
294 ** Bugs fixed
295 *** ‘guix pull’ compiles Guix deterministically and correctly
296
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 .
299
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)
307
308 * Changes in 0.4 (since 0.3)
309
310 ** Package management
311
312 *** New ‘--list-generations’ and ‘--delete-generations’ options
313
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.
316
317 *** New ‘guix-register’ program
318
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.
321
322 ** Programming interfaces
323
324 *** New API to bootstrap Autotools-based packages
325
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.
329
330 *** ‘derivation’ and related procedures have a #:references-graphs parameter
331
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.
336
337 *** Extended API to build a GNU system virtual machine image
338
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.
344
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.
349
350 *** <derivation> objects supersede .drv file names in the API
351
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.
356
357 ** GNU distribution
358
359 *** 60 new packages
360
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
371
372 *** 27 package updates
373
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
379 3.3.2, texlive 2013
380
381 *** Fontconfig font search path made more convenient
382
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.
386
387 *** More GUI applications
388
389 The ‘emacs’ and ‘racket’ packages are now linked against GTK+. New GTK+
390 applications have been added (see above.)
391
392 *** Packaging guidelines
393
394 The documentation of packaging guidelines has been augmented. See the manual
395 under “GNU Distribution”.
396
397 *** Support for Python 3 along with Python 2
398
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.
402
403 ** Internationalization
404
405 Updated translations: eo.
406
407 ** Bugs fixed
408
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)
415
416 * Changes in 0.3 (since 0.2)
417
418 ** Package management
419
420 *** Cross-compilation support
421
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
426 details.
427
428 *** New ‘--max-silent-time’ option for “guix build” and “guix package”
429
430 See the manual for details.
431
432 *** New ‘--fallback’ option for “guix build” and “guix package”
433
434 This option instructs to fall back to local builds when the substituter fails
435 to download a substitute.
436
437 *** New ‘--requisites’ option for “guix gc”
438
439 See the manual for details.
440
441 *** New ‘--key-download’ option for “guix refresh”
442
443 See the manual for details.
444
445 ** Programming interfaces
446
447 *** New ‘package-cross-derivation’ procedure in (guix derivations)
448
449 See the manual for details.
450
451 *** New ‘%current-target-system’ SRFI-39 parameter
452
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.
456
457 *** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures
458
459 This improves performance of SHA256 computations.
460
461
462 ** GNU distribution
463
464 *** 33 new packages
465
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
470
471 *** 25 package updates
472
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
478
479 *** Binary packages now available for i686-linux
480
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.
484
485 *** Debug info packages
486
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.
490
491 *** Bootstrap binaries can be cross-compiled
492
493 The distribution can now be ported to new architectures (currently
494 GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting”
495 in the manual.
496
497 *** Bootstrapping documented
498
499 See “Bootstrapping” in the manual, for information on how the GNU
500 distribution builds “from scratch”.
501
502 ** Internationalization
503
504 New translations: eo, pt_BR.
505
506 ** Bugs fixed
507 *** “guix --help” now works when using Guile 2.0.5
508 *** Binary substituter multi-threading and pipe issues fixed
509
510 These could lead to random substituter crashes while substituting a binary.
511 See commits 0332386 and 101d9f3 for details.
512
513 *** Binary substituter gracefully handles lack of network connectivity
514
515 *** Daemon properly handles rebuilds of multiple-output derivations
516
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 .
521
522 *** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’
523
524 Previously only the ‘out’ output of package ‘foo’ would be kept in the
525 profile.
526
527 *** Replacement (srfi srfi-37) provided if the user’s one is broken
528
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.
532
533 * Changes in 0.2 (since 0.1)
534
535 ** Package management
536
537 *** Guix commands are now sub-commands of the “guix” program
538
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”.
542
543 *** New “guix package --upgrade” option
544
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.
548
549 *** New “guix package --search” option
550
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
553 manual, for details.
554
555 *** New “guix pull” command
556
557 The command pulls the latest version of Guix–both the package management
558 modules and the distribution. See the manual for details.
559
560 *** New binary substituter
561
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.
566
567 See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
568 available binary packages.
569
570 *** New “guix refresh” command
571
572 The command is used by Guix maintainers. It automatically updates the
573 distribution to the latest upstream releases of GNU software.
574
575 *** New “guix hash” command
576
577 Convenience command to compute the hash of a file. See the manual for
578 details.
579
580 *** Nix daemon code updated
581
582 The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
583 to current Nix ‘master’.
584
585 ** Programming interfaces
586
587 *** (guix download) now supports HTTPS, using GnuTLS
588
589 It allows package source tarballs to be retrieved over HTTPS.
590
591 *** New ‘native-search-path’ and ‘search-path’ package fields
592
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
598 uses one of these.
599
600 *** Package inputs can be a function of the target system type
601
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.
605
606 *** New build systems
607
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
610 CMake packages.
611
612 *** Tools to build Linux initrds, QEMU images, and more
613
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:
618
619 (expression->initrd
620 '(begin
621 (mkdir "/proc")
622 (mount "none" "/proc" "proc")
623 ((@ (system repl repl) start-repl))))
624
625 More examples in the linux-initrd.scm file.
626
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.
631
632 ** GNU distribution
633
634 Many updates and additions have been made to the distribution. Here are the
635 highlights.
636
637 *** Major updates
638
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.
641
642 *** Noteworthy new packages
643
644 TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
645 CHICKEN, Scheme48, Hugs, Python, Lua, Samba.