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