Use `port-sha256' and `open-sha256-port'.
[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
bdbb6fbb
LC
17
18*** Cross-compilation support
19
20Guix can now cross-build packages. On the command-line, this is achieved with
21the new ‘--target’ command-line option of ‘guix build’. At the Scheme level,
22the guts of this is the ‘package-cross-derivation’ procedure. Core packages
23of the distribution can already be cross-compiled. See the manual for
24details.
25
d1495831
LC
26*** New ‘--max-silent-time’ option for “guix build” and “guix package”
27
28See the manual for details.
29
bdbb6fbb
LC
30*** New ‘--fallback’ option for “guix build” and “guix package”
31
32This option instructs to fall back to local builds when the substituter fails
33to download a substitute.
34
8e59fdd5
LC
35*** New ‘--requisites’ option for “guix gc”
36
37See the manual for details.
38
d1495831
LC
39** Bugs fixed
40*** “guix --help” now works when using Guile 2.0.5
41*** Binary substituter multi-threading and pipe issues fixed
42
43These could lead to random substituter crashes while substituting a binary.
44See commits 0332386 and 101d9f3 for details.
45
bdbb6fbb
LC
46*** Binary substituter gracefully handles lack of network connectivity
47
16357e8c
LC
48*** Daemon properly handles rebuilds of multiple-output derivations
49
50Previously it would fail when rebuilding a multiple-output derivation when
51some (but not all) of its outputs were already present. See
52http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and
53https://github.com/NixOS/nix/issues/122 .
54
85f3a05e
LC
55* Changes in 0.2 (since 0.1)
56
4056b828
LC
57** Package management
58
59*** Guix commands are now sub-commands of the “guix” program
60
61Instead of typing “guix-package”, one now has to type “guix package”, and so
62on. This has allowed us to homogenize the user interface and initial program
63setup, and to allow commands to be upgradable through “guix pull”.
64
06504acb
LC
65*** New “guix package --upgrade” option
66
67As the name implies, this option atomically upgrades all the packages
e3729544
LC
68installed in a profile or the set of packages matching a given regexp.
69See “Invoking guix package” in the manual.
06504acb 70
0f241da2
LC
71*** New “guix package --search” option
72
73Performs a full text search in package synopses and descriptions, and returns
74the matching packages in recutils format. See “Invoking guix package” in the
75manual, for details.
76
4056b828
LC
77*** New “guix pull” command
78
79The command pulls the latest version of Guix–both the package management
80modules and the distribution. See the manual for details.
81
82*** New binary substituter
83
84The “substituter” mechanism allows pre-built binaries to be transparently
85downloaded instead of performing a build locally. Currently binaries are
0f241da2
LC
86available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
87distribution is continuously built and binaries are made available from there.
88
89See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
90available binary packages.
4056b828
LC
91
92*** New “guix refresh” command
93
94The command is used by Guix maintainers. It automatically updates the
95distribution to the latest upstream releases of GNU software.
96
97*** New “guix hash” command
98
99Convenience command to compute the hash of a file. See the manual for
100details.
101
0f241da2 102*** Nix daemon code updated
4056b828 103
0f241da2
LC
104The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
105to current Nix ‘master’.
4056b828
LC
106
107** Programming interfaces
108
0f241da2
LC
109*** (guix download) now supports HTTPS, using GnuTLS
110
111It allows package source tarballs to be retrieved over HTTPS.
112
4056b828
LC
113*** New ‘native-search-path’ and ‘search-path’ package fields
114
115Packages can define in their ‘native-search-path’ field environment variables
116that define search paths and need to be set for proper functioning of the
117package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
118‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
119These environment variables are automatically set when building a package that
120uses one of these.
121
122*** Package inputs can be a function of the target system type
123
124The ‘inputs’ field of a package can now be conditional on the value of
125(%current-system). This is useful for packages that take system-dependent
126tarballs as inputs, such as GNU/MIT Scheme.
127
128*** New build systems
129
130The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
131been added. They implement the standard build systems for Perl, Python, and
132CMake packages.
133
47d18810
LC
134*** Tools to build Linux initrds, QEMU images, and more
135
136The (gnu packages linux-initrd) module provides a procedure to build a Linux
137initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
138evaluate the given expression. The example below returns an initrd that
139mounts the /proc file system and starts a REPL:
140
141 (expression->initrd
142 '(begin
143 (mkdir "/proc")
144 (mount "none" "/proc" "proc")
145 ((@ (system repl repl) start-repl))))
146
147More examples in the linux-initrd.scm file.
148
149Experimental interfaces to produce and use QEMU images are provided by the
150(gnu system vm) module. For instance, the
151‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in
152a QEMU virtual machine running the Linux kernel and Guile.
153
4056b828
LC
154** GNU distribution
155
156Many updates and additions have been made to the distribution. Here are the
157highlights.
158
159*** Major updates
160
161GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
162Coreutils 8.20, GDB 7.6, Texinfo 5.1.
163
164*** Noteworthy new packages
165
0f241da2
LC
166TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
167CHICKEN, Scheme48, Hugs, Python, Lua, Samba.