doc: 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. See “Invoking guix package” in the manual.
28
29 *** New “guix pull” command
30
31 The command pulls the latest version of Guix–both the package management
32 modules and the distribution. See the manual for details.
33
34 *** New binary substituter
35
36 The “substituter” mechanism allows pre-built binaries to be transparently
37 downloaded instead of performing a build locally. Currently binaries are
38 available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. See
39 the manual for details.
40
41 *** New “guix refresh” command
42
43 The command is used by Guix maintainers. It automatically updates the
44 distribution to the latest upstream releases of GNU software.
45
46 *** New “guix hash” command
47
48 Convenience command to compute the hash of a file. See the manual for
49 details.
50
51 *** (guix download) now supports HTTPS, using GnuTLS
52
53 It allows package source tarballs to be retrieved over HTTPS.
54
55 ** Programming interfaces
56
57 *** New ‘native-search-path’ and ‘search-path’ package fields
58
59 Packages can define in their ‘native-search-path’ field environment variables
60 that define search paths and need to be set for proper functioning of the
61 package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
62 ‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
63 These environment variables are automatically set when building a package that
64 uses one of these.
65
66 *** Package inputs can be a function of the target system type
67
68 The ‘inputs’ field of a package can now be conditional on the value of
69 (%current-system). This is useful for packages that take system-dependent
70 tarballs as inputs, such as GNU/MIT Scheme.
71
72 *** New build systems
73
74 The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
75 been added. They implement the standard build systems for Perl, Python, and
76 CMake packages.
77
78 ** GNU distribution
79
80 Many updates and additions have been made to the distribution. Here are the
81 highlights.
82
83 *** Major updates
84
85 GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
86 Coreutils 8.20, GDB 7.6, Texinfo 5.1.
87
88 *** Noteworthy new packages
89
90 TeXLive, Xorg, GNU Parted, QEMU and QEMU-KVM, Avahi, Hugs, Python, Lua, Samba.