summaryrefslogtreecommitdiff
path: root/NEWS
blob: dbcf23c8749164af0beda17288d120f01cc256fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
                                                              -*- org -*-
#+TITLE: Guix NEWS – history of user-visible changes
#+STARTUP: content hidestars

Copyright © 2013 Ludovic Courtès <ludo@gnu.org>

  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
  notice and this notice are preserved.

Please send Guix bug reports to bug-guix@gnu.org.


* Changes in 0.2 (since 0.1)

** Package management

*** Guix commands are now sub-commands of the “guix” program

Instead of typing “guix-package”, one now has to type “guix package”, and so
on.  This has allowed us to homogenize the user interface and initial program
setup, and to allow commands to be upgradable through “guix pull”.

*** New “guix package --upgrade” option

As the name implies, this option atomically upgrades all the packages
installed in a profile or the set of packages matching a given regexp.
See “Invoking guix package” in the manual.

*** New “guix pull” command

The command pulls the latest version of Guix–both the package management
modules and the distribution.  See the manual for details.

*** New binary substituter

The “substituter” mechanism allows pre-built binaries to be transparently
downloaded instead of performing a build locally.  Currently binaries are
available for x86_64 Linux-based GNU systems from http://hydra.gnu.org.  See
the manual for details.

*** New “guix refresh” command

The command is used by Guix maintainers.  It automatically updates the
distribution to the latest upstream releases of GNU software.

*** New “guix hash” command

Convenience command to compute the hash of a file.  See the manual for
details.

*** (guix download) now supports HTTPS, using GnuTLS

It allows package source tarballs to be retrieved over HTTPS.

** Programming interfaces

*** New ‘native-search-path’ and ‘search-path’ package fields

Packages can define in their ‘native-search-path’ field environment variables
that define search paths and need to be set for proper functioning of the
package.  For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
These environment variables are automatically set when building a package that
uses one of these.

*** Package inputs can be a function of the target system type

The ‘inputs’ field of a package can now be conditional on the value of
(%current-system).  This is useful for packages that take system-dependent
tarballs as inputs, such as GNU/MIT Scheme.

*** New build systems

The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
been added.  They implement the standard build systems for Perl, Python, and
CMake packages.

*** Tools to build Linux initrds, QEMU images, and more

The (gnu packages linux-initrd) module provides a procedure to build a Linux
initrd (“initial RAM disk”).  The initrd embeds Guile, which is used to
evaluate the given expression.  The example below returns an initrd that
mounts the /proc file system and starts a REPL:

  (expression->initrd
    '(begin
       (mkdir "/proc")
       (mount "none" "/proc" "proc")
       ((@ (system repl repl) start-repl))))

More examples in the linux-initrd.scm file.

Experimental interfaces to produce and use QEMU images are provided by the
(gnu system vm) module.  For instance, the
‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in
a QEMU virtual machine running the Linux kernel and Guile.

** GNU distribution

Many updates and additions have been made to the distribution.  Here are the
highlights.

*** Major updates

GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
Coreutils 8.20, GDB 7.6, Texinfo 5.1.

*** Noteworthy new packages

TeXLive, Xorg, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo, CHICKEN,
Scheme48, Hugs, Python, Lua, Samba.