gnu: Add Grue Hunter.
[jackhill/guix/guix.git] / NEWS
CommitLineData
06504acb
LC
1 -*- org -*-
2#+TITLE: Guix NEWS – history of user-visible changes
3#+STARTUP: content hidestars
4056b828
LC
4
5Copyright © 2013 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
11Please send Guix bug reports to bug-guix@gnu.org.
12
85f3a05e 13
d1495831
LC
14* Changes in 0.3 (since 0.2)
15
16** Package management
17*** New ‘--max-silent-time’ option for “guix build” and “guix package”
18
19See the manual for details.
20
21** Bugs fixed
22*** “guix --help” now works when using Guile 2.0.5
23*** Binary substituter multi-threading and pipe issues fixed
24
25These could lead to random substituter crashes while substituting a binary.
26See commits 0332386 and 101d9f3 for details.
27
85f3a05e
LC
28* Changes in 0.2 (since 0.1)
29
4056b828
LC
30** Package management
31
32*** Guix commands are now sub-commands of the “guix” program
33
34Instead of typing “guix-package”, one now has to type “guix package”, and so
35on. This has allowed us to homogenize the user interface and initial program
36setup, and to allow commands to be upgradable through “guix pull”.
37
06504acb
LC
38*** New “guix package --upgrade” option
39
40As the name implies, this option atomically upgrades all the packages
e3729544
LC
41installed in a profile or the set of packages matching a given regexp.
42See “Invoking guix package” in the manual.
06504acb 43
0f241da2
LC
44*** New “guix package --search” option
45
46Performs a full text search in package synopses and descriptions, and returns
47the matching packages in recutils format. See “Invoking guix package” in the
48manual, for details.
49
4056b828
LC
50*** New “guix pull” command
51
52The command pulls the latest version of Guix–both the package management
53modules and the distribution. See the manual for details.
54
55*** New binary substituter
56
57The “substituter” mechanism allows pre-built binaries to be transparently
58downloaded instead of performing a build locally. Currently binaries are
0f241da2
LC
59available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
60distribution is continuously built and binaries are made available from there.
61
62See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
63available binary packages.
4056b828
LC
64
65*** New “guix refresh” command
66
67The command is used by Guix maintainers. It automatically updates the
68distribution to the latest upstream releases of GNU software.
69
70*** New “guix hash” command
71
72Convenience command to compute the hash of a file. See the manual for
73details.
74
0f241da2 75*** Nix daemon code updated
4056b828 76
0f241da2
LC
77The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
78to current Nix ‘master’.
4056b828
LC
79
80** Programming interfaces
81
0f241da2
LC
82*** (guix download) now supports HTTPS, using GnuTLS
83
84It allows package source tarballs to be retrieved over HTTPS.
85
4056b828
LC
86*** New ‘native-search-path’ and ‘search-path’ package fields
87
88Packages can define in their ‘native-search-path’ field environment variables
89that define search paths and need to be set for proper functioning of the
90package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
91‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
92These environment variables are automatically set when building a package that
93uses one of these.
94
95*** Package inputs can be a function of the target system type
96
97The ‘inputs’ field of a package can now be conditional on the value of
98(%current-system). This is useful for packages that take system-dependent
99tarballs as inputs, such as GNU/MIT Scheme.
100
101*** New build systems
102
103The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
104been added. They implement the standard build systems for Perl, Python, and
105CMake packages.
106
47d18810
LC
107*** Tools to build Linux initrds, QEMU images, and more
108
109The (gnu packages linux-initrd) module provides a procedure to build a Linux
110initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
111evaluate the given expression. The example below returns an initrd that
112mounts the /proc file system and starts a REPL:
113
114 (expression->initrd
115 '(begin
116 (mkdir "/proc")
117 (mount "none" "/proc" "proc")
118 ((@ (system repl repl) start-repl))))
119
120More examples in the linux-initrd.scm file.
121
122Experimental interfaces to produce and use QEMU images are provided by the
123(gnu system vm) module. For instance, the
124‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in
125a QEMU virtual machine running the Linux kernel and Guile.
126
4056b828
LC
127** GNU distribution
128
129Many updates and additions have been made to the distribution. Here are the
130highlights.
131
132*** Major updates
133
134GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
135Coreutils 8.20, GDB 7.6, Texinfo 5.1.
136
137*** Noteworthy new packages
138
0f241da2
LC
139TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
140CHICKEN, Scheme48, Hugs, Python, Lua, Samba.