Commit | Line | Data |
---|---|---|
06504acb LC |
1 | -*- org -*- |
2 | #+TITLE: Guix NEWS – history of user-visible changes | |
3 | #+STARTUP: content hidestars | |
4056b828 | 4 | |
b0f981f0 | 5 | Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org> |
4056b828 LC |
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 | ||
02dd2a9c LC |
13 | * Changes in 0.7 (since 0.6) |
14 | ** Package management | |
15 | *** ‘guix refresh’ has a new ‘--list-dependent’ options | |
16 | ||
17 | See “Invoking guix refresh” in the manual. | |
18 | ||
19 | ** Programming interfaces | |
20 | *** New (guix gexp) module, which implements “G-expressions” | |
21 | ||
22 | G-expressions are a new mechanism to embed build-side code in host-side | |
23 | code. See “G-Expressions” in the manual. | |
24 | ||
25 | *** (gnu system) and related modules now use G-expressions | |
26 | ||
27 | This greatly simplifies code, and guarantees that build code carries | |
28 | references to the packages or derivations it uses. | |
29 | ||
30 | *** ‘build-expression->derivation’ is deprecated in favor of G-expressions | |
31 | *** The (gnu system) module has been largely augmented and factorized | |
32 | *** New (guix build vm) module, support for virtual machine images | |
33 | *** New (guix build activation) module, for “system activation” | |
34 | *** New (guix build syscalls) module | |
35 | *** New (guix build install) and module for whole system installation | |
36 | *** New (gnu system install) module, for the installation system | |
37 | *** New (gnu system file-systems) module, for ‘file-system’ declarations | |
38 | *** New (gnu) module, which aggregates common (gnu …) modules | |
39 | *** ‘service’ records now have an optional ‘activate’ field | |
40 | ||
41 | This allows services to specify code to run at system activation time. | |
42 | ||
43 | ** GNU distribution | |
44 | *** An image to install the GNU system from a USB stick is provided | |
45 | ||
46 | This is the first time an installation image is provided. See “System | |
47 | Installation” in the manual for details. This is work in progress as noted | |
48 | in “Limitations”. Your feedback and help are welcome! | |
49 | ||
50 | *** Support for more parameters in ‘operating-system’ declarations | |
51 | ||
52 | Operating system declarations can now provide a list of file systems, a list | |
53 | of setuid programs, bootloader options, and more. See “System Configuration” | |
54 | in the manual. | |
55 | ||
56 | *** ‘guix system’ supports more actions | |
57 | ||
58 | Newly supported actions are ‘init’, ‘build’, ‘reconfigure’, and ‘disk-image’. | |
59 | See “Invoking guix system” in the manual. | |
60 | ||
61 | *** User accounts and groups are created at system activation time | |
62 | *** Virtual machine support uses para-virtualized devices | |
63 | *** GCC package now has an additional ‘lib’ output, for run-time support libs | |
64 | *** GLib package now has a separate “bin” output (<http://bugs.gnu.org/17853>) | |
65 | *** XXX new packages | |
66 | *** XXX package updates | |
67 | ||
68 | ** Native language support | |
69 | *** New translations: de (German), and hu (Hungarian) | |
70 | *** Updated translations: eo, pt_BR, sr, vi | |
71 | *** Package descriptions moved from the ‘guix’ text domain to ‘guix-packages’ | |
72 | ** Bugs fixed | |
73 | *** Downloads are now faster (<http://bugs.gnu.org/15368>) | |
74 | *** ‘guix authenticate’ properly writes signatures to stdout | |
75 | (<http://bugs.gnu.org/17312>) | |
76 | *** Progress report of downloads is now properly displayed | |
77 | *** Error reporting of pk-crypto errors has been improved | |
78 | *** The 'patches' field now works for origins with no extension | |
79 | *** Synchronization and GC issues fixed in the offload hook | |
80 | *** (guix ftp-client) emits USER commands suitable for all servers | |
81 | ||
b0f981f0 LC |
82 | * Changes in 0.6 (since 0.5) |
83 | ** Package management | |
84 | *** Default store directory changed to /gnu/store | |
85 | ||
86 | Although it is still possible to configure Guix to use the old store | |
87 | directory, we recommend that you start with a fresh install to /gnu/store. | |
88 | ||
89 | *** Substitutes from hydra.gnu.org must now be signed and authorized | |
90 | *** Support for offloading builds to other Guix machines over SSH | |
91 | *** New ‘guix archive’ command | |
92 | *** New ‘guix system’ command; it can currently build VM images | |
93 | *** ‘guix package’ accepts several arguments after -i, -r, and -u | |
94 | *** Updating a profile with ‘guix package’ is now noticeably faster | |
95 | *** ‘guix build’ can override a package’s source with the new ‘--with-source’ | |
96 | *** ‘guix build’ has a new ‘--no-build-hook’ option | |
97 | *** ‘guix’ commands that build packages have a common set of options | |
98 | *** ‘guix hash’ has a new ‘--recursive’ option | |
99 | *** Daemon no longer bind-mounts the host’s /dev (improves reproducibility) | |
100 | ** Programming interfaces | |
101 | *** New (guix pk-crypto) and (guix pki) modules for public key cryptography | |
102 | *** New #:local-build? parameter for derivations that shouldn’t be offloaded | |
103 | *** (gnu system vm) has procedures to build VMs that share the host’s store | |
104 | *** New ‘text-file*’ procedure in (guix monads) | |
105 | *** System service definitions are now provided by the (guix services) modules | |
106 | *** New X and SLiM services in (gnu services xorg) | |
107 | *** New (guix git-download) and (guix svn-download) for git/svn checkouts | |
108 | ** GNU distribution | |
4ec91959 LC |
109 | *** 91 new packages |
110 | ||
111 | a2ps, asciidoc, aspell-dict-en, aspell-dict-eo, aspell-dict-es, | |
112 | aspell-dict-fr, aumix, bitlbee, bogofilter, boost, calcurse, clusterssh, | |
113 | corkscrew, cursynth, docbook-xml, docbook-xsl, elfutils, enscript, fftwf, | |
114 | fltk, fuse, gcc-toolchain, giflib, glade, gmime, gnome-desktop, gnubg, gnubik, | |
115 | gnumach-headers, gnunet, gnuplot, gnurl, gphoto2, gtkglext, guile-json, | |
116 | guile-reader-for-guile_2.0.11, gxmessage, hdf5, hurd-headers, inkscape, iotop, | |
117 | isc-dhcp, iso-codes, jnettop, libatomic-ops, libexif, libgphoto2, libmpcdec, | |
118 | libmpdclient, libotr, libpcap, libpeas, libpipeline, libtirpc, libwebsockets, | |
119 | ltrace, luajit, lynx, man-db, mc, mig, miniupnpc, moe, mpc123, mpd, ncdc, | |
120 | ncdu, ncmpc, neon, neon, octave, opus, paperkey, patchutils, perl-tk, | |
121 | perl-x11-protocol, pinentry, python2-element-tree, python2-pybugz, quilt, | |
122 | source-highlight, stalonetray, trueprint, ttf-dejavu, unionfs-fuse, | |
123 | unionfs-fuse-static, uucp, vera, windowmaker, xapian, xterm | |
124 | ||
125 | *** 90 package updates | |
126 | ||
127 | apl-1.3, autoconf-2.68, automake-1.14.1, bash-4.3, bash-light-4.3, | |
128 | bigloo-4.1a, binutils-2.24, binutils-static-stripped-tarball-2.24, | |
129 | coreutils-8.22, curl-7.35.0, ed-1.10, ffmpeg-2.1.4, file-5.18, freeipmi-1.4.1, | |
130 | gcc-4.8.2, gcc-4.8.2, gdb-7.7, gdbm-1.11, gettext-0.18.3.2, glib-2.39.1, | |
131 | glibc-2.19, glibc-stripped-tarball-2.19, global-6.2.12, glpk-4.54, | |
132 | gnu-pw-mgr-1.2, gnupg-1.4.16, gnutls-3.2.12, gp2c-0.0.8pl1, grep-2.18, | |
133 | gst-plugins-base-0.10.36, gstreamer-1.0.10, gtk+-3.10.1, gtkmm-2.24.2, | |
134 | guile-2.0.11, guile-ssh-0.6.0, guile-static-stripped-tarball-2.0.11, | |
135 | guile-wm-1.0, guile-xcb-1.3, guix-0.5, help2man-1.45.1, icu4c-52.1, | |
136 | imagemagick-6.8.8-10, inetutils-1.9.2, lapack-3.5.0, libcdio-0.92, | |
137 | libdrm-2.4.46, libextractor-1.3, libgc-7.2e, libgc-7.4.0, libgcrypt-1.6.1, | |
138 | libjpeg-9, libmicrohttpd-0.9.34, libssh-0.6.3, libtasn1-3.4, lightning-2.0.3, | |
139 | linux-libre-3.13.7, mpc-1.0.2, mutt-1.5.23, net-base-5.2, ocrad-0.23, | |
140 | openssh-6.6p1, openssl-1.0.1g, parallel-20140322, pari-gp-2.7.0, pspp-0.8.2, | |
141 | pulseaudio-5.0, python-2.7.6, python-3.3.5, python-wrapper-3.3.5, | |
142 | python2-pysqlite-2.6.3a, qemu-1.7.1, qemu-headless-1.7.1, | |
143 | qemu-with-multiple-smb-shares-1.7.1, qt-4.8.5, qt-5.2.0, readline-6.3, | |
144 | recutils-1.7, slim-1.3.6, sqlite-3.8.4.3, subversion-1.7.14, texinfo-4.13a, | |
145 | tor-0.2.4.21, tzdata-2014a, units-2.11, valgrind-3.9.0, vim-7.4, wget-1.15, | |
146 | xnee-3.18, xorriso-1.3.6.pl01, zile-2.4.11 | |
147 | ||
b0f981f0 LC |
148 | *** New ‘gcc-toolchain’ meta-package, makes it easy to install a GCC tool chain |
149 | *** libc’s Info manual is now installed | |
150 | *** Binutils is built with --enable-deterministic-archives | |
151 | *** Packages that populated man/man* now populate share/man/man* | |
152 | *** Many other packaging improvements | |
153 | ** Bugs fixed | |
154 | *** ‘guix pull’ consumes less memory, compiles in parallel | |
155 | *** ‘guix package --list-*’ gracefully handles EPIPE when used in a pipeline | |
156 | *** ‘guix package’ handles collisions between a symlink and a directory | |
157 | (http://bugs.gnu.org/17083) | |
158 | *** HTTP downloads provide a ‘User-Agent’ field (http://bugs.gnu.org/16703) | |
159 | *** ‘guix package’ no longer shows misleading installed package number | |
160 | (http://bugs.gnu.org/16484) | |
161 | *** Manual suggests ‘useradd --system’ (http://bugs.gnu.org/16289) | |
162 | *** Python is built with ctypes support (http://bugs.gnu.org/16569) | |
163 | *** HTTP/TLS connection not terminated properly (http://bugs.gnu.org/14884) | |
164 | *** Gracefully handle poorly behaved HTTP servers (http://bugs.gnu.org/15733) | |
165 | ||
a043ac04 LC |
166 | * Changes in 0.5 (since 0.4) |
167 | ** Package management | |
168 | *** GNU package descriptions synchronized with the ‘gnumaint’ repository | |
169 | ||
170 | In addition to synopses, descriptions of GNU packages are now kept in sync | |
171 | with the ‘gnumaint’ repository, which is the canonical place for GNU package | |
172 | meta-data. | |
173 | ||
174 | ** Programming interfaces | |
175 | *** Patches are now listed as part of ‘origin’ | |
176 | ||
177 | The ‘origin’ form supports two new fields: ‘patches’ (list of patches), and | |
178 | ‘snippet’ (code snippet to modify the source.) These are applied when running | |
179 | ‘guix build --source’. See “Defining Packages” in the manual. | |
180 | ||
181 | *** New (guix monads) monadic interface to operate on the store | |
182 | ||
183 | See “The Store Monad” in the manual. The (gnu system …) modules have been | |
184 | rewritten to use this monadic interface. | |
185 | ||
186 | *** New (guix profiles) module | |
187 | ||
188 | It provides an API for dealing with profiles, as with the ‘guix package’ | |
189 | command. | |
190 | ||
191 | *** New (gnu system) module | |
192 | ||
4a8c5617 AE |
193 | This module provides a generic way to describe the system’s configuration, |
194 | and to instantiate it, regardless of the final medium (QEMU image, etc.) | |
a043ac04 LC |
195 | See “System Configuration” in the manual. |
196 | ||
197 | This is work in progress. Send feedback to guix-devel@gnu.org! | |
198 | ||
199 | *** ‘build-expression->derivation’ uses more parameters | |
200 | ||
201 | Some positional parameters have been changed to keyword parameters. | |
202 | See “Derivations” in the manual. | |
203 | ||
204 | ** GNU distribution | |
205 | *** New port to the Loongson MIPS64 processors, n32 ABI (‘mips64el-linux’) | |
206 | ||
4a8c5617 | 207 | Bootstrap binaries have been built for that architecture, and several |
a043ac04 LC |
208 | Loongson-specific patches not yet available upstream have been applied to core |
209 | packages. See “GNU Distribution” and “Porting” in the manual. | |
210 | ||
211 | Pre-built binaries are not yet available via hydra.gnu.org, so Guix will | |
4a8c5617 | 212 | build from source on this platform. |
a043ac04 | 213 | |
5d6dbd29 LC |
214 | *** 110 new packages |
215 | ||
216 | acct, alive, alsa-utils, apl, at-spi2-atk, at-spi2-core, atkmm, autogen, | |
217 | automoc4, brasero, bridge-utils, cairomm, catkin, complexity, evince, ffmpeg, | |
218 | fftw, ftgl, gcc-objc, gcc-objc++, gccgo, gcl, gfortran, glibmm, glpk, | |
219 | gnome-icon-theme, gnu-pw-mgr, gp2c, gpgme, gsettings-desktop-schemas, gtkmm, | |
220 | gtksourceview, guile-ssh, guile-wm, gvpe, hicolor-icon-theme, httpd, icecat, | |
221 | icon-naming-utils, json-c, lapack, libcanberra, libcap, libgnome-keyring, | |
222 | libmikmod, libnl, libnotify, libsamplerate, libsigc++, libsndfile, libssh, | |
223 | libtheora, libxkbcommon, mercurial, mtools, netcat, pangomm, parallel, | |
224 | pavucontrol, pciutils, pem, perl-encode-locale, perl-file-list, | |
225 | perl-file-listing, perl-html-parser, perl-html-tagset, perl-http-cookies, | |
226 | perl-http-daemon, perl-http-date, perl-http-message, perl-http-negotiate, | |
227 | perl-io-html, perl-libwww, perl-libxml, perl-lwp-mediatypes, perl-net-http, | |
228 | perl-uri, perl-www-robotrules, perl-xml-dom, perl-xml-regexp, perl-xml-simple, | |
229 | phonon, powertop, pulseaudio, python2-dogtail, python2-empy, qemu-headless, | |
230 | qt, qt, raptor2, scons, sdl, sdl-gfx, sdl-image, sdl-mixer, sdl-net, sdl-ttf, | |
231 | sdl2, serveez, shared-mime-info, sharutils, skribilo, slim, soprano, swig, | |
232 | xcb-util, xcb-util-image, xcb-util-keysyms, xcb-util-renderutil, xcb-util-wm | |
233 | ||
234 | *** 47 package updates | |
235 | ||
236 | atk 2.10.0, bison 3.0.2, cmake 2.8.12, dmd 0.1, freeipmi 1.3.3, gcc 4.8.2, | |
237 | gcc 4.8.2, gcc-cross-mips64el-linux-gnuabi64 4.8.2, gcc-stripped-tarball 4.8.2, | |
238 | gdb 7.6.2, gettext 0.18.3.1, glib 2.38.0, global 6.2.9, gmp 5.1.3, | |
239 | gnupg 2.0.22, gobject-introspection 1.38.0, grep 2.15, gsl 1.16, | |
240 | gtk+ 2.24.21, gtk+ 3.10.1, guile 2.0.9, guile 2.0.9, guile-xcb 1.2, | |
241 | harfbuzz 0.9.22, hello 2.9, iproute2 3.12.0, libdrm 2.4.46, | |
242 | libextractor 1.2, libjpeg 9, libmicrohttpd 0.9.32, lightning 2.0.2, | |
243 | linux-libre 3.12, lzip 1.15, make 4.0, mit-krb5 1.11.3, pari-gp 2.5.5, | |
244 | pixman 0.32.4, python 3.3.2, qemu 1.6.1, | |
245 | qemu-with-multiple-smb-shares 1.6.1, rcs 5.9.2, recutils 1.6, rsync 3.1.0, | |
246 | tar 1.27.1, texinfo 5.2, units 2.02, xorriso 1.3.2 | |
a043ac04 LC |
247 | |
248 | *** Packages are now built with GCC 4.8.2 by default (was 4.7.3) | |
249 | ||
250 | ** Native language support | |
251 | *** New ‘sr’ (Serbian) translation | |
252 | *** New ‘vi’ (Vietnamese) translation | |
253 | *** Updated ‘pt_BR’ (Brazilian Portuguese) translation | |
254 | ** Bugs fixed | |
4a8c5617 | 255 | *** ‘guix pull’ compiles Guix deterministically and correctly |
a043ac04 LC |
256 | |
257 | Previously, the build environment was not cleared in between ‘compile-file’ | |
258 | calls, leading to build errors due to Guile bug http://bugs.gnu.org/15602 . | |
259 | ||
260 | *** ‘guix package’ allows removal of a specific package output | |
261 | (http://bugs.gnu.org/15756) | |
5d6dbd29 LC |
262 | *** ‘guix-daemon’ always sets umask to 022 |
263 | (http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00033.html) | |
a043ac04 | 264 | *** Files referenced by environment variables are protected from GC |
5d6dbd29 | 265 | *** Yet unbuilt packages get correctly installed (http://bugs.gnu.org/15283) |
a043ac04 LC |
266 | *** ‘bootstrap-graph.{png,eps,pdf}’ built in srcdir (http://bugs.gnu.org/15640) |
267 | ||
8f37bf62 LC |
268 | * Changes in 0.4 (since 0.3) |
269 | ||
270 | ** Package management | |
271 | ||
272 | *** New ‘--list-generations’ and ‘--delete-generations’ options | |
273 | ||
274 | The ‘guix package’ command has these two new options, which make it easier to | |
275 | deal with a profile’s generation. See “Invoking guix package” in the manual. | |
276 | ||
277 | *** New ‘guix-register’ program | |
278 | ||
279 | This program allows the meta-data of a new store to be initialized, by | |
280 | copying info from an existing store. It is mostly an internal tool. | |
281 | ||
282 | ** Programming interfaces | |
283 | ||
284 | *** New API to bootstrap Autotools-based packages | |
285 | ||
286 | The (guix build-system gnu) has a new ‘dist-package’ procedure that takes a | |
287 | package object and source directory, and returns a new package object that | |
288 | runs ‘./bootstrap && make dist’ or anything similar. | |
289 | ||
290 | *** ‘derivation’ and related procedures have a #:references-graphs parameter | |
291 | ||
292 | This parameter instructs the build daemon to populate the derivation’s build | |
293 | tree with files containing the list of references of the given store files. | |
294 | This is useful to write code that copies a packages and all its dependencies | |
295 | to another storage device, such as a QEMU disk image. | |
296 | ||
297 | *** Extended API to build a GNU system virtual machine image | |
298 | ||
299 | The (gnu system vm) module has been augmented in many ways: the ‘qemu-image’ | |
300 | procedure can now populate and initialize the image’s store; the new | |
301 | ‘system-qemu-image’ procedure returns a QEMU image that runs dmd as its init | |
302 | system, has ‘login’ running on several consoles, has a set of installed | |
303 | packages, and where Guix can be used. | |
304 | ||
305 | New (gnu system …) modules have been added to handle the configuration of the | |
306 | various parts of a GNU/Linux system. For instance, (gnu system dmd) provides | |
307 | support for instantiating dmd services; (gnu system linux) helps with Linux | |
308 | PAM configuration; and so on. | |
309 | ||
310 | *** <derivation> objects supersede .drv file names in the API | |
311 | ||
312 | ‘derivation’ and similar procedures no longer return two values (a | |
313 | <derivation> and a .drv file name); they now return a single value, which is | |
314 | a <derivation> object. The <derivation> object embeds the corresponding .drv | |
315 | file name. See “Derivations” in the manual for details. | |
316 | ||
317 | ** GNU distribution | |
318 | ||
6bf3e5f7 LC |
319 | *** 60 new packages |
320 | ||
321 | apr, apr-util, cdparanoia, dbus-glib, dfc, dmd, dvdisaster, exiv2, fetchmail, | |
322 | freefont-ttf, freeglut, geeqie, git, gkrellm, glu, gnome-doc-utils, | |
323 | gst-plugins-base, gstreamer, guile-cairo, guile-lib, guile-xcb, guix, htop, | |
324 | itstool, lame, libextractor, libmicrohttpd, lightning, lzip, mingetty, mutt, | |
325 | net-base, net-tools, ocrad, pspp, python-babel, python-dateutil, python-pytz, | |
326 | python-setuptools, python-simplejson, python-wrapper, python2-babel, | |
327 | python2-dateutil, python2-mechanize, python2-pyicu, python2-pysqlite, | |
328 | python2-pytz, python2-setuptools, python2-simplejson, qemu-system-initrd, | |
329 | qemu-with-multiple-smb-shares, ripperx, shadow, ttf-bitstream-vera, units, | |
330 | valgrind, xmlto, xnee, yasm | |
331 | ||
332 | *** 27 package updates | |
333 | ||
334 | bigloo 4.0b, cairo 1.12.16, ddrescue 1.17, fontconfig 2.10.93, fplll 4.0.4, | |
335 | gcc 4.7.3, gcc 4.7.3, glibc 2.18, glibc 2.18, glibc-stripped-tarball 2.18, | |
336 | gnupg 2.0.21, gnutls 3.2.4, guile 2.0.9, guile 2.0.9, harfbuzz 0.9.21, | |
337 | imagemagick 6.8.6-9, libdrm 2.4.46, libgcrypt 1.5.3, libjpeg 9, libksba 1.3.0, | |
338 | linux-libre 3.11, m4 1.4.17, mpfrcx 0.4.2, pari-gp 2.5.4, python 2.7.5, python | |
339 | 3.3.2, texlive 2013 | |
8f37bf62 LC |
340 | |
341 | *** Fontconfig font search path made more convenient | |
342 | ||
343 | Fontconfig, the library used by many graphical applications, such as those | |
344 | based on GTK+, now knows where to find the default set of fonts. Additional | |
345 | fonts installed in the user profile are automatically picked up. | |
346 | ||
347 | *** More GUI applications | |
348 | ||
349 | The ‘emacs’ and ‘racket’ packages are now linked against GTK+. New GTK+ | |
350 | applications have been added (see above.) | |
351 | ||
352 | *** Packaging guidelines | |
353 | ||
354 | The documentation of packaging guidelines has been augmented. See the manual | |
355 | under “GNU Distribution”. | |
356 | ||
357 | *** Support for Python 3 along with Python 2 | |
358 | ||
359 | Python 3 has been added to the distribution, and Python packages that support | |
360 | it are now built for both Python 2 and Python 3. See the “Python Modules” | |
361 | section of the manual for details. | |
362 | ||
363 | ** Internationalization | |
364 | ||
365 | Updated translations: eo. | |
366 | ||
367 | ** Bugs fixed | |
368 | ||
6bf3e5f7 | 369 | *** Workarounds for Guile 2.0.5 now work on Debian derivatives |
8f37bf62 | 370 | *** The dependency graph image has correct size in PDF output |
6bf3e5f7 | 371 | *** 'ldd' now works correctly on x86_64 |
8f37bf62 | 372 | *** Xorg server test suite no longer fails (http://bugs.gnu.org/15392) |
bb5f01c5 | 373 | *** module-init-tools now builds (http://bugs.gnu.org/15182, http://bugs.gnu.org/15187) |
6bf3e5f7 | 374 | *** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194) |
85f3a05e | 375 | |
d1495831 LC |
376 | * Changes in 0.3 (since 0.2) |
377 | ||
378 | ** Package management | |
bdbb6fbb LC |
379 | |
380 | *** Cross-compilation support | |
381 | ||
382 | Guix can now cross-build packages. On the command-line, this is achieved with | |
383 | the new ‘--target’ command-line option of ‘guix build’. At the Scheme level, | |
384 | the guts of this is the ‘package-cross-derivation’ procedure. Core packages | |
385 | of the distribution can already be cross-compiled. See the manual for | |
386 | details. | |
387 | ||
d1495831 LC |
388 | *** New ‘--max-silent-time’ option for “guix build” and “guix package” |
389 | ||
390 | See the manual for details. | |
391 | ||
bdbb6fbb LC |
392 | *** New ‘--fallback’ option for “guix build” and “guix package” |
393 | ||
394 | This option instructs to fall back to local builds when the substituter fails | |
395 | to download a substitute. | |
396 | ||
8e59fdd5 LC |
397 | *** New ‘--requisites’ option for “guix gc” |
398 | ||
399 | See the manual for details. | |
400 | ||
5939006b LC |
401 | *** New ‘--key-download’ option for “guix refresh” |
402 | ||
403 | See the manual for details. | |
42300254 LC |
404 | |
405 | ** Programming interfaces | |
406 | ||
5939006b LC |
407 | *** New ‘package-cross-derivation’ procedure in (guix derivations) |
408 | ||
409 | See the manual for details. | |
410 | ||
411 | *** New ‘%current-target-system’ SRFI-39 parameter | |
412 | ||
413 | This parameter is like ‘%current-system’, but for cross-compilation. It | |
414 | allows code in package definitions (such as in the ‘arguments’ field) to know | |
415 | whether it is being cross-compiled, and what the target system is. | |
416 | ||
42300254 LC |
417 | *** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures |
418 | ||
419 | This improves performance of SHA256 computations. | |
420 | ||
5939006b LC |
421 | |
422 | ** GNU distribution | |
423 | ||
3253830d | 424 | *** 33 new packages |
5939006b | 425 | |
3253830d LC |
426 | alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd, |
427 | gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2, | |
428 | iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket, | |
429 | rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore | |
5939006b | 430 | |
3253830d | 431 | *** 25 package updates |
5939006b | 432 | |
3253830d LC |
433 | automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3, |
434 | glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8, | |
435 | libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error | |
436 | 1.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu | |
437 | 1.5.1, tzdata 2013d, xorriso 1.3.0 | |
5939006b LC |
438 | |
439 | *** Binary packages now available for i686-linux | |
440 | ||
441 | The build farm at http://hydra.gnu.org now provides 32-bit GNU/Linux binaries | |
442 | (i686-linux), in addition to the x86_64-linux binaries. Both can be | |
443 | transparently used as substitutes for local builds on these platforms. | |
444 | ||
445 | *** Debug info packages | |
446 | ||
447 | Some packages now have a “debug” output containing debugging information. The | |
448 | “debug” output can be used by GDB, and can be installed separately from the | |
449 | other outputs of the package. See “Installing Debugging Files” in the manual. | |
450 | ||
451 | *** Bootstrap binaries can be cross-compiled | |
452 | ||
453 | The distribution can now be ported to new architectures (currently | |
454 | GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting” | |
455 | in the manual. | |
456 | ||
457 | *** Bootstrapping documented | |
458 | ||
459 | See “Bootstrapping” in the manual, for information on how the GNU | |
460 | distribution builds “from scratch”. | |
461 | ||
462 | ** Internationalization | |
463 | ||
464 | New translations: eo, pt_BR. | |
465 | ||
d1495831 LC |
466 | ** Bugs fixed |
467 | *** “guix --help” now works when using Guile 2.0.5 | |
468 | *** Binary substituter multi-threading and pipe issues fixed | |
469 | ||
470 | These could lead to random substituter crashes while substituting a binary. | |
471 | See commits 0332386 and 101d9f3 for details. | |
472 | ||
bdbb6fbb LC |
473 | *** Binary substituter gracefully handles lack of network connectivity |
474 | ||
16357e8c LC |
475 | *** Daemon properly handles rebuilds of multiple-output derivations |
476 | ||
477 | Previously it would fail when rebuilding a multiple-output derivation when | |
478 | some (but not all) of its outputs were already present. See | |
479 | http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and | |
480 | https://github.com/NixOS/nix/issues/122 . | |
481 | ||
5939006b LC |
482 | *** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’ |
483 | ||
484 | Previously only the ‘out’ output of package ‘foo’ would be kept in the | |
485 | profile. | |
486 | ||
3253830d LC |
487 | *** Replacement (srfi srfi-37) provided if the user’s one is broken |
488 | ||
489 | When the user’s (srfi srfi-37) is affected by http://bugs.gnu.org/13176 (Guile | |
490 | < 2.0.9), a replacement with the bug fix is provided. This bug would affect | |
491 | command-line argument processing in some cases. | |
492 | ||
85f3a05e LC |
493 | * Changes in 0.2 (since 0.1) |
494 | ||
4056b828 LC |
495 | ** Package management |
496 | ||
497 | *** Guix commands are now sub-commands of the “guix” program | |
498 | ||
499 | Instead of typing “guix-package”, one now has to type “guix package”, and so | |
500 | on. This has allowed us to homogenize the user interface and initial program | |
501 | setup, and to allow commands to be upgradable through “guix pull”. | |
502 | ||
06504acb LC |
503 | *** New “guix package --upgrade” option |
504 | ||
505 | As the name implies, this option atomically upgrades all the packages | |
e3729544 LC |
506 | installed in a profile or the set of packages matching a given regexp. |
507 | See “Invoking guix package” in the manual. | |
06504acb | 508 | |
0f241da2 LC |
509 | *** New “guix package --search” option |
510 | ||
511 | Performs a full text search in package synopses and descriptions, and returns | |
512 | the matching packages in recutils format. See “Invoking guix package” in the | |
513 | manual, for details. | |
514 | ||
4056b828 LC |
515 | *** New “guix pull” command |
516 | ||
517 | The command pulls the latest version of Guix–both the package management | |
518 | modules and the distribution. See the manual for details. | |
519 | ||
520 | *** New binary substituter | |
521 | ||
522 | The “substituter” mechanism allows pre-built binaries to be transparently | |
523 | downloaded instead of performing a build locally. Currently binaries are | |
0f241da2 LC |
524 | available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The |
525 | distribution is continuously built and binaries are made available from there. | |
526 | ||
527 | See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of | |
528 | available binary packages. | |
4056b828 LC |
529 | |
530 | *** New “guix refresh” command | |
531 | ||
532 | The command is used by Guix maintainers. It automatically updates the | |
533 | distribution to the latest upstream releases of GNU software. | |
534 | ||
535 | *** New “guix hash” command | |
536 | ||
537 | Convenience command to compute the hash of a file. See the manual for | |
538 | details. | |
539 | ||
0f241da2 | 540 | *** Nix daemon code updated |
4056b828 | 541 | |
0f241da2 LC |
542 | The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated |
543 | to current Nix ‘master’. | |
4056b828 LC |
544 | |
545 | ** Programming interfaces | |
546 | ||
0f241da2 LC |
547 | *** (guix download) now supports HTTPS, using GnuTLS |
548 | ||
549 | It allows package source tarballs to be retrieved over HTTPS. | |
550 | ||
4056b828 LC |
551 | *** New ‘native-search-path’ and ‘search-path’ package fields |
552 | ||
553 | Packages can define in their ‘native-search-path’ field environment variables | |
554 | that define search paths and need to be set for proper functioning of the | |
555 | package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its | |
556 | ‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc. | |
557 | These environment variables are automatically set when building a package that | |
558 | uses one of these. | |
559 | ||
560 | *** Package inputs can be a function of the target system type | |
561 | ||
562 | The ‘inputs’ field of a package can now be conditional on the value of | |
563 | (%current-system). This is useful for packages that take system-dependent | |
564 | tarballs as inputs, such as GNU/MIT Scheme. | |
565 | ||
566 | *** New build systems | |
567 | ||
568 | The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have | |
569 | been added. They implement the standard build systems for Perl, Python, and | |
570 | CMake packages. | |
571 | ||
47d18810 LC |
572 | *** Tools to build Linux initrds, QEMU images, and more |
573 | ||
574 | The (gnu packages linux-initrd) module provides a procedure to build a Linux | |
575 | initrd (“initial RAM disk”). The initrd embeds Guile, which is used to | |
576 | evaluate the given expression. The example below returns an initrd that | |
577 | mounts the /proc file system and starts a REPL: | |
578 | ||
579 | (expression->initrd | |
580 | '(begin | |
581 | (mkdir "/proc") | |
582 | (mount "none" "/proc" "proc") | |
583 | ((@ (system repl repl) start-repl)))) | |
584 | ||
585 | More examples in the linux-initrd.scm file. | |
586 | ||
587 | Experimental interfaces to produce and use QEMU images are provided by the | |
588 | (gnu system vm) module. For instance, the | |
589 | ‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in | |
590 | a QEMU virtual machine running the Linux kernel and Guile. | |
591 | ||
4056b828 LC |
592 | ** GNU distribution |
593 | ||
594 | Many updates and additions have been made to the distribution. Here are the | |
595 | highlights. | |
596 | ||
597 | *** Major updates | |
598 | ||
599 | GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9, | |
600 | Coreutils 8.20, GDB 7.6, Texinfo 5.1. | |
601 | ||
602 | *** Noteworthy new packages | |
603 | ||
0f241da2 LC |
604 | TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo, |
605 | CHICKEN, Scheme48, Hugs, Python, Lua, Samba. |