Mirror of GNU Guix
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

232 lines
7.6 KiB

-*- 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.
9 years ago
* Changes in 0.3 (since 0.2)
** Package management
9 years ago
*** Cross-compilation support
Guix can now cross-build packages. On the command-line, this is achieved with
the new ‘--target’ command-line option of ‘guix build’. At the Scheme level,
the guts of this is the ‘package-cross-derivation’ procedure. Core packages
of the distribution can already be cross-compiled. See the manual for
9 years ago
*** New ‘--max-silent-time’ option for “guix build” and “guix package”
See the manual for details.
9 years ago
*** New ‘--fallback’ option for “guix build” and “guix package”
This option instructs to fall back to local builds when the substituter fails
to download a substitute.
*** New ‘--requisites’ option for “guix gc”
See the manual for details.
9 years ago
*** New ‘--key-download’ option for “guix refresh”
See the manual for details.
** Programming interfaces
9 years ago
*** New ‘package-cross-derivation’ procedure in (guix derivations)
See the manual for details.
*** New ‘%current-target-system’ SRFI-39 parameter
This parameter is like ‘%current-system’, but for cross-compilation. It
allows code in package definitions (such as in the ‘arguments’ field) to know
whether it is being cross-compiled, and what the target system is.
*** New (guix hash) module; new ‘open-sha256-port’ and ‘sha256-port’ procedures
This improves performance of SHA256 computations.
9 years ago
** GNU distribution
*** Major updates
*** Noteworthy new packages
*** Binary packages now available for i686-linux
The build farm at http://hydra.gnu.org now provides 32-bit GNU/Linux binaries
(i686-linux), in addition to the x86_64-linux binaries. Both can be
transparently used as substitutes for local builds on these platforms.
*** Debug info packages
Some packages now have a “debug” output containing debugging information. The
“debug” output can be used by GDB, and can be installed separately from the
other outputs of the package. See “Installing Debugging Files” in the manual.
*** Bootstrap binaries can be cross-compiled
The distribution can now be ported to new architectures (currently
GNU/Linux-only) by cross-compiling the “bootstrap binaries”. See “Porting”
in the manual.
*** Bootstrapping documented
See “Bootstrapping” in the manual, for information on how the GNU
distribution builds “from scratch”.
** Internationalization
New translations: eo, pt_BR.
9 years ago
** Bugs fixed
*** “guix --help” now works when using Guile 2.0.5
*** Binary substituter multi-threading and pipe issues fixed
These could lead to random substituter crashes while substituting a binary.
See commits 0332386 and 101d9f3 for details.
9 years ago
*** Binary substituter gracefully handles lack of network connectivity
*** Daemon properly handles rebuilds of multiple-output derivations
Previously it would fail when rebuilding a multiple-output derivation when
some (but not all) of its outputs were already present. See
http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00038.html and
https://github.com/NixOS/nix/issues/122 .
9 years ago
*** ‘guix package -i foo:out’ no longer removes other outputs of ‘foo’
Previously only the ‘out’ output of package ‘foo’ would be kept in the
* 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
9 years ago
installed in a profile or the set of packages matching a given regexp.
See “Invoking guix package” in the manual.
9 years ago
*** New “guix package --search” option
Performs a full text search in package synopses and descriptions, and returns
the matching packages in recutils format. See “Invoking guix package” in the
manual, for details.
*** 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
9 years ago
available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
distribution is continuously built and binaries are made available from there.
See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
available binary packages.
*** 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
9 years ago
*** Nix daemon code updated
9 years ago
The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
to current Nix ‘master’.
** Programming interfaces
9 years ago
*** (guix download) now supports HTTPS, using GnuTLS
It allows package source tarballs to be retrieved over HTTPS.
*** 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.
9 years ago
*** 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:
(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
*** 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
9 years ago
TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
CHICKEN, Scheme48, Hugs, Python, Lua, Samba.