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