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