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 | ||
8f37bf62 LC |
13 | * Changes in 0.4 (since 0.3) |
14 | ||
15 | ** Package management | |
16 | ||
17 | *** New ‘--list-generations’ and ‘--delete-generations’ options | |
18 | ||
19 | The ‘guix package’ command has these two new options, which make it easier to | |
20 | deal with a profile’s generation. See “Invoking guix package” in the manual. | |
21 | ||
22 | *** New ‘guix-register’ program | |
23 | ||
24 | This program allows the meta-data of a new store to be initialized, by | |
25 | copying info from an existing store. It is mostly an internal tool. | |
26 | ||
27 | ** Programming interfaces | |
28 | ||
29 | *** New API to bootstrap Autotools-based packages | |
30 | ||
31 | The (guix build-system gnu) has a new ‘dist-package’ procedure that takes a | |
32 | package object and source directory, and returns a new package object that | |
33 | runs ‘./bootstrap && make dist’ or anything similar. | |
34 | ||
35 | *** ‘derivation’ and related procedures have a #:references-graphs parameter | |
36 | ||
37 | This parameter instructs the build daemon to populate the derivation’s build | |
38 | tree with files containing the list of references of the given store files. | |
39 | This is useful to write code that copies a packages and all its dependencies | |
40 | to another storage device, such as a QEMU disk image. | |
41 | ||
42 | *** Extended API to build a GNU system virtual machine image | |
43 | ||
44 | The (gnu system vm) module has been augmented in many ways: the ‘qemu-image’ | |
45 | procedure can now populate and initialize the image’s store; the new | |
46 | ‘system-qemu-image’ procedure returns a QEMU image that runs dmd as its init | |
47 | system, has ‘login’ running on several consoles, has a set of installed | |
48 | packages, and where Guix can be used. | |
49 | ||
50 | New (gnu system …) modules have been added to handle the configuration of the | |
51 | various parts of a GNU/Linux system. For instance, (gnu system dmd) provides | |
52 | support for instantiating dmd services; (gnu system linux) helps with Linux | |
53 | PAM configuration; and so on. | |
54 | ||
55 | *** <derivation> objects supersede .drv file names in the API | |
56 | ||
57 | ‘derivation’ and similar procedures no longer return two values (a | |
58 | <derivation> and a .drv file name); they now return a single value, which is | |
59 | a <derivation> object. The <derivation> object embeds the corresponding .drv | |
60 | file name. See “Derivations” in the manual for details. | |
61 | ||
62 | ** GNU distribution | |
63 | ||
6bf3e5f7 LC |
64 | *** 60 new packages |
65 | ||
66 | apr, apr-util, cdparanoia, dbus-glib, dfc, dmd, dvdisaster, exiv2, fetchmail, | |
67 | freefont-ttf, freeglut, geeqie, git, gkrellm, glu, gnome-doc-utils, | |
68 | gst-plugins-base, gstreamer, guile-cairo, guile-lib, guile-xcb, guix, htop, | |
69 | itstool, lame, libextractor, libmicrohttpd, lightning, lzip, mingetty, mutt, | |
70 | net-base, net-tools, ocrad, pspp, python-babel, python-dateutil, python-pytz, | |
71 | python-setuptools, python-simplejson, python-wrapper, python2-babel, | |
72 | python2-dateutil, python2-mechanize, python2-pyicu, python2-pysqlite, | |
73 | python2-pytz, python2-setuptools, python2-simplejson, qemu-system-initrd, | |
74 | qemu-with-multiple-smb-shares, ripperx, shadow, ttf-bitstream-vera, units, | |
75 | valgrind, xmlto, xnee, yasm | |
76 | ||
77 | *** 27 package updates | |
78 | ||
79 | bigloo 4.0b, cairo 1.12.16, ddrescue 1.17, fontconfig 2.10.93, fplll 4.0.4, | |
80 | gcc 4.7.3, gcc 4.7.3, glibc 2.18, glibc 2.18, glibc-stripped-tarball 2.18, | |
81 | gnupg 2.0.21, gnutls 3.2.4, guile 2.0.9, guile 2.0.9, harfbuzz 0.9.21, | |
82 | imagemagick 6.8.6-9, libdrm 2.4.46, libgcrypt 1.5.3, libjpeg 9, libksba 1.3.0, | |
83 | linux-libre 3.11, m4 1.4.17, mpfrcx 0.4.2, pari-gp 2.5.4, python 2.7.5, python | |
84 | 3.3.2, texlive 2013 | |
8f37bf62 LC |
85 | |
86 | *** Fontconfig font search path made more convenient | |
87 | ||
88 | Fontconfig, the library used by many graphical applications, such as those | |
89 | based on GTK+, now knows where to find the default set of fonts. Additional | |
90 | fonts installed in the user profile are automatically picked up. | |
91 | ||
92 | *** More GUI applications | |
93 | ||
94 | The ‘emacs’ and ‘racket’ packages are now linked against GTK+. New GTK+ | |
95 | applications have been added (see above.) | |
96 | ||
97 | *** Packaging guidelines | |
98 | ||
99 | The documentation of packaging guidelines has been augmented. See the manual | |
100 | under “GNU Distribution”. | |
101 | ||
102 | *** Support for Python 3 along with Python 2 | |
103 | ||
104 | Python 3 has been added to the distribution, and Python packages that support | |
105 | it are now built for both Python 2 and Python 3. See the “Python Modules” | |
106 | section of the manual for details. | |
107 | ||
108 | ** Internationalization | |
109 | ||
110 | Updated translations: eo. | |
111 | ||
112 | ** Bugs fixed | |
113 | ||
6bf3e5f7 | 114 | *** Workarounds for Guile 2.0.5 now work on Debian derivatives |
8f37bf62 | 115 | *** The dependency graph image has correct size in PDF output |
6bf3e5f7 | 116 | *** 'ldd' now works correctly on x86_64 |
8f37bf62 | 117 | *** Xorg server test suite no longer fails (http://bugs.gnu.org/15392) |
bb5f01c5 | 118 | *** module-init-tools now builds (http://bugs.gnu.org/15182, http://bugs.gnu.org/15187) |
6bf3e5f7 | 119 | *** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194) |
85f3a05e | 120 | |
d1495831 LC |
121 | * Changes in 0.3 (since 0.2) |
122 | ||
123 | ** Package management | |
bdbb6fbb LC |
124 | |
125 | *** Cross-compilation support | |
126 | ||
127 | Guix can now cross-build packages. On the command-line, this is achieved with | |
128 | the new ‘--target’ command-line option of ‘guix build’. At the Scheme level, | |
129 | the guts of this is the ‘package-cross-derivation’ procedure. Core packages | |
130 | of the distribution can already be cross-compiled. See the manual for | |
131 | details. | |
132 | ||
d1495831 LC |
133 | *** New ‘--max-silent-time’ option for “guix build” and “guix package” |
134 | ||
135 | See the manual for details. | |
136 | ||
bdbb6fbb LC |
137 | *** New ‘--fallback’ option for “guix build” and “guix package” |
138 | ||
139 | This option instructs to fall back to local builds when the substituter fails | |
140 | to download a substitute. | |
141 | ||
8e59fdd5 LC |
142 | *** New ‘--requisites’ option for “guix gc” |
143 | ||
144 | See the manual for details. | |
145 | ||
5939006b LC |
146 | *** New ‘--key-download’ option for “guix refresh” |
147 | ||
148 | See the manual for details. | |
42300254 LC |
149 | |
150 | ** Programming interfaces | |
151 | ||
5939006b LC |
152 | *** New ‘package-cross-derivation’ procedure in (guix derivations) |
153 | ||
154 | See the manual for details. | |
155 | ||
156 | *** New ‘%current-target-system’ SRFI-39 parameter | |
157 | ||
158 | This parameter is like ‘%current-system’, but for cross-compilation. It | |
159 | allows code in package definitions (such as in the ‘arguments’ field) to know | |
160 | whether it is being cross-compiled, and what the target system is. | |
161 | ||
42300254 LC |
162 | *** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures |
163 | ||
164 | This improves performance of SHA256 computations. | |
165 | ||
5939006b LC |
166 | |
167 | ** GNU distribution | |
168 | ||
3253830d | 169 | *** 33 new packages |
5939006b | 170 | |
3253830d LC |
171 | alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd, |
172 | gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2, | |
173 | iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket, | |
174 | rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore | |
5939006b | 175 | |
3253830d | 176 | *** 25 package updates |
5939006b | 177 | |
3253830d LC |
178 | automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3, |
179 | glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8, | |
180 | libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error | |
181 | 1.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu | |
182 | 1.5.1, tzdata 2013d, xorriso 1.3.0 | |
5939006b LC |
183 | |
184 | *** Binary packages now available for i686-linux | |
185 | ||
186 | The build farm at http://hydra.gnu.org now provides 32-bit GNU/Linux binaries | |
187 | (i686-linux), in addition to the x86_64-linux binaries. Both can be | |
188 | transparently used as substitutes for local builds on these platforms. | |
189 | ||
190 | *** Debug info packages | |
191 | ||
192 | Some packages now have a “debug” output containing debugging information. The | |
193 | “debug” output can be used by GDB, and can be installed separately from the | |
194 | other outputs of the package. See “Installing Debugging Files” in the manual. | |
195 | ||
196 | *** Bootstrap binaries can be cross-compiled | |
197 | ||
198 | The distribution can now be ported to new architectures (currently | |
199 | GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting” | |
200 | in the manual. | |
201 | ||
202 | *** Bootstrapping documented | |
203 | ||
204 | See “Bootstrapping” in the manual, for information on how the GNU | |
205 | distribution builds “from scratch”. | |
206 | ||
207 | ** Internationalization | |
208 | ||
209 | New translations: eo, pt_BR. | |
210 | ||
d1495831 LC |
211 | ** Bugs fixed |
212 | *** “guix --help” now works when using Guile 2.0.5 | |
213 | *** Binary substituter multi-threading and pipe issues fixed | |
214 | ||
215 | These could lead to random substituter crashes while substituting a binary. | |
216 | See commits 0332386 and 101d9f3 for details. | |
217 | ||
bdbb6fbb LC |
218 | *** Binary substituter gracefully handles lack of network connectivity |
219 | ||
16357e8c LC |
220 | *** Daemon properly handles rebuilds of multiple-output derivations |
221 | ||
222 | Previously it would fail when rebuilding a multiple-output derivation when | |
223 | some (but not all) of its outputs were already present. See | |
224 | http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and | |
225 | https://github.com/NixOS/nix/issues/122 . | |
226 | ||
5939006b LC |
227 | *** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’ |
228 | ||
229 | Previously only the ‘out’ output of package ‘foo’ would be kept in the | |
230 | profile. | |
231 | ||
3253830d LC |
232 | *** Replacement (srfi srfi-37) provided if the user’s one is broken |
233 | ||
234 | When the user’s (srfi srfi-37) is affected by http://bugs.gnu.org/13176 (Guile | |
235 | < 2.0.9), a replacement with the bug fix is provided. This bug would affect | |
236 | command-line argument processing in some cases. | |
237 | ||
85f3a05e LC |
238 | * Changes in 0.2 (since 0.1) |
239 | ||
4056b828 LC |
240 | ** Package management |
241 | ||
242 | *** Guix commands are now sub-commands of the “guix” program | |
243 | ||
244 | Instead of typing “guix-package”, one now has to type “guix package”, and so | |
245 | on. This has allowed us to homogenize the user interface and initial program | |
246 | setup, and to allow commands to be upgradable through “guix pull”. | |
247 | ||
06504acb LC |
248 | *** New “guix package --upgrade” option |
249 | ||
250 | As the name implies, this option atomically upgrades all the packages | |
e3729544 LC |
251 | installed in a profile or the set of packages matching a given regexp. |
252 | See “Invoking guix package” in the manual. | |
06504acb | 253 | |
0f241da2 LC |
254 | *** New “guix package --search” option |
255 | ||
256 | Performs a full text search in package synopses and descriptions, and returns | |
257 | the matching packages in recutils format. See “Invoking guix package” in the | |
258 | manual, for details. | |
259 | ||
4056b828 LC |
260 | *** New “guix pull” command |
261 | ||
262 | The command pulls the latest version of Guix–both the package management | |
263 | modules and the distribution. See the manual for details. | |
264 | ||
265 | *** New binary substituter | |
266 | ||
267 | The “substituter” mechanism allows pre-built binaries to be transparently | |
268 | downloaded instead of performing a build locally. Currently binaries are | |
0f241da2 LC |
269 | available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The |
270 | distribution is continuously built and binaries are made available from there. | |
271 | ||
272 | See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of | |
273 | available binary packages. | |
4056b828 LC |
274 | |
275 | *** New “guix refresh” command | |
276 | ||
277 | The command is used by Guix maintainers. It automatically updates the | |
278 | distribution to the latest upstream releases of GNU software. | |
279 | ||
280 | *** New “guix hash” command | |
281 | ||
282 | Convenience command to compute the hash of a file. See the manual for | |
283 | details. | |
284 | ||
0f241da2 | 285 | *** Nix daemon code updated |
4056b828 | 286 | |
0f241da2 LC |
287 | The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated |
288 | to current Nix ‘master’. | |
4056b828 LC |
289 | |
290 | ** Programming interfaces | |
291 | ||
0f241da2 LC |
292 | *** (guix download) now supports HTTPS, using GnuTLS |
293 | ||
294 | It allows package source tarballs to be retrieved over HTTPS. | |
295 | ||
4056b828 LC |
296 | *** New ‘native-search-path’ and ‘search-path’ package fields |
297 | ||
298 | Packages can define in their ‘native-search-path’ field environment variables | |
299 | that define search paths and need to be set for proper functioning of the | |
300 | package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its | |
301 | ‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc. | |
302 | These environment variables are automatically set when building a package that | |
303 | uses one of these. | |
304 | ||
305 | *** Package inputs can be a function of the target system type | |
306 | ||
307 | The ‘inputs’ field of a package can now be conditional on the value of | |
308 | (%current-system). This is useful for packages that take system-dependent | |
309 | tarballs as inputs, such as GNU/MIT Scheme. | |
310 | ||
311 | *** New build systems | |
312 | ||
313 | The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have | |
314 | been added. They implement the standard build systems for Perl, Python, and | |
315 | CMake packages. | |
316 | ||
47d18810 LC |
317 | *** Tools to build Linux initrds, QEMU images, and more |
318 | ||
319 | The (gnu packages linux-initrd) module provides a procedure to build a Linux | |
320 | initrd (“initial RAM disk”). The initrd embeds Guile, which is used to | |
321 | evaluate the given expression. The example below returns an initrd that | |
322 | mounts the /proc file system and starts a REPL: | |
323 | ||
324 | (expression->initrd | |
325 | '(begin | |
326 | (mkdir "/proc") | |
327 | (mount "none" "/proc" "proc") | |
328 | ((@ (system repl repl) start-repl)))) | |
329 | ||
330 | More examples in the linux-initrd.scm file. | |
331 | ||
332 | Experimental interfaces to produce and use QEMU images are provided by the | |
333 | (gnu system vm) module. For instance, the | |
334 | ‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in | |
335 | a QEMU virtual machine running the Linux kernel and Guile. | |
336 | ||
4056b828 LC |
337 | ** GNU distribution |
338 | ||
339 | Many updates and additions have been made to the distribution. Here are the | |
340 | highlights. | |
341 | ||
342 | *** Major updates | |
343 | ||
344 | GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9, | |
345 | Coreutils 8.20, GDB 7.6, Texinfo 5.1. | |
346 | ||
347 | *** Noteworthy new packages | |
348 | ||
0f241da2 LC |
349 | TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo, |
350 | CHICKEN, Scheme48, Hugs, Python, Lua, Samba. |