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