gnu: Add git-manpages.
[jackhill/guix/guix.git] / NEWS
1 -*- org -*-
2 #+TITLE: Guix NEWS – history of user-visible changes
3 #+STARTUP: content hidestars
4
5 Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
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
11 Please send Guix bug reports to bug-guix@gnu.org.
12
13 * Changes in 0.8 (since 0.7)
14
15 ** Package management
16
17 *** New visual user interface in Emacs
18
19 See “Emacs Interface” in the manual.
20
21 *** New ‘guix environment’ command to produce development environment
22
23 See “Invoking guix environment” in the manual.
24
25 *** The ‘guix import’ command has been extended and documented
26
27 It can now import packages from pypi.python.org and from GNU.
28 See “Invoking guix import” in the manual.
29
30 *** New ‘guix lint’ command, for use by Guix developers
31
32 See “Invoking guix lint” in the manual.
33
34 *** Packages can now be “grafted” with replacements of their dependencies
35
36 See “Security Updates” in the manual.
37
38 *** The distribution can be extended with ‘--load-path’ or $GUIX_PACKAGE_PATH
39
40 This allows users to maintain their own package definitions, and make them
41 visible to the various user interfaces. See “Package Modules” in the manual.
42
43 *** ‘guix package’ better reports package upgrades
44
45 *** ‘guix package’ has a new ‘--switch-generation’ option
46
47 See “Invoking guix package” in the manual.
48
49 *** ‘guix-daemon’ has a new ‘--substitute-urls’ option
50
51 See “Invoking guix-daemon” in the manual.
52
53 ** Distribution
54
55 *** The stand-alone operating system now supports Linux mapped devices
56
57 See “Mapped Devices” in the manual.
58
59 *** New fields in ‘operating-system’ declarations, better documentation
60
61 New fields include ‘hosts-file’, ‘mapped-devices’, and ‘swap-devices’.
62 See “operating-system Reference” in the manual.
63
64 *** New services: ‘dhcp-client-service’, ‘bitlbee-service’, ‘ntp-service’
65
66 See “Services” in the manual.
67
68 *** Free firmware can be loaded
69
70 This notably enables support for some Atheros-based WiFi devices (ath9k-htc.)
71 See “operating-system Reference” in the manual.
72
73 *** ‘grub-configuration’ declarations can now specify a theme
74
75 See “GRUB Configuration” in the manual.
76
77 *** The ‘base-initrd’ now has a different signature
78
79 Existing 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
86 See “Invoking guix system” in the manual.
87
88 *** The ‘file’ command is now part of the package build environment
89
90 Autoconf-generated ‘configure’ scripts for packages using Libtool use ‘file’
91 to determine the target ABI, notably on MIPS, hence this change.
92
93 *** 162 new packages
94
95 abiword, acpica, adns, arb, ath9k-htc-firmware, atlas, avrdude, cppunit,
96 dblatex, detox, dfu-programmer, dionysus, direvent, dmidecode, dri3proto,
97 emacs-no-x-toolkit, emacs-w3m, emacs-wget, enchant, eudev, feh, flashrom,
98 flint, fontforge, freedink, freeimage, fribidi,
99 gcc-cross-sans-libc-xtensa-elf, giblib, gnome-themes-standard, gpsbabel,
100 gpscorrelate, graphite2, gtypist, guile-charting, guile-sdl, imake, imlib2,
101 irrlicht, jbig2dec, libpsl, libspiro, libuninameslist, libwmf, lm-sensors,
102 magit, minetest, miscfiles, mozjs, mupdf, nix, nspr, nss-mdns, ntp, nvi, opam,
103 openal, openjpeg, opus-tools, orpheus, ots, oxygen-icons, paredit, perf,
104 perl-archive-zip, perl-dbd-sqlite, perl-dbi, perl-image-exiftool,
105 perl-io-socket-ssl, perl-net-ssleay, perl-www-curl, perl-zip, polkit,
106 polkit-qt, postgresql, potrace, presentproto, python-certifi, python-coverage,
107 python-cython, python-discover, python-docutils, python-exif-read,
108 python-extras, python-fixtures, python-itsdangerous, python-jinja2,
109 python-jsonschema, python-markupsafe, python-mimeparse, python-nose,
110 python-oauthlib, python-py, python-pygments, python-pyjwt, python-pyld,
111 python-pytest, python-scripttest, python-sphinx, python-subunit,
112 python-testrepository, python-testresources, python-testscenarios,
113 python-testtools, python-unidecode, python-unittest2, python-virtualenv,
114 python2-certifi, python2-coverage, python2-cython, python2-discover,
115 python2-docutils, python2-exif-read, python2-extras, python2-fixtures,
116 python2-itsdangerous, python2-jinja2, python2-jsonschema, python2-markupsafe,
117 python2-mimeparse, python2-nose, python2-oauthlib, python2-py,
118 python2-pygments, python2-pyjwt, python2-pyld, python2-pytest,
119 python2-requests, python2-scripttest, python2-sphinx, python2-subunit,
120 python2-testrepository, python2-testresources, python2-testscenarios,
121 python2-testtools, python2-unidecode, python2-unittest2, python2-virtualenv,
122 rrdtool, ruby, ruby, ruby-i18n, sane-backends, scrot, sound-theme-freedesktop,
123 stress, synergy, tdb, terminus-font, testdisk, texi2html, tiled, transfig,
124 unclutter, unixodbc, weechat, wv, xboing, xf86-video-modesetting, xfig,
125 xsensors, zsh
126
127 *** 117 package updates
128
129 acct-6.6.2, acl-2.2.52, apl-1.4, apr-1.5.1, apr-util-1.5.3, autoconf-2.68,
130 autoconf-2.69, autogen-5.18.4, bash-4.3.30, bash-light-4.3.30, bazaar-2.6.0,
131 bison-2.7, calcurse-3.2.1, ccache-3.1.10, chicken-4.9.0.1, coreutils-8.23,
132 curl-7.37.1, datamash-1.0.6, dbus-1.8.8, docbook-xml-4.2, docbook-xml-4.4,
133 docbook-xml-4.5, emacs-24.4, ffmpeg-2.2.10, ffmpeg-2.4.3, file-5.19,
134 file-5.20, freeipmi-1.4.5, gcc-4.7.4, gcc-4.9.2, gcc-toolchain-4.9.2,
135 gcl-2.6.11, gdb-7.8.1, geiser-0.6, gettext-0.19.3, git-2.1.2, glibc-2.20,
136 glibc-2.20, glibc-stripped-tarball-2.20, global-6.3.2, glpk-4.55,
137 gnupg-1.4.18, gnupg-2.0.26, gnurl-7.37.0, gnutls-3.2.20, gpgme-1.5.1,
138 gst-plugins-base-1.0.10, gstreamer-1.0.10, gtk+-3.10.1, gtkmm-3.9.16,
139 guile-1.8.8, guile-json-0.4.0, guile-ncurses-1.6, guile-ssh-0.7.1, guix-0.7,
140 guix-0.7.48bd76e, hello-2.10, help2man-1.46.3, icecat-31.2.0,
141 libart-lgpl-2.3.21, libassuan-2.1.3, libatomic-ops-7.4.2, libdrm-2.4.33,
142 libffi-3.1, libgc-7.2f, libgc-7.4.2, libgcrypt-1.5.4, libgcrypt-1.6.2,
143 libidn-1.29, libjpeg-9a, libotr-4.0.0, libsodium-1.0.0, libtasn1-4.1,
144 libunistring-0.9.4, libwebsockets-1.3, lightning-2.0.5, linux-libre-3.17.3,
145 lsof-4.88, lua-5.2.3, lvm2-2.02.109, lzip-1.16, make-4.1, maxima-5.34.1,
146 mit-scheme-9.2, mysql-5.1.73, neon-0.30.0, net-base-5.3, nettle-2.7.1,
147 notmuch-0.18.1, openssh-6.7p1, openssl-1.0.1j, parallel-20141022,
148 phonon-4.8.2, pspp-0.8.4, python-3.3.5, python-dateutil-1.5,
149 python2-dateutil-1.5, python2-pyicu-1.8, qt-4.8.6, qt-5.3.2, rcs-5.9.3,
150 readline-6.3, subversion-1.7.18, swig-3.0.2, tar-1.28, texinfo-5.2,
151 tor-0.2.5.10, transmission-2.84, ucommon-6.1.11, valgrind-3.10.0, vlc-2.1.5,
152 wget-1.16, windowmaker-0.95.6, xapian-1.2.18, xf86-video-ati-6.14.6,
153 xpdf-3.04, youtube-dl-2014.09.06
154
155 ** Programming interfaces
156
157 *** New ‘ruby-build-system’, for Ruby packages
158
159 See “Build Systems” in the manual.
160
161 *** New ‘glib-or-gtk-build-system’, for packages using GLib schemas
162
163 See “Build Systems” in the manual.
164
165 *** ‘gnu-build-system’ has a new #:substitutable? parameter
166
167 This allows packagers to mark a package as requiring a local build, thus
168 preventing it from being substituted by a pre-built binary.
169
170 *** ‘cmake-build-system’ has a new #:build-type parameter
171
172 See “Build Systems” in the manual.
173
174 *** The ‘supported-systems’ field of packages is used more consistently
175
176 This allows packagers to prevent attempts to build a package on a given
177 architecture when that architecture is known not to be supported. The
178 ‘package-transitive-supported-systems’ procedure returns the intersection of
179 the 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
185 They 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
190 and derivations. See “Build Systems” in the manual.
191
192 *** New (guix monad-repl) module, for monadic interaction at the REPL
193
194 See “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
204 Also, the (gnu build linux-boot) module has been introduced, with code
205 typically used by initial RAM disks when booting on GNU/Linux-libre.
206
207 *** (guix profiles) provides a representation of package transactions
208
209 This factorizes code between ‘guix package’ and the Emacs user interface.
210
211 *** Bootstrapping packages moved to (gnu packages commencement) modules
212
213 ** Bugs fixed
214
215 *** ‘guix-daemon’ now really deduplicates store items by default
216
217 Deduplication means that identical files found in /gnu/store are stored only
218 once, using hard links. This feature was wrongfully disabled, and is now
219 enabled by default. The former ‘--disable-store-optimization’ option has been
220 renamed to ‘--disable-deduplication’.
221
222 *** ‘guix-daemon’ no longer uses ‘vfork’
223
224 This 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>)
254 *** WindowMaker no longer pollutes $PATH (<http://bugs.gnu.org/18698>)
255
256 ** Native language support
257 *** New translation: cs (Czech)
258 *** Updated translations: de, sr, vi
259
260 * Changes in 0.7 (since 0.6)
261 ** Package management
262 *** Binaries for mips64el-linux now available from hydra.gnu.org
263
264 These come in addition to the x86_64-linux and i686-linux binaries already
265 provided, thanks to our generous donor and friendly admins. See
266 “Substitutes” in the manual.
267
268 *** ‘guix package’ has a new ‘--show’ option
269 *** ‘guix refresh’ has a new ‘--list-dependent’ option
270
271 ** Programming interfaces
272 *** New (guix gexp) module, which implements “G-expressions”
273
274 G-expressions are a new mechanism to embed build-side code in host-side
275 code. See “G-Expressions” in the manual.
276
277 *** (gnu system) and related modules now use G-expressions
278
279 This greatly simplifies code, and guarantees that build code carries
280 references 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
293 This 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
298 This is the first time an installation image is provided. See “System
299 Installation” in the manual for details. This is work in progress as noted
300 in “Limitations”. Your feedback and help are welcome!
301
302 *** Support for more parameters in ‘operating-system’ declarations
303
304 Operating system declarations can now provide a list of file systems, a list
305 of setuid programs, bootloader options, and more. See “System Configuration”
306 in the manual.
307
308 *** ‘guix system’ supports more actions
309
310 Newly supported actions are ‘init’, ‘build’, ‘reconfigure’, and ‘disk-image’.
311 See “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>)
317 *** 134 new packages
318
319 abbaye, aegis, attica, babl, barcode, behave, btar, busybox, ccache, ccrtp,
320 chess, clucene, cmatrix, commoncpp, conkeror, cook, cssc, datamash, diffstat,
321 doxygen, dropbear, dtach, duplicity, e2fsck-static, exosip, fftw-openmpi,
322 fish, gconf, gegl, gimp, gmsh, gnome-mime-data, gnome-vfs, gnumeric, goffice,
323 gsegrafix, guile-opengl, guile-static-stripped, hdup, hwloc, inotify-tools,
324 jrnl, kbd, kmod, lftp, libarchive, libart-lgpl, libbonobo, libbonoboui,
325 libcroco, libdbusmenu-qt, libftdi, libglade, libgnome, libgnomecanvas,
326 libgnomeprint, libgnomeprintui, libgnomeui, libgsf, libidl, libmcrypt,
327 libmhash, librsvg, librsync, libsodium, libuv, libvpx, links, lzop, man-pages,
328 maxima, mcrypt, mosh, mpg123, mplayer, mu, ncmpcpp, node, notmuch, numactl,
329 offlineimap, openmpi, orbit2, osip, pangox-compat, perl-io-tty, petsc,
330 petsc-complex, petsc-complex-openmpi, petsc-openmpi, pingus, podofo, protobuf,
331 pt-scotch, python-enum34, python-keyring, python-lockfile, python-mock,
332 python-parse, python-parse-type, python-parsedatetime, python-pycrypto,
333 python-six, python-tzlocal, python2-lockfile, python2-mock, qjson, qrencode,
334 rasqal, rdiff-backup, rdup, redland, rottlog, scotch, sipwitch, sshfs-fuse,
335 strigi, sudo, superlu, superlu-dist, talkfilters, talloc, tcpdump, tinyproxy,
336 transmission, ucommon, udev, vlc, vtk, wakelan, wireless-tools,
337 wpa-supplicant, xboard, youtube-dl
338
339 *** 87 package updates
340
341 bitlbee-3.2.2, cursynth-1.5, ddrescue-1.18.1, dfc-3.0.4, dmd-0.2,
342 docbook-xml-4.3, docbook-xml-4.4, docbook-xsl-1.78.1, dvdisaster-0.72.6,
343 ffmpeg-2.3, fftw-3.3.4, fftwf-3.3.4, flac-1.3.0, gawk-4.1.1, gcc-4.7.4,
344 gcc-4.8.3, gcc-4.8.3, gcc-4.9.1, gcc-cross-mips64el-linux-gnuabi64-4.8.3,
345 gcc-objc++-4.8.3, gcc-objc-4.8.3, gcc-stripped-tarball-4.8.3,
346 gcc-toolchain-4.8.3, gcc-toolchain-4.9.1, gccgo-4.8.3, gdb-7.7.1,
347 gettext-0.19.2, gfortran-4.8.3, glib-2.40.0, global-6.3, gmp-6.0.0a,
348 gnupg-1.4.18, gnupg-2.0.25, gnutls-3.2.15, gp2c-0.0.9pl1, grep-2.20,
349 gst-plugins-base-1.0.10, gstreamer-0.10.36, gtk+-3.10.1, gtkmm-2.24.2,
350 guile-2.0.11, guile-2.0.11, guix-0.6, guix-0.6.0ae8c15, htop-1.0.3,
351 icu4c-53.1, imagemagick-6.8.9-0, json-c-0.12, libdrm-2.4.33, libgc-7.2e,
352 libgcrypt-1.5.3, libgpg-error-1.13, libjpeg-8d, libmicrohttpd-0.9.37,
353 libogg-1.3.2, libotr-4.0.0, libtasn1-3.6, libvorbis-1.3.4, lightning-2.0.4,
354 linux-libre-3.15.6, lua-5.1.5, lua-5.2.3, mcron-1.0.8, moe-1.6, nano-2.3.6,
355 neon-0.29.6, nettle-3.0, openssl-1.0.1h, parallel-20140722, pari-gp-2.7.1,
356 pspp-0.8.3, python-2.7.6, python-dateutil-2.2, python2-dateutil-2.2,
357 qemu-2.0.0, qemu-headless-2.0.0, qt-4.8.6, qt-5.2.1, readline-6.2,
358 screen-4.2.1, soprano-2.9.4, texinfo-5.2, texlive-2014, tor-0.2.4.22,
359 wdiff-1.2.2, xorriso-1.3.8, xterm-304
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
375 * Changes in 0.6 (since 0.5)
376 ** Package management
377 *** Default store directory changed to /gnu/store
378
379 Although it is still possible to configure Guix to use the old store
380 directory, 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
402 *** 91 new packages
403
404 a2ps, asciidoc, aspell-dict-en, aspell-dict-eo, aspell-dict-es,
405 aspell-dict-fr, aumix, bitlbee, bogofilter, boost, calcurse, clusterssh,
406 corkscrew, cursynth, docbook-xml, docbook-xsl, elfutils, enscript, fftwf,
407 fltk, fuse, gcc-toolchain, giflib, glade, gmime, gnome-desktop, gnubg, gnubik,
408 gnumach-headers, gnunet, gnuplot, gnurl, gphoto2, gtkglext, guile-json,
409 guile-reader-for-guile_2.0.11, gxmessage, hdf5, hurd-headers, inkscape, iotop,
410 isc-dhcp, iso-codes, jnettop, libatomic-ops, libexif, libgphoto2, libmpcdec,
411 libmpdclient, libotr, libpcap, libpeas, libpipeline, libtirpc, libwebsockets,
412 ltrace, luajit, lynx, man-db, mc, mig, miniupnpc, moe, mpc123, mpd, ncdc,
413 ncdu, ncmpc, neon, neon, octave, opus, paperkey, patchutils, perl-tk,
414 perl-x11-protocol, pinentry, python2-element-tree, python2-pybugz, quilt,
415 source-highlight, stalonetray, trueprint, ttf-dejavu, unionfs-fuse,
416 unionfs-fuse-static, uucp, vera, windowmaker, xapian, xterm
417
418 *** 90 package updates
419
420 apl-1.3, autoconf-2.68, automake-1.14.1, bash-4.3, bash-light-4.3,
421 bigloo-4.1a, binutils-2.24, binutils-static-stripped-tarball-2.24,
422 coreutils-8.22, curl-7.35.0, ed-1.10, ffmpeg-2.1.4, file-5.18, freeipmi-1.4.1,
423 gcc-4.8.2, gcc-4.8.2, gdb-7.7, gdbm-1.11, gettext-0.18.3.2, glib-2.39.1,
424 glibc-2.19, glibc-stripped-tarball-2.19, global-6.2.12, glpk-4.54,
425 gnu-pw-mgr-1.2, gnupg-1.4.16, gnutls-3.2.12, gp2c-0.0.8pl1, grep-2.18,
426 gst-plugins-base-0.10.36, gstreamer-1.0.10, gtk+-3.10.1, gtkmm-2.24.2,
427 guile-2.0.11, guile-ssh-0.6.0, guile-static-stripped-tarball-2.0.11,
428 guile-wm-1.0, guile-xcb-1.3, guix-0.5, help2man-1.45.1, icu4c-52.1,
429 imagemagick-6.8.8-10, inetutils-1.9.2, lapack-3.5.0, libcdio-0.92,
430 libdrm-2.4.46, libextractor-1.3, libgc-7.2e, libgc-7.4.0, libgcrypt-1.6.1,
431 libjpeg-9, libmicrohttpd-0.9.34, libssh-0.6.3, libtasn1-3.4, lightning-2.0.3,
432 linux-libre-3.13.7, mpc-1.0.2, mutt-1.5.23, net-base-5.2, ocrad-0.23,
433 openssh-6.6p1, openssl-1.0.1g, parallel-20140322, pari-gp-2.7.0, pspp-0.8.2,
434 pulseaudio-5.0, python-2.7.6, python-3.3.5, python-wrapper-3.3.5,
435 python2-pysqlite-2.6.3a, qemu-1.7.1, qemu-headless-1.7.1,
436 qemu-with-multiple-smb-shares-1.7.1, qt-4.8.5, qt-5.2.0, readline-6.3,
437 recutils-1.7, slim-1.3.6, sqlite-3.8.4.3, subversion-1.7.14, texinfo-4.13a,
438 tor-0.2.4.21, tzdata-2014a, units-2.11, valgrind-3.9.0, vim-7.4, wget-1.15,
439 xnee-3.18, xorriso-1.3.6.pl01, zile-2.4.11
440
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
459 * Changes in 0.5 (since 0.4)
460 ** Package management
461 *** GNU package descriptions synchronized with the ‘gnumaint’ repository
462
463 In addition to synopses, descriptions of GNU packages are now kept in sync
464 with the ‘gnumaint’ repository, which is the canonical place for GNU package
465 meta-data.
466
467 ** Programming interfaces
468 *** Patches are now listed as part of ‘origin’
469
470 The ‘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
476 See “The Store Monad” in the manual. The (gnu system …) modules have been
477 rewritten to use this monadic interface.
478
479 *** New (guix profiles) module
480
481 It provides an API for dealing with profiles, as with the ‘guix package’
482 command.
483
484 *** New (gnu system) module
485
486 This module provides a generic way to describe the system’s configuration,
487 and to instantiate it, regardless of the final medium (QEMU image, etc.)
488 See “System Configuration” in the manual.
489
490 This is work in progress. Send feedback to guix-devel@gnu.org!
491
492 *** ‘build-expression->derivation’ uses more parameters
493
494 Some positional parameters have been changed to keyword parameters.
495 See “Derivations” in the manual.
496
497 ** GNU distribution
498 *** New port to the Loongson MIPS64 processors, n32 ABI (‘mips64el-linux’)
499
500 Bootstrap binaries have been built for that architecture, and several
501 Loongson-specific patches not yet available upstream have been applied to core
502 packages. See “GNU Distribution” and “Porting” in the manual.
503
504 Pre-built binaries are not yet available via hydra.gnu.org, so Guix will
505 build from source on this platform.
506
507 *** 110 new packages
508
509 acct, alive, alsa-utils, apl, at-spi2-atk, at-spi2-core, atkmm, autogen,
510 automoc4, brasero, bridge-utils, cairomm, catkin, complexity, evince, ffmpeg,
511 fftw, ftgl, gcc-objc, gcc-objc++, gccgo, gcl, gfortran, glibmm, glpk,
512 gnome-icon-theme, gnu-pw-mgr, gp2c, gpgme, gsettings-desktop-schemas, gtkmm,
513 gtksourceview, guile-ssh, guile-wm, gvpe, hicolor-icon-theme, httpd, icecat,
514 icon-naming-utils, json-c, lapack, libcanberra, libcap, libgnome-keyring,
515 libmikmod, libnl, libnotify, libsamplerate, libsigc++, libsndfile, libssh,
516 libtheora, libxkbcommon, mercurial, mtools, netcat, pangomm, parallel,
517 pavucontrol, pciutils, pem, perl-encode-locale, perl-file-list,
518 perl-file-listing, perl-html-parser, perl-html-tagset, perl-http-cookies,
519 perl-http-daemon, perl-http-date, perl-http-message, perl-http-negotiate,
520 perl-io-html, perl-libwww, perl-libxml, perl-lwp-mediatypes, perl-net-http,
521 perl-uri, perl-www-robotrules, perl-xml-dom, perl-xml-regexp, perl-xml-simple,
522 phonon, powertop, pulseaudio, python2-dogtail, python2-empy, qemu-headless,
523 qt, qt, raptor2, scons, sdl, sdl-gfx, sdl-image, sdl-mixer, sdl-net, sdl-ttf,
524 sdl2, serveez, shared-mime-info, sharutils, skribilo, slim, soprano, swig,
525 xcb-util, xcb-util-image, xcb-util-keysyms, xcb-util-renderutil, xcb-util-wm
526
527 *** 47 package updates
528
529 atk 2.10.0, bison 3.0.2, cmake 2.8.12, dmd 0.1, freeipmi 1.3.3, gcc 4.8.2,
530 gcc 4.8.2, gcc-cross-mips64el-linux-gnuabi64 4.8.2, gcc-stripped-tarball 4.8.2,
531 gdb 7.6.2, gettext 0.18.3.1, glib 2.38.0, global 6.2.9, gmp 5.1.3,
532 gnupg 2.0.22, gobject-introspection 1.38.0, grep 2.15, gsl 1.16,
533 gtk+ 2.24.21, gtk+ 3.10.1, guile 2.0.9, guile 2.0.9, guile-xcb 1.2,
534 harfbuzz 0.9.22, hello 2.9, iproute2 3.12.0, libdrm 2.4.46,
535 libextractor 1.2, libjpeg 9, libmicrohttpd 0.9.32, lightning 2.0.2,
536 linux-libre 3.12, lzip 1.15, make 4.0, mit-krb5 1.11.3, pari-gp 2.5.5,
537 pixman 0.32.4, python 3.3.2, qemu 1.6.1,
538 qemu-with-multiple-smb-shares 1.6.1, rcs 5.9.2, recutils 1.6, rsync 3.1.0,
539 tar 1.27.1, texinfo 5.2, units 2.02, xorriso 1.3.2
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
548 *** ‘guix pull’ compiles Guix deterministically and correctly
549
550 Previously, the build environment was not cleared in between ‘compile-file’
551 calls, 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)
555 *** ‘guix-daemon’ always sets umask to 022
556 (http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00033.html)
557 *** Files referenced by environment variables are protected from GC
558 *** Yet unbuilt packages get correctly installed (http://bugs.gnu.org/15283)
559 *** ‘bootstrap-graph.{png,eps,pdf}’ built in srcdir (http://bugs.gnu.org/15640)
560
561 * Changes in 0.4 (since 0.3)
562
563 ** Package management
564
565 *** New ‘--list-generations’ and ‘--delete-generations’ options
566
567 The ‘guix package’ command has these two new options, which make it easier to
568 deal with a profile’s generation. See “Invoking guix package” in the manual.
569
570 *** New ‘guix-register’ program
571
572 This program allows the meta-data of a new store to be initialized, by
573 copying 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
579 The (guix build-system gnu) has a new ‘dist-package’ procedure that takes a
580 package object and source directory, and returns a new package object that
581 runs ‘./bootstrap && make dist’ or anything similar.
582
583 *** ‘derivation’ and related procedures have a #:references-graphs parameter
584
585 This parameter instructs the build daemon to populate the derivation’s build
586 tree with files containing the list of references of the given store files.
587 This is useful to write code that copies a packages and all its dependencies
588 to another storage device, such as a QEMU disk image.
589
590 *** Extended API to build a GNU system virtual machine image
591
592 The (gnu system vm) module has been augmented in many ways: the ‘qemu-image’
593 procedure 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
595 system, has ‘login’ running on several consoles, has a set of installed
596 packages, and where Guix can be used.
597
598 New (gnu system …) modules have been added to handle the configuration of the
599 various parts of a GNU/Linux system. For instance, (gnu system dmd) provides
600 support for instantiating dmd services; (gnu system linux) helps with Linux
601 PAM 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
607 a <derivation> object. The <derivation> object embeds the corresponding .drv
608 file name. See “Derivations” in the manual for details.
609
610 ** GNU distribution
611
612 *** 60 new packages
613
614 apr, apr-util, cdparanoia, dbus-glib, dfc, dmd, dvdisaster, exiv2, fetchmail,
615 freefont-ttf, freeglut, geeqie, git, gkrellm, glu, gnome-doc-utils,
616 gst-plugins-base, gstreamer, guile-cairo, guile-lib, guile-xcb, guix, htop,
617 itstool, lame, libextractor, libmicrohttpd, lightning, lzip, mingetty, mutt,
618 net-base, net-tools, ocrad, pspp, python-babel, python-dateutil, python-pytz,
619 python-setuptools, python-simplejson, python-wrapper, python2-babel,
620 python2-dateutil, python2-mechanize, python2-pyicu, python2-pysqlite,
621 python2-pytz, python2-setuptools, python2-simplejson, qemu-system-initrd,
622 qemu-with-multiple-smb-shares, ripperx, shadow, ttf-bitstream-vera, units,
623 valgrind, xmlto, xnee, yasm
624
625 *** 27 package updates
626
627 bigloo 4.0b, cairo 1.12.16, ddrescue 1.17, fontconfig 2.10.93, fplll 4.0.4,
628 gcc 4.7.3, gcc 4.7.3, glibc 2.18, glibc 2.18, glibc-stripped-tarball 2.18,
629 gnupg 2.0.21, gnutls 3.2.4, guile 2.0.9, guile 2.0.9, harfbuzz 0.9.21,
630 imagemagick 6.8.6-9, libdrm 2.4.46, libgcrypt 1.5.3, libjpeg 9, libksba 1.3.0,
631 linux-libre 3.11, m4 1.4.17, mpfrcx 0.4.2, pari-gp 2.5.4, python 2.7.5, python
632 3.3.2, texlive 2013
633
634 *** Fontconfig font search path made more convenient
635
636 Fontconfig, the library used by many graphical applications, such as those
637 based on GTK+, now knows where to find the default set of fonts. Additional
638 fonts installed in the user profile are automatically picked up.
639
640 *** More GUI applications
641
642 The ‘emacs’ and ‘racket’ packages are now linked against GTK+. New GTK+
643 applications have been added (see above.)
644
645 *** Packaging guidelines
646
647 The documentation of packaging guidelines has been augmented. See the manual
648 under “GNU Distribution”.
649
650 *** Support for Python 3 along with Python 2
651
652 Python 3 has been added to the distribution, and Python packages that support
653 it are now built for both Python 2 and Python 3. See the “Python Modules”
654 section of the manual for details.
655
656 ** Internationalization
657
658 Updated translations: eo.
659
660 ** Bugs fixed
661
662 *** Workarounds for Guile 2.0.5 now work on Debian derivatives
663 *** The dependency graph image has correct size in PDF output
664 *** 'ldd' now works correctly on x86_64
665 *** Xorg server test suite no longer fails (http://bugs.gnu.org/15392)
666 *** module-init-tools now builds (http://bugs.gnu.org/15182, http://bugs.gnu.org/15187)
667 *** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194)
668
669 * Changes in 0.3 (since 0.2)
670
671 ** Package management
672
673 *** Cross-compilation support
674
675 Guix can now cross-build packages. On the command-line, this is achieved with
676 the new ‘--target’ command-line option of ‘guix build’. At the Scheme level,
677 the guts of this is the ‘package-cross-derivation’ procedure. Core packages
678 of the distribution can already be cross-compiled. See the manual for
679 details.
680
681 *** New ‘--max-silent-time’ option for “guix build” and “guix package”
682
683 See the manual for details.
684
685 *** New ‘--fallback’ option for “guix build” and “guix package”
686
687 This option instructs to fall back to local builds when the substituter fails
688 to download a substitute.
689
690 *** New ‘--requisites’ option for “guix gc”
691
692 See the manual for details.
693
694 *** New ‘--key-download’ option for “guix refresh”
695
696 See the manual for details.
697
698 ** Programming interfaces
699
700 *** New ‘package-cross-derivation’ procedure in (guix derivations)
701
702 See the manual for details.
703
704 *** New ‘%current-target-system’ SRFI-39 parameter
705
706 This parameter is like ‘%current-system’, but for cross-compilation. It
707 allows code in package definitions (such as in the ‘arguments’ field) to know
708 whether it is being cross-compiled, and what the target system is.
709
710 *** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures
711
712 This improves performance of SHA256 computations.
713
714
715 ** GNU distribution
716
717 *** 33 new packages
718
719 alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd,
720 gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2,
721 iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket,
722 rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore
723
724 *** 25 package updates
725
726 automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3,
727 glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8,
728 libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error
729 1.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu
730 1.5.1, tzdata 2013d, xorriso 1.3.0
731
732 *** Binary packages now available for i686-linux
733
734 The 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
736 transparently used as substitutes for local builds on these platforms.
737
738 *** Debug info packages
739
740 Some 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
742 other outputs of the package. See “Installing Debugging Files” in the manual.
743
744 *** Bootstrap binaries can be cross-compiled
745
746 The distribution can now be ported to new architectures (currently
747 GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting”
748 in the manual.
749
750 *** Bootstrapping documented
751
752 See “Bootstrapping” in the manual, for information on how the GNU
753 distribution builds “from scratch”.
754
755 ** Internationalization
756
757 New translations: eo, pt_BR.
758
759 ** Bugs fixed
760 *** “guix --help” now works when using Guile 2.0.5
761 *** Binary substituter multi-threading and pipe issues fixed
762
763 These could lead to random substituter crashes while substituting a binary.
764 See commits 0332386 and 101d9f3 for details.
765
766 *** Binary substituter gracefully handles lack of network connectivity
767
768 *** Daemon properly handles rebuilds of multiple-output derivations
769
770 Previously it would fail when rebuilding a multiple-output derivation when
771 some (but not all) of its outputs were already present. See
772 http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and
773 https://github.com/NixOS/nix/issues/122 .
774
775 *** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’
776
777 Previously only the ‘out’ output of package ‘foo’ would be kept in the
778 profile.
779
780 *** Replacement (srfi srfi-37) provided if the user’s one is broken
781
782 When 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
784 command-line argument processing in some cases.
785
786 * Changes in 0.2 (since 0.1)
787
788 ** Package management
789
790 *** Guix commands are now sub-commands of the “guix” program
791
792 Instead of typing “guix-package”, one now has to type “guix package”, and so
793 on. This has allowed us to homogenize the user interface and initial program
794 setup, and to allow commands to be upgradable through “guix pull”.
795
796 *** New “guix package --upgrade” option
797
798 As the name implies, this option atomically upgrades all the packages
799 installed in a profile or the set of packages matching a given regexp.
800 See “Invoking guix package” in the manual.
801
802 *** New “guix package --search” option
803
804 Performs a full text search in package synopses and descriptions, and returns
805 the matching packages in recutils format. See “Invoking guix package” in the
806 manual, for details.
807
808 *** New “guix pull” command
809
810 The command pulls the latest version of Guix–both the package management
811 modules and the distribution. See the manual for details.
812
813 *** New binary substituter
814
815 The “substituter” mechanism allows pre-built binaries to be transparently
816 downloaded instead of performing a build locally. Currently binaries are
817 available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
818 distribution is continuously built and binaries are made available from there.
819
820 See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
821 available binary packages.
822
823 *** New “guix refresh” command
824
825 The command is used by Guix maintainers. It automatically updates the
826 distribution to the latest upstream releases of GNU software.
827
828 *** New “guix hash” command
829
830 Convenience command to compute the hash of a file. See the manual for
831 details.
832
833 *** Nix daemon code updated
834
835 The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
836 to current Nix ‘master’.
837
838 ** Programming interfaces
839
840 *** (guix download) now supports HTTPS, using GnuTLS
841
842 It allows package source tarballs to be retrieved over HTTPS.
843
844 *** New ‘native-search-path’ and ‘search-path’ package fields
845
846 Packages can define in their ‘native-search-path’ field environment variables
847 that define search paths and need to be set for proper functioning of the
848 package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
849 ‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
850 These environment variables are automatically set when building a package that
851 uses one of these.
852
853 *** Package inputs can be a function of the target system type
854
855 The ‘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
857 tarballs as inputs, such as GNU/MIT Scheme.
858
859 *** New build systems
860
861 The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
862 been added. They implement the standard build systems for Perl, Python, and
863 CMake packages.
864
865 *** Tools to build Linux initrds, QEMU images, and more
866
867 The (gnu packages linux-initrd) module provides a procedure to build a Linux
868 initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
869 evaluate the given expression. The example below returns an initrd that
870 mounts 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
878 More examples in the linux-initrd.scm file.
879
880 Experimental 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
883 a QEMU virtual machine running the Linux kernel and Guile.
884
885 ** GNU distribution
886
887 Many updates and additions have been made to the distribution. Here are the
888 highlights.
889
890 *** Major updates
891
892 GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
893 Coreutils 8.20, GDB 7.6, Texinfo 5.1.
894
895 *** Noteworthy new packages
896
897 TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
898 CHICKEN, Scheme48, Hugs, Python, Lua, Samba.