Thank Bruno.
[jackhill/guix/guix.git] / NEWS
CommitLineData
06504acb
LC
1 -*- org -*-
2#+TITLE: Guix NEWS – history of user-visible changes
3#+STARTUP: content hidestars
4056b828 4
b0f981f0 5Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
4056b828
LC
6
7 Copying and distribution of this file, with or without modification,
8 are permitted in any medium without royalty provided the copyright
9 notice and this notice are preserved.
10
11Please send Guix bug reports to bug-guix@gnu.org.
12
0c4b00d8
LC
13* Changes in 0.8 (since 0.7)
14
15** Package management
16
17*** New visual user interface in Emacs
18
19See “Emacs Interface” in the manual.
20
21*** New ‘guix environment’ command to produce development environment
22
23See “Invoking guix environment” in the manual.
24
29934e02 25*** The ‘guix import’ command has been extended and documented
0c4b00d8 26
7b3f6a27 27It can now import packages from pypi.python.org and from GNU.
0c4b00d8
LC
28See “Invoking guix import” in the manual.
29
30*** New ‘guix lint’ command, for use by Guix developers
31
32See “Invoking guix lint” in the manual.
33
34*** Packages can now be “grafted” with replacements of their dependencies
35
36See “Security Updates” in the manual.
37
38*** The distribution can be extended with ‘--load-path’ or $GUIX_PACKAGE_PATH
39
40This allows users to maintain their own package definitions, and make them
41visible to the various user interfaces. See “Package Modules” in the manual.
42
43*** ‘guix package’ better reports package upgrades
44
45*** ‘guix package’ has a new ‘--switch-generation’ option
46
47See “Invoking guix package” in the manual.
48
49*** ‘guix-daemon’ has a new ‘--substitute-urls’ option
50
51See “Invoking guix-daemon” in the manual.
52
53** GNU distribution
54
55*** The stand-alone operating system now supports Linux mapped devices
56
57See “Mapped Devices” in the manual.
58
59*** New fields in ‘operating-system’ declarations, better documentation
60
61New fields include ‘hosts-file’, ‘mapped-devices’, and ‘swap-devices’.
62See “operating-system Reference” in the manual.
63
64*** New services: ‘dhcp-client-service’, ‘bitlbee-service’, ‘ntp-service’
65
66See “Services” in the manual.
67
8ee0e719
LC
68*** Free firmware can be loaded
69
70This notably enables support for some Atheros-based WiFi devices (ath9k-htc.)
71See “operating-system Reference” in the manual.
72
0c4b00d8
LC
73*** ‘grub-configuration’ declarations can now specify a theme
74
75See “GRUB Configuration” in the manual.
76
77*** The ‘base-initrd’ now has a different signature
78
79Existing uses in ‘operating-system’ declarations need to be updated. See
80“Initial RAM Disk” in the manual for details.
81
82*** eudev is now used by default, instead of an old udev release
83
84*** ‘guix system vm’ has a new ‘--full-boot’ option
85
86See “Invoking guix system” in the manual.
87
88*** The ‘file’ command is now part of the package build environment
89
90Autoconf-generated ‘configure’ scripts for packages using Libtool use ‘file’
91to determine the target ABI, notably on MIPS, hence this change.
92
0c4b00d8
LC
93** Programming interfaces
94
95*** New ‘ruby-build-system’, for Ruby packages
96
97See “Build Systems” in the manual.
98
99*** New ‘glib-or-gtk-build-system’, for packages using GLib schemas
100
101See “Build Systems” in the manual.
102
103*** ‘gnu-build-system’ has a new #:substitutable? parameter
104
105This allows packagers to mark a package as requiring a local build, thus
106preventing it from being substituted by a pre-built binary.
107
108*** ‘cmake-build-system’ has a new #:build-type parameter
109
110See “Build Systems” in the manual.
111
112*** The ‘supported-systems’ field of packages is used more consistently
113
114This allows packagers to prevent attempts to build a package on a given
115architecture when that architecture is known not to be supported. The
116‘package-transitive-supported-systems’ procedure returns the intersection of
117the systems supported by the given package and by its dependencies.
118
119*** The ‘wrap-program’ procedure can now be called multiple times
120
121*** New ‘graft-derivations’ and ‘package-grafts’ procedures
122
123They implement “grafts”, as described under “Security Updates” in the manual.
124
125*** New “bag” intermediate representation for use by build systems
126
127“Bags” are used internally as an intermediate representation between packages
128and derivations. See “Build Systems” in the manual.
129
130*** New (guix monad-repl) module, for monadic interaction at the REPL
131
132See “The Store Monad” in the manual.
133
134*** New (guix build emacs-utils) module, to facilitate building Emacs packages
135
136*** New (guix tests) module, with tools used by the test suite
137
138*** The internal ‘guix-register’ command now deduplicates files in store items
139
140*** Several system modules moved from (guix build …) to (gnu build …)
141
142Also, the (gnu build linux-boot) module has been introduced, with code
143typically used by initial RAM disks when booting on GNU/Linux-libre.
144
145*** (guix profiles) provides a representation of package transactions
146
147This factorizes code between ‘guix package’ and the Emacs user interface.
148
8ee0e719 149*** Bootstrapping packages moved to (gnu packages commencement) modules
0c4b00d8
LC
150** Native language support
151
152** Bugs fixed
153
154*** ‘guix-daemon’ now really deduplicates store items by default
155
156Deduplication means that identical files found in /gnu/store are stored only
157once, using hard links. This feature was wrongfully disabled, and is now
158enabled by default. The former ‘--disable-store-optimization’ option has been
159renamed to ‘--disable-deduplication’.
160
161*** ‘guix-daemon’ no longer uses ‘vfork’
162
163This could cause problems with ancient Linux kernel.
164
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>)
5c88ac53 193*** WindowMaker no longer pollutes $PATH (<http://bugs.gnu.org/18698>)
0c4b00d8 194
02dd2a9c
LC
195* Changes in 0.7 (since 0.6)
196** Package management
508ea01e
LC
197*** Binaries for mips64el-linux now available from hydra.gnu.org
198
199These come in addition to the x86_64-linux and i686-linux binaries already
200provided, thanks to our generous donor and friendly admins. See
201“Substitutes” in the manual.
202
dccc0b98
LC
203*** ‘guix package’ has a new ‘--show’ option
204*** ‘guix refresh’ has a new ‘--list-dependent’ option
02dd2a9c
LC
205
206** Programming interfaces
207*** New (guix gexp) module, which implements “G-expressions”
208
209G-expressions are a new mechanism to embed build-side code in host-side
210code. See “G-Expressions” in the manual.
211
212*** (gnu system) and related modules now use G-expressions
213
214This greatly simplifies code, and guarantees that build code carries
215references to the packages or derivations it uses.
216
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
227
228This allows services to specify code to run at system activation time.
229
230** GNU distribution
231*** An image to install the GNU system from a USB stick is provided
232
233This is the first time an installation image is provided. See “System
234Installation” in the manual for details. This is work in progress as noted
235in “Limitations”. Your feedback and help are welcome!
236
237*** Support for more parameters in ‘operating-system’ declarations
238
239Operating system declarations can now provide a list of file systems, a list
240of setuid programs, bootloader options, and more. See “System Configuration”
241in the manual.
242
243*** ‘guix system’ supports more actions
244
245Newly supported actions are ‘init’, ‘build’, ‘reconfigure’, and ‘disk-image’.
246See “Invoking guix system” in the manual.
247
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>)
dccc0b98
LC
252*** 134 new packages
253
254abbaye, aegis, attica, babl, barcode, behave, btar, busybox, ccache, ccrtp,
255chess, clucene, cmatrix, commoncpp, conkeror, cook, cssc, datamash, diffstat,
256doxygen, dropbear, dtach, duplicity, e2fsck-static, exosip, fftw-openmpi,
257fish, gconf, gegl, gimp, gmsh, gnome-mime-data, gnome-vfs, gnumeric, goffice,
258gsegrafix, guile-opengl, guile-static-stripped, hdup, hwloc, inotify-tools,
259jrnl, kbd, kmod, lftp, libarchive, libart-lgpl, libbonobo, libbonoboui,
260libcroco, libdbusmenu-qt, libftdi, libglade, libgnome, libgnomecanvas,
261libgnomeprint, libgnomeprintui, libgnomeui, libgsf, libidl, libmcrypt,
262libmhash, librsvg, librsync, libsodium, libuv, libvpx, links, lzop, man-pages,
263maxima, mcrypt, mosh, mpg123, mplayer, mu, ncmpcpp, node, notmuch, numactl,
264offlineimap, openmpi, orbit2, osip, pangox-compat, perl-io-tty, petsc,
265petsc-complex, petsc-complex-openmpi, petsc-openmpi, pingus, podofo, protobuf,
266pt-scotch, python-enum34, python-keyring, python-lockfile, python-mock,
267python-parse, python-parse-type, python-parsedatetime, python-pycrypto,
268python-six, python-tzlocal, python2-lockfile, python2-mock, qjson, qrencode,
269rasqal, rdiff-backup, rdup, redland, rottlog, scotch, sipwitch, sshfs-fuse,
270strigi, sudo, superlu, superlu-dist, talkfilters, talloc, tcpdump, tinyproxy,
271transmission, ucommon, udev, vlc, vtk, wakelan, wireless-tools,
272wpa-supplicant, xboard, youtube-dl
273
274*** 87 package updates
275
276bitlbee-3.2.2, cursynth-1.5, ddrescue-1.18.1, dfc-3.0.4, dmd-0.2,
277docbook-xml-4.3, docbook-xml-4.4, docbook-xsl-1.78.1, dvdisaster-0.72.6,
278ffmpeg-2.3, fftw-3.3.4, fftwf-3.3.4, flac-1.3.0, gawk-4.1.1, gcc-4.7.4,
279gcc-4.8.3, gcc-4.8.3, gcc-4.9.1, gcc-cross-mips64el-linux-gnuabi64-4.8.3,
280gcc-objc++-4.8.3, gcc-objc-4.8.3, gcc-stripped-tarball-4.8.3,
281gcc-toolchain-4.8.3, gcc-toolchain-4.9.1, gccgo-4.8.3, gdb-7.7.1,
282gettext-0.19.2, gfortran-4.8.3, glib-2.40.0, global-6.3, gmp-6.0.0a,
283gnupg-1.4.18, gnupg-2.0.25, gnutls-3.2.15, gp2c-0.0.9pl1, grep-2.20,
284gst-plugins-base-1.0.10, gstreamer-0.10.36, gtk+-3.10.1, gtkmm-2.24.2,
285guile-2.0.11, guile-2.0.11, guix-0.6, guix-0.6.0ae8c15, htop-1.0.3,
286icu4c-53.1, imagemagick-6.8.9-0, json-c-0.12, libdrm-2.4.33, libgc-7.2e,
287libgcrypt-1.5.3, libgpg-error-1.13, libjpeg-8d, libmicrohttpd-0.9.37,
288libogg-1.3.2, libotr-4.0.0, libtasn1-3.6, libvorbis-1.3.4, lightning-2.0.4,
289linux-libre-3.15.6, lua-5.1.5, lua-5.2.3, mcron-1.0.8, moe-1.6, nano-2.3.6,
290neon-0.29.6, nettle-3.0, openssl-1.0.1h, parallel-20140722, pari-gp-2.7.1,
291pspp-0.8.3, python-2.7.6, python-dateutil-2.2, python2-dateutil-2.2,
292qemu-2.0.0, qemu-headless-2.0.0, qt-4.8.6, qt-5.2.1, readline-6.2,
293screen-4.2.1, soprano-2.9.4, texinfo-5.2, texlive-2014, tor-0.2.4.22,
294wdiff-1.2.2, xorriso-1.3.8, xterm-304
02dd2a9c
LC
295
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’
300** Bugs fixed
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
309
b0f981f0
LC
310* Changes in 0.6 (since 0.5)
311** Package management
312*** Default store directory changed to /gnu/store
313
314Although it is still possible to configure Guix to use the old store
315directory, we recommend that you start with a fresh install to /gnu/store.
316
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
336** GNU distribution
4ec91959
LC
337*** 91 new packages
338
339a2ps, asciidoc, aspell-dict-en, aspell-dict-eo, aspell-dict-es,
340aspell-dict-fr, aumix, bitlbee, bogofilter, boost, calcurse, clusterssh,
341corkscrew, cursynth, docbook-xml, docbook-xsl, elfutils, enscript, fftwf,
342fltk, fuse, gcc-toolchain, giflib, glade, gmime, gnome-desktop, gnubg, gnubik,
343gnumach-headers, gnunet, gnuplot, gnurl, gphoto2, gtkglext, guile-json,
344guile-reader-for-guile_2.0.11, gxmessage, hdf5, hurd-headers, inkscape, iotop,
345isc-dhcp, iso-codes, jnettop, libatomic-ops, libexif, libgphoto2, libmpcdec,
346libmpdclient, libotr, libpcap, libpeas, libpipeline, libtirpc, libwebsockets,
347ltrace, luajit, lynx, man-db, mc, mig, miniupnpc, moe, mpc123, mpd, ncdc,
348ncdu, ncmpc, neon, neon, octave, opus, paperkey, patchutils, perl-tk,
349perl-x11-protocol, pinentry, python2-element-tree, python2-pybugz, quilt,
350source-highlight, stalonetray, trueprint, ttf-dejavu, unionfs-fuse,
351unionfs-fuse-static, uucp, vera, windowmaker, xapian, xterm
352
353*** 90 package updates
354
355apl-1.3, autoconf-2.68, automake-1.14.1, bash-4.3, bash-light-4.3,
356bigloo-4.1a, binutils-2.24, binutils-static-stripped-tarball-2.24,
357coreutils-8.22, curl-7.35.0, ed-1.10, ffmpeg-2.1.4, file-5.18, freeipmi-1.4.1,
358gcc-4.8.2, gcc-4.8.2, gdb-7.7, gdbm-1.11, gettext-0.18.3.2, glib-2.39.1,
359glibc-2.19, glibc-stripped-tarball-2.19, global-6.2.12, glpk-4.54,
360gnu-pw-mgr-1.2, gnupg-1.4.16, gnutls-3.2.12, gp2c-0.0.8pl1, grep-2.18,
361gst-plugins-base-0.10.36, gstreamer-1.0.10, gtk+-3.10.1, gtkmm-2.24.2,
362guile-2.0.11, guile-ssh-0.6.0, guile-static-stripped-tarball-2.0.11,
363guile-wm-1.0, guile-xcb-1.3, guix-0.5, help2man-1.45.1, icu4c-52.1,
364imagemagick-6.8.8-10, inetutils-1.9.2, lapack-3.5.0, libcdio-0.92,
365libdrm-2.4.46, libextractor-1.3, libgc-7.2e, libgc-7.4.0, libgcrypt-1.6.1,
366libjpeg-9, libmicrohttpd-0.9.34, libssh-0.6.3, libtasn1-3.4, lightning-2.0.3,
367linux-libre-3.13.7, mpc-1.0.2, mutt-1.5.23, net-base-5.2, ocrad-0.23,
368openssh-6.6p1, openssl-1.0.1g, parallel-20140322, pari-gp-2.7.0, pspp-0.8.2,
369pulseaudio-5.0, python-2.7.6, python-3.3.5, python-wrapper-3.3.5,
370python2-pysqlite-2.6.3a, qemu-1.7.1, qemu-headless-1.7.1,
371qemu-with-multiple-smb-shares-1.7.1, qt-4.8.5, qt-5.2.0, readline-6.3,
372recutils-1.7, slim-1.3.6, sqlite-3.8.4.3, subversion-1.7.14, texinfo-4.13a,
373tor-0.2.4.21, tzdata-2014a, units-2.11, valgrind-3.9.0, vim-7.4, wget-1.15,
374xnee-3.18, xorriso-1.3.6.pl01, zile-2.4.11
375
b0f981f0
LC
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
381** Bugs fixed
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)
393
a043ac04
LC
394* Changes in 0.5 (since 0.4)
395** Package management
396*** GNU package descriptions synchronized with the ‘gnumaint’ repository
397
398In addition to synopses, descriptions of GNU packages are now kept in sync
399with the ‘gnumaint’ repository, which is the canonical place for GNU package
400meta-data.
401
402** Programming interfaces
403*** Patches are now listed as part of ‘origin’
404
405The ‘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.
408
409*** New (guix monads) monadic interface to operate on the store
410
411See “The Store Monad” in the manual. The (gnu system …) modules have been
412rewritten to use this monadic interface.
413
414*** New (guix profiles) module
415
416It provides an API for dealing with profiles, as with the ‘guix package’
417command.
418
419*** New (gnu system) module
420
4a8c5617
AE
421This module provides a generic way to describe the system’s configuration,
422and to instantiate it, regardless of the final medium (QEMU image, etc.)
a043ac04
LC
423See “System Configuration” in the manual.
424
425This is work in progress. Send feedback to guix-devel@gnu.org!
426
427*** ‘build-expression->derivation’ uses more parameters
428
429Some positional parameters have been changed to keyword parameters.
430See “Derivations” in the manual.
431
432** GNU distribution
433*** New port to the Loongson MIPS64 processors, n32 ABI (‘mips64el-linux’)
434
4a8c5617 435Bootstrap binaries have been built for that architecture, and several
a043ac04
LC
436Loongson-specific patches not yet available upstream have been applied to core
437packages. See “GNU Distribution” and “Porting” in the manual.
438
439Pre-built binaries are not yet available via hydra.gnu.org, so Guix will
4a8c5617 440build from source on this platform.
a043ac04 441
5d6dbd29
LC
442*** 110 new packages
443
444acct, alive, alsa-utils, apl, at-spi2-atk, at-spi2-core, atkmm, autogen,
445automoc4, brasero, bridge-utils, cairomm, catkin, complexity, evince, ffmpeg,
446fftw, ftgl, gcc-objc, gcc-objc++, gccgo, gcl, gfortran, glibmm, glpk,
447gnome-icon-theme, gnu-pw-mgr, gp2c, gpgme, gsettings-desktop-schemas, gtkmm,
448gtksourceview, guile-ssh, guile-wm, gvpe, hicolor-icon-theme, httpd, icecat,
449icon-naming-utils, json-c, lapack, libcanberra, libcap, libgnome-keyring,
450libmikmod, libnl, libnotify, libsamplerate, libsigc++, libsndfile, libssh,
451libtheora, libxkbcommon, mercurial, mtools, netcat, pangomm, parallel,
452pavucontrol, pciutils, pem, perl-encode-locale, perl-file-list,
453perl-file-listing, perl-html-parser, perl-html-tagset, perl-http-cookies,
454perl-http-daemon, perl-http-date, perl-http-message, perl-http-negotiate,
455perl-io-html, perl-libwww, perl-libxml, perl-lwp-mediatypes, perl-net-http,
456perl-uri, perl-www-robotrules, perl-xml-dom, perl-xml-regexp, perl-xml-simple,
457phonon, powertop, pulseaudio, python2-dogtail, python2-empy, qemu-headless,
458qt, qt, raptor2, scons, sdl, sdl-gfx, sdl-image, sdl-mixer, sdl-net, sdl-ttf,
459sdl2, serveez, shared-mime-info, sharutils, skribilo, slim, soprano, swig,
460xcb-util, xcb-util-image, xcb-util-keysyms, xcb-util-renderutil, xcb-util-wm
461
462*** 47 package updates
463
464atk 2.10.0, bison 3.0.2, cmake 2.8.12, dmd 0.1, freeipmi 1.3.3, gcc 4.8.2,
465gcc 4.8.2, gcc-cross-mips64el-linux-gnuabi64 4.8.2, gcc-stripped-tarball 4.8.2,
466gdb 7.6.2, gettext 0.18.3.1, glib 2.38.0, global 6.2.9, gmp 5.1.3,
467gnupg 2.0.22, gobject-introspection 1.38.0, grep 2.15, gsl 1.16,
468gtk+ 2.24.21, gtk+ 3.10.1, guile 2.0.9, guile 2.0.9, guile-xcb 1.2,
469harfbuzz 0.9.22, hello 2.9, iproute2 3.12.0, libdrm 2.4.46,
470libextractor 1.2, libjpeg 9, libmicrohttpd 0.9.32, lightning 2.0.2,
471linux-libre 3.12, lzip 1.15, make 4.0, mit-krb5 1.11.3, pari-gp 2.5.5,
472pixman 0.32.4, python 3.3.2, qemu 1.6.1,
473qemu-with-multiple-smb-shares 1.6.1, rcs 5.9.2, recutils 1.6, rsync 3.1.0,
474tar 1.27.1, texinfo 5.2, units 2.02, xorriso 1.3.2
a043ac04
LC
475
476*** Packages are now built with GCC 4.8.2 by default (was 4.7.3)
477
478** Native language support
479*** New ‘sr’ (Serbian) translation
480*** New ‘vi’ (Vietnamese) translation
481*** Updated ‘pt_BR’ (Brazilian Portuguese) translation
482** Bugs fixed
4a8c5617 483*** ‘guix pull’ compiles Guix deterministically and correctly
a043ac04
LC
484
485Previously, the build environment was not cleared in between ‘compile-file’
486calls, leading to build errors due to Guile bug http://bugs.gnu.org/15602 .
487
488*** ‘guix package’ allows removal of a specific package output
489 (http://bugs.gnu.org/15756)
5d6dbd29
LC
490*** ‘guix-daemon’ always sets umask to 022
491 (http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00033.html)
a043ac04 492*** Files referenced by environment variables are protected from GC
5d6dbd29 493*** Yet unbuilt packages get correctly installed (http://bugs.gnu.org/15283)
a043ac04
LC
494*** ‘bootstrap-graph.{png,eps,pdf}’ built in srcdir (http://bugs.gnu.org/15640)
495
8f37bf62
LC
496* Changes in 0.4 (since 0.3)
497
498** Package management
499
500*** New ‘--list-generations’ and ‘--delete-generations’ options
501
502The ‘guix package’ command has these two new options, which make it easier to
503deal with a profile’s generation. See “Invoking guix package” in the manual.
504
505*** New ‘guix-register’ program
506
507This program allows the meta-data of a new store to be initialized, by
508copying info from an existing store. It is mostly an internal tool.
509
510** Programming interfaces
511
512*** New API to bootstrap Autotools-based packages
513
514The (guix build-system gnu) has a new ‘dist-package’ procedure that takes a
515package object and source directory, and returns a new package object that
516runs ‘./bootstrap && make dist’ or anything similar.
517
518*** ‘derivation’ and related procedures have a #:references-graphs parameter
519
520This parameter instructs the build daemon to populate the derivation’s build
521tree with files containing the list of references of the given store files.
522This is useful to write code that copies a packages and all its dependencies
523to another storage device, such as a QEMU disk image.
524
525*** Extended API to build a GNU system virtual machine image
526
527The (gnu system vm) module has been augmented in many ways: the ‘qemu-image’
528procedure 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
530system, has ‘login’ running on several consoles, has a set of installed
531packages, and where Guix can be used.
532
533New (gnu system …) modules have been added to handle the configuration of the
534various parts of a GNU/Linux system. For instance, (gnu system dmd) provides
535support for instantiating dmd services; (gnu system linux) helps with Linux
536PAM configuration; and so on.
537
538*** <derivation> objects supersede .drv file names in the API
539
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
542a <derivation> object. The <derivation> object embeds the corresponding .drv
543file name. See “Derivations” in the manual for details.
544
545** GNU distribution
546
6bf3e5f7
LC
547*** 60 new packages
548
549apr, apr-util, cdparanoia, dbus-glib, dfc, dmd, dvdisaster, exiv2, fetchmail,
550freefont-ttf, freeglut, geeqie, git, gkrellm, glu, gnome-doc-utils,
551gst-plugins-base, gstreamer, guile-cairo, guile-lib, guile-xcb, guix, htop,
552itstool, lame, libextractor, libmicrohttpd, lightning, lzip, mingetty, mutt,
553net-base, net-tools, ocrad, pspp, python-babel, python-dateutil, python-pytz,
554python-setuptools, python-simplejson, python-wrapper, python2-babel,
555python2-dateutil, python2-mechanize, python2-pyicu, python2-pysqlite,
556python2-pytz, python2-setuptools, python2-simplejson, qemu-system-initrd,
557qemu-with-multiple-smb-shares, ripperx, shadow, ttf-bitstream-vera, units,
558valgrind, xmlto, xnee, yasm
559
560*** 27 package updates
561
562bigloo 4.0b, cairo 1.12.16, ddrescue 1.17, fontconfig 2.10.93, fplll 4.0.4,
563gcc 4.7.3, gcc 4.7.3, glibc 2.18, glibc 2.18, glibc-stripped-tarball 2.18,
564gnupg 2.0.21, gnutls 3.2.4, guile 2.0.9, guile 2.0.9, harfbuzz 0.9.21,
565imagemagick 6.8.6-9, libdrm 2.4.46, libgcrypt 1.5.3, libjpeg 9, libksba 1.3.0,
566linux-libre 3.11, m4 1.4.17, mpfrcx 0.4.2, pari-gp 2.5.4, python 2.7.5, python
5673.3.2, texlive 2013
8f37bf62
LC
568
569*** Fontconfig font search path made more convenient
570
571Fontconfig, the library used by many graphical applications, such as those
572based on GTK+, now knows where to find the default set of fonts. Additional
573fonts installed in the user profile are automatically picked up.
574
575*** More GUI applications
576
577The ‘emacs’ and ‘racket’ packages are now linked against GTK+. New GTK+
578applications have been added (see above.)
579
580*** Packaging guidelines
581
582The documentation of packaging guidelines has been augmented. See the manual
583under “GNU Distribution”.
584
585*** Support for Python 3 along with Python 2
586
587Python 3 has been added to the distribution, and Python packages that support
588it are now built for both Python 2 and Python 3. See the “Python Modules”
589section of the manual for details.
590
591** Internationalization
592
593Updated translations: eo.
594
595** Bugs fixed
596
6bf3e5f7 597*** Workarounds for Guile 2.0.5 now work on Debian derivatives
8f37bf62 598*** The dependency graph image has correct size in PDF output
6bf3e5f7 599*** 'ldd' now works correctly on x86_64
8f37bf62 600*** Xorg server test suite no longer fails (http://bugs.gnu.org/15392)
bb5f01c5 601*** module-init-tools now builds (http://bugs.gnu.org/15182, http://bugs.gnu.org/15187)
6bf3e5f7 602*** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194)
85f3a05e 603
d1495831
LC
604* Changes in 0.3 (since 0.2)
605
606** Package management
bdbb6fbb
LC
607
608*** Cross-compilation support
609
610Guix can now cross-build packages. On the command-line, this is achieved with
611the new ‘--target’ command-line option of ‘guix build’. At the Scheme level,
612the guts of this is the ‘package-cross-derivation’ procedure. Core packages
613of the distribution can already be cross-compiled. See the manual for
614details.
615
d1495831
LC
616*** New ‘--max-silent-time’ option for “guix build” and “guix package”
617
618See the manual for details.
619
bdbb6fbb
LC
620*** New ‘--fallback’ option for “guix build” and “guix package”
621
622This option instructs to fall back to local builds when the substituter fails
623to download a substitute.
624
8e59fdd5
LC
625*** New ‘--requisites’ option for “guix gc”
626
627See the manual for details.
628
5939006b
LC
629*** New ‘--key-download’ option for “guix refresh”
630
631See the manual for details.
42300254
LC
632
633** Programming interfaces
634
5939006b
LC
635*** New ‘package-cross-derivation’ procedure in (guix derivations)
636
637See the manual for details.
638
639*** New ‘%current-target-system’ SRFI-39 parameter
640
641This parameter is like ‘%current-system’, but for cross-compilation. It
642allows code in package definitions (such as in the ‘arguments’ field) to know
643whether it is being cross-compiled, and what the target system is.
644
42300254
LC
645*** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures
646
647This improves performance of SHA256 computations.
648
5939006b
LC
649
650** GNU distribution
651
3253830d 652*** 33 new packages
5939006b 653
3253830d
LC
654alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd,
655gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2,
656iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket,
657rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore
5939006b 658
3253830d 659*** 25 package updates
5939006b 660
3253830d
LC
661automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3,
662glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8,
663libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error
6641.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu
6651.5.1, tzdata 2013d, xorriso 1.3.0
5939006b
LC
666
667*** Binary packages now available for i686-linux
668
669The 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
671transparently used as substitutes for local builds on these platforms.
672
673*** Debug info packages
674
675Some 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
677other outputs of the package. See “Installing Debugging Files” in the manual.
678
679*** Bootstrap binaries can be cross-compiled
680
681The distribution can now be ported to new architectures (currently
682GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting”
683in the manual.
684
685*** Bootstrapping documented
686
687See “Bootstrapping” in the manual, for information on how the GNU
688distribution builds “from scratch”.
689
690** Internationalization
691
692New translations: eo, pt_BR.
693
d1495831
LC
694** Bugs fixed
695*** “guix --help” now works when using Guile 2.0.5
696*** Binary substituter multi-threading and pipe issues fixed
697
698These could lead to random substituter crashes while substituting a binary.
699See commits 0332386 and 101d9f3 for details.
700
bdbb6fbb
LC
701*** Binary substituter gracefully handles lack of network connectivity
702
16357e8c
LC
703*** Daemon properly handles rebuilds of multiple-output derivations
704
705Previously it would fail when rebuilding a multiple-output derivation when
706some (but not all) of its outputs were already present. See
707http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and
708https://github.com/NixOS/nix/issues/122 .
709
5939006b
LC
710*** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’
711
712Previously only the ‘out’ output of package ‘foo’ would be kept in the
713profile.
714
3253830d
LC
715*** Replacement (srfi srfi-37) provided if the user’s one is broken
716
717When 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
719command-line argument processing in some cases.
720
85f3a05e
LC
721* Changes in 0.2 (since 0.1)
722
4056b828
LC
723** Package management
724
725*** Guix commands are now sub-commands of the “guix” program
726
727Instead of typing “guix-package”, one now has to type “guix package”, and so
728on. This has allowed us to homogenize the user interface and initial program
729setup, and to allow commands to be upgradable through “guix pull”.
730
06504acb
LC
731*** New “guix package --upgrade” option
732
733As the name implies, this option atomically upgrades all the packages
e3729544
LC
734installed in a profile or the set of packages matching a given regexp.
735See “Invoking guix package” in the manual.
06504acb 736
0f241da2
LC
737*** New “guix package --search” option
738
739Performs a full text search in package synopses and descriptions, and returns
740the matching packages in recutils format. See “Invoking guix package” in the
741manual, for details.
742
4056b828
LC
743*** New “guix pull” command
744
745The command pulls the latest version of Guix–both the package management
746modules and the distribution. See the manual for details.
747
748*** New binary substituter
749
750The “substituter” mechanism allows pre-built binaries to be transparently
751downloaded instead of performing a build locally. Currently binaries are
0f241da2
LC
752available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
753distribution is continuously built and binaries are made available from there.
754
755See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
756available binary packages.
4056b828
LC
757
758*** New “guix refresh” command
759
760The command is used by Guix maintainers. It automatically updates the
761distribution to the latest upstream releases of GNU software.
762
763*** New “guix hash” command
764
765Convenience command to compute the hash of a file. See the manual for
766details.
767
0f241da2 768*** Nix daemon code updated
4056b828 769
0f241da2
LC
770The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
771to current Nix ‘master’.
4056b828
LC
772
773** Programming interfaces
774
0f241da2
LC
775*** (guix download) now supports HTTPS, using GnuTLS
776
777It allows package source tarballs to be retrieved over HTTPS.
778
4056b828
LC
779*** New ‘native-search-path’ and ‘search-path’ package fields
780
781Packages can define in their ‘native-search-path’ field environment variables
782that define search paths and need to be set for proper functioning of the
783package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
784‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
785These environment variables are automatically set when building a package that
786uses one of these.
787
788*** Package inputs can be a function of the target system type
789
790The ‘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
792tarballs as inputs, such as GNU/MIT Scheme.
793
794*** New build systems
795
796The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
797been added. They implement the standard build systems for Perl, Python, and
798CMake packages.
799
47d18810
LC
800*** Tools to build Linux initrds, QEMU images, and more
801
802The (gnu packages linux-initrd) module provides a procedure to build a Linux
803initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
804evaluate the given expression. The example below returns an initrd that
805mounts the /proc file system and starts a REPL:
806
807 (expression->initrd
808 '(begin
809 (mkdir "/proc")
810 (mount "none" "/proc" "proc")
811 ((@ (system repl repl) start-repl))))
812
813More examples in the linux-initrd.scm file.
814
815Experimental 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
818a QEMU virtual machine running the Linux kernel and Guile.
819
4056b828
LC
820** GNU distribution
821
822Many updates and additions have been made to the distribution. Here are the
823highlights.
824
825*** Major updates
826
827GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
828Coreutils 8.20, GDB 7.6, Texinfo 5.1.
829
830*** Noteworthy new packages
831
0f241da2
LC
832TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
833CHICKEN, Scheme48, Hugs, Python, Lua, Samba.