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