gnu: dmd: Update start/stop of standard service definitions.
[jackhill/guix/guix.git] / NEWS
diff --git a/NEWS b/NEWS
index de13adf..c1ca2ab 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,230 @@ Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
 
 Please send Guix bug reports to bug-guix@gnu.org.
 
+* Changes in 0.4 (since 0.3)
+
+** Package management
+
+*** New ‘--list-generations’ and ‘--delete-generations’ options
+
+The ‘guix package’ command has these two new options, which make it easier to
+deal with a profile’s generation.  See “Invoking guix package” in the manual.
+
+*** New ‘guix-register’ program
+
+This program allows the meta-data of a new store to be initialized, by
+copying info from an existing store.  It is mostly an internal tool.
+
+** Programming interfaces
+
+*** New API to bootstrap Autotools-based packages
+
+The (guix build-system gnu) has a new ‘dist-package’ procedure that takes a
+package object and source directory, and returns a new package object that
+runs ‘./bootstrap && make dist’ or anything similar.
+
+*** ‘derivation’ and related procedures have a #:references-graphs parameter
+
+This parameter instructs the build daemon to populate the derivation’s build
+tree with files containing the list of references of the given store files.
+This is useful to write code that copies a packages and all its dependencies
+to another storage device, such as a QEMU disk image.
+
+*** Extended API to build a GNU system virtual machine image
+
+The (gnu system vm) module has been augmented in many ways: the ‘qemu-image’
+procedure can now populate and initialize the image’s store; the new
+‘system-qemu-image’ procedure returns a QEMU image that runs dmd as its init
+system, has ‘login’ running on several consoles, has a set of installed
+packages, and where Guix can be used.
+
+New (gnu system …) modules have been added to handle the configuration of the
+various parts of a GNU/Linux system.  For instance, (gnu system dmd) provides
+support for instantiating dmd services; (gnu system linux) helps with Linux
+PAM configuration; and so on.
+
+*** <derivation> objects supersede .drv file names in the API
+
+‘derivation’ and similar procedures no longer return two values (a
+<derivation> and a .drv file name); they now return a single value, which is
+a <derivation> object.  The <derivation> object embeds the corresponding .drv
+file name.  See “Derivations” in the manual for details.
+
+** GNU distribution
+
+*** 60 new packages
+
+apr, apr-util, cdparanoia, dbus-glib, dfc, dmd, dvdisaster, exiv2, fetchmail,
+freefont-ttf, freeglut, geeqie, git, gkrellm, glu, gnome-doc-utils,
+gst-plugins-base, gstreamer, guile-cairo, guile-lib, guile-xcb, guix, htop,
+itstool, lame, libextractor, libmicrohttpd, lightning, lzip, mingetty, mutt,
+net-base, net-tools, ocrad, pspp, python-babel, python-dateutil, python-pytz,
+python-setuptools, python-simplejson, python-wrapper, python2-babel,
+python2-dateutil, python2-mechanize, python2-pyicu, python2-pysqlite,
+python2-pytz, python2-setuptools, python2-simplejson, qemu-system-initrd,
+qemu-with-multiple-smb-shares, ripperx, shadow, ttf-bitstream-vera, units,
+valgrind, xmlto, xnee, yasm
+
+*** 27 package updates
+
+bigloo 4.0b, cairo 1.12.16, ddrescue 1.17, fontconfig 2.10.93, fplll 4.0.4,
+gcc 4.7.3, gcc 4.7.3, glibc 2.18, glibc 2.18, glibc-stripped-tarball 2.18,
+gnupg 2.0.21, gnutls 3.2.4, guile 2.0.9, guile 2.0.9, harfbuzz 0.9.21,
+imagemagick 6.8.6-9, libdrm 2.4.46, libgcrypt 1.5.3, libjpeg 9, libksba 1.3.0,
+linux-libre 3.11, m4 1.4.17, mpfrcx 0.4.2, pari-gp 2.5.4, python 2.7.5, python
+3.3.2, texlive 2013
+
+*** Fontconfig font search path made more convenient
+
+Fontconfig, the library used by many graphical applications, such as those
+based on GTK+, now knows where to find the default set of fonts.  Additional
+fonts installed in the user profile are automatically picked up.
+
+*** More GUI applications
+
+The ‘emacs’ and ‘racket’ packages are now linked against GTK+.  New GTK+
+applications have been added (see above.)
+
+*** Packaging guidelines
+
+The documentation of packaging guidelines has been augmented.  See the manual
+under “GNU Distribution”.
+
+*** Support for Python 3 along with Python 2
+
+Python 3 has been added to the distribution, and Python packages that support
+it are now built for both Python 2 and Python 3.  See the “Python Modules”
+section of the manual for details.
+
+** Internationalization
+
+Updated translations: eo.
+
+** Bugs fixed
+
+*** Workarounds for Guile 2.0.5 now work on Debian derivatives
+*** The dependency graph image has correct size in PDF output
+*** 'ldd' now works correctly on x86_64
+*** Xorg server test suite no longer fails (http://bugs.gnu.org/15392)
+*** module-init-tools now builds (http://bugs.gnu.org/15182, http://bugs.gnu.org/15187)
+*** Hop 2.4 builds with newer Bigloo (http://bugs.gnu.org/15194)
+
+* Changes in 0.3 (since 0.2)
+
+** Package management
+
+*** 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
+details.
+
+*** New ‘--max-silent-time’ option for “guix build” and “guix package”
+
+See the manual for details.
+
+*** 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.
+
+*** New ‘--key-download’ option for “guix refresh”
+
+See the manual for details.
+
+** Programming interfaces
+
+*** 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.
+
+
+** GNU distribution
+
+*** 33 new packages
+
+alsa-lib, babel, cairo, cvs, gcal, gcc-cross-mips64el-linux-gnuabi64, gd,
+gdk-pixbuf, graphviz, grue-hunter, gtk+, gts, harfbuzz, imagemagick, iproute2,
+iptables, libspectre, mpg321, noweb, pango, plotutils, privoxy, pytz, racket,
+rubber, rush, strace, tk, torsocks, unrtf, vc-dwim, wordnet, xlockmore
+
+*** 25 package updates
+
+automake 1.14, ed 1.9, freeipmi 1.2.8, gawk 4.1.0, gcc 4.8.1, gettext 0.18.3,
+glib 2.37.1, gmp 5.1.2, gnutls 3.2.1, gzip 1.6, help2man 1.43.3, libapr 1.4.8,
+libaprutil 1.5.2, libassuan 2.1.1, libffi 3.0.13, libgc 7.2d, libgpg-error
+1.12, libidn 1.28, libpng 1.5.17, lout 3.40, lsh 2.1, nettle 2.7.1, qemu
+1.5.1, tzdata 2013d, xorriso 1.3.0
+
+*** 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.
+
+** 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.
+
+*** 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 .
+
+*** ‘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
+profile.
+
+*** Replacement (srfi srfi-37) provided if the user’s one is broken
+
+When the user’s (srfi srfi-37) is affected by http://bugs.gnu.org/13176 (Guile
+< 2.0.9), a replacement with the bug fix is provided.  This bug would affect
+command-line argument processing in some cases.
 
 * Changes in 0.2 (since 0.1)
 
@@ -24,7 +248,14 @@ 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.  See “Invoking guix package” in the manual.
+installed in a profile or the set of packages matching a given regexp.
+See “Invoking guix package” in the manual.
+
+*** 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
 
@@ -35,8 +266,11 @@ modules and the distribution.  See the manual for details.
 
 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.
+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
 
@@ -48,12 +282,17 @@ distribution to the latest upstream releases of GNU software.
 Convenience command to compute the hash of a file.  See the manual for
 details.
 
-*** (guix download) now supports HTTPS, using GnuTLS
+*** Nix daemon code updated
 
-It allows package source tarballs to be retrieved over HTTPS.
+The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
+to current Nix ‘master’.
 
 ** Programming interfaces
 
+*** (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
@@ -75,6 +314,26 @@ The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-syste
 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
@@ -87,4 +346,5 @@ Coreutils 8.20, GDB 7.6, Texinfo 5.1.
 
 *** Noteworthy new packages
 
-TeXLive, Xorg, GNU Parted, QEMU and QEMU-KVM, Avahi, Hugs, Python, Lua, Samba.
+TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
+CHICKEN, Scheme48, Hugs, Python, Lua, Samba.