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