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