Update NEWS.
[guix.git] / NEWS
blob0ccb0a8112b71deb6d03207b1c64eaee1377fd86
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.8 (since 0.7)
15 ** Package management
17 *** New visual user interface in Emacs
19 See “Emacs Interface” in the manual.
21 *** New ‘guix environment’ command to produce development environment
23 See “Invoking guix environment” in the manual.
25 *** The ‘guix import’ command has been extended and documented
27 It can now import packages from pypi.python.org and from GNU.
28 See “Invoking guix import” in the manual.
30 *** New ‘guix lint’ command, for use by Guix developers
32 See “Invoking guix lint” in the manual.
34 *** Packages can now be “grafted” with replacements of their dependencies
36 See “Security Updates” in the manual.
38 *** The distribution can be extended with ‘--load-path’ or $GUIX_PACKAGE_PATH
40 This allows users to maintain their own package definitions, and make them
41 visible to the various user interfaces.  See “Package Modules” in the manual.
43 *** ‘guix package’ better reports package upgrades
45 *** ‘guix package’ has a new ‘--switch-generation’ option
47 See “Invoking guix package” in the manual.
49 *** ‘guix-daemon’ has a new ‘--substitute-urls’ option
51 See “Invoking guix-daemon” in the manual.
53 ** Distribution
55 *** The stand-alone operating system now supports Linux mapped devices
57 See “Mapped Devices” in the manual.
59 *** New fields in ‘operating-system’ declarations, better documentation
61 New fields include ‘hosts-file’, ‘mapped-devices’, and ‘swap-devices’.
62 See “operating-system Reference” in the manual.
64 *** New services: ‘dhcp-client-service’, ‘bitlbee-service’, ‘ntp-service’
66 See “Services” in the manual.
68 *** Free firmware can be loaded
70 This notably enables support for some Atheros-based WiFi devices (ath9k-htc.)
71 See “operating-system Reference” in the manual.
73 *** ‘grub-configuration’ declarations can now specify a theme
75 See “GRUB Configuration” in the manual.
77 *** The ‘base-initrd’ now has a different signature
79 Existing uses in ‘operating-system’ declarations need to be updated.  See
80 “Initial RAM Disk” in the manual for details.
82 *** eudev is now used by default, instead of an old udev release
84 *** ‘guix system vm’ has a new ‘--full-boot’ option
86 See “Invoking guix system” in the manual.
88 *** The ‘file’ command is now part of the package build environment
90 Autoconf-generated ‘configure’ scripts for packages using Libtool use ‘file’
91 to determine the target ABI, notably on MIPS, hence this change.
93 *** 162 new packages
95 abiword, acpica, adns, arb, ath9k-htc-firmware, atlas, avrdude, cppunit,
96 dblatex, detox, dfu-programmer, dionysus, direvent, dmidecode, dri3proto,
97 emacs-no-x-toolkit, emacs-w3m, emacs-wget, enchant, eudev, feh, flashrom,
98 flint, fontforge, freedink, freeimage, fribidi,
99 gcc-cross-sans-libc-xtensa-elf, giblib, gnome-themes-standard, gpsbabel,
100 gpscorrelate, graphite2, gtypist, guile-charting, guile-sdl, imake, imlib2,
101 irrlicht, jbig2dec, libpsl, libspiro, libuninameslist, libwmf, lm-sensors,
102 magit, minetest, miscfiles, mozjs, mupdf, nix, nspr, nss-mdns, ntp, nvi, opam,
103 openal, openjpeg, opus-tools, orpheus, ots, oxygen-icons, paredit, perf,
104 perl-archive-zip, perl-dbd-sqlite, perl-dbi, perl-image-exiftool,
105 perl-io-socket-ssl, perl-net-ssleay, perl-www-curl, perl-zip, polkit,
106 polkit-qt, postgresql, potrace, presentproto, python-certifi, python-coverage,
107 python-cython, python-discover, python-docutils, python-exif-read,
108 python-extras, python-fixtures, python-itsdangerous, python-jinja2,
109 python-jsonschema, python-markupsafe, python-mimeparse, python-nose,
110 python-oauthlib, python-py, python-pygments, python-pyjwt, python-pyld,
111 python-pytest, python-scripttest, python-sphinx, python-subunit,
112 python-testrepository, python-testresources, python-testscenarios,
113 python-testtools, python-unidecode, python-unittest2, python-virtualenv,
114 python2-certifi, python2-coverage, python2-cython, python2-discover,
115 python2-docutils, python2-exif-read, python2-extras, python2-fixtures,
116 python2-itsdangerous, python2-jinja2, python2-jsonschema, python2-markupsafe,
117 python2-mimeparse, python2-nose, python2-oauthlib, python2-py,
118 python2-pygments, python2-pyjwt, python2-pyld, python2-pytest,
119 python2-requests, python2-scripttest, python2-sphinx, python2-subunit,
120 python2-testrepository, python2-testresources, python2-testscenarios,
121 python2-testtools, python2-unidecode, python2-unittest2, python2-virtualenv,
122 rrdtool, ruby, ruby, ruby-i18n, sane-backends, scrot, sound-theme-freedesktop,
123 stress, synergy, tdb, terminus-font, testdisk, texi2html, tiled, transfig,
124 unclutter, unixodbc, weechat, wv, xboing, xf86-video-modesetting, xfig,
125 xsensors, zsh
127 *** 117 package updates
129 acct-6.6.2, acl-2.2.52, apl-1.4, apr-1.5.1, apr-util-1.5.3, autoconf-2.68,
130 autoconf-2.69, autogen-5.18.4, bash-4.3.30, bash-light-4.3.30, bazaar-2.6.0,
131 bison-2.7, calcurse-3.2.1, ccache-3.1.10, chicken-4.9.0.1, coreutils-8.23,
132 curl-7.37.1, datamash-1.0.6, dbus-1.8.8, docbook-xml-4.2, docbook-xml-4.4,
133 docbook-xml-4.5, emacs-24.4, ffmpeg-2.2.10, ffmpeg-2.4.3, file-5.19,
134 file-5.20, freeipmi-1.4.5, gcc-4.7.4, gcc-4.9.2, gcc-toolchain-4.9.2,
135 gcl-2.6.11, gdb-7.8.1, geiser-0.6, gettext-0.19.3, git-2.1.2, glibc-2.20,
136 glibc-2.20, glibc-stripped-tarball-2.20, global-6.3.2, glpk-4.55,
137 gnupg-1.4.18, gnupg-2.0.26, gnurl-7.37.0, gnutls-3.2.20, gpgme-1.5.1,
138 gst-plugins-base-1.0.10, gstreamer-1.0.10, gtk+-3.10.1, gtkmm-3.9.16,
139 guile-1.8.8, guile-json-0.4.0, guile-ncurses-1.6, guile-ssh-0.7.1, guix-0.7,
140 guix-0.7.48bd76e, hello-2.10, help2man-1.46.3, icecat-31.2.0,
141 libart-lgpl-2.3.21, libassuan-2.1.3, libatomic-ops-7.4.2, libdrm-2.4.33,
142 libffi-3.1, libgc-7.2f, libgc-7.4.2, libgcrypt-1.5.4, libgcrypt-1.6.2,
143 libidn-1.29, libjpeg-9a, libotr-4.0.0, libsodium-1.0.0, libtasn1-4.1,
144 libunistring-0.9.4, libwebsockets-1.3, lightning-2.0.5, linux-libre-3.17.3,
145 lsof-4.88, lua-5.2.3, lvm2-2.02.109, lzip-1.16, make-4.1, maxima-5.34.1,
146 mit-scheme-9.2, mysql-5.1.73, neon-0.30.0, net-base-5.3, nettle-2.7.1,
147 notmuch-0.18.1, openssh-6.7p1, openssl-1.0.1j, parallel-20141022,
148 phonon-4.8.2, pspp-0.8.4, python-3.3.5, python-dateutil-1.5,
149 python2-dateutil-1.5, python2-pyicu-1.8, qt-4.8.6, qt-5.3.2, rcs-5.9.3,
150 readline-6.3, subversion-1.7.18, swig-3.0.2, tar-1.28, texinfo-5.2,
151 tor-0.2.5.10, transmission-2.84, ucommon-6.1.11, valgrind-3.10.0, vlc-2.1.5,
152 wget-1.16, windowmaker-0.95.6, xapian-1.2.18, xf86-video-ati-6.14.6,
153 xpdf-3.04, youtube-dl-2014.09.06
155 ** Programming interfaces
157 *** New ‘ruby-build-system’, for Ruby packages
159 See “Build Systems” in the manual.
161 *** New ‘glib-or-gtk-build-system’, for packages using GLib schemas
163 See “Build Systems” in the manual.
165 *** ‘gnu-build-system’ has a new #:substitutable? parameter
167 This allows packagers to mark a package as requiring a local build, thus
168 preventing it from being substituted by a pre-built binary.
170 *** ‘cmake-build-system’ has a new #:build-type parameter
172 See “Build Systems” in the manual.
174 *** The ‘supported-systems’ field of packages is used more consistently
176 This allows packagers to prevent attempts to build a package on a given
177 architecture when that architecture is known not to be supported.  The
178 ‘package-transitive-supported-systems’ procedure returns the intersection of
179 the systems supported by the given package and by its dependencies.
181 *** The ‘wrap-program’ procedure can now be called multiple times
183 *** New ‘graft-derivations’ and ‘package-grafts’ procedures
185 They implement “grafts”, as described under “Security Updates” in the manual.
187 *** New “bag” intermediate representation for use by build systems
189 “Bags” are used internally as an intermediate representation between packages
190 and derivations.  See “Build Systems” in the manual.
192 *** New (guix monad-repl) module, for monadic interaction at the REPL
194 See “The Store Monad” in the manual.
196 *** New (guix build emacs-utils) module, to facilitate building Emacs packages
198 *** New (guix tests) module, with tools used by the test suite
200 *** The internal ‘guix-register’ command now deduplicates files in store items
202 *** Several system modules moved from (guix build …) to (gnu build …)
204 Also, the (gnu build linux-boot) module has been introduced, with code
205 typically used by initial RAM disks when booting on GNU/Linux-libre.
207 *** (guix profiles) provides a representation of package transactions
209 This factorizes code between ‘guix package’ and the Emacs user interface.
211 *** Bootstrapping packages moved to (gnu packages commencement) modules
213 ** Bugs fixed
215 *** ‘guix-daemon’ now really deduplicates store items by default
217 Deduplication means that identical files found in /gnu/store are stored only
218 once, using hard links.  This feature was wrongfully disabled, and is now
219 enabled by default.  The former ‘--disable-store-optimization’ option has been
220 renamed to ‘--disable-deduplication’.
222 *** ‘guix-daemon’ no longer uses ‘vfork’
224 This could cause problems with ancient Linux kernel.
226 *** Fixed compilation of ‘gccgo’ (<http://bugs.gnu.org/18101>)
227 *** 'make clean' doesn't delete os-config.tmpl (<http://bugs.gnu.org/18243>)
228 *** Fix handling of periods by fill-paragraph (<http://bugs.gnu.org/17468>)
229 *** Produce a top-level Info 'dir' file (<http://bugs.gnu.org/18305>)
230 *** guix offload ignores unreachable machines (<http://bugs.gnu.org/18070>)
231 *** guix offload: Ignore EEXIST when registering a .drv as a GC root
232     (<http://bugs.gnu.org/18115>)
233 *** perl-tk: Build sequentially (<http://bugs.gnu.org/18262>)
234 *** download: Use the 'SERVER NAME' TLS extension when possible
235     (<http://bugs.gnu.org/18526>)
236 *** libdaemon: Add alternate source URLs (<http://bugs.gnu.org/18639>)
237 *** icu4c: Reinstate RUNPATH on shared libraries 
238     (<http://bugs.gnu.org/18695>)
239 *** nss-mdns: Add alternate source URLs (<http://bugs.gnu.org/18704>)
240 *** download: Add "Accept: */*" to the HTTP headers
241     (<http://bugs.gnu.org/18768>)
242 *** guix-register: Do not attempt to create NIX_STORE_DIR 
243     (<http://bugs.gnu.org/18689>)
244 *** Allow Linux-libre to find our 'modprobe' command
245     (<http://bugs.gnu.org/18525>)
246 *** man-pages: Build sequentially (<http://bugs.gnu.org/18701>)
247 *** Fix intermittent test failures involving GC (<http://bugs.gnu.org/18935>)
248 *** guix import: pypi: Gracefully handle non-existent packages 
249     (<http://bugs.gnu.org/18831>)
250 *** Make sure the shared library has the '.so' extension
251     (<http://bugs.gnu.org/18521>)
252 *** pull: Use the build procedure provided by the newly-downloaded Guix.
253     (<http://bugs.gnu.org/18534>)
254 *** WindowMaker no longer pollutes $PATH (<http://bugs.gnu.org/18698>)
256 ** Native language support
257 *** New translation: cs (Czech)
258 *** Updated translations: de, sr, vi
260 * Changes in 0.7 (since 0.6)
261 ** Package management
262 *** Binaries for mips64el-linux now available from hydra.gnu.org
264 These come in addition to the x86_64-linux and i686-linux binaries already
265 provided, thanks to our generous donor and friendly admins.  See
266 “Substitutes” in the manual.
268 *** ‘guix package’ has a new ‘--show’ option
269 *** ‘guix refresh’ has a new ‘--list-dependent’ option
271 ** Programming interfaces
272 *** New (guix gexp) module, which implements “G-expressions”
274 G-expressions are a new mechanism to embed build-side code in host-side
275 code.  See “G-Expressions” in the manual.
277 *** (gnu system) and related modules now use G-expressions
279 This greatly simplifies code, and guarantees that build code carries
280 references to the packages or derivations it uses.
282 *** ‘build-expression->derivation’ is deprecated in favor of G-expressions
283 *** The (gnu system) module has been largely augmented and factorized
284 *** New (guix build vm) module, support for virtual machine images
285 *** New (guix build activation) module, for “system activation”
286 *** New (guix build syscalls) module
287 *** New (guix build install) and module for whole system installation
288 *** New (gnu system install) module, for the installation system
289 *** New (gnu system file-systems) module, for ‘file-system’ declarations
290 *** New (gnu) module, which aggregates common (gnu …) modules
291 *** ‘service’ records now have an optional ‘activate’ field
293 This allows services to specify code to run at system activation time.
295 ** GNU distribution
296 *** An image to install the GNU system from a USB stick is provided
298 This is the first time an installation image is provided.  See “System
299 Installation” in the manual for details.  This is work in progress as noted
300 in “Limitations”.  Your feedback and help are welcome!
302 *** Support for more parameters in ‘operating-system’ declarations
304 Operating system declarations can now provide a list of file systems, a list
305 of setuid programs, bootloader options, and more.  See “System Configuration”
306 in the manual.
308 *** ‘guix system’ supports more actions
310 Newly supported actions are ‘init’, ‘build’, ‘reconfigure’, and ‘disk-image’.
311 See “Invoking guix system” in the manual.
313 *** User accounts and groups are created at system activation time
314 *** Virtual machine support uses para-virtualized devices
315 *** GCC package now has an additional ‘lib’ output, for run-time support libs
316 *** GLib package now has a separate “bin” output (<http://bugs.gnu.org/17853>)
317 *** 134 new packages
319 abbaye, aegis, attica, babl, barcode, behave, btar, busybox, ccache, ccrtp,
320 chess, clucene, cmatrix, commoncpp, conkeror, cook, cssc, datamash, diffstat,
321 doxygen, dropbear, dtach, duplicity, e2fsck-static, exosip, fftw-openmpi,
322 fish, gconf, gegl, gimp, gmsh, gnome-mime-data, gnome-vfs, gnumeric, goffice,
323 gsegrafix, guile-opengl, guile-static-stripped, hdup, hwloc, inotify-tools,
324 jrnl, kbd, kmod, lftp, libarchive, libart-lgpl, libbonobo, libbonoboui,
325 libcroco, libdbusmenu-qt, libftdi, libglade, libgnome, libgnomecanvas,
326 libgnomeprint, libgnomeprintui, libgnomeui, libgsf, libidl, libmcrypt,
327 libmhash, librsvg, librsync, libsodium, libuv, libvpx, links, lzop, man-pages,
328 maxima, mcrypt, mosh, mpg123, mplayer, mu, ncmpcpp, node, notmuch, numactl,
329 offlineimap, openmpi, orbit2, osip, pangox-compat, perl-io-tty, petsc,
330 petsc-complex, petsc-complex-openmpi, petsc-openmpi, pingus, podofo, protobuf,
331 pt-scotch, python-enum34, python-keyring, python-lockfile, python-mock,
332 python-parse, python-parse-type, python-parsedatetime, python-pycrypto,
333 python-six, python-tzlocal, python2-lockfile, python2-mock, qjson, qrencode,
334 rasqal, rdiff-backup, rdup, redland, rottlog, scotch, sipwitch, sshfs-fuse,
335 strigi, sudo, superlu, superlu-dist, talkfilters, talloc, tcpdump, tinyproxy,
336 transmission, ucommon, udev, vlc, vtk, wakelan, wireless-tools,
337 wpa-supplicant, xboard, youtube-dl
339 *** 87 package updates
341 bitlbee-3.2.2, cursynth-1.5, ddrescue-1.18.1, dfc-3.0.4, dmd-0.2,
342 docbook-xml-4.3, docbook-xml-4.4, docbook-xsl-1.78.1, dvdisaster-0.72.6,
343 ffmpeg-2.3, fftw-3.3.4, fftwf-3.3.4, flac-1.3.0, gawk-4.1.1, gcc-4.7.4,
344 gcc-4.8.3, gcc-4.8.3, gcc-4.9.1, gcc-cross-mips64el-linux-gnuabi64-4.8.3,
345 gcc-objc++-4.8.3, gcc-objc-4.8.3, gcc-stripped-tarball-4.8.3,
346 gcc-toolchain-4.8.3, gcc-toolchain-4.9.1, gccgo-4.8.3, gdb-7.7.1,
347 gettext-0.19.2, gfortran-4.8.3, glib-2.40.0, global-6.3, gmp-6.0.0a,
348 gnupg-1.4.18, gnupg-2.0.25, gnutls-3.2.15, gp2c-0.0.9pl1, grep-2.20,
349 gst-plugins-base-1.0.10, gstreamer-0.10.36, gtk+-3.10.1, gtkmm-2.24.2,
350 guile-2.0.11, guile-2.0.11, guix-0.6, guix-0.6.0ae8c15, htop-1.0.3,
351 icu4c-53.1, imagemagick-6.8.9-0, json-c-0.12, libdrm-2.4.33, libgc-7.2e,
352 libgcrypt-1.5.3, libgpg-error-1.13, libjpeg-8d, libmicrohttpd-0.9.37,
353 libogg-1.3.2, libotr-4.0.0, libtasn1-3.6, libvorbis-1.3.4, lightning-2.0.4,
354 linux-libre-3.15.6, lua-5.1.5, lua-5.2.3, mcron-1.0.8, moe-1.6, nano-2.3.6,
355 neon-0.29.6, nettle-3.0, openssl-1.0.1h, parallel-20140722, pari-gp-2.7.1,
356 pspp-0.8.3, python-2.7.6, python-dateutil-2.2, python2-dateutil-2.2,
357 qemu-2.0.0, qemu-headless-2.0.0, qt-4.8.6, qt-5.2.1, readline-6.2,
358 screen-4.2.1, soprano-2.9.4, texinfo-5.2, texlive-2014, tor-0.2.4.22,
359 wdiff-1.2.2, xorriso-1.3.8, xterm-304
361 ** Native language support
362 *** New translations: de (German), and hu (Hungarian)
363 *** Updated translations: eo, pt_BR, sr, vi
364 *** Package descriptions moved from the ‘guix’ text domain to ‘guix-packages’
365 ** Bugs fixed
366 *** Downloads are now faster (<http://bugs.gnu.org/15368>)
367 *** ‘guix authenticate’ properly writes signatures to stdout
368     (<http://bugs.gnu.org/17312>)
369 *** Progress report of downloads is now properly displayed
370 *** Error reporting of pk-crypto errors has been improved
371 *** The 'patches' field now works for origins with no extension
372 *** Synchronization and GC issues fixed in the offload hook
373 *** (guix ftp-client) emits USER commands suitable for all servers
375 * Changes in 0.6 (since 0.5)
376 ** Package management
377 *** Default store directory changed to /gnu/store
379 Although it is still possible to configure Guix to use the old store
380 directory, we recommend that you start with a fresh install to /gnu/store.
382 *** Substitutes from hydra.gnu.org must now be signed and authorized
383 *** Support for offloading builds to other Guix machines over SSH
384 *** New ‘guix archive’ command
385 *** New ‘guix system’ command; it can currently build VM images
386 *** ‘guix package’ accepts several arguments after -i, -r, and -u
387 *** Updating a profile with ‘guix package’ is now noticeably faster
388 *** ‘guix build’ can override a package’s source with the new ‘--with-source’
389 *** ‘guix build’ has a new ‘--no-build-hook’ option
390 *** ‘guix’ commands that build packages have a common set of options
391 *** ‘guix hash’ has a new ‘--recursive’ option
392 *** Daemon no longer bind-mounts the host’s /dev (improves reproducibility)
393 ** Programming interfaces
394 *** New (guix pk-crypto) and (guix pki) modules for public key cryptography
395 *** New #:local-build? parameter for derivations that shouldn’t be offloaded
396 *** (gnu system vm) has procedures to build VMs that share the host’s store
397 *** New ‘text-file*’ procedure in (guix monads)
398 *** System service definitions are now provided by the (guix services) modules
399 *** New X and SLiM services in (gnu services xorg)
400 *** New (guix git-download) and (guix svn-download) for git/svn checkouts
401 ** GNU distribution
402 *** 91 new packages
404 a2ps, asciidoc, aspell-dict-en, aspell-dict-eo, aspell-dict-es,
405 aspell-dict-fr, aumix, bitlbee, bogofilter, boost, calcurse, clusterssh,
406 corkscrew, cursynth, docbook-xml, docbook-xsl, elfutils, enscript, fftwf,
407 fltk, fuse, gcc-toolchain, giflib, glade, gmime, gnome-desktop, gnubg, gnubik,
408 gnumach-headers, gnunet, gnuplot, gnurl, gphoto2, gtkglext, guile-json,
409 guile-reader-for-guile_2.0.11, gxmessage, hdf5, hurd-headers, inkscape, iotop,
410 isc-dhcp, iso-codes, jnettop, libatomic-ops, libexif, libgphoto2, libmpcdec,
411 libmpdclient, libotr, libpcap, libpeas, libpipeline, libtirpc, libwebsockets,
412 ltrace, luajit, lynx, man-db, mc, mig, miniupnpc, moe, mpc123, mpd, ncdc,
413 ncdu, ncmpc, neon, neon, octave, opus, paperkey, patchutils, perl-tk,
414 perl-x11-protocol, pinentry, python2-element-tree, python2-pybugz, quilt,
415 source-highlight, stalonetray, trueprint, ttf-dejavu, unionfs-fuse,
416 unionfs-fuse-static, uucp, vera, windowmaker, xapian, xterm
418 *** 90 package updates
420 apl-1.3, autoconf-2.68, automake-1.14.1, bash-4.3, bash-light-4.3,
421 bigloo-4.1a, binutils-2.24, binutils-static-stripped-tarball-2.24,
422 coreutils-8.22, curl-7.35.0, ed-1.10, ffmpeg-2.1.4, file-5.18, freeipmi-1.4.1,
423 gcc-4.8.2, gcc-4.8.2, gdb-7.7, gdbm-1.11, gettext-0.18.3.2, glib-2.39.1,
424 glibc-2.19, glibc-stripped-tarball-2.19, global-6.2.12, glpk-4.54,
425 gnu-pw-mgr-1.2, gnupg-1.4.16, gnutls-3.2.12, gp2c-0.0.8pl1, grep-2.18,
426 gst-plugins-base-0.10.36, gstreamer-1.0.10, gtk+-3.10.1, gtkmm-2.24.2,
427 guile-2.0.11, guile-ssh-0.6.0, guile-static-stripped-tarball-2.0.11,
428 guile-wm-1.0, guile-xcb-1.3, guix-0.5, help2man-1.45.1, icu4c-52.1,
429 imagemagick-6.8.8-10, inetutils-1.9.2, lapack-3.5.0, libcdio-0.92,
430 libdrm-2.4.46, libextractor-1.3, libgc-7.2e, libgc-7.4.0, libgcrypt-1.6.1,
431 libjpeg-9, libmicrohttpd-0.9.34, libssh-0.6.3, libtasn1-3.4, lightning-2.0.3,
432 linux-libre-3.13.7, mpc-1.0.2, mutt-1.5.23, net-base-5.2, ocrad-0.23,
433 openssh-6.6p1, openssl-1.0.1g, parallel-20140322, pari-gp-2.7.0, pspp-0.8.2,
434 pulseaudio-5.0, python-2.7.6, python-3.3.5, python-wrapper-3.3.5,
435 python2-pysqlite-2.6.3a, qemu-1.7.1, qemu-headless-1.7.1,
436 qemu-with-multiple-smb-shares-1.7.1, qt-4.8.5, qt-5.2.0, readline-6.3,
437 recutils-1.7, slim-1.3.6, sqlite-3.8.4.3, subversion-1.7.14, texinfo-4.13a,
438 tor-0.2.4.21, tzdata-2014a, units-2.11, valgrind-3.9.0, vim-7.4, wget-1.15,
439 xnee-3.18, xorriso-1.3.6.pl01, zile-2.4.11
441 *** New ‘gcc-toolchain’ meta-package, makes it easy to install a GCC tool chain
442 *** libc’s Info manual is now installed
443 *** Binutils is built with --enable-deterministic-archives
444 *** Packages that populated man/man* now populate share/man/man*
445 *** Many other packaging improvements
446 ** Bugs fixed
447 *** ‘guix pull’ consumes less memory, compiles in parallel
448 *** ‘guix package --list-*’ gracefully handles EPIPE when used in a pipeline
449 *** ‘guix package’ handles collisions between a symlink and a directory
450     (http://bugs.gnu.org/17083)
451 *** HTTP downloads provide a ‘User-Agent’ field (http://bugs.gnu.org/16703)
452 *** ‘guix package’ no longer shows misleading installed package number
453     (http://bugs.gnu.org/16484)
454 *** Manual suggests ‘useradd --system’ (http://bugs.gnu.org/16289)
455 *** Python is built with ctypes support (http://bugs.gnu.org/16569)
456 *** HTTP/TLS connection not terminated properly (http://bugs.gnu.org/14884)
457 *** Gracefully handle poorly behaved HTTP servers (http://bugs.gnu.org/15733)
459 * Changes in 0.5 (since 0.4)
460 ** Package management
461 *** GNU package descriptions synchronized with the ‘gnumaint’ repository
463 In addition to synopses, descriptions of GNU packages are now kept in sync
464 with the ‘gnumaint’ repository, which is the canonical place for GNU package
465 meta-data.
467 ** Programming interfaces
468 *** Patches are now listed as part of ‘origin’
470 The ‘origin’ form supports two new fields: ‘patches’ (list of patches), and
471 ‘snippet’ (code snippet to modify the source.)  These are applied when running
472 ‘guix build --source’.  See “Defining Packages” in the manual.
474 *** New (guix monads) monadic interface to operate on the store
476 See “The Store Monad” in the manual.  The (gnu system …) modules have been
477 rewritten to use this monadic interface.
479 *** New (guix profiles) module
481 It provides an API for dealing with profiles, as with the ‘guix package’
482 command.
484 *** New (gnu system) module
486 This module provides a generic way to describe the system’s configuration,
487 and to instantiate it, regardless of the final medium (QEMU image, etc.)
488 See “System Configuration” in the manual.
490 This is work in progress.  Send feedback to guix-devel@gnu.org!
492 *** ‘build-expression->derivation’ uses more parameters
494 Some positional parameters have been changed to keyword parameters.
495 See “Derivations” in the manual.
497 ** GNU distribution
498 *** New port to the Loongson MIPS64 processors, n32 ABI (‘mips64el-linux’)
500 Bootstrap binaries have been built for that architecture, and several
501 Loongson-specific patches not yet available upstream have been applied to core
502 packages.  See “GNU Distribution” and “Porting” in the manual.
504 Pre-built binaries are not yet available via hydra.gnu.org, so Guix will
505 build from source on this platform.
507 *** 110 new packages
509 acct, alive, alsa-utils, apl, at-spi2-atk, at-spi2-core, atkmm, autogen,
510 automoc4, brasero, bridge-utils, cairomm, catkin, complexity, evince, ffmpeg,
511 fftw, ftgl, gcc-objc, gcc-objc++, gccgo, gcl, gfortran, glibmm, glpk,
512 gnome-icon-theme, gnu-pw-mgr, gp2c, gpgme, gsettings-desktop-schemas, gtkmm,
513 gtksourceview, guile-ssh, guile-wm, gvpe, hicolor-icon-theme, httpd, icecat,
514 icon-naming-utils, json-c, lapack, libcanberra, libcap, libgnome-keyring,
515 libmikmod, libnl, libnotify, libsamplerate, libsigc++, libsndfile, libssh,
516 libtheora, libxkbcommon, mercurial, mtools, netcat, pangomm, parallel,
517 pavucontrol, pciutils, pem, perl-encode-locale, perl-file-list,
518 perl-file-listing, perl-html-parser, perl-html-tagset, perl-http-cookies,
519 perl-http-daemon, perl-http-date, perl-http-message, perl-http-negotiate,
520 perl-io-html, perl-libwww, perl-libxml, perl-lwp-mediatypes, perl-net-http,
521 perl-uri, perl-www-robotrules, perl-xml-dom, perl-xml-regexp, perl-xml-simple,
522 phonon, powertop, pulseaudio, python2-dogtail, python2-empy, qemu-headless,
523 qt, qt, raptor2, scons, sdl, sdl-gfx, sdl-image, sdl-mixer, sdl-net, sdl-ttf,
524 sdl2, serveez, shared-mime-info, sharutils, skribilo, slim, soprano, swig,
525 xcb-util, xcb-util-image, xcb-util-keysyms, xcb-util-renderutil, xcb-util-wm
527 *** 47 package updates
529 atk 2.10.0, bison 3.0.2, cmake 2.8.12, dmd 0.1, freeipmi 1.3.3, gcc 4.8.2,
530 gcc 4.8.2, gcc-cross-mips64el-linux-gnuabi64 4.8.2, gcc-stripped-tarball 4.8.2,
531 gdb 7.6.2, gettext 0.18.3.1, glib 2.38.0, global 6.2.9, gmp 5.1.3,
532 gnupg 2.0.22, gobject-introspection 1.38.0, grep 2.15, gsl 1.16,
533 gtk+ 2.24.21, gtk+ 3.10.1, guile 2.0.9, guile 2.0.9, guile-xcb 1.2,
534 harfbuzz 0.9.22, hello 2.9, iproute2 3.12.0, libdrm 2.4.46,
535 libextractor 1.2, libjpeg 9, libmicrohttpd 0.9.32, lightning 2.0.2,
536 linux-libre 3.12, lzip 1.15, make 4.0, mit-krb5 1.11.3, pari-gp 2.5.5,
537 pixman 0.32.4, python 3.3.2, qemu 1.6.1,
538 qemu-with-multiple-smb-shares 1.6.1, rcs 5.9.2, recutils 1.6, rsync 3.1.0,
539 tar 1.27.1, texinfo 5.2, units 2.02, xorriso 1.3.2
541 *** Packages are now built with GCC 4.8.2 by default (was 4.7.3)
543 ** Native language support
544 *** New ‘sr’ (Serbian) translation
545 *** New ‘vi’ (Vietnamese) translation
546 *** Updated ‘pt_BR’ (Brazilian Portuguese) translation
547 ** Bugs fixed
548 *** ‘guix pull’ compiles Guix deterministically and correctly
550 Previously, the build environment was not cleared in between ‘compile-file’
551 calls, leading to build errors due to Guile bug http://bugs.gnu.org/15602 .
553 *** ‘guix package’ allows removal of a specific package output
554     (http://bugs.gnu.org/15756)
555 *** ‘guix-daemon’ always sets umask to 022
556     (http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00033.html)
557 *** Files referenced by environment variables are protected from GC
558 *** Yet unbuilt packages get correctly installed (http://bugs.gnu.org/15283)
559 *** ‘bootstrap-graph.{png,eps,pdf}’ built in srcdir (http://bugs.gnu.org/15640)
561 * Changes in 0.4 (since 0.3)
563 ** Package management
565 *** New ‘--list-generations’ and ‘--delete-generations’ options
567 The ‘guix package’ command has these two new options, which make it easier to
568 deal with a profile’s generation.  See “Invoking guix package” in the manual.
570 *** New ‘guix-register’ program
572 This program allows the meta-data of a new store to be initialized, by
573 copying info from an existing store.  It is mostly an internal tool.
575 ** Programming interfaces
577 *** New API to bootstrap Autotools-based packages
579 The (guix build-system gnu) has a new ‘dist-package’ procedure that takes a
580 package object and source directory, and returns a new package object that
581 runs ‘./bootstrap && make dist’ or anything similar.
583 *** ‘derivation’ and related procedures have a #:references-graphs parameter
585 This parameter instructs the build daemon to populate the derivation’s build
586 tree with files containing the list of references of the given store files.
587 This is useful to write code that copies a packages and all its dependencies
588 to another storage device, such as a QEMU disk image.
590 *** Extended API to build a GNU system virtual machine image
592 The (gnu system vm) module has been augmented in many ways: the ‘qemu-image’
593 procedure can now populate and initialize the image’s store; the new
594 ‘system-qemu-image’ procedure returns a QEMU image that runs dmd as its init
595 system, has ‘login’ running on several consoles, has a set of installed
596 packages, and where Guix can be used.
598 New (gnu system …) modules have been added to handle the configuration of the
599 various parts of a GNU/Linux system.  For instance, (gnu system dmd) provides
600 support for instantiating dmd services; (gnu system linux) helps with Linux
601 PAM configuration; and so on.
603 *** <derivation> objects supersede .drv file names in the API
605 ‘derivation’ and similar procedures no longer return two values (a
606 <derivation> and a .drv file name); they now return a single value, which is
607 a <derivation> object.  The <derivation> object embeds the corresponding .drv
608 file name.  See “Derivations” in the manual for details.
610 ** GNU distribution
612 *** 60 new packages
614 apr, apr-util, cdparanoia, dbus-glib, dfc, dmd, dvdisaster, exiv2, fetchmail,
615 freefont-ttf, freeglut, geeqie, git, gkrellm, glu, gnome-doc-utils,
616 gst-plugins-base, gstreamer, guile-cairo, guile-lib, guile-xcb, guix, htop,
617 itstool, lame, libextractor, libmicrohttpd, lightning, lzip, mingetty, mutt,
618 net-base, net-tools, ocrad, pspp, python-babel, python-dateutil, python-pytz,
619 python-setuptools, python-simplejson, python-wrapper, python2-babel,
620 python2-dateutil, python2-mechanize, python2-pyicu, python2-pysqlite,
621 python2-pytz, python2-setuptools, python2-simplejson, qemu-system-initrd,
622 qemu-with-multiple-smb-shares, ripperx, shadow, ttf-bitstream-vera, units,
623 valgrind, xmlto, xnee, yasm
625 *** 27 package updates
627 bigloo 4.0b, cairo 1.12.16, ddrescue 1.17, fontconfig 2.10.93, fplll 4.0.4,
628 gcc 4.7.3, gcc 4.7.3, glibc 2.18, glibc 2.18, glibc-stripped-tarball 2.18,
629 gnupg 2.0.21, gnutls 3.2.4, guile 2.0.9, guile 2.0.9, harfbuzz 0.9.21,
630 imagemagick 6.8.6-9, libdrm 2.4.46, libgcrypt 1.5.3, libjpeg 9, libksba 1.3.0,
631 linux-libre 3.11, m4 1.4.17, mpfrcx 0.4.2, pari-gp 2.5.4, python 2.7.5, python
632 3.3.2, texlive 2013
634 *** Fontconfig font search path made more convenient
636 Fontconfig, the library used by many graphical applications, such as those
637 based on GTK+, now knows where to find the default set of fonts.  Additional
638 fonts installed in the user profile are automatically picked up.
640 *** More GUI applications
642 The ‘emacs’ and ‘racket’ packages are now linked against GTK+.  New GTK+
643 applications have been added (see above.)
645 *** Packaging guidelines
647 The documentation of packaging guidelines has been augmented.  See the manual
648 under “GNU Distribution”.
650 *** Support for Python 3 along with Python 2
652 Python 3 has been added to the distribution, and Python packages that support
653 it are now built for both Python 2 and Python 3.  See the “Python Modules”
654 section of the manual for details.
656 ** Internationalization
658 Updated translations: eo.
660 ** Bugs fixed
662 *** Workarounds for Guile 2.0.5 now work on Debian derivatives
663 *** The dependency graph image has correct size in PDF output
664 *** 'ldd' now works correctly on x86_64
665 *** Xorg server test suite no longer fails (http://bugs.gnu.org/15392)
666 *** module-init-tools now builds (http://bugs.gnu.org/15182, http://bugs.gnu.org/15187)
667 *** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194)
669 * Changes in 0.3 (since 0.2)
671 ** Package management
673 *** Cross-compilation support
675 Guix can now cross-build packages.  On the command-line, this is achieved with
676 the new ‘--target’ command-line option of ‘guix build’.  At the Scheme level,
677 the guts of this is the ‘package-cross-derivation’ procedure.  Core packages
678 of the distribution can already be cross-compiled.  See the manual for
679 details.
681 *** New ‘--max-silent-time’ option for “guix build” and “guix package”
683 See the manual for details.
685 *** New ‘--fallback’ option for “guix build” and “guix package”
687 This option instructs to fall back to local builds when the substituter fails
688 to download a substitute.
690 *** New ‘--requisites’ option for “guix gc”
692 See the manual for details.
694 *** New ‘--key-download’ option for “guix refresh”
696 See the manual for details.
698 ** Programming interfaces
700 *** New ‘package-cross-derivation’ procedure in (guix derivations)
702 See the manual for details.
704 *** New ‘%current-target-system’ SRFI-39 parameter
706 This parameter is like ‘%current-system’, but for cross-compilation.  It
707 allows code in package definitions (such as in the ‘arguments’ field) to know
708 whether it is being cross-compiled, and what the target system is.
710 *** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures
712 This improves performance of SHA256 computations.
715 ** GNU distribution
717 *** 33 new packages
719 alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd,
720 gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2,
721 iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket,
722 rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore
724 *** 25 package updates
726 automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3,
727 glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8,
728 libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error
729 1.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu
730 1.5.1, tzdata 2013d, xorriso 1.3.0
732 *** Binary packages now available for i686-linux
734 The build farm at http://hydra.gnu.org now provides 32-bit GNU/Linux binaries
735 (i686-linux), in addition to the x86_64-linux binaries.  Both can be
736 transparently used as substitutes for local builds on these platforms.
738 *** Debug info packages
740 Some packages now have a “debug” output containing debugging information.  The
741 “debug” output can be used by GDB, and can be installed separately from the
742 other outputs of the package.  See “Installing Debugging Files” in the manual.
744 *** Bootstrap binaries can be cross-compiled
746 The distribution can now be ported to new architectures (currently
747 GNU/Linux-only) by cross-compiling the “bootstrap binaries”.  See “Porting”
748 in the manual.
750 *** Bootstrapping documented
752 See “Bootstrapping” in the manual, for information on how the GNU
753 distribution builds “from scratch”.
755 ** Internationalization
757 New translations: eo, pt_BR.
759 ** Bugs fixed
760 *** “guix --help” now works when using Guile 2.0.5
761 *** Binary substituter multi-threading and pipe issues fixed
763 These could lead to random substituter crashes while substituting a binary.
764 See commits 0332386 and 101d9f3 for details.
766 *** Binary substituter gracefully handles lack of network connectivity
768 *** Daemon properly handles rebuilds of multiple-output derivations
770 Previously it would fail when rebuilding a multiple-output derivation when
771 some (but not all) of its outputs were already present.  See
772 http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and
773 https://github.com/NixOS/nix/issues/122 .
775 *** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’
777 Previously only the ‘out’ output of package ‘foo’ would be kept in the
778 profile.
780 *** Replacement (srfi srfi-37) provided if the user’s one is broken
782 When the user’s (srfi srfi-37) is affected by http://bugs.gnu.org/13176 (Guile
783 < 2.0.9), a replacement with the bug fix is provided.  This bug would affect
784 command-line argument processing in some cases.
786 * Changes in 0.2 (since 0.1)
788 ** Package management
790 *** Guix commands are now sub-commands of the “guix” program
792 Instead of typing “guix-package”, one now has to type “guix package”, and so
793 on.  This has allowed us to homogenize the user interface and initial program
794 setup, and to allow commands to be upgradable through “guix pull”.
796 *** New “guix package --upgrade” option
798 As the name implies, this option atomically upgrades all the packages
799 installed in a profile or the set of packages matching a given regexp.
800 See “Invoking guix package” in the manual.
802 *** New “guix package --search” option
804 Performs a full text search in package synopses and descriptions, and returns
805 the matching packages in recutils format.  See “Invoking guix package” in the
806 manual, for details.
808 *** New “guix pull” command
810 The command pulls the latest version of Guix–both the package management
811 modules and the distribution.  See the manual for details.
813 *** New binary substituter
815 The “substituter” mechanism allows pre-built binaries to be transparently
816 downloaded instead of performing a build locally.  Currently binaries are
817 available for x86_64 Linux-based GNU systems from http://hydra.gnu.org.  The
818 distribution is continuously built and binaries are made available from there.
820 See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
821 available binary packages.
823 *** New “guix refresh” command
825 The command is used by Guix maintainers.  It automatically updates the
826 distribution to the latest upstream releases of GNU software.
828 *** New “guix hash” command
830 Convenience command to compute the hash of a file.  See the manual for
831 details.
833 *** Nix daemon code updated
835 The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
836 to current Nix ‘master’.
838 ** Programming interfaces
840 *** (guix download) now supports HTTPS, using GnuTLS
842 It allows package source tarballs to be retrieved over HTTPS.
844 *** New ‘native-search-path’ and ‘search-path’ package fields
846 Packages can define in their ‘native-search-path’ field environment variables
847 that define search paths and need to be set for proper functioning of the
848 package.  For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
849 ‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
850 These environment variables are automatically set when building a package that
851 uses one of these.
853 *** Package inputs can be a function of the target system type
855 The ‘inputs’ field of a package can now be conditional on the value of
856 (%current-system).  This is useful for packages that take system-dependent
857 tarballs as inputs, such as GNU/MIT Scheme.
859 *** New build systems
861 The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
862 been added.  They implement the standard build systems for Perl, Python, and
863 CMake packages.
865 *** Tools to build Linux initrds, QEMU images, and more
867 The (gnu packages linux-initrd) module provides a procedure to build a Linux
868 initrd (“initial RAM disk”).  The initrd embeds Guile, which is used to
869 evaluate the given expression.  The example below returns an initrd that
870 mounts the /proc file system and starts a REPL:
872   (expression->initrd
873     '(begin
874        (mkdir "/proc")
875        (mount "none" "/proc" "proc")
876        ((@ (system repl repl) start-repl))))
878 More examples in the linux-initrd.scm file.
880 Experimental interfaces to produce and use QEMU images are provided by the
881 (gnu system vm) module.  For instance, the
882 ‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in
883 a QEMU virtual machine running the Linux kernel and Guile.
885 ** GNU distribution
887 Many updates and additions have been made to the distribution.  Here are the
888 highlights.
890 *** Major updates
892 GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
893 Coreutils 8.20, GDB 7.6, Texinfo 5.1.
895 *** Noteworthy new packages
897 TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
898 CHICKEN, Scheme48, Hugs, Python, Lua, Samba.