ui: Improve formatting of package dependencies in recutils.
[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
02dd2a9c
LC
13* Changes in 0.7 (since 0.6)
14** Package management
15*** ‘guix refresh’ has a new ‘--list-dependent’ options
16
17See “Invoking guix refresh” in the manual.
18
19** Programming interfaces
20*** New (guix gexp) module, which implements “G-expressions”
21
22G-expressions are a new mechanism to embed build-side code in host-side
23code. See “G-Expressions” in the manual.
24
25*** (gnu system) and related modules now use G-expressions
26
27This greatly simplifies code, and guarantees that build code carries
28references to the packages or derivations it uses.
29
30*** ‘build-expression->derivation’ is deprecated in favor of G-expressions
31*** The (gnu system) module has been largely augmented and factorized
32*** New (guix build vm) module, support for virtual machine images
33*** New (guix build activation) module, for “system activation”
34*** New (guix build syscalls) module
35*** New (guix build install) and module for whole system installation
36*** New (gnu system install) module, for the installation system
37*** New (gnu system file-systems) module, for ‘file-system’ declarations
38*** New (gnu) module, which aggregates common (gnu …) modules
39*** ‘service’ records now have an optional ‘activate’ field
40
41This allows services to specify code to run at system activation time.
42
43** GNU distribution
44*** An image to install the GNU system from a USB stick is provided
45
46This is the first time an installation image is provided. See “System
47Installation” in the manual for details. This is work in progress as noted
48in “Limitations”. Your feedback and help are welcome!
49
50*** Support for more parameters in ‘operating-system’ declarations
51
52Operating system declarations can now provide a list of file systems, a list
53of setuid programs, bootloader options, and more. See “System Configuration”
54in the manual.
55
56*** ‘guix system’ supports more actions
57
58Newly supported actions are ‘init’, ‘build’, ‘reconfigure’, and ‘disk-image’.
59See “Invoking guix system” in the manual.
60
61*** User accounts and groups are created at system activation time
62*** Virtual machine support uses para-virtualized devices
63*** GCC package now has an additional ‘lib’ output, for run-time support libs
64*** GLib package now has a separate “bin” output (<http://bugs.gnu.org/17853>)
65*** XXX new packages
66*** XXX package updates
67
68** Native language support
69*** New translations: de (German), and hu (Hungarian)
70*** Updated translations: eo, pt_BR, sr, vi
71*** Package descriptions moved from the ‘guix’ text domain to ‘guix-packages’
72** Bugs fixed
73*** Downloads are now faster (<http://bugs.gnu.org/15368>)
74*** ‘guix authenticate’ properly writes signatures to stdout
75 (<http://bugs.gnu.org/17312>)
76*** Progress report of downloads is now properly displayed
77*** Error reporting of pk-crypto errors has been improved
78*** The 'patches' field now works for origins with no extension
79*** Synchronization and GC issues fixed in the offload hook
80*** (guix ftp-client) emits USER commands suitable for all servers
81
b0f981f0
LC
82* Changes in 0.6 (since 0.5)
83** Package management
84*** Default store directory changed to /gnu/store
85
86Although it is still possible to configure Guix to use the old store
87directory, we recommend that you start with a fresh install to /gnu/store.
88
89*** Substitutes from hydra.gnu.org must now be signed and authorized
90*** Support for offloading builds to other Guix machines over SSH
91*** New ‘guix archive’ command
92*** New ‘guix system’ command; it can currently build VM images
93*** ‘guix package’ accepts several arguments after -i, -r, and -u
94*** Updating a profile with ‘guix package’ is now noticeably faster
95*** ‘guix build’ can override a package’s source with the new ‘--with-source’
96*** ‘guix build’ has a new ‘--no-build-hook’ option
97*** ‘guix’ commands that build packages have a common set of options
98*** ‘guix hash’ has a new ‘--recursive’ option
99*** Daemon no longer bind-mounts the host’s /dev (improves reproducibility)
100** Programming interfaces
101*** New (guix pk-crypto) and (guix pki) modules for public key cryptography
102*** New #:local-build? parameter for derivations that shouldn’t be offloaded
103*** (gnu system vm) has procedures to build VMs that share the host’s store
104*** New ‘text-file*’ procedure in (guix monads)
105*** System service definitions are now provided by the (guix services) modules
106*** New X and SLiM services in (gnu services xorg)
107*** New (guix git-download) and (guix svn-download) for git/svn checkouts
108** GNU distribution
4ec91959
LC
109*** 91 new packages
110
111a2ps, asciidoc, aspell-dict-en, aspell-dict-eo, aspell-dict-es,
112aspell-dict-fr, aumix, bitlbee, bogofilter, boost, calcurse, clusterssh,
113corkscrew, cursynth, docbook-xml, docbook-xsl, elfutils, enscript, fftwf,
114fltk, fuse, gcc-toolchain, giflib, glade, gmime, gnome-desktop, gnubg, gnubik,
115gnumach-headers, gnunet, gnuplot, gnurl, gphoto2, gtkglext, guile-json,
116guile-reader-for-guile_2.0.11, gxmessage, hdf5, hurd-headers, inkscape, iotop,
117isc-dhcp, iso-codes, jnettop, libatomic-ops, libexif, libgphoto2, libmpcdec,
118libmpdclient, libotr, libpcap, libpeas, libpipeline, libtirpc, libwebsockets,
119ltrace, luajit, lynx, man-db, mc, mig, miniupnpc, moe, mpc123, mpd, ncdc,
120ncdu, ncmpc, neon, neon, octave, opus, paperkey, patchutils, perl-tk,
121perl-x11-protocol, pinentry, python2-element-tree, python2-pybugz, quilt,
122source-highlight, stalonetray, trueprint, ttf-dejavu, unionfs-fuse,
123unionfs-fuse-static, uucp, vera, windowmaker, xapian, xterm
124
125*** 90 package updates
126
127apl-1.3, autoconf-2.68, automake-1.14.1, bash-4.3, bash-light-4.3,
128bigloo-4.1a, binutils-2.24, binutils-static-stripped-tarball-2.24,
129coreutils-8.22, curl-7.35.0, ed-1.10, ffmpeg-2.1.4, file-5.18, freeipmi-1.4.1,
130gcc-4.8.2, gcc-4.8.2, gdb-7.7, gdbm-1.11, gettext-0.18.3.2, glib-2.39.1,
131glibc-2.19, glibc-stripped-tarball-2.19, global-6.2.12, glpk-4.54,
132gnu-pw-mgr-1.2, gnupg-1.4.16, gnutls-3.2.12, gp2c-0.0.8pl1, grep-2.18,
133gst-plugins-base-0.10.36, gstreamer-1.0.10, gtk+-3.10.1, gtkmm-2.24.2,
134guile-2.0.11, guile-ssh-0.6.0, guile-static-stripped-tarball-2.0.11,
135guile-wm-1.0, guile-xcb-1.3, guix-0.5, help2man-1.45.1, icu4c-52.1,
136imagemagick-6.8.8-10, inetutils-1.9.2, lapack-3.5.0, libcdio-0.92,
137libdrm-2.4.46, libextractor-1.3, libgc-7.2e, libgc-7.4.0, libgcrypt-1.6.1,
138libjpeg-9, libmicrohttpd-0.9.34, libssh-0.6.3, libtasn1-3.4, lightning-2.0.3,
139linux-libre-3.13.7, mpc-1.0.2, mutt-1.5.23, net-base-5.2, ocrad-0.23,
140openssh-6.6p1, openssl-1.0.1g, parallel-20140322, pari-gp-2.7.0, pspp-0.8.2,
141pulseaudio-5.0, python-2.7.6, python-3.3.5, python-wrapper-3.3.5,
142python2-pysqlite-2.6.3a, qemu-1.7.1, qemu-headless-1.7.1,
143qemu-with-multiple-smb-shares-1.7.1, qt-4.8.5, qt-5.2.0, readline-6.3,
144recutils-1.7, slim-1.3.6, sqlite-3.8.4.3, subversion-1.7.14, texinfo-4.13a,
145tor-0.2.4.21, tzdata-2014a, units-2.11, valgrind-3.9.0, vim-7.4, wget-1.15,
146xnee-3.18, xorriso-1.3.6.pl01, zile-2.4.11
147
b0f981f0
LC
148*** New ‘gcc-toolchain’ meta-package, makes it easy to install a GCC tool chain
149*** libc’s Info manual is now installed
150*** Binutils is built with --enable-deterministic-archives
151*** Packages that populated man/man* now populate share/man/man*
152*** Many other packaging improvements
153** Bugs fixed
154*** ‘guix pull’ consumes less memory, compiles in parallel
155*** ‘guix package --list-*’ gracefully handles EPIPE when used in a pipeline
156*** ‘guix package’ handles collisions between a symlink and a directory
157 (http://bugs.gnu.org/17083)
158*** HTTP downloads provide a ‘User-Agent’ field (http://bugs.gnu.org/16703)
159*** ‘guix package’ no longer shows misleading installed package number
160 (http://bugs.gnu.org/16484)
161*** Manual suggests ‘useradd --system’ (http://bugs.gnu.org/16289)
162*** Python is built with ctypes support (http://bugs.gnu.org/16569)
163*** HTTP/TLS connection not terminated properly (http://bugs.gnu.org/14884)
164*** Gracefully handle poorly behaved HTTP servers (http://bugs.gnu.org/15733)
165
a043ac04
LC
166* Changes in 0.5 (since 0.4)
167** Package management
168*** GNU package descriptions synchronized with the ‘gnumaint’ repository
169
170In addition to synopses, descriptions of GNU packages are now kept in sync
171with the ‘gnumaint’ repository, which is the canonical place for GNU package
172meta-data.
173
174** Programming interfaces
175*** Patches are now listed as part of ‘origin’
176
177The ‘origin’ form supports two new fields: ‘patches’ (list of patches), and
178‘snippet’ (code snippet to modify the source.) These are applied when running
179‘guix build --source’. See “Defining Packages” in the manual.
180
181*** New (guix monads) monadic interface to operate on the store
182
183See “The Store Monad” in the manual. The (gnu system …) modules have been
184rewritten to use this monadic interface.
185
186*** New (guix profiles) module
187
188It provides an API for dealing with profiles, as with the ‘guix package’
189command.
190
191*** New (gnu system) module
192
4a8c5617
AE
193This module provides a generic way to describe the system’s configuration,
194and to instantiate it, regardless of the final medium (QEMU image, etc.)
a043ac04
LC
195See “System Configuration” in the manual.
196
197This is work in progress. Send feedback to guix-devel@gnu.org!
198
199*** ‘build-expression->derivation’ uses more parameters
200
201Some positional parameters have been changed to keyword parameters.
202See “Derivations” in the manual.
203
204** GNU distribution
205*** New port to the Loongson MIPS64 processors, n32 ABI (‘mips64el-linux’)
206
4a8c5617 207Bootstrap binaries have been built for that architecture, and several
a043ac04
LC
208Loongson-specific patches not yet available upstream have been applied to core
209packages. See “GNU Distribution” and “Porting” in the manual.
210
211Pre-built binaries are not yet available via hydra.gnu.org, so Guix will
4a8c5617 212build from source on this platform.
a043ac04 213
5d6dbd29
LC
214*** 110 new packages
215
216acct, alive, alsa-utils, apl, at-spi2-atk, at-spi2-core, atkmm, autogen,
217automoc4, brasero, bridge-utils, cairomm, catkin, complexity, evince, ffmpeg,
218fftw, ftgl, gcc-objc, gcc-objc++, gccgo, gcl, gfortran, glibmm, glpk,
219gnome-icon-theme, gnu-pw-mgr, gp2c, gpgme, gsettings-desktop-schemas, gtkmm,
220gtksourceview, guile-ssh, guile-wm, gvpe, hicolor-icon-theme, httpd, icecat,
221icon-naming-utils, json-c, lapack, libcanberra, libcap, libgnome-keyring,
222libmikmod, libnl, libnotify, libsamplerate, libsigc++, libsndfile, libssh,
223libtheora, libxkbcommon, mercurial, mtools, netcat, pangomm, parallel,
224pavucontrol, pciutils, pem, perl-encode-locale, perl-file-list,
225perl-file-listing, perl-html-parser, perl-html-tagset, perl-http-cookies,
226perl-http-daemon, perl-http-date, perl-http-message, perl-http-negotiate,
227perl-io-html, perl-libwww, perl-libxml, perl-lwp-mediatypes, perl-net-http,
228perl-uri, perl-www-robotrules, perl-xml-dom, perl-xml-regexp, perl-xml-simple,
229phonon, powertop, pulseaudio, python2-dogtail, python2-empy, qemu-headless,
230qt, qt, raptor2, scons, sdl, sdl-gfx, sdl-image, sdl-mixer, sdl-net, sdl-ttf,
231sdl2, serveez, shared-mime-info, sharutils, skribilo, slim, soprano, swig,
232xcb-util, xcb-util-image, xcb-util-keysyms, xcb-util-renderutil, xcb-util-wm
233
234*** 47 package updates
235
236atk 2.10.0, bison 3.0.2, cmake 2.8.12, dmd 0.1, freeipmi 1.3.3, gcc 4.8.2,
237gcc 4.8.2, gcc-cross-mips64el-linux-gnuabi64 4.8.2, gcc-stripped-tarball 4.8.2,
238gdb 7.6.2, gettext 0.18.3.1, glib 2.38.0, global 6.2.9, gmp 5.1.3,
239gnupg 2.0.22, gobject-introspection 1.38.0, grep 2.15, gsl 1.16,
240gtk+ 2.24.21, gtk+ 3.10.1, guile 2.0.9, guile 2.0.9, guile-xcb 1.2,
241harfbuzz 0.9.22, hello 2.9, iproute2 3.12.0, libdrm 2.4.46,
242libextractor 1.2, libjpeg 9, libmicrohttpd 0.9.32, lightning 2.0.2,
243linux-libre 3.12, lzip 1.15, make 4.0, mit-krb5 1.11.3, pari-gp 2.5.5,
244pixman 0.32.4, python 3.3.2, qemu 1.6.1,
245qemu-with-multiple-smb-shares 1.6.1, rcs 5.9.2, recutils 1.6, rsync 3.1.0,
246tar 1.27.1, texinfo 5.2, units 2.02, xorriso 1.3.2
a043ac04
LC
247
248*** Packages are now built with GCC 4.8.2 by default (was 4.7.3)
249
250** Native language support
251*** New ‘sr’ (Serbian) translation
252*** New ‘vi’ (Vietnamese) translation
253*** Updated ‘pt_BR’ (Brazilian Portuguese) translation
254** Bugs fixed
4a8c5617 255*** ‘guix pull’ compiles Guix deterministically and correctly
a043ac04
LC
256
257Previously, the build environment was not cleared in between ‘compile-file’
258calls, leading to build errors due to Guile bug http://bugs.gnu.org/15602 .
259
260*** ‘guix package’ allows removal of a specific package output
261 (http://bugs.gnu.org/15756)
5d6dbd29
LC
262*** ‘guix-daemon’ always sets umask to 022
263 (http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00033.html)
a043ac04 264*** Files referenced by environment variables are protected from GC
5d6dbd29 265*** Yet unbuilt packages get correctly installed (http://bugs.gnu.org/15283)
a043ac04
LC
266*** ‘bootstrap-graph.{png,eps,pdf}’ built in srcdir (http://bugs.gnu.org/15640)
267
8f37bf62
LC
268* Changes in 0.4 (since 0.3)
269
270** Package management
271
272*** New ‘--list-generations’ and ‘--delete-generations’ options
273
274The ‘guix package’ command has these two new options, which make it easier to
275deal with a profile’s generation. See “Invoking guix package” in the manual.
276
277*** New ‘guix-register’ program
278
279This program allows the meta-data of a new store to be initialized, by
280copying info from an existing store. It is mostly an internal tool.
281
282** Programming interfaces
283
284*** New API to bootstrap Autotools-based packages
285
286The (guix build-system gnu) has a new ‘dist-package’ procedure that takes a
287package object and source directory, and returns a new package object that
288runs ‘./bootstrap && make dist’ or anything similar.
289
290*** ‘derivation’ and related procedures have a #:references-graphs parameter
291
292This parameter instructs the build daemon to populate the derivation’s build
293tree with files containing the list of references of the given store files.
294This is useful to write code that copies a packages and all its dependencies
295to another storage device, such as a QEMU disk image.
296
297*** Extended API to build a GNU system virtual machine image
298
299The (gnu system vm) module has been augmented in many ways: the ‘qemu-image’
300procedure can now populate and initialize the image’s store; the new
301‘system-qemu-image’ procedure returns a QEMU image that runs dmd as its init
302system, has ‘login’ running on several consoles, has a set of installed
303packages, and where Guix can be used.
304
305New (gnu system …) modules have been added to handle the configuration of the
306various parts of a GNU/Linux system. For instance, (gnu system dmd) provides
307support for instantiating dmd services; (gnu system linux) helps with Linux
308PAM configuration; and so on.
309
310*** <derivation> objects supersede .drv file names in the API
311
312‘derivation’ and similar procedures no longer return two values (a
313<derivation> and a .drv file name); they now return a single value, which is
314a <derivation> object. The <derivation> object embeds the corresponding .drv
315file name. See “Derivations” in the manual for details.
316
317** GNU distribution
318
6bf3e5f7
LC
319*** 60 new packages
320
321apr, apr-util, cdparanoia, dbus-glib, dfc, dmd, dvdisaster, exiv2, fetchmail,
322freefont-ttf, freeglut, geeqie, git, gkrellm, glu, gnome-doc-utils,
323gst-plugins-base, gstreamer, guile-cairo, guile-lib, guile-xcb, guix, htop,
324itstool, lame, libextractor, libmicrohttpd, lightning, lzip, mingetty, mutt,
325net-base, net-tools, ocrad, pspp, python-babel, python-dateutil, python-pytz,
326python-setuptools, python-simplejson, python-wrapper, python2-babel,
327python2-dateutil, python2-mechanize, python2-pyicu, python2-pysqlite,
328python2-pytz, python2-setuptools, python2-simplejson, qemu-system-initrd,
329qemu-with-multiple-smb-shares, ripperx, shadow, ttf-bitstream-vera, units,
330valgrind, xmlto, xnee, yasm
331
332*** 27 package updates
333
334bigloo 4.0b, cairo 1.12.16, ddrescue 1.17, fontconfig 2.10.93, fplll 4.0.4,
335gcc 4.7.3, gcc 4.7.3, glibc 2.18, glibc 2.18, glibc-stripped-tarball 2.18,
336gnupg 2.0.21, gnutls 3.2.4, guile 2.0.9, guile 2.0.9, harfbuzz 0.9.21,
337imagemagick 6.8.6-9, libdrm 2.4.46, libgcrypt 1.5.3, libjpeg 9, libksba 1.3.0,
338linux-libre 3.11, m4 1.4.17, mpfrcx 0.4.2, pari-gp 2.5.4, python 2.7.5, python
3393.3.2, texlive 2013
8f37bf62
LC
340
341*** Fontconfig font search path made more convenient
342
343Fontconfig, the library used by many graphical applications, such as those
344based on GTK+, now knows where to find the default set of fonts. Additional
345fonts installed in the user profile are automatically picked up.
346
347*** More GUI applications
348
349The ‘emacs’ and ‘racket’ packages are now linked against GTK+. New GTK+
350applications have been added (see above.)
351
352*** Packaging guidelines
353
354The documentation of packaging guidelines has been augmented. See the manual
355under “GNU Distribution”.
356
357*** Support for Python 3 along with Python 2
358
359Python 3 has been added to the distribution, and Python packages that support
360it are now built for both Python 2 and Python 3. See the “Python Modules”
361section of the manual for details.
362
363** Internationalization
364
365Updated translations: eo.
366
367** Bugs fixed
368
6bf3e5f7 369*** Workarounds for Guile 2.0.5 now work on Debian derivatives
8f37bf62 370*** The dependency graph image has correct size in PDF output
6bf3e5f7 371*** 'ldd' now works correctly on x86_64
8f37bf62 372*** Xorg server test suite no longer fails (http://bugs.gnu.org/15392)
bb5f01c5 373*** module-init-tools now builds (http://bugs.gnu.org/15182, http://bugs.gnu.org/15187)
6bf3e5f7 374*** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194)
85f3a05e 375
d1495831
LC
376* Changes in 0.3 (since 0.2)
377
378** Package management
bdbb6fbb
LC
379
380*** Cross-compilation support
381
382Guix can now cross-build packages. On the command-line, this is achieved with
383the new ‘--target’ command-line option of ‘guix build’. At the Scheme level,
384the guts of this is the ‘package-cross-derivation’ procedure. Core packages
385of the distribution can already be cross-compiled. See the manual for
386details.
387
d1495831
LC
388*** New ‘--max-silent-time’ option for “guix build” and “guix package”
389
390See the manual for details.
391
bdbb6fbb
LC
392*** New ‘--fallback’ option for “guix build” and “guix package”
393
394This option instructs to fall back to local builds when the substituter fails
395to download a substitute.
396
8e59fdd5
LC
397*** New ‘--requisites’ option for “guix gc”
398
399See the manual for details.
400
5939006b
LC
401*** New ‘--key-download’ option for “guix refresh”
402
403See the manual for details.
42300254
LC
404
405** Programming interfaces
406
5939006b
LC
407*** New ‘package-cross-derivation’ procedure in (guix derivations)
408
409See the manual for details.
410
411*** New ‘%current-target-system’ SRFI-39 parameter
412
413This parameter is like ‘%current-system’, but for cross-compilation. It
414allows code in package definitions (such as in the ‘arguments’ field) to know
415whether it is being cross-compiled, and what the target system is.
416
42300254
LC
417*** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures
418
419This improves performance of SHA256 computations.
420
5939006b
LC
421
422** GNU distribution
423
3253830d 424*** 33 new packages
5939006b 425
3253830d
LC
426alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd,
427gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2,
428iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket,
429rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore
5939006b 430
3253830d 431*** 25 package updates
5939006b 432
3253830d
LC
433automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3,
434glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8,
435libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error
4361.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu
4371.5.1, tzdata 2013d, xorriso 1.3.0
5939006b
LC
438
439*** Binary packages now available for i686-linux
440
441The build farm at http://hydra.gnu.org now provides 32-bit GNU/Linux binaries
442(i686-linux), in addition to the x86_64-linux binaries. Both can be
443transparently used as substitutes for local builds on these platforms.
444
445*** Debug info packages
446
447Some packages now have a “debug” output containing debugging information. The
448“debug” output can be used by GDB, and can be installed separately from the
449other outputs of the package. See “Installing Debugging Files” in the manual.
450
451*** Bootstrap binaries can be cross-compiled
452
453The distribution can now be ported to new architectures (currently
454GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting”
455in the manual.
456
457*** Bootstrapping documented
458
459See “Bootstrapping” in the manual, for information on how the GNU
460distribution builds “from scratch”.
461
462** Internationalization
463
464New translations: eo, pt_BR.
465
d1495831
LC
466** Bugs fixed
467*** “guix --help” now works when using Guile 2.0.5
468*** Binary substituter multi-threading and pipe issues fixed
469
470These could lead to random substituter crashes while substituting a binary.
471See commits 0332386 and 101d9f3 for details.
472
bdbb6fbb
LC
473*** Binary substituter gracefully handles lack of network connectivity
474
16357e8c
LC
475*** Daemon properly handles rebuilds of multiple-output derivations
476
477Previously it would fail when rebuilding a multiple-output derivation when
478some (but not all) of its outputs were already present. See
479http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and
480https://github.com/NixOS/nix/issues/122 .
481
5939006b
LC
482*** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’
483
484Previously only the ‘out’ output of package ‘foo’ would be kept in the
485profile.
486
3253830d
LC
487*** Replacement (srfi srfi-37) provided if the user’s one is broken
488
489When the user’s (srfi srfi-37) is affected by http://bugs.gnu.org/13176 (Guile
490< 2.0.9), a replacement with the bug fix is provided. This bug would affect
491command-line argument processing in some cases.
492
85f3a05e
LC
493* Changes in 0.2 (since 0.1)
494
4056b828
LC
495** Package management
496
497*** Guix commands are now sub-commands of the “guix” program
498
499Instead of typing “guix-package”, one now has to type “guix package”, and so
500on. This has allowed us to homogenize the user interface and initial program
501setup, and to allow commands to be upgradable through “guix pull”.
502
06504acb
LC
503*** New “guix package --upgrade” option
504
505As the name implies, this option atomically upgrades all the packages
e3729544
LC
506installed in a profile or the set of packages matching a given regexp.
507See “Invoking guix package” in the manual.
06504acb 508
0f241da2
LC
509*** New “guix package --search” option
510
511Performs a full text search in package synopses and descriptions, and returns
512the matching packages in recutils format. See “Invoking guix package” in the
513manual, for details.
514
4056b828
LC
515*** New “guix pull” command
516
517The command pulls the latest version of Guix–both the package management
518modules and the distribution. See the manual for details.
519
520*** New binary substituter
521
522The “substituter” mechanism allows pre-built binaries to be transparently
523downloaded instead of performing a build locally. Currently binaries are
0f241da2
LC
524available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
525distribution is continuously built and binaries are made available from there.
526
527See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
528available binary packages.
4056b828
LC
529
530*** New “guix refresh” command
531
532The command is used by Guix maintainers. It automatically updates the
533distribution to the latest upstream releases of GNU software.
534
535*** New “guix hash” command
536
537Convenience command to compute the hash of a file. See the manual for
538details.
539
0f241da2 540*** Nix daemon code updated
4056b828 541
0f241da2
LC
542The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
543to current Nix ‘master’.
4056b828
LC
544
545** Programming interfaces
546
0f241da2
LC
547*** (guix download) now supports HTTPS, using GnuTLS
548
549It allows package source tarballs to be retrieved over HTTPS.
550
4056b828
LC
551*** New ‘native-search-path’ and ‘search-path’ package fields
552
553Packages can define in their ‘native-search-path’ field environment variables
554that define search paths and need to be set for proper functioning of the
555package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
556‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
557These environment variables are automatically set when building a package that
558uses one of these.
559
560*** Package inputs can be a function of the target system type
561
562The ‘inputs’ field of a package can now be conditional on the value of
563(%current-system). This is useful for packages that take system-dependent
564tarballs as inputs, such as GNU/MIT Scheme.
565
566*** New build systems
567
568The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
569been added. They implement the standard build systems for Perl, Python, and
570CMake packages.
571
47d18810
LC
572*** Tools to build Linux initrds, QEMU images, and more
573
574The (gnu packages linux-initrd) module provides a procedure to build a Linux
575initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
576evaluate the given expression. The example below returns an initrd that
577mounts the /proc file system and starts a REPL:
578
579 (expression->initrd
580 '(begin
581 (mkdir "/proc")
582 (mount "none" "/proc" "proc")
583 ((@ (system repl repl) start-repl))))
584
585More examples in the linux-initrd.scm file.
586
587Experimental interfaces to produce and use QEMU images are provided by the
588(gnu system vm) module. For instance, the
589‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in
590a QEMU virtual machine running the Linux kernel and Guile.
591
4056b828
LC
592** GNU distribution
593
594Many updates and additions have been made to the distribution. Here are the
595highlights.
596
597*** Major updates
598
599GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
600Coreutils 8.20, GDB 7.6, Texinfo 5.1.
601
602*** Noteworthy new packages
603
0f241da2
LC
604TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
605CHICKEN, Scheme48, Hugs, Python, Lua, Samba.