licenses: Add 'agpl3' and 'agpl3+'.
[jackhill/guix/guix.git] / NEWS
diff --git a/NEWS b/NEWS
dissimilarity index 100%
index c36e768..10188d2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1 +1,140 @@
-No news yet.
+                                                              -*- 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.3 (since 0.2)
+
+** Package management
+*** New ‘--max-silent-time’ option for “guix build” and “guix package”
+
+See the manual for details.
+
+** 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.
+
+* 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 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
+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
+details.
+
+*** Nix daemon code updated
+
+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
+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 GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
+CHICKEN, Scheme48, Hugs, Python, Lua, Samba.