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