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