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