Update NEWS.
[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, 2015 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.1 (since 0.8)
14
15 ** Package management
16
17 *** New ‘--share’ and ‘--expose’ options for ‘guix system vm’
18
19 See “Invoking guix system” in the manual.
20
21 *** Emacs mode now automatically loads newly installed Emacs packages
22
23 See “Emacs Initial Setup” in the manual.
24
25 *** ‘guix-daemon’ now defaults to ‘--cores=0 --jobs=1’
26
27 In other words, at any given time, only one derivation is being built or
28 substituted, and it can use as many cores as available. Before, there could
29 be N derivations using N cores, which was obviously not desirable.
30
31 *** Command-line tools support the ‘GUIX_BUILD_OPTIONS’ environment variable
32
33 See “Invoking guix build” in the manual.
34
35 *** ‘guix environment’ is faster
36
37 *** New ‘--recursive’ option for ‘guix archive’
38
39 See “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
45 The new checkers are ‘gnu-description’, ‘home-page’, and ‘source’.
46 See “Invoking guix lint” in the manual.
47
48 *** New CPAN importer for ‘guix import’
49
50 See “Invoking guix import” in the manual.
51
52
53 ** Distribution
54
55 *** USB installation image has more tools
56
57 Tools added since 0.8: wpa_supplicant, cryptsetup, and iw.
58
59 *** Linux kernel module dependencies are automatically handled
60
61 Before that, all the modules needed in the initrd would need to be explicitly
62 listed, including their dependencies, and in topological order.
63
64 *** Font packages now all have a name starting with ‘font-’
65
66 See “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
71 used when running a different shell. The skeletons for user’s ‘.bash_profile’
72 and ‘.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
76 Before that, the skeleton files would only be copied to non-root accounts.
77
78 *** The name service cache daemon (nscd) is configurable
79
80 By default it aggressively caches host and service lookups. See “Base
81 Services” in the manual.
82
83 *** Available locale definitions are now declared in ‘operating-system’
84
85 Before, the ‘glibc’ package would contain all the existing locales, as well as
86 the ‘locale-archive’ file, amounting to 110 MiB. See “Locales” in the manual.
87
88 *** SLiM sessions are configurable
89
90 Pressing F1 in the SLiM graphical log-in screen allows users to choose among
91 the 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
97 If 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
112 These 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
117 It now handles GIO and XDG themes, takes care of generating the icon cache,
118 and has a new #:glib-or-gtk-wrap-excluded-outputs parameter.
119
120 *** ‘search-path-specification’ can now specify non-directory items
121
122 For example, the ‘search-path-specification’ attached to libxml2 specifies a
123 file 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
130 bindings 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
136 store, with derivations, and with packages have been moved from (guix monads)
137 to (guix store), (guix derivations), and (guix packages). See “The Store
138 Monad” 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)
182 *** Updated translation: eo
183
184 * Changes in 0.8 (since 0.7)
185
186 ** Package management
187
188 *** New visual user interface in Emacs
189
190 See “Emacs Interface” in the manual.
191
192 *** New ‘guix environment’ command to produce development environment
193
194 See “Invoking guix environment” in the manual.
195
196 *** The ‘guix import’ command has been extended and documented
197
198 It can now import packages from pypi.python.org and from GNU.
199 See “Invoking guix import” in the manual.
200
201 *** New ‘guix lint’ command, for use by Guix developers
202
203 See “Invoking guix lint” in the manual.
204
205 *** Packages can now be “grafted” with replacements of their dependencies
206
207 See “Security Updates” in the manual.
208
209 *** The distribution can be extended with ‘--load-path’ or $GUIX_PACKAGE_PATH
210
211 This allows users to maintain their own package definitions, and make them
212 visible 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
218 See “Invoking guix package” in the manual.
219
220 *** ‘guix-daemon’ has a new ‘--substitute-urls’ option
221
222 See “Invoking guix-daemon” in the manual.
223
224 ** Distribution
225
226 *** The stand-alone operating system now supports Linux mapped devices
227
228 See “Mapped Devices” in the manual.
229
230 *** New fields in ‘operating-system’ declarations, better documentation
231
232 New fields include ‘hosts-file’, ‘mapped-devices’, and ‘swap-devices’.
233 See “operating-system Reference” in the manual.
234
235 *** New services: ‘dhcp-client-service’, ‘bitlbee-service’, ‘ntp-service’
236
237 See “Services” in the manual.
238
239 *** Free firmware can be loaded
240
241 This notably enables support for some Atheros-based WiFi devices (ath9k-htc.)
242 See “operating-system Reference” in the manual.
243
244 *** ‘grub-configuration’ declarations can now specify a theme
245
246 See “GRUB Configuration” in the manual.
247
248 *** The ‘base-initrd’ now has a different signature
249
250 Existing 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
257 See “Invoking guix system” in the manual.
258
259 *** The ‘file’ command is now part of the package build environment
260
261 Autoconf-generated ‘configure’ scripts for packages using Libtool use ‘file’
262 to determine the target ABI, notably on MIPS, hence this change.
263
264 *** 162 new packages
265
266 abiword, acpica, adns, arb, ath9k-htc-firmware, atlas, avrdude, cppunit,
267 dblatex, detox, dfu-programmer, dionysus, direvent, dmidecode, dri3proto,
268 emacs-no-x-toolkit, emacs-w3m, emacs-wget, enchant, eudev, feh, flashrom,
269 flint, fontforge, freedink, freeimage, fribidi,
270 gcc-cross-sans-libc-xtensa-elf, giblib, gnome-themes-standard, gpsbabel,
271 gpscorrelate, graphite2, gtypist, guile-charting, guile-sdl, imake, imlib2,
272 irrlicht, jbig2dec, libpsl, libspiro, libuninameslist, libwmf, lm-sensors,
273 magit, minetest, miscfiles, mozjs, mupdf, nix, nspr, nss-mdns, ntp, nvi, opam,
274 openal, openjpeg, opus-tools, orpheus, ots, oxygen-icons, paredit, perf,
275 perl-archive-zip, perl-dbd-sqlite, perl-dbi, perl-image-exiftool,
276 perl-io-socket-ssl, perl-net-ssleay, perl-www-curl, perl-zip, polkit,
277 polkit-qt, postgresql, potrace, presentproto, python-certifi, python-coverage,
278 python-cython, python-discover, python-docutils, python-exif-read,
279 python-extras, python-fixtures, python-itsdangerous, python-jinja2,
280 python-jsonschema, python-markupsafe, python-mimeparse, python-nose,
281 python-oauthlib, python-py, python-pygments, python-pyjwt, python-pyld,
282 python-pytest, python-scripttest, python-sphinx, python-subunit,
283 python-testrepository, python-testresources, python-testscenarios,
284 python-testtools, python-unidecode, python-unittest2, python-virtualenv,
285 python2-certifi, python2-coverage, python2-cython, python2-discover,
286 python2-docutils, python2-exif-read, python2-extras, python2-fixtures,
287 python2-itsdangerous, python2-jinja2, python2-jsonschema, python2-markupsafe,
288 python2-mimeparse, python2-nose, python2-oauthlib, python2-py,
289 python2-pygments, python2-pyjwt, python2-pyld, python2-pytest,
290 python2-requests, python2-scripttest, python2-sphinx, python2-subunit,
291 python2-testrepository, python2-testresources, python2-testscenarios,
292 python2-testtools, python2-unidecode, python2-unittest2, python2-virtualenv,
293 rrdtool, ruby, ruby, ruby-i18n, sane-backends, scrot, sound-theme-freedesktop,
294 stress, synergy, tdb, terminus-font, testdisk, texi2html, tiled, transfig,
295 unclutter, unixodbc, weechat, wv, xboing, xf86-video-modesetting, xfig,
296 xsensors, zsh
297
298 *** 117 package updates
299
300 acct-6.6.2, acl-2.2.52, apl-1.4, apr-1.5.1, apr-util-1.5.3, autoconf-2.68,
301 autoconf-2.69, autogen-5.18.4, bash-4.3.30, bash-light-4.3.30, bazaar-2.6.0,
302 bison-2.7, calcurse-3.2.1, ccache-3.1.10, chicken-4.9.0.1, coreutils-8.23,
303 curl-7.37.1, datamash-1.0.6, dbus-1.8.8, docbook-xml-4.2, docbook-xml-4.4,
304 docbook-xml-4.5, emacs-24.4, ffmpeg-2.2.10, ffmpeg-2.4.3, file-5.19,
305 file-5.20, freeipmi-1.4.5, gcc-4.7.4, gcc-4.9.2, gcc-toolchain-4.9.2,
306 gcl-2.6.11, gdb-7.8.1, geiser-0.6, gettext-0.19.3, git-2.1.2, glibc-2.20,
307 glibc-2.20, glibc-stripped-tarball-2.20, global-6.3.2, glpk-4.55,
308 gnupg-1.4.18, gnupg-2.0.26, gnurl-7.37.0, gnutls-3.2.20, gpgme-1.5.1,
309 gst-plugins-base-1.0.10, gstreamer-1.0.10, gtk+-3.10.1, gtkmm-3.9.16,
310 guile-1.8.8, guile-json-0.4.0, guile-ncurses-1.6, guile-ssh-0.7.1, guix-0.7,
311 guix-0.7.48bd76e, hello-2.10, help2man-1.46.3, icecat-31.2.0,
312 libart-lgpl-2.3.21, libassuan-2.1.3, libatomic-ops-7.4.2, libdrm-2.4.33,
313 libffi-3.1, libgc-7.2f, libgc-7.4.2, libgcrypt-1.5.4, libgcrypt-1.6.2,
314 libidn-1.29, libjpeg-9a, libotr-4.0.0, libsodium-1.0.0, libtasn1-4.1,
315 libunistring-0.9.4, libwebsockets-1.3, lightning-2.0.5, linux-libre-3.17.3,
316 lsof-4.88, lua-5.2.3, lvm2-2.02.109, lzip-1.16, make-4.1, maxima-5.34.1,
317 mit-scheme-9.2, mysql-5.1.73, neon-0.30.0, net-base-5.3, nettle-2.7.1,
318 notmuch-0.18.1, openssh-6.7p1, openssl-1.0.1j, parallel-20141022,
319 phonon-4.8.2, pspp-0.8.4, python-3.3.5, python-dateutil-1.5,
320 python2-dateutil-1.5, python2-pyicu-1.8, qt-4.8.6, qt-5.3.2, rcs-5.9.3,
321 readline-6.3, subversion-1.7.18, swig-3.0.2, tar-1.28, texinfo-5.2,
322 tor-0.2.5.10, transmission-2.84, ucommon-6.1.11, valgrind-3.10.0, vlc-2.1.5,
323 wget-1.16, windowmaker-0.95.6, xapian-1.2.18, xf86-video-ati-6.14.6,
324 xpdf-3.04, youtube-dl-2014.09.06
325
326 ** Programming interfaces
327
328 *** New ‘ruby-build-system’, for Ruby packages
329
330 See “Build Systems” in the manual.
331
332 *** New ‘glib-or-gtk-build-system’, for packages using GLib schemas
333
334 See “Build Systems” in the manual.
335
336 *** ‘gnu-build-system’ has a new #:substitutable? parameter
337
338 This allows packagers to mark a package as requiring a local build, thus
339 preventing it from being substituted by a pre-built binary.
340
341 *** ‘cmake-build-system’ has a new #:build-type parameter
342
343 See “Build Systems” in the manual.
344
345 *** The ‘supported-systems’ field of packages is used more consistently
346
347 This allows packagers to prevent attempts to build a package on a given
348 architecture when that architecture is known not to be supported. The
349 ‘package-transitive-supported-systems’ procedure returns the intersection of
350 the 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
356 They 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
361 and derivations. See “Build Systems” in the manual.
362
363 *** New (guix monad-repl) module, for monadic interaction at the REPL
364
365 See “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
375 Also, the (gnu build linux-boot) module has been introduced, with code
376 typically used by initial RAM disks when booting on GNU/Linux-libre.
377
378 *** (guix profiles) provides a representation of package transactions
379
380 This factorizes code between ‘guix package’ and the Emacs user interface.
381
382 *** Bootstrapping packages moved to (gnu packages commencement) modules
383
384 ** Bugs fixed
385
386 *** ‘guix-daemon’ now really deduplicates store items by default
387
388 Deduplication means that identical files found in /gnu/store are stored only
389 once, using hard links. This feature was wrongfully disabled, and is now
390 enabled by default. The former ‘--disable-store-optimization’ option has been
391 renamed to ‘--disable-deduplication’.
392
393 *** ‘guix-daemon’ no longer uses ‘vfork’
394
395 This 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>)
425 *** WindowMaker no longer pollutes $PATH (<http://bugs.gnu.org/18698>)
426
427 ** Native language support
428 *** New translation: cs (Czech)
429 *** Updated translations: de, sr, vi
430
431 * Changes in 0.7 (since 0.6)
432 ** Package management
433 *** Binaries for mips64el-linux now available from hydra.gnu.org
434
435 These come in addition to the x86_64-linux and i686-linux binaries already
436 provided, thanks to our generous donor and friendly admins. See
437 “Substitutes” in the manual.
438
439 *** ‘guix package’ has a new ‘--show’ option
440 *** ‘guix refresh’ has a new ‘--list-dependent’ option
441
442 ** Programming interfaces
443 *** New (guix gexp) module, which implements “G-expressions”
444
445 G-expressions are a new mechanism to embed build-side code in host-side
446 code. See “G-Expressions” in the manual.
447
448 *** (gnu system) and related modules now use G-expressions
449
450 This greatly simplifies code, and guarantees that build code carries
451 references 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
464 This 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
469 This is the first time an installation image is provided. See “System
470 Installation” in the manual for details. This is work in progress as noted
471 in “Limitations”. Your feedback and help are welcome!
472
473 *** Support for more parameters in ‘operating-system’ declarations
474
475 Operating system declarations can now provide a list of file systems, a list
476 of setuid programs, bootloader options, and more. See “System Configuration”
477 in the manual.
478
479 *** ‘guix system’ supports more actions
480
481 Newly supported actions are ‘init’, ‘build’, ‘reconfigure’, and ‘disk-image’.
482 See “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>)
488 *** 134 new packages
489
490 abbaye, aegis, attica, babl, barcode, behave, btar, busybox, ccache, ccrtp,
491 chess, clucene, cmatrix, commoncpp, conkeror, cook, cssc, datamash, diffstat,
492 doxygen, dropbear, dtach, duplicity, e2fsck-static, exosip, fftw-openmpi,
493 fish, gconf, gegl, gimp, gmsh, gnome-mime-data, gnome-vfs, gnumeric, goffice,
494 gsegrafix, guile-opengl, guile-static-stripped, hdup, hwloc, inotify-tools,
495 jrnl, kbd, kmod, lftp, libarchive, libart-lgpl, libbonobo, libbonoboui,
496 libcroco, libdbusmenu-qt, libftdi, libglade, libgnome, libgnomecanvas,
497 libgnomeprint, libgnomeprintui, libgnomeui, libgsf, libidl, libmcrypt,
498 libmhash, librsvg, librsync, libsodium, libuv, libvpx, links, lzop, man-pages,
499 maxima, mcrypt, mosh, mpg123, mplayer, mu, ncmpcpp, node, notmuch, numactl,
500 offlineimap, openmpi, orbit2, osip, pangox-compat, perl-io-tty, petsc,
501 petsc-complex, petsc-complex-openmpi, petsc-openmpi, pingus, podofo, protobuf,
502 pt-scotch, python-enum34, python-keyring, python-lockfile, python-mock,
503 python-parse, python-parse-type, python-parsedatetime, python-pycrypto,
504 python-six, python-tzlocal, python2-lockfile, python2-mock, qjson, qrencode,
505 rasqal, rdiff-backup, rdup, redland, rottlog, scotch, sipwitch, sshfs-fuse,
506 strigi, sudo, superlu, superlu-dist, talkfilters, talloc, tcpdump, tinyproxy,
507 transmission, ucommon, udev, vlc, vtk, wakelan, wireless-tools,
508 wpa-supplicant, xboard, youtube-dl
509
510 *** 87 package updates
511
512 bitlbee-3.2.2, cursynth-1.5, ddrescue-1.18.1, dfc-3.0.4, dmd-0.2,
513 docbook-xml-4.3, docbook-xml-4.4, docbook-xsl-1.78.1, dvdisaster-0.72.6,
514 ffmpeg-2.3, fftw-3.3.4, fftwf-3.3.4, flac-1.3.0, gawk-4.1.1, gcc-4.7.4,
515 gcc-4.8.3, gcc-4.8.3, gcc-4.9.1, gcc-cross-mips64el-linux-gnuabi64-4.8.3,
516 gcc-objc++-4.8.3, gcc-objc-4.8.3, gcc-stripped-tarball-4.8.3,
517 gcc-toolchain-4.8.3, gcc-toolchain-4.9.1, gccgo-4.8.3, gdb-7.7.1,
518 gettext-0.19.2, gfortran-4.8.3, glib-2.40.0, global-6.3, gmp-6.0.0a,
519 gnupg-1.4.18, gnupg-2.0.25, gnutls-3.2.15, gp2c-0.0.9pl1, grep-2.20,
520 gst-plugins-base-1.0.10, gstreamer-0.10.36, gtk+-3.10.1, gtkmm-2.24.2,
521 guile-2.0.11, guile-2.0.11, guix-0.6, guix-0.6.0ae8c15, htop-1.0.3,
522 icu4c-53.1, imagemagick-6.8.9-0, json-c-0.12, libdrm-2.4.33, libgc-7.2e,
523 libgcrypt-1.5.3, libgpg-error-1.13, libjpeg-8d, libmicrohttpd-0.9.37,
524 libogg-1.3.2, libotr-4.0.0, libtasn1-3.6, libvorbis-1.3.4, lightning-2.0.4,
525 linux-libre-3.15.6, lua-5.1.5, lua-5.2.3, mcron-1.0.8, moe-1.6, nano-2.3.6,
526 neon-0.29.6, nettle-3.0, openssl-1.0.1h, parallel-20140722, pari-gp-2.7.1,
527 pspp-0.8.3, python-2.7.6, python-dateutil-2.2, python2-dateutil-2.2,
528 qemu-2.0.0, qemu-headless-2.0.0, qt-4.8.6, qt-5.2.1, readline-6.2,
529 screen-4.2.1, soprano-2.9.4, texinfo-5.2, texlive-2014, tor-0.2.4.22,
530 wdiff-1.2.2, xorriso-1.3.8, xterm-304
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
546 * Changes in 0.6 (since 0.5)
547 ** Package management
548 *** Default store directory changed to /gnu/store
549
550 Although it is still possible to configure Guix to use the old store
551 directory, 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
573 *** 91 new packages
574
575 a2ps, asciidoc, aspell-dict-en, aspell-dict-eo, aspell-dict-es,
576 aspell-dict-fr, aumix, bitlbee, bogofilter, boost, calcurse, clusterssh,
577 corkscrew, cursynth, docbook-xml, docbook-xsl, elfutils, enscript, fftwf,
578 fltk, fuse, gcc-toolchain, giflib, glade, gmime, gnome-desktop, gnubg, gnubik,
579 gnumach-headers, gnunet, gnuplot, gnurl, gphoto2, gtkglext, guile-json,
580 guile-reader-for-guile_2.0.11, gxmessage, hdf5, hurd-headers, inkscape, iotop,
581 isc-dhcp, iso-codes, jnettop, libatomic-ops, libexif, libgphoto2, libmpcdec,
582 libmpdclient, libotr, libpcap, libpeas, libpipeline, libtirpc, libwebsockets,
583 ltrace, luajit, lynx, man-db, mc, mig, miniupnpc, moe, mpc123, mpd, ncdc,
584 ncdu, ncmpc, neon, neon, octave, opus, paperkey, patchutils, perl-tk,
585 perl-x11-protocol, pinentry, python2-element-tree, python2-pybugz, quilt,
586 source-highlight, stalonetray, trueprint, ttf-dejavu, unionfs-fuse,
587 unionfs-fuse-static, uucp, vera, windowmaker, xapian, xterm
588
589 *** 90 package updates
590
591 apl-1.3, autoconf-2.68, automake-1.14.1, bash-4.3, bash-light-4.3,
592 bigloo-4.1a, binutils-2.24, binutils-static-stripped-tarball-2.24,
593 coreutils-8.22, curl-7.35.0, ed-1.10, ffmpeg-2.1.4, file-5.18, freeipmi-1.4.1,
594 gcc-4.8.2, gcc-4.8.2, gdb-7.7, gdbm-1.11, gettext-0.18.3.2, glib-2.39.1,
595 glibc-2.19, glibc-stripped-tarball-2.19, global-6.2.12, glpk-4.54,
596 gnu-pw-mgr-1.2, gnupg-1.4.16, gnutls-3.2.12, gp2c-0.0.8pl1, grep-2.18,
597 gst-plugins-base-0.10.36, gstreamer-1.0.10, gtk+-3.10.1, gtkmm-2.24.2,
598 guile-2.0.11, guile-ssh-0.6.0, guile-static-stripped-tarball-2.0.11,
599 guile-wm-1.0, guile-xcb-1.3, guix-0.5, help2man-1.45.1, icu4c-52.1,
600 imagemagick-6.8.8-10, inetutils-1.9.2, lapack-3.5.0, libcdio-0.92,
601 libdrm-2.4.46, libextractor-1.3, libgc-7.2e, libgc-7.4.0, libgcrypt-1.6.1,
602 libjpeg-9, libmicrohttpd-0.9.34, libssh-0.6.3, libtasn1-3.4, lightning-2.0.3,
603 linux-libre-3.13.7, mpc-1.0.2, mutt-1.5.23, net-base-5.2, ocrad-0.23,
604 openssh-6.6p1, openssl-1.0.1g, parallel-20140322, pari-gp-2.7.0, pspp-0.8.2,
605 pulseaudio-5.0, python-2.7.6, python-3.3.5, python-wrapper-3.3.5,
606 python2-pysqlite-2.6.3a, qemu-1.7.1, qemu-headless-1.7.1,
607 qemu-with-multiple-smb-shares-1.7.1, qt-4.8.5, qt-5.2.0, readline-6.3,
608 recutils-1.7, slim-1.3.6, sqlite-3.8.4.3, subversion-1.7.14, texinfo-4.13a,
609 tor-0.2.4.21, tzdata-2014a, units-2.11, valgrind-3.9.0, vim-7.4, wget-1.15,
610 xnee-3.18, xorriso-1.3.6.pl01, zile-2.4.11
611
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
630 * Changes in 0.5 (since 0.4)
631 ** Package management
632 *** GNU package descriptions synchronized with the ‘gnumaint’ repository
633
634 In addition to synopses, descriptions of GNU packages are now kept in sync
635 with the ‘gnumaint’ repository, which is the canonical place for GNU package
636 meta-data.
637
638 ** Programming interfaces
639 *** Patches are now listed as part of ‘origin’
640
641 The ‘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
647 See “The Store Monad” in the manual. The (gnu system …) modules have been
648 rewritten to use this monadic interface.
649
650 *** New (guix profiles) module
651
652 It provides an API for dealing with profiles, as with the ‘guix package’
653 command.
654
655 *** New (gnu system) module
656
657 This module provides a generic way to describe the system’s configuration,
658 and to instantiate it, regardless of the final medium (QEMU image, etc.)
659 See “System Configuration” in the manual.
660
661 This is work in progress. Send feedback to guix-devel@gnu.org!
662
663 *** ‘build-expression->derivation’ uses more parameters
664
665 Some positional parameters have been changed to keyword parameters.
666 See “Derivations” in the manual.
667
668 ** GNU distribution
669 *** New port to the Loongson MIPS64 processors, n32 ABI (‘mips64el-linux’)
670
671 Bootstrap binaries have been built for that architecture, and several
672 Loongson-specific patches not yet available upstream have been applied to core
673 packages. See “GNU Distribution” and “Porting” in the manual.
674
675 Pre-built binaries are not yet available via hydra.gnu.org, so Guix will
676 build from source on this platform.
677
678 *** 110 new packages
679
680 acct, alive, alsa-utils, apl, at-spi2-atk, at-spi2-core, atkmm, autogen,
681 automoc4, brasero, bridge-utils, cairomm, catkin, complexity, evince, ffmpeg,
682 fftw, ftgl, gcc-objc, gcc-objc++, gccgo, gcl, gfortran, glibmm, glpk,
683 gnome-icon-theme, gnu-pw-mgr, gp2c, gpgme, gsettings-desktop-schemas, gtkmm,
684 gtksourceview, guile-ssh, guile-wm, gvpe, hicolor-icon-theme, httpd, icecat,
685 icon-naming-utils, json-c, lapack, libcanberra, libcap, libgnome-keyring,
686 libmikmod, libnl, libnotify, libsamplerate, libsigc++, libsndfile, libssh,
687 libtheora, libxkbcommon, mercurial, mtools, netcat, pangomm, parallel,
688 pavucontrol, pciutils, pem, perl-encode-locale, perl-file-list,
689 perl-file-listing, perl-html-parser, perl-html-tagset, perl-http-cookies,
690 perl-http-daemon, perl-http-date, perl-http-message, perl-http-negotiate,
691 perl-io-html, perl-libwww, perl-libxml, perl-lwp-mediatypes, perl-net-http,
692 perl-uri, perl-www-robotrules, perl-xml-dom, perl-xml-regexp, perl-xml-simple,
693 phonon, powertop, pulseaudio, python2-dogtail, python2-empy, qemu-headless,
694 qt, qt, raptor2, scons, sdl, sdl-gfx, sdl-image, sdl-mixer, sdl-net, sdl-ttf,
695 sdl2, serveez, shared-mime-info, sharutils, skribilo, slim, soprano, swig,
696 xcb-util, xcb-util-image, xcb-util-keysyms, xcb-util-renderutil, xcb-util-wm
697
698 *** 47 package updates
699
700 atk 2.10.0, bison 3.0.2, cmake 2.8.12, dmd 0.1, freeipmi 1.3.3, gcc 4.8.2,
701 gcc 4.8.2, gcc-cross-mips64el-linux-gnuabi64 4.8.2, gcc-stripped-tarball 4.8.2,
702 gdb 7.6.2, gettext 0.18.3.1, glib 2.38.0, global 6.2.9, gmp 5.1.3,
703 gnupg 2.0.22, gobject-introspection 1.38.0, grep 2.15, gsl 1.16,
704 gtk+ 2.24.21, gtk+ 3.10.1, guile 2.0.9, guile 2.0.9, guile-xcb 1.2,
705 harfbuzz 0.9.22, hello 2.9, iproute2 3.12.0, libdrm 2.4.46,
706 libextractor 1.2, libjpeg 9, libmicrohttpd 0.9.32, lightning 2.0.2,
707 linux-libre 3.12, lzip 1.15, make 4.0, mit-krb5 1.11.3, pari-gp 2.5.5,
708 pixman 0.32.4, python 3.3.2, qemu 1.6.1,
709 qemu-with-multiple-smb-shares 1.6.1, rcs 5.9.2, recutils 1.6, rsync 3.1.0,
710 tar 1.27.1, texinfo 5.2, units 2.02, xorriso 1.3.2
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
719 *** ‘guix pull’ compiles Guix deterministically and correctly
720
721 Previously, the build environment was not cleared in between ‘compile-file’
722 calls, 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)
726 *** ‘guix-daemon’ always sets umask to 022
727 (http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00033.html)
728 *** Files referenced by environment variables are protected from GC
729 *** Yet unbuilt packages get correctly installed (http://bugs.gnu.org/15283)
730 *** ‘bootstrap-graph.{png,eps,pdf}’ built in srcdir (http://bugs.gnu.org/15640)
731
732 * Changes in 0.4 (since 0.3)
733
734 ** Package management
735
736 *** New ‘--list-generations’ and ‘--delete-generations’ options
737
738 The ‘guix package’ command has these two new options, which make it easier to
739 deal with a profile’s generation. See “Invoking guix package” in the manual.
740
741 *** New ‘guix-register’ program
742
743 This program allows the meta-data of a new store to be initialized, by
744 copying 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
750 The (guix build-system gnu) has a new ‘dist-package’ procedure that takes a
751 package object and source directory, and returns a new package object that
752 runs ‘./bootstrap && make dist’ or anything similar.
753
754 *** ‘derivation’ and related procedures have a #:references-graphs parameter
755
756 This parameter instructs the build daemon to populate the derivation’s build
757 tree with files containing the list of references of the given store files.
758 This is useful to write code that copies a packages and all its dependencies
759 to another storage device, such as a QEMU disk image.
760
761 *** Extended API to build a GNU system virtual machine image
762
763 The (gnu system vm) module has been augmented in many ways: the ‘qemu-image’
764 procedure 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
766 system, has ‘login’ running on several consoles, has a set of installed
767 packages, and where Guix can be used.
768
769 New (gnu system …) modules have been added to handle the configuration of the
770 various parts of a GNU/Linux system. For instance, (gnu system dmd) provides
771 support for instantiating dmd services; (gnu system linux) helps with Linux
772 PAM 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
778 a <derivation> object. The <derivation> object embeds the corresponding .drv
779 file name. See “Derivations” in the manual for details.
780
781 ** GNU distribution
782
783 *** 60 new packages
784
785 apr, apr-util, cdparanoia, dbus-glib, dfc, dmd, dvdisaster, exiv2, fetchmail,
786 freefont-ttf, freeglut, geeqie, git, gkrellm, glu, gnome-doc-utils,
787 gst-plugins-base, gstreamer, guile-cairo, guile-lib, guile-xcb, guix, htop,
788 itstool, lame, libextractor, libmicrohttpd, lightning, lzip, mingetty, mutt,
789 net-base, net-tools, ocrad, pspp, python-babel, python-dateutil, python-pytz,
790 python-setuptools, python-simplejson, python-wrapper, python2-babel,
791 python2-dateutil, python2-mechanize, python2-pyicu, python2-pysqlite,
792 python2-pytz, python2-setuptools, python2-simplejson, qemu-system-initrd,
793 qemu-with-multiple-smb-shares, ripperx, shadow, ttf-bitstream-vera, units,
794 valgrind, xmlto, xnee, yasm
795
796 *** 27 package updates
797
798 bigloo 4.0b, cairo 1.12.16, ddrescue 1.17, fontconfig 2.10.93, fplll 4.0.4,
799 gcc 4.7.3, gcc 4.7.3, glibc 2.18, glibc 2.18, glibc-stripped-tarball 2.18,
800 gnupg 2.0.21, gnutls 3.2.4, guile 2.0.9, guile 2.0.9, harfbuzz 0.9.21,
801 imagemagick 6.8.6-9, libdrm 2.4.46, libgcrypt 1.5.3, libjpeg 9, libksba 1.3.0,
802 linux-libre 3.11, m4 1.4.17, mpfrcx 0.4.2, pari-gp 2.5.4, python 2.7.5, python
803 3.3.2, texlive 2013
804
805 *** Fontconfig font search path made more convenient
806
807 Fontconfig, the library used by many graphical applications, such as those
808 based on GTK+, now knows where to find the default set of fonts. Additional
809 fonts installed in the user profile are automatically picked up.
810
811 *** More GUI applications
812
813 The ‘emacs’ and ‘racket’ packages are now linked against GTK+. New GTK+
814 applications have been added (see above.)
815
816 *** Packaging guidelines
817
818 The documentation of packaging guidelines has been augmented. See the manual
819 under “GNU Distribution”.
820
821 *** Support for Python 3 along with Python 2
822
823 Python 3 has been added to the distribution, and Python packages that support
824 it are now built for both Python 2 and Python 3. See the “Python Modules”
825 section of the manual for details.
826
827 ** Internationalization
828
829 Updated translations: eo.
830
831 ** Bugs fixed
832
833 *** Workarounds for Guile 2.0.5 now work on Debian derivatives
834 *** The dependency graph image has correct size in PDF output
835 *** 'ldd' now works correctly on x86_64
836 *** Xorg server test suite no longer fails (http://bugs.gnu.org/15392)
837 *** module-init-tools now builds (http://bugs.gnu.org/15182, http://bugs.gnu.org/15187)
838 *** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194)
839
840 * Changes in 0.3 (since 0.2)
841
842 ** Package management
843
844 *** Cross-compilation support
845
846 Guix can now cross-build packages. On the command-line, this is achieved with
847 the new ‘--target’ command-line option of ‘guix build’. At the Scheme level,
848 the guts of this is the ‘package-cross-derivation’ procedure. Core packages
849 of the distribution can already be cross-compiled. See the manual for
850 details.
851
852 *** New ‘--max-silent-time’ option for “guix build” and “guix package”
853
854 See the manual for details.
855
856 *** New ‘--fallback’ option for “guix build” and “guix package”
857
858 This option instructs to fall back to local builds when the substituter fails
859 to download a substitute.
860
861 *** New ‘--requisites’ option for “guix gc”
862
863 See the manual for details.
864
865 *** New ‘--key-download’ option for “guix refresh”
866
867 See the manual for details.
868
869 ** Programming interfaces
870
871 *** New ‘package-cross-derivation’ procedure in (guix derivations)
872
873 See the manual for details.
874
875 *** New ‘%current-target-system’ SRFI-39 parameter
876
877 This parameter is like ‘%current-system’, but for cross-compilation. It
878 allows code in package definitions (such as in the ‘arguments’ field) to know
879 whether it is being cross-compiled, and what the target system is.
880
881 *** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures
882
883 This improves performance of SHA256 computations.
884
885
886 ** GNU distribution
887
888 *** 33 new packages
889
890 alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd,
891 gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2,
892 iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket,
893 rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore
894
895 *** 25 package updates
896
897 automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3,
898 glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8,
899 libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error
900 1.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu
901 1.5.1, tzdata 2013d, xorriso 1.3.0
902
903 *** Binary packages now available for i686-linux
904
905 The 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
907 transparently used as substitutes for local builds on these platforms.
908
909 *** Debug info packages
910
911 Some 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
913 other outputs of the package. See “Installing Debugging Files” in the manual.
914
915 *** Bootstrap binaries can be cross-compiled
916
917 The distribution can now be ported to new architectures (currently
918 GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting”
919 in the manual.
920
921 *** Bootstrapping documented
922
923 See “Bootstrapping” in the manual, for information on how the GNU
924 distribution builds “from scratch”.
925
926 ** Internationalization
927
928 New translations: eo, pt_BR.
929
930 ** Bugs fixed
931 *** “guix --help” now works when using Guile 2.0.5
932 *** Binary substituter multi-threading and pipe issues fixed
933
934 These could lead to random substituter crashes while substituting a binary.
935 See commits 0332386 and 101d9f3 for details.
936
937 *** Binary substituter gracefully handles lack of network connectivity
938
939 *** Daemon properly handles rebuilds of multiple-output derivations
940
941 Previously it would fail when rebuilding a multiple-output derivation when
942 some (but not all) of its outputs were already present. See
943 http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and
944 https://github.com/NixOS/nix/issues/122 .
945
946 *** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’
947
948 Previously only the ‘out’ output of package ‘foo’ would be kept in the
949 profile.
950
951 *** Replacement (srfi srfi-37) provided if the user’s one is broken
952
953 When 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
955 command-line argument processing in some cases.
956
957 * Changes in 0.2 (since 0.1)
958
959 ** Package management
960
961 *** Guix commands are now sub-commands of the “guix” program
962
963 Instead of typing “guix-package”, one now has to type “guix package”, and so
964 on. This has allowed us to homogenize the user interface and initial program
965 setup, and to allow commands to be upgradable through “guix pull”.
966
967 *** New “guix package --upgrade” option
968
969 As the name implies, this option atomically upgrades all the packages
970 installed in a profile or the set of packages matching a given regexp.
971 See “Invoking guix package” in the manual.
972
973 *** New “guix package --search” option
974
975 Performs a full text search in package synopses and descriptions, and returns
976 the matching packages in recutils format. See “Invoking guix package” in the
977 manual, for details.
978
979 *** New “guix pull” command
980
981 The command pulls the latest version of Guix–both the package management
982 modules and the distribution. See the manual for details.
983
984 *** New binary substituter
985
986 The “substituter” mechanism allows pre-built binaries to be transparently
987 downloaded instead of performing a build locally. Currently binaries are
988 available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
989 distribution is continuously built and binaries are made available from there.
990
991 See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
992 available binary packages.
993
994 *** New “guix refresh” command
995
996 The command is used by Guix maintainers. It automatically updates the
997 distribution to the latest upstream releases of GNU software.
998
999 *** New “guix hash” command
1000
1001 Convenience command to compute the hash of a file. See the manual for
1002 details.
1003
1004 *** Nix daemon code updated
1005
1006 The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
1007 to current Nix ‘master’.
1008
1009 ** Programming interfaces
1010
1011 *** (guix download) now supports HTTPS, using GnuTLS
1012
1013 It allows package source tarballs to be retrieved over HTTPS.
1014
1015 *** New ‘native-search-path’ and ‘search-path’ package fields
1016
1017 Packages can define in their ‘native-search-path’ field environment variables
1018 that define search paths and need to be set for proper functioning of the
1019 package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
1020 ‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
1021 These environment variables are automatically set when building a package that
1022 uses one of these.
1023
1024 *** Package inputs can be a function of the target system type
1025
1026 The ‘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
1028 tarballs as inputs, such as GNU/MIT Scheme.
1029
1030 *** New build systems
1031
1032 The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
1033 been added. They implement the standard build systems for Perl, Python, and
1034 CMake packages.
1035
1036 *** Tools to build Linux initrds, QEMU images, and more
1037
1038 The (gnu packages linux-initrd) module provides a procedure to build a Linux
1039 initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
1040 evaluate the given expression. The example below returns an initrd that
1041 mounts 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
1049 More examples in the linux-initrd.scm file.
1050
1051 Experimental 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
1054 a QEMU virtual machine running the Linux kernel and Guile.
1055
1056 ** GNU distribution
1057
1058 Many updates and additions have been made to the distribution. Here are the
1059 highlights.
1060
1061 *** Major updates
1062
1063 GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
1064 Coreutils 8.20, GDB 7.6, Texinfo 5.1.
1065
1066 *** Noteworthy new packages
1067
1068 TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
1069 CHICKEN, Scheme48, Hugs, Python, Lua, Samba.