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