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)
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 can now import packages from pipy.python.org
27 See “Invoking guix import” in the manual.
29 *** New ‘guix lint’ command, for use by Guix developers
31 See “Invoking guix lint” in the manual.
33 *** Packages can now be “grafted” with replacements of their dependencies
35 See “Security Updates” in the manual.
37 *** The distribution can be extended with ‘--load-path’ or $GUIX_PACKAGE_PATH
39 This allows users to maintain their own package definitions, and make them
40 visible to the various user interfaces. See “Package Modules” in the manual.
42 *** ‘guix package’ better reports package upgrades
44 *** ‘guix package’ has a new ‘--switch-generation’ option
46 See “Invoking guix package” in the manual.
48 *** ‘guix-daemon’ has a new ‘--substitute-urls’ option
50 See “Invoking guix-daemon” in the manual.
54 *** The stand-alone operating system now supports Linux mapped devices
56 See “Mapped Devices” in the manual.
58 *** New fields in ‘operating-system’ declarations, better documentation
60 New fields include ‘hosts-file’, ‘mapped-devices’, and ‘swap-devices’.
61 See “operating-system Reference” in the manual.
63 *** New services: ‘dhcp-client-service’, ‘bitlbee-service’, ‘ntp-service’
65 See “Services” in the manual.
67 *** Free firmware can be loaded
69 This notably enables support for some Atheros-based WiFi devices (ath9k-htc.)
70 See “operating-system Reference” in the manual.
72 *** ‘grub-configuration’ declarations can now specify a theme
74 See “GRUB Configuration” in the manual.
76 *** The ‘base-initrd’ now has a different signature
78 Existing uses in ‘operating-system’ declarations need to be updated. See
79 “Initial RAM Disk” in the manual for details.
81 *** eudev is now used by default, instead of an old udev release
83 *** ‘guix system vm’ has a new ‘--full-boot’ option
85 See “Invoking guix system” in the manual.
87 *** The ‘file’ command is now part of the package build environment
89 Autoconf-generated ‘configure’ scripts for packages using Libtool use ‘file’
90 to determine the target ABI, notably on MIPS, hence this change.
92 ** Programming interfaces
94 *** New ‘ruby-build-system’, for Ruby packages
96 See “Build Systems” in the manual.
98 *** New ‘glib-or-gtk-build-system’, for packages using GLib schemas
100 See “Build Systems” in the manual.
102 *** ‘gnu-build-system’ has a new #:substitutable? parameter
104 This allows packagers to mark a package as requiring a local build, thus
105 preventing it from being substituted by a pre-built binary.
107 *** ‘cmake-build-system’ has a new #:build-type parameter
109 See “Build Systems” in the manual.
111 *** The ‘supported-systems’ field of packages is used more consistently
113 This allows packagers to prevent attempts to build a package on a given
114 architecture when that architecture is known not to be supported. The
115 ‘package-transitive-supported-systems’ procedure returns the intersection of
116 the systems supported by the given package and by its dependencies.
118 *** The ‘wrap-program’ procedure can now be called multiple times
120 *** New ‘graft-derivations’ and ‘package-grafts’ procedures
122 They implement “grafts”, as described under “Security Updates” in the manual.
124 *** New “bag” intermediate representation for use by build systems
126 “Bags” are used internally as an intermediate representation between packages
127 and derivations. See “Build Systems” in the manual.
129 *** New (guix monad-repl) module, for monadic interaction at the REPL
131 See “The Store Monad” in the manual.
133 *** New (guix build emacs-utils) module, to facilitate building Emacs packages
135 *** New (guix tests) module, with tools used by the test suite
137 *** The internal ‘guix-register’ command now deduplicates files in store items
139 *** Several system modules moved from (guix build …) to (gnu build …)
141 Also, the (gnu build linux-boot) module has been introduced, with code
142 typically used by initial RAM disks when booting on GNU/Linux-libre.
144 *** (guix profiles) provides a representation of package transactions
146 This factorizes code between ‘guix package’ and the Emacs user interface.
148 *** Bootstrapping packages moved to (gnu packages commencement) modules
149 ** Native language support
153 *** ‘guix-daemon’ now really deduplicates store items by default
155 Deduplication means that identical files found in /gnu/store are stored only
156 once, using hard links. This feature was wrongfully disabled, and is now
157 enabled by default. The former ‘--disable-store-optimization’ option has been
158 renamed to ‘--disable-deduplication’.
160 *** ‘guix-daemon’ no longer uses ‘vfork’
162 This could cause problems with ancient Linux kernel.
164 *** Fixed compilation of ‘gccgo’ (<http://bugs.gnu.org/18101>)
165 *** 'make clean' doesn't delete os-config.tmpl (<http://bugs.gnu.org/18243>)
166 *** Fix handling of periods by fill-paragraph (<http://bugs.gnu.org/17468>)
167 *** Produce a top-level Info 'dir' file (<http://bugs.gnu.org/18305>)
168 *** guix offload ignores unreachable machines (<http://bugs.gnu.org/18070>)
169 *** guix offload: Ignore EEXIST when registering a .drv as a GC root
170 (<http://bugs.gnu.org/18115>)
171 *** perl-tk: Build sequentially (<http://bugs.gnu.org/18262>)
172 *** download: Use the 'SERVER NAME' TLS extension when possible
173 (<http://bugs.gnu.org/18526>)
174 *** libdaemon: Add alternate source URLs (<http://bugs.gnu.org/18639>)
175 *** icu4c: Reinstate RUNPATH on shared libraries
176 (<http://bugs.gnu.org/18695>)
177 *** nss-mdns: Add alternate source URLs (<http://bugs.gnu.org/18704>)
178 *** download: Add "Accept: */*" to the HTTP headers
179 (<http://bugs.gnu.org/18768>)
180 *** guix-register: Do not attempt to create NIX_STORE_DIR
181 (<http://bugs.gnu.org/18689>)
182 *** Allow Linux-libre to find our 'modprobe' command
183 (<http://bugs.gnu.org/18525>)
184 *** man-pages: Build sequentially (<http://bugs.gnu.org/18701>)
185 *** Fix intermittent test failures involving GC (<http://bugs.gnu.org/18935>)
186 *** guix import: pypi: Gracefully handle non-existent packages
187 (<http://bugs.gnu.org/18831>)
188 *** Make sure the shared library has the '.so' extension
189 (<http://bugs.gnu.org/18521>)
190 *** pull: Use the build procedure provided by the newly-downloaded Guix.
191 (<http://bugs.gnu.org/18534>)
192 *** WindowMaker no longer pollutes $PATH (<http://bugs.gnu.org/18698>)
194 * Changes in 0.7 (since 0.6)
195 ** Package management
196 *** Binaries for mips64el-linux now available from hydra.gnu.org
198 These come in addition to the x86_64-linux and i686-linux binaries already
199 provided, thanks to our generous donor and friendly admins. See
200 “Substitutes” in the manual.
202 *** ‘guix package’ has a new ‘--show’ option
203 *** ‘guix refresh’ has a new ‘--list-dependent’ option
205 ** Programming interfaces
206 *** New (guix gexp) module, which implements “G-expressions”
208 G-expressions are a new mechanism to embed build-side code in host-side
209 code. See “G-Expressions” in the manual.
211 *** (gnu system) and related modules now use G-expressions
213 This greatly simplifies code, and guarantees that build code carries
214 references to the packages or derivations it uses.
216 *** ‘build-expression->derivation’ is deprecated in favor of G-expressions
217 *** The (gnu system) module has been largely augmented and factorized
218 *** New (guix build vm) module, support for virtual machine images
219 *** New (guix build activation) module, for “system activation”
220 *** New (guix build syscalls) module
221 *** New (guix build install) and module for whole system installation
222 *** New (gnu system install) module, for the installation system
223 *** New (gnu system file-systems) module, for ‘file-system’ declarations
224 *** New (gnu) module, which aggregates common (gnu …) modules
225 *** ‘service’ records now have an optional ‘activate’ field
227 This allows services to specify code to run at system activation time.
230 *** An image to install the GNU system from a USB stick is provided
232 This is the first time an installation image is provided. See “System
233 Installation” in the manual for details. This is work in progress as noted
234 in “Limitations”. Your feedback and help are welcome!
236 *** Support for more parameters in ‘operating-system’ declarations
238 Operating system declarations can now provide a list of file systems, a list
239 of setuid programs, bootloader options, and more. See “System Configuration”
242 *** ‘guix system’ supports more actions
244 Newly supported actions are ‘init’, ‘build’, ‘reconfigure’, and ‘disk-image’.
245 See “Invoking guix system” in the manual.
247 *** User accounts and groups are created at system activation time
248 *** Virtual machine support uses para-virtualized devices
249 *** GCC package now has an additional ‘lib’ output, for run-time support libs
250 *** GLib package now has a separate “bin” output (<http://bugs.gnu.org/17853>)
253 abbaye, aegis, attica, babl, barcode, behave, btar, busybox, ccache, ccrtp,
254 chess, clucene, cmatrix, commoncpp, conkeror, cook, cssc, datamash, diffstat,
255 doxygen, dropbear, dtach, duplicity, e2fsck-static, exosip, fftw-openmpi,
256 fish, gconf, gegl, gimp, gmsh, gnome-mime-data, gnome-vfs, gnumeric, goffice,
257 gsegrafix, guile-opengl, guile-static-stripped, hdup, hwloc, inotify-tools,
258 jrnl, kbd, kmod, lftp, libarchive, libart-lgpl, libbonobo, libbonoboui,
259 libcroco, libdbusmenu-qt, libftdi, libglade, libgnome, libgnomecanvas,
260 libgnomeprint, libgnomeprintui, libgnomeui, libgsf, libidl, libmcrypt,
261 libmhash, librsvg, librsync, libsodium, libuv, libvpx, links, lzop, man-pages,
262 maxima, mcrypt, mosh, mpg123, mplayer, mu, ncmpcpp, node, notmuch, numactl,
263 offlineimap, openmpi, orbit2, osip, pangox-compat, perl-io-tty, petsc,
264 petsc-complex, petsc-complex-openmpi, petsc-openmpi, pingus, podofo, protobuf,
265 pt-scotch, python-enum34, python-keyring, python-lockfile, python-mock,
266 python-parse, python-parse-type, python-parsedatetime, python-pycrypto,
267 python-six, python-tzlocal, python2-lockfile, python2-mock, qjson, qrencode,
268 rasqal, rdiff-backup, rdup, redland, rottlog, scotch, sipwitch, sshfs-fuse,
269 strigi, sudo, superlu, superlu-dist, talkfilters, talloc, tcpdump, tinyproxy,
270 transmission, ucommon, udev, vlc, vtk, wakelan, wireless-tools,
271 wpa-supplicant, xboard, youtube-dl
273 *** 87 package updates
275 bitlbee-3.2.2, cursynth-1.5, ddrescue-1.18.1, dfc-3.0.4, dmd-0.2,
276 docbook-xml-4.3, docbook-xml-4.4, docbook-xsl-1.78.1, dvdisaster-0.72.6,
277 ffmpeg-2.3, fftw-3.3.4, fftwf-3.3.4, flac-1.3.0, gawk-4.1.1, gcc-4.7.4,
278 gcc-4.8.3, gcc-4.8.3, gcc-4.9.1, gcc-cross-mips64el-linux-gnuabi64-4.8.3,
279 gcc-objc++-4.8.3, gcc-objc-4.8.3, gcc-stripped-tarball-4.8.3,
280 gcc-toolchain-4.8.3, gcc-toolchain-4.9.1, gccgo-4.8.3, gdb-7.7.1,
281 gettext-0.19.2, gfortran-4.8.3, glib-2.40.0, global-6.3, gmp-6.0.0a,
282 gnupg-1.4.18, gnupg-2.0.25, gnutls-3.2.15, gp2c-0.0.9pl1, grep-2.20,
283 gst-plugins-base-1.0.10, gstreamer-0.10.36, gtk+-3.10.1, gtkmm-2.24.2,
284 guile-2.0.11, guile-2.0.11, guix-0.6, guix-0.6.0ae8c15, htop-1.0.3,
285 icu4c-53.1, imagemagick-6.8.9-0, json-c-0.12, libdrm-2.4.33, libgc-7.2e,
286 libgcrypt-1.5.3, libgpg-error-1.13, libjpeg-8d, libmicrohttpd-0.9.37,
287 libogg-1.3.2, libotr-4.0.0, libtasn1-3.6, libvorbis-1.3.4, lightning-2.0.4,
288 linux-libre-3.15.6, lua-5.1.5, lua-5.2.3, mcron-1.0.8, moe-1.6, nano-2.3.6,
289 neon-0.29.6, nettle-3.0, openssl-1.0.1h, parallel-20140722, pari-gp-2.7.1,
290 pspp-0.8.3, python-2.7.6, python-dateutil-2.2, python2-dateutil-2.2,
291 qemu-2.0.0, qemu-headless-2.0.0, qt-4.8.6, qt-5.2.1, readline-6.2,
292 screen-4.2.1, soprano-2.9.4, texinfo-5.2, texlive-2014, tor-0.2.4.22,
293 wdiff-1.2.2, xorriso-1.3.8, xterm-304
295 ** Native language support
296 *** New translations: de (German), and hu (Hungarian)
297 *** Updated translations: eo, pt_BR, sr, vi
298 *** Package descriptions moved from the ‘guix’ text domain to ‘guix-packages’
300 *** Downloads are now faster (<http://bugs.gnu.org/15368>)
301 *** ‘guix authenticate’ properly writes signatures to stdout
302 (<http://bugs.gnu.org/17312>)
303 *** Progress report of downloads is now properly displayed
304 *** Error reporting of pk-crypto errors has been improved
305 *** The 'patches' field now works for origins with no extension
306 *** Synchronization and GC issues fixed in the offload hook
307 *** (guix ftp-client) emits USER commands suitable for all servers
309 * Changes in 0.6 (since 0.5)
310 ** Package management
311 *** Default store directory changed to /gnu/store
313 Although it is still possible to configure Guix to use the old store
314 directory, we recommend that you start with a fresh install to /gnu/store.
316 *** Substitutes from hydra.gnu.org must now be signed and authorized
317 *** Support for offloading builds to other Guix machines over SSH
318 *** New ‘guix archive’ command
319 *** New ‘guix system’ command; it can currently build VM images
320 *** ‘guix package’ accepts several arguments after -i, -r, and -u
321 *** Updating a profile with ‘guix package’ is now noticeably faster
322 *** ‘guix build’ can override a package’s source with the new ‘--with-source’
323 *** ‘guix build’ has a new ‘--no-build-hook’ option
324 *** ‘guix’ commands that build packages have a common set of options
325 *** ‘guix hash’ has a new ‘--recursive’ option
326 *** Daemon no longer bind-mounts the host’s /dev (improves reproducibility)
327 ** Programming interfaces
328 *** New (guix pk-crypto) and (guix pki) modules for public key cryptography
329 *** New #:local-build? parameter for derivations that shouldn’t be offloaded
330 *** (gnu system vm) has procedures to build VMs that share the host’s store
331 *** New ‘text-file*’ procedure in (guix monads)
332 *** System service definitions are now provided by the (guix services) modules
333 *** New X and SLiM services in (gnu services xorg)
334 *** New (guix git-download) and (guix svn-download) for git/svn checkouts
338 a2ps, asciidoc, aspell-dict-en, aspell-dict-eo, aspell-dict-es,
339 aspell-dict-fr, aumix, bitlbee, bogofilter, boost, calcurse, clusterssh,
340 corkscrew, cursynth, docbook-xml, docbook-xsl, elfutils, enscript, fftwf,
341 fltk, fuse, gcc-toolchain, giflib, glade, gmime, gnome-desktop, gnubg, gnubik,
342 gnumach-headers, gnunet, gnuplot, gnurl, gphoto2, gtkglext, guile-json,
343 guile-reader-for-guile_2.0.11, gxmessage, hdf5, hurd-headers, inkscape, iotop,
344 isc-dhcp, iso-codes, jnettop, libatomic-ops, libexif, libgphoto2, libmpcdec,
345 libmpdclient, libotr, libpcap, libpeas, libpipeline, libtirpc, libwebsockets,
346 ltrace, luajit, lynx, man-db, mc, mig, miniupnpc, moe, mpc123, mpd, ncdc,
347 ncdu, ncmpc, neon, neon, octave, opus, paperkey, patchutils, perl-tk,
348 perl-x11-protocol, pinentry, python2-element-tree, python2-pybugz, quilt,
349 source-highlight, stalonetray, trueprint, ttf-dejavu, unionfs-fuse,
350 unionfs-fuse-static, uucp, vera, windowmaker, xapian, xterm
352 *** 90 package updates
354 apl-1.3, autoconf-2.68, automake-1.14.1, bash-4.3, bash-light-4.3,
355 bigloo-4.1a, binutils-2.24, binutils-static-stripped-tarball-2.24,
356 coreutils-8.22, curl-7.35.0, ed-1.10, ffmpeg-2.1.4, file-5.18, freeipmi-1.4.1,
357 gcc-4.8.2, gcc-4.8.2, gdb-7.7, gdbm-1.11, gettext-0.18.3.2, glib-2.39.1,
358 glibc-2.19, glibc-stripped-tarball-2.19, global-6.2.12, glpk-4.54,
359 gnu-pw-mgr-1.2, gnupg-1.4.16, gnutls-3.2.12, gp2c-0.0.8pl1, grep-2.18,
360 gst-plugins-base-0.10.36, gstreamer-1.0.10, gtk+-3.10.1, gtkmm-2.24.2,
361 guile-2.0.11, guile-ssh-0.6.0, guile-static-stripped-tarball-2.0.11,
362 guile-wm-1.0, guile-xcb-1.3, guix-0.5, help2man-1.45.1, icu4c-52.1,
363 imagemagick-6.8.8-10, inetutils-1.9.2, lapack-3.5.0, libcdio-0.92,
364 libdrm-2.4.46, libextractor-1.3, libgc-7.2e, libgc-7.4.0, libgcrypt-1.6.1,
365 libjpeg-9, libmicrohttpd-0.9.34, libssh-0.6.3, libtasn1-3.4, lightning-2.0.3,
366 linux-libre-3.13.7, mpc-1.0.2, mutt-1.5.23, net-base-5.2, ocrad-0.23,
367 openssh-6.6p1, openssl-1.0.1g, parallel-20140322, pari-gp-2.7.0, pspp-0.8.2,
368 pulseaudio-5.0, python-2.7.6, python-3.3.5, python-wrapper-3.3.5,
369 python2-pysqlite-2.6.3a, qemu-1.7.1, qemu-headless-1.7.1,
370 qemu-with-multiple-smb-shares-1.7.1, qt-4.8.5, qt-5.2.0, readline-6.3,
371 recutils-1.7, slim-1.3.6, sqlite-3.8.4.3, subversion-1.7.14, texinfo-4.13a,
372 tor-0.2.4.21, tzdata-2014a, units-2.11, valgrind-3.9.0, vim-7.4, wget-1.15,
373 xnee-3.18, xorriso-1.3.6.pl01, zile-2.4.11
375 *** New ‘gcc-toolchain’ meta-package, makes it easy to install a GCC tool chain
376 *** libc’s Info manual is now installed
377 *** Binutils is built with --enable-deterministic-archives
378 *** Packages that populated man/man* now populate share/man/man*
379 *** Many other packaging improvements
381 *** ‘guix pull’ consumes less memory, compiles in parallel
382 *** ‘guix package --list-*’ gracefully handles EPIPE when used in a pipeline
383 *** ‘guix package’ handles collisions between a symlink and a directory
384 (http://bugs.gnu.org/17083)
385 *** HTTP downloads provide a ‘User-Agent’ field (http://bugs.gnu.org/16703)
386 *** ‘guix package’ no longer shows misleading installed package number
387 (http://bugs.gnu.org/16484)
388 *** Manual suggests ‘useradd --system’ (http://bugs.gnu.org/16289)
389 *** Python is built with ctypes support (http://bugs.gnu.org/16569)
390 *** HTTP/TLS connection not terminated properly (http://bugs.gnu.org/14884)
391 *** Gracefully handle poorly behaved HTTP servers (http://bugs.gnu.org/15733)
393 * Changes in 0.5 (since 0.4)
394 ** Package management
395 *** GNU package descriptions synchronized with the ‘gnumaint’ repository
397 In addition to synopses, descriptions of GNU packages are now kept in sync
398 with the ‘gnumaint’ repository, which is the canonical place for GNU package
401 ** Programming interfaces
402 *** Patches are now listed as part of ‘origin’
404 The ‘origin’ form supports two new fields: ‘patches’ (list of patches), and
405 ‘snippet’ (code snippet to modify the source.) These are applied when running
406 ‘guix build --source’. See “Defining Packages” in the manual.
408 *** New (guix monads) monadic interface to operate on the store
410 See “The Store Monad” in the manual. The (gnu system …) modules have been
411 rewritten to use this monadic interface.
413 *** New (guix profiles) module
415 It provides an API for dealing with profiles, as with the ‘guix package’
418 *** New (gnu system) module
420 This module provides a generic way to describe the system’s configuration,
421 and to instantiate it, regardless of the final medium (QEMU image, etc.)
422 See “System Configuration” in the manual.
424 This is work in progress. Send feedback to guix-devel@gnu.org!
426 *** ‘build-expression->derivation’ uses more parameters
428 Some positional parameters have been changed to keyword parameters.
429 See “Derivations” in the manual.
432 *** New port to the Loongson MIPS64 processors, n32 ABI (‘mips64el-linux’)
434 Bootstrap binaries have been built for that architecture, and several
435 Loongson-specific patches not yet available upstream have been applied to core
436 packages. See “GNU Distribution” and “Porting” in the manual.
438 Pre-built binaries are not yet available via hydra.gnu.org, so Guix will
439 build from source on this platform.
443 acct, alive, alsa-utils, apl, at-spi2-atk, at-spi2-core, atkmm, autogen,
444 automoc4, brasero, bridge-utils, cairomm, catkin, complexity, evince, ffmpeg,
445 fftw, ftgl, gcc-objc, gcc-objc++, gccgo, gcl, gfortran, glibmm, glpk,
446 gnome-icon-theme, gnu-pw-mgr, gp2c, gpgme, gsettings-desktop-schemas, gtkmm,
447 gtksourceview, guile-ssh, guile-wm, gvpe, hicolor-icon-theme, httpd, icecat,
448 icon-naming-utils, json-c, lapack, libcanberra, libcap, libgnome-keyring,
449 libmikmod, libnl, libnotify, libsamplerate, libsigc++, libsndfile, libssh,
450 libtheora, libxkbcommon, mercurial, mtools, netcat, pangomm, parallel,
451 pavucontrol, pciutils, pem, perl-encode-locale, perl-file-list,
452 perl-file-listing, perl-html-parser, perl-html-tagset, perl-http-cookies,
453 perl-http-daemon, perl-http-date, perl-http-message, perl-http-negotiate,
454 perl-io-html, perl-libwww, perl-libxml, perl-lwp-mediatypes, perl-net-http,
455 perl-uri, perl-www-robotrules, perl-xml-dom, perl-xml-regexp, perl-xml-simple,
456 phonon, powertop, pulseaudio, python2-dogtail, python2-empy, qemu-headless,
457 qt, qt, raptor2, scons, sdl, sdl-gfx, sdl-image, sdl-mixer, sdl-net, sdl-ttf,
458 sdl2, serveez, shared-mime-info, sharutils, skribilo, slim, soprano, swig,
459 xcb-util, xcb-util-image, xcb-util-keysyms, xcb-util-renderutil, xcb-util-wm
461 *** 47 package updates
463 atk 2.10.0, bison 3.0.2, cmake 2.8.12, dmd 0.1, freeipmi 1.3.3, gcc 4.8.2,
464 gcc 4.8.2, gcc-cross-mips64el-linux-gnuabi64 4.8.2, gcc-stripped-tarball 4.8.2,
465 gdb 7.6.2, gettext 0.18.3.1, glib 2.38.0, global 6.2.9, gmp 5.1.3,
466 gnupg 2.0.22, gobject-introspection 1.38.0, grep 2.15, gsl 1.16,
467 gtk+ 2.24.21, gtk+ 3.10.1, guile 2.0.9, guile 2.0.9, guile-xcb 1.2,
468 harfbuzz 0.9.22, hello 2.9, iproute2 3.12.0, libdrm 2.4.46,
469 libextractor 1.2, libjpeg 9, libmicrohttpd 0.9.32, lightning 2.0.2,
470 linux-libre 3.12, lzip 1.15, make 4.0, mit-krb5 1.11.3, pari-gp 2.5.5,
471 pixman 0.32.4, python 3.3.2, qemu 1.6.1,
472 qemu-with-multiple-smb-shares 1.6.1, rcs 5.9.2, recutils 1.6, rsync 3.1.0,
473 tar 1.27.1, texinfo 5.2, units 2.02, xorriso 1.3.2
475 *** Packages are now built with GCC 4.8.2 by default (was 4.7.3)
477 ** Native language support
478 *** New ‘sr’ (Serbian) translation
479 *** New ‘vi’ (Vietnamese) translation
480 *** Updated ‘pt_BR’ (Brazilian Portuguese) translation
482 *** ‘guix pull’ compiles Guix deterministically and correctly
484 Previously, the build environment was not cleared in between ‘compile-file’
485 calls, leading to build errors due to Guile bug http://bugs.gnu.org/15602 .
487 *** ‘guix package’ allows removal of a specific package output
488 (http://bugs.gnu.org/15756)
489 *** ‘guix-daemon’ always sets umask to 022
490 (http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00033.html)
491 *** Files referenced by environment variables are protected from GC
492 *** Yet unbuilt packages get correctly installed (http://bugs.gnu.org/15283)
493 *** ‘bootstrap-graph.{png,eps,pdf}’ built in srcdir (http://bugs.gnu.org/15640)
495 * Changes in 0.4 (since 0.3)
497 ** Package management
499 *** New ‘--list-generations’ and ‘--delete-generations’ options
501 The ‘guix package’ command has these two new options, which make it easier to
502 deal with a profile’s generation. See “Invoking guix package” in the manual.
504 *** New ‘guix-register’ program
506 This program allows the meta-data of a new store to be initialized, by
507 copying info from an existing store. It is mostly an internal tool.
509 ** Programming interfaces
511 *** New API to bootstrap Autotools-based packages
513 The (guix build-system gnu) has a new ‘dist-package’ procedure that takes a
514 package object and source directory, and returns a new package object that
515 runs ‘./bootstrap && make dist’ or anything similar.
517 *** ‘derivation’ and related procedures have a #:references-graphs parameter
519 This parameter instructs the build daemon to populate the derivation’s build
520 tree with files containing the list of references of the given store files.
521 This is useful to write code that copies a packages and all its dependencies
522 to another storage device, such as a QEMU disk image.
524 *** Extended API to build a GNU system virtual machine image
526 The (gnu system vm) module has been augmented in many ways: the ‘qemu-image’
527 procedure can now populate and initialize the image’s store; the new
528 ‘system-qemu-image’ procedure returns a QEMU image that runs dmd as its init
529 system, has ‘login’ running on several consoles, has a set of installed
530 packages, and where Guix can be used.
532 New (gnu system …) modules have been added to handle the configuration of the
533 various parts of a GNU/Linux system. For instance, (gnu system dmd) provides
534 support for instantiating dmd services; (gnu system linux) helps with Linux
535 PAM configuration; and so on.
537 *** <derivation> objects supersede .drv file names in the API
539 ‘derivation’ and similar procedures no longer return two values (a
540 <derivation> and a .drv file name); they now return a single value, which is
541 a <derivation> object. The <derivation> object embeds the corresponding .drv
542 file name. See “Derivations” in the manual for details.
548 apr, apr-util, cdparanoia, dbus-glib, dfc, dmd, dvdisaster, exiv2, fetchmail,
549 freefont-ttf, freeglut, geeqie, git, gkrellm, glu, gnome-doc-utils,
550 gst-plugins-base, gstreamer, guile-cairo, guile-lib, guile-xcb, guix, htop,
551 itstool, lame, libextractor, libmicrohttpd, lightning, lzip, mingetty, mutt,
552 net-base, net-tools, ocrad, pspp, python-babel, python-dateutil, python-pytz,
553 python-setuptools, python-simplejson, python-wrapper, python2-babel,
554 python2-dateutil, python2-mechanize, python2-pyicu, python2-pysqlite,
555 python2-pytz, python2-setuptools, python2-simplejson, qemu-system-initrd,
556 qemu-with-multiple-smb-shares, ripperx, shadow, ttf-bitstream-vera, units,
557 valgrind, xmlto, xnee, yasm
559 *** 27 package updates
561 bigloo 4.0b, cairo 1.12.16, ddrescue 1.17, fontconfig 2.10.93, fplll 4.0.4,
562 gcc 4.7.3, gcc 4.7.3, glibc 2.18, glibc 2.18, glibc-stripped-tarball 2.18,
563 gnupg 2.0.21, gnutls 3.2.4, guile 2.0.9, guile 2.0.9, harfbuzz 0.9.21,
564 imagemagick 6.8.6-9, libdrm 2.4.46, libgcrypt 1.5.3, libjpeg 9, libksba 1.3.0,
565 linux-libre 3.11, m4 1.4.17, mpfrcx 0.4.2, pari-gp 2.5.4, python 2.7.5, python
568 *** Fontconfig font search path made more convenient
570 Fontconfig, the library used by many graphical applications, such as those
571 based on GTK+, now knows where to find the default set of fonts. Additional
572 fonts installed in the user profile are automatically picked up.
574 *** More GUI applications
576 The ‘emacs’ and ‘racket’ packages are now linked against GTK+. New GTK+
577 applications have been added (see above.)
579 *** Packaging guidelines
581 The documentation of packaging guidelines has been augmented. See the manual
582 under “GNU Distribution”.
584 *** Support for Python 3 along with Python 2
586 Python 3 has been added to the distribution, and Python packages that support
587 it are now built for both Python 2 and Python 3. See the “Python Modules”
588 section of the manual for details.
590 ** Internationalization
592 Updated translations: eo.
596 *** Workarounds for Guile 2.0.5 now work on Debian derivatives
597 *** The dependency graph image has correct size in PDF output
598 *** 'ldd' now works correctly on x86_64
599 *** Xorg server test suite no longer fails (http://bugs.gnu.org/15392)
600 *** module-init-tools now builds (http://bugs.gnu.org/15182, http://bugs.gnu.org/15187)
601 *** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194)
603 * Changes in 0.3 (since 0.2)
605 ** Package management
607 *** Cross-compilation support
609 Guix can now cross-build packages. On the command-line, this is achieved with
610 the new ‘--target’ command-line option of ‘guix build’. At the Scheme level,
611 the guts of this is the ‘package-cross-derivation’ procedure. Core packages
612 of the distribution can already be cross-compiled. See the manual for
615 *** New ‘--max-silent-time’ option for “guix build” and “guix package”
617 See the manual for details.
619 *** New ‘--fallback’ option for “guix build” and “guix package”
621 This option instructs to fall back to local builds when the substituter fails
622 to download a substitute.
624 *** New ‘--requisites’ option for “guix gc”
626 See the manual for details.
628 *** New ‘--key-download’ option for “guix refresh”
630 See the manual for details.
632 ** Programming interfaces
634 *** New ‘package-cross-derivation’ procedure in (guix derivations)
636 See the manual for details.
638 *** New ‘%current-target-system’ SRFI-39 parameter
640 This parameter is like ‘%current-system’, but for cross-compilation. It
641 allows code in package definitions (such as in the ‘arguments’ field) to know
642 whether it is being cross-compiled, and what the target system is.
644 *** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures
646 This improves performance of SHA256 computations.
653 alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd,
654 gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2,
655 iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket,
656 rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore
658 *** 25 package updates
660 automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3,
661 glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8,
662 libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error
663 1.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu
664 1.5.1, tzdata 2013d, xorriso 1.3.0
666 *** Binary packages now available for i686-linux
668 The build farm at http://hydra.gnu.org now provides 32-bit GNU/Linux binaries
669 (i686-linux), in addition to the x86_64-linux binaries. Both can be
670 transparently used as substitutes for local builds on these platforms.
672 *** Debug info packages
674 Some packages now have a “debug” output containing debugging information. The
675 “debug” output can be used by GDB, and can be installed separately from the
676 other outputs of the package. See “Installing Debugging Files” in the manual.
678 *** Bootstrap binaries can be cross-compiled
680 The distribution can now be ported to new architectures (currently
681 GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting”
684 *** Bootstrapping documented
686 See “Bootstrapping” in the manual, for information on how the GNU
687 distribution builds “from scratch”.
689 ** Internationalization
691 New translations: eo, pt_BR.
694 *** “guix --help” now works when using Guile 2.0.5
695 *** Binary substituter multi-threading and pipe issues fixed
697 These could lead to random substituter crashes while substituting a binary.
698 See commits 0332386 and 101d9f3 for details.
700 *** Binary substituter gracefully handles lack of network connectivity
702 *** Daemon properly handles rebuilds of multiple-output derivations
704 Previously it would fail when rebuilding a multiple-output derivation when
705 some (but not all) of its outputs were already present. See
706 http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and
707 https://github.com/NixOS/nix/issues/122 .
709 *** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’
711 Previously only the ‘out’ output of package ‘foo’ would be kept in the
714 *** Replacement (srfi srfi-37) provided if the user’s one is broken
716 When the user’s (srfi srfi-37) is affected by http://bugs.gnu.org/13176 (Guile
717 < 2.0.9), a replacement with the bug fix is provided. This bug would affect
718 command-line argument processing in some cases.
720 * Changes in 0.2 (since 0.1)
722 ** Package management
724 *** Guix commands are now sub-commands of the “guix” program
726 Instead of typing “guix-package”, one now has to type “guix package”, and so
727 on. This has allowed us to homogenize the user interface and initial program
728 setup, and to allow commands to be upgradable through “guix pull”.
730 *** New “guix package --upgrade” option
732 As the name implies, this option atomically upgrades all the packages
733 installed in a profile or the set of packages matching a given regexp.
734 See “Invoking guix package” in the manual.
736 *** New “guix package --search” option
738 Performs a full text search in package synopses and descriptions, and returns
739 the matching packages in recutils format. See “Invoking guix package” in the
742 *** New “guix pull” command
744 The command pulls the latest version of Guix–both the package management
745 modules and the distribution. See the manual for details.
747 *** New binary substituter
749 The “substituter” mechanism allows pre-built binaries to be transparently
750 downloaded instead of performing a build locally. Currently binaries are
751 available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
752 distribution is continuously built and binaries are made available from there.
754 See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
755 available binary packages.
757 *** New “guix refresh” command
759 The command is used by Guix maintainers. It automatically updates the
760 distribution to the latest upstream releases of GNU software.
762 *** New “guix hash” command
764 Convenience command to compute the hash of a file. See the manual for
767 *** Nix daemon code updated
769 The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
770 to current Nix ‘master’.
772 ** Programming interfaces
774 *** (guix download) now supports HTTPS, using GnuTLS
776 It allows package source tarballs to be retrieved over HTTPS.
778 *** New ‘native-search-path’ and ‘search-path’ package fields
780 Packages can define in their ‘native-search-path’ field environment variables
781 that define search paths and need to be set for proper functioning of the
782 package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
783 ‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
784 These environment variables are automatically set when building a package that
787 *** Package inputs can be a function of the target system type
789 The ‘inputs’ field of a package can now be conditional on the value of
790 (%current-system). This is useful for packages that take system-dependent
791 tarballs as inputs, such as GNU/MIT Scheme.
793 *** New build systems
795 The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
796 been added. They implement the standard build systems for Perl, Python, and
799 *** Tools to build Linux initrds, QEMU images, and more
801 The (gnu packages linux-initrd) module provides a procedure to build a Linux
802 initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
803 evaluate the given expression. The example below returns an initrd that
804 mounts the /proc file system and starts a REPL:
809 (mount "none" "/proc" "proc")
810 ((@ (system repl repl) start-repl))))
812 More examples in the linux-initrd.scm file.
814 Experimental interfaces to produce and use QEMU images are provided by the
815 (gnu system vm) module. For instance, the
816 ‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in
817 a QEMU virtual machine running the Linux kernel and Guile.
821 Many updates and additions have been made to the distribution. Here are the
826 GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
827 Coreutils 8.20, GDB 7.6, Texinfo 5.1.
829 *** Noteworthy new packages
831 TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
832 CHICKEN, Scheme48, Hugs, Python, Lua, Samba.