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