2014-04-09  Ludovic Courtès  <ludo@gnu.org>

	Update 'NEWS'.

	vm: Add #:memory-size parameter for 'expression->derivation-in-linux-vm'.
	* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add
	  #:memory-size parameter, defaulting to 256 (QEMU defaults to 128.)

	gnu: linux-initrd: Default initrd has no network mounts.
	* gnu/system/linux-initrd.scm (gnu-system-initrd): Add #:mounts
	  argument.

	vm: 'expression->derivation-in-linux-vm' uses QEMU virtfs/9p.
	* gnu/system/vm.scm (expression->derivation-in-linux-vm): Change #:qemu
	  to default to QEMU-HEADLESS.  Use "-net nic,model=virtio".  Remove
	  "-net user,smb=..." and add "-virtfs" options.  Change default initrd
	  to include two 9p mounts.

	gnu: qemu: Upgrade to 1.7.1; add virtfs support.
	* gnu/packages/qemu.scm (qemu-headless): Upgrade to 1.7.1.
	  [source]: Remove 'patches' field.
	  [arguments]: Add --enable-virtfs configure flag.
	  [inputs]: Add libcap and attr.
	* gnu/packages/patches/qemu-make-4.0.patch: Remove.
	* gnu-system.am (dist_patch_DATA): Adjust accordingly.

2014-04-09  Eric Bavier  <bavier@member.fsf.org>

	gnu: lapack: Augment library rpath
	* gnu/packages/maths.scm (lapack) [arguments]: New post-installation
	  phase to augment the rpath of installed libraries.

2014-04-09  David Thompson  <dthompson@member.fsf.org>

	gnu: Move help2man package to (gnu packages man) module.
	* gnu/packages/man.scm (help2man): New variable.
	* gnu/packages/help2man.scm: Delete it.
	* gnu/packages/cdrom.scm: Import (gnu packages man).
	* gnu/packages/zile.scm: Import (gnu packages man).
	* gnu-system.am (GNU_SYSTEM_MODULES): Delete 'gnu/packages/help2man.scm'.

	gnu: Add man-db.
	* gnu/packages.man.scm (man-db): New variable.

	gnu: Add libpipeline.
	* gnu/packages/man.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2014-04-09  Ludovic Courtès  <ludo@gnu.org>

	guix system: Add 'vm-image' action and '--image-size' option.
	* guix/scripts/system.scm (%options): Add --image-size.
	  (%default-options): Add 'image-size'.
	  (guix-system)[parse-options]: Handle the 'vm-image' action.
	  Honor them.
	  (show-help): Update accordingly.
	* doc/guix.texi (Invoking guix system): Add 'vm-image'.

2014-04-08  Ludovic Courtès  <ludo@gnu.org>

	ui: Add 'size->number'.
	* guix/scripts/gc.scm (size->number): Remove.
	* guix/ui.scm (size->number): New procedure.
	* tests/ui.scm ("size->number, bytes",
	  "size->number, MiB", "size->number, GiB", "size->number, 1.2GiB",
	  "size->number, invalid unit"): New tests.

	gnu: dvdisaster: Build sequentially.
	* gnu/packages/cdrom.scm (dvdisaster)[arguments]: Add #:parallel-build? #f.

	offload: Remove all the GC roots in case of multiple-output derivations.
	* guix/scripts/offload.scm (remove-gc-root): Rename to...
	  (remove-gc-roots): ... this.
	  [builder]: Use 'scandir' and remove all the files starting with
	  %GC-ROOT-FILE.
	  (transfer-and-offload): Adjust to renaming; remove
	  'false-if-exception' wraps.

	gnu: openssl: Upgrade to 1.0.1g (CVE-2014-0160).
	* gnu/packages/openssl.scm (openssl): Upgrade to 1.0.1g (for
	  CVE-2014-0160, <http://www.openssl.org/news/secadv_20140407.txt>.)

	offload: Bail out when failing to register a GC root on the build machine.
	* guix/scripts/offload.scm (register-gc-root): Call 'leave' when
	  'close-pipe' returns non-zero.

2014-04-08  Eric Bavier  <bavier@member.fsf.org>

	gnu: Add patchutils and quilt
	* gnu/packages/patchutils.scm: New file
	* gnu/packages/patches/patchutils-xfail-gendiff-tests.patch: New patch
	* gnu-system.am (GNU_SYSTEM_MODULES): Add patchutils.
	  (dist_patch_DATA): Add patch.

2014-04-08  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Python: disable failing tests on MIPS64.
	* gnu/packages/patches/python-fix-tests.patch: disable two failing tests on
	  MIPS64.

2014-04-07  Mark H Weaver  <mhw@netris.org>

	gnu: python: Apply mips n32 fix to bundled libffi.
	* gnu/packages/patches/python-libffi-mips-n32-fix.patch: New file.
	* gnu/packages/python.scm (python-2, python): Add it.
	* gnu-system.am (dist_patch_DATA): Add it.

2014-04-07  Ludovic Courtès  <ludo@gnu.org>

	gnu: linux-libre: Upgrade to 3.13.7.
	* gnu/packages/linux.scm (linux-libre): Update to 3.13.7.

	gnu: python: Upgrade to 3.3.5.
	* gnu/packages/python.scm (python): Upgrade to 3.3.5.

2014-04-07  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Python: disable test_wait_result() as it fails on some setups
	* gnu/packages/patches/python-fix-tests.patch: disable a failing test.

2014-04-07  Ludovic Courtès  <ludo@gnu.org>

	Update 'NEWS' for 0.6.

2014-04-07  Eric Bavier  <bavier@member.fsf.org>

	gnu: lapack: Build shared libraries
	* gnu/packages/maths.scm (lapack) [arguments]: Add -DBUILD_SHARED_LIBS to
	  #:configure-flags

	gnu: fltk: Build shared libraries
	* gnu/packages/fltk.scm (fltk) [arguments]: Add to --enable-shared to
	  #:configure-flags

2014-04-07  Ludovic Courtès  <ludo@gnu.org>

	utils: Make 'errno' procedure more robust.
	Partially fixes <http://bugs.gnu.org/17212>.

	* guix/utils.scm (errno): Move definition of 'bv' outside of the
	  procedure.  Use 'bytevector-s32-native-ref' or
	  'bytevector-s64-native-ref' instead of 'bytevector-sint-ref'.

2014-04-07  Ludovic Courtès  <ludo@gnu.org>

	tests: Avoid buffering in 'fcntl-flock' tests.
	Partially fixes <http://bugs.gnu.org/17212>.

	* tests/utils.scm ("fcntl-flock wait", "fcntl-flock non-blocking"): Open
	  files in binary mode, with no buffering.

2014-04-07  Ludovic Courtès  <ludo@gnu.org>

	gnu: shadow: Make source file timestamps deterministic.
	* gnu/packages/admin.scm (shadow)[arguments]: Add 'reset-timestamps'
	  phase.

	build: Add 'hydra.gnu.org.pub' to the distribution.
	* Makefile.am (pkgdata_DATA): Rename to...
	  (dist_pkgdata_DATA): ... this.

2014-04-07  Cyprien Nicolas  <cyprien@nicolas.tf>

	scheme/bigloo: Fix package description to reflect actual situation
	* gnu/packages/scheme.scm (bigloo): Description: Remove the part about the C#
	  connection which has been removed since release 3.8a.

	Add missing space between funcall and string argument
	* gnu/packages/scheme.scm (hop): Add missing space.

2014-04-07  Mark H Weaver  <mhw@netris.org>

	Work around behavior of old 'scandir' in Guile 2.0.5.
	Problem reported by John Darrington <john@darrington.wattle.id.au>.

	* guix/nar.scm (write-file): Filter out "." and ".." from the result of
	  'scandir'.  Previously we did this by passing a suitable predicate.

2014-04-07  Alírio Eyng  <alirioeyng@gmail.com>
	    Ludovic Courtès  <ludo@gnu.org>

	gnu: icecat: Remove duplicated line.
	* gnu/packages/gnuzilla.scm (icecat): Remove duplicate PYTHON-2 input,
	  and extraneous 'native-inputs' field.

2014-04-06  Ludovic Courtès  <ludo@gnu.org>

	services: slim: Use a system-wide xinitrc that defaults to wmaker.
	* gnu/services/xorg.scm (xinitrc): New procedure.
	  (slim-service)[slim.cfg]: Use it as the 'login_cmd'.

	Add Alírio to 'AUTHORS'.

2014-04-06  Alírio Eyng  <alirioeyng@gmail.com>

	gnu: linux-libre: Make configuration more robust.
	* gnu/packages/linux.scm (linux-libre): Append all configuration instead of
	  replacing.  Order configuration like "make oldconfig" output.  Remove
	  useless output.

2014-04-06  Ludovic Courtès  <ludo@gnu.org>

	gnu: Synchronize synopses and descriptions with the Womb.
	* gnu/packages/gnunet.scm (gnunet): Synchronize description and synopsis
	  with upstream.
	* gnu/packages/maths.scm (units): Likewise.
	* gnu/packages/grub.scm (grub): Likewise.
	* gnu/packages/pretty-print.scm (enscript): Likewise.

	hydra: qemu-jobs: Return a derivation file name, not a derivation.
	* build-aux/hydra/gnu-system.scm (qemu-jobs)[->alist]: Return the
	  derivation file name, not the derivation.

2014-04-06  Mark H Weaver  <mhw@netris.org>

	gnu: imagemagick: Upgrade to 6.8.8-10.
	* gnu/packages/imagemagick.scm (imagemagick): Upgrade to 6.8.8-10.

	gnu: mailutils: Build against Readline 6.2.
	* gnu/packages/mail.scm (mailutils): Use Readline 6.2.

	gnu: sqlite: Upgrade to 3.8.4.3.
	* gnu/packages/sqlite.scm (sqlite): Upgrade to 3.8.4.3.

2014-04-05  Ludovic Courtès  <ludo@gnu.org>

	hydra: Change 'qemu-jobs' to return name/thunk pairs.
	* build-aux/hydra/gnu-system.scm (qemu-jobs)[->job]: Change the cdr to a
	  thunk.

	hydra: Add 'qemu-image' job.
	* build-aux/hydra/demo-os.scm: New file.
	* Makefile.am (EXTRA_DIST): Add it.
	* build-aux/hydra/gnu-system.scm (qemu-jobs): New procedure.
	  (hydra-jobs): Use it.
	* guix/scripts/system.scm (read-operating-system): Export.

	guix package: Fix indentation of packages to remove.
	* guix/scripts/package.scm (show-what-to-remove/install): Add space when
	  showing packages to remove.

	gnu: Add 'gcc-toolchain'.
	* gnu/packages/base.scm (gcc-toolchain): New procedure.
	  (gcc-toolchain-4.8): New variable.

	doc: Add "Build Systems" section.
	* doc/guix.texi (Defining Packages): Add 'arguments' field in the
	  example; update 'synopsis' and 'description'.  Remove most of the
	  description of 'build-system', and instead reference to the "Build
	  Systems" node.  Briefly describe 'arguments' field, and remove more
	  elaborate description.  Add cross-reference to "Packaging Guidelines".
	  (Build Systems): New node.
	  (Packaging Guidelines): Mention '--log-file'.

	gnu: qemu: Change multiple-SMB-share patch to /gnu/store.
	* gnu/packages/patches/qemu-multiple-smb-shares.patch: Change
	  "/nix/store" to "/gnu/store".

2014-04-04  Eric Bavier  <bavier@member.fsf.org>

	gnu: Add clusterssh
	* gnu/packages/admin.scm (clusterssh): New variable

	gnu: Add perl-x11-protocol
	* gnu/packages/xorg.scm (perl-x11-protocol): New variable

	gnu: Add perl-tk
	* gnu/packages/tcl.scm (perl-tk): New variable

2014-04-04  Ludovic Courtès  <ludo@gnu.org>

	gnu: net-base: Upgrade to 5.2.
	* gnu/packages/admin.scm (net-base): Upgrade to 5.2; use
	  'mirror://debian'.

	gnu: shadow: Take the source from Git.
	* gnu/packages/admin.scm (shadow)[source]: Use the git repo.

	gnu: guile-ssh: Use libssh 0.5.5 patched for CVE-2014-0017.
	* gnu/packages/patches/libssh-CVE-2014-0017.patch: New file.
	* gnu-system.am (dist_patch_DATA): Add it.
	* gnu/packages/ssh.scm (libssh-0.5): New variable.
	  (guile-ssh): Use it.

	ui: Improve reporting of 'system-error' exceptions.
	* guix/ui.scm (call-with-error-handling): Change 'system-error' handler
	  to display the error message as it was raised.

	gnu: xpdf: Build sequentially.
	* gnu/packages/pdf.scm (xpdf)[arguments]: Add #:parallel-build? #f.

	gnu: lsh: Build with Readline 6.2.
	* gnu/packages/lsh.scm (lsh): Use READLINE-6.2 instead of READLINE.

2014-04-04  Mark H Weaver  <mhw@netris.org>

	gnu: gdb: Disable tests.
	* gnu/packages/gdb.scm (gdb): Disable tests.

2014-04-04  Ludovic Courtès  <ludo@gnu.org>

	gnu: valgrind: Adjust patch for glibc 2.19.
	* gnu/packages/patches/valgrind-glibc.patch: s/2.18/2.19/.

2014-04-04  Mark H Weaver  <mhw@netris.org>

	union: Ensure that the output is always a directory.
	Fixes the creation of single-package profiles, reported by Ludovic Courtès.

	* guix/build/union.scm (union-build): Add new internal procedure
	  'union-of-directories' that always creates a directory, containing the code
	  previously used only to merge multiple directories.  Call it from the
	  multiple-directory case in 'union' and from the top-level 'union-build'.

2014-04-04  Ludovic Courtès  <ludo@gnu.org>

	pki: Introduce 'write-acl', and fix wrong conversion in 'ensure-acl'.
	* guix/pki.scm (write-acl): New procedure.
	  (ensure-acl): Use it.  Fixes a regression introduced in 39831f1,
	  whereby 'ensure-acl' would yield a wrong-type-arg error.
	* guix/scripts/archive.scm (authorize-key): Use 'write-acl'.

	build: Remove now useless Boost headers.
	* daemon.am (libformat_headers): Remove 6 nix/boost files that were
	  removed in Nix commit 1c2550a2ae826c422cf6d34f1c5c3e687474929d.

2014-04-03  Ludovic Courtès  <ludo@gnu.org>

	Update 'nix-upstream' sub-module.
	* nix-upstream: Update.
	* daemon.am (AM_CXXFLAGS): Add -std=c++0x.

	doc: Update description of the chroot contents.
	* doc/guix.texi (Build Environment Setup): Adjust description of /dev
	  and /proc; remove footnote about /dev/shm, now obsolete.

2014-04-03  Ludovic Courtès  <ludo@gnu.org>

	offload: Prevent the '.drv' and build result from being GC'd.
	Before that, there was a small time window during which the GC could
	wipe the .drv (before 'guix build' has been called), or the build
	result (before 'retrieve-files' has started.)

	* guix/scripts/offload.scm (remote-pipe): Add #:quote? parameter and
	  honor it.
	  (%gc-root-file): New variable.
	  (register-gc-root, remove-gc-root): New procedures.
	  (offload): Adjust comment.  Run 'guix build' with '-r %GC-ROOT-FILE'.
	  (transfer-and-offload): Call 'register-gc-root' before
	  sending (derivation-file-name DRV).  Call 'remove-gc-root' after the
	  call to 'offload' or 'retrieve-files'.
	  (send-files): Call 'remote-pipe' with #:quote? #f.
	  (retrieve-files): Likewise.

2014-04-03  Ludovic Courtès  <ludo@gnu.org>

	gnu: parted: Build against Readline 6.2.
	* gnu/packages/readline.scm (readline-6.2): New variable.
	* gnu/packages/parted.scm (parted): Use it instead of READLINE.

	gnu: inkscape: Use libgc 7.2.
	* gnu/packages/inkscape.scm (inkscape): Use LIBGC-7.2 instead of LIBGC.

2014-04-03  Eric Bavier  <bavier@member.fsf.org>

	gnu: python: Use /nix/.../sh in popen2 module
	* gnu/packages/python.scm (python-2): patch Lib/popen2.py to use /nix/.../sh.

2014-04-03  Andreas Enge  <andreas@enge.fr>

	gnu: global: Upgrade to 6.2.12.
	* gnu/packages/global.scm (global): Upgrade to 6.2.12.

	gnu: apl: Upgrade to 1.3.
	* gnu/packages/apl.scm (apl): Upgrade to 1.3.

	gnu: xorriso: Upgrade to 1.3.6.pl01.
	* gnu/packages/cdrom.scm (xorriso): Upgrade to 1.3.6.pl01.

	gnu: gxmessage: Upgrade to 2.20.1.
	* gnu/packages/gxmessage.scm (gxmessage): Upgrade to 2.20.1.

	gnu: help2man: Upgrade to 1.45.1.
	* gnu/packages/help2man.scm (help2man): Upgrade to 1.45.1.

	gnu: zile: Upgrade to 2.4.11.
	* gnu/packages/zile.scm (zile): Upgrade to 2.4.11.

	gnu: units: Upgrade to 2.11.
	* gnu/packages/maths.scm (units): Upgrade to 2.11.

	gnu: freeipmi: Upgrade to 1.4.1.
	* gnu/packages/freeipmi.scm (freeipmi): Upgrade to 1.4.1.

	gnu: parallel: Upgrade to 20140322.
	* gnu/packages/parallel.scm (parallel): Upgrade to 20140322.

	gnu: xnee: Upgrade to 3.18.
	* gnu/packages/xnee.scm (xnee): Upgrade to 3.18.

	gnu: glpk: Upgrade to 4.54.
	* gnu/packages/maths.scm (glpk): Upgrade to 4.54.

2014-04-03  Mark H Weaver  <mhw@netris.org>

	gnu: texlive: Fix bug recently introduced in d4bf49b.
	Fixes bug introduced in d4bf49b140bd5cfb3580d2a038679160dc1331b5.

	* gnu/packages/texlive.scm (texlive): Change 'alist-replace' to
	  'alist-cons-before'.

2014-04-02  Ludovic Courtès  <ludo@gnu.org>

	tests: Add 'union-build' test for <http://bugs.gnu.org/17083>.
	* tests/union.scm ("union-build with symlink to directory"): New test.

2014-04-02  Mark H Weaver  <mhw@netris.org>

	union: Rewrite to be faster; handle symlink/directory conflicts.
	* guix/build/union.scm: Rewrite; only 'file=?' remains unchanged.  Remove
	  'tree-union' and 'delete-duplicate-leaves' exports.  Merge inputs in a
	  breadth-first fashion.  Follow symlinks for purposes of making decisions
	  about the merge.

	* tests/union.scm: Remove tests of 'tree-union' and 'delete-duplicate-leaves'.

2014-04-02  Mark H Weaver  <mhw@netris.org>

	gnu: sqlite: Fix sqlite on systems with page size larger than 32K.
	Based on a patch by Dan Kennedy <danielk1977@gmail.com>.

	* gnu/packages/patches/sqlite-large-page-size-fix.patch: New file.
	* gnu/packages/sqlite.scm (sqlite): Add it.
	* gnu-system.am (dist_patch_DATA): Add it.

2014-04-02  Mark H Weaver  <mhw@netris.org>

	gnu: sqlite: Upgrade to 3.8.4.2.
	* gnu/packages/sqlite.scm (sqlite): Upgrade to 3.8.4.2.

	gnu: sqlite: Compute source URL from version number.
	* gnu/packages/sqlite.scm (sqlite): Compute the numeric-version from the
	  traditional version string, and use it to compute the source URL.

	gnu: mutt: Upgrade to 1.5.23.
	* gnu/packages/mail.scm (mutt): Upgrade to 1.5.23.  Add bitbucket
	  source URL and try it first.

	gnu: bazaar: Install man pages in share/man.
	* gnu/packages/version-control.scm (bazaar): Add a phase that
	  fixes setup.py to install man pages in share/man.

	gnu: ocaml: Install man pages in share/man.
	* gnu/packages/ocaml.scm (ocaml): Pass -mandir to configure.

	gnu: pth: Install man pages in share/man.
	* gnu/packages/pth.scm (pth): Add --mandir to configure flags.

	gnu: expect: Install man pages in share/man.
	* gnu/packages/tcl.scm (expect): Add --mandir configure flag.
	  Use 'let' to simplify configure flags generation.

	gnu: zip: Improve build process and install man pages in share/man.
	* gnu/packages/zip.scm (zip): Eliminate custom configure phase which copied
	  and patched the Makefile.  Instead add "-f" and "prefix" to make-flags, as
	  well as "MANDIR".  Remove "generic_gcc" from the make-flags, so that it will
	  not be passed during other phases involving 'make'.  Instead replace the
	  'build' phase with one that specifies the "generic_gcc" target.

	gnu: lua: Install man pages in share/man.
	* gnu/packages/lua.scm (lua): Use 'system*' instead of 'system'.
	  Add INSTALL_MAN argument to 'make'.

	gnu: indent: Install docs in share/doc.
	* gnu/packages/indent.scm (indent): Add a phase to fix the docdir
	  setting in doc/Makefile.in.

2014-04-02  Ludovic Courtès  <ludo@gnu.org>

	guix package: 'search-path-environment-variables' traverses module tree once.
	* guix/scripts/package.scm (search-path-environment-variables)[manifest-entry->package]:
	  Use 'find-best-packages-by-name' instead of 'find-packages-by-name'.
	  On a profile with 140 packages, this reduces execution time of this
	  procedure from 5.8 seconds to 2.9 seconds (50% improvement.)

	guix package: Register non-default profiles as GC roots.
	* guix/scripts/package.scm (maybe-register-gc-root): New procedure.
	* tests/guix-package.sh (profile): Grep the output of "guix gc
	  --list-live" in a couple of places.

2014-04-02  Mark H Weaver  <mhw@netris.org>

	gnu: net-tools: Install man pages and locales in share, not usr/share.
	* gnu/packages/linux.scm (net-tools): Add 'INSTALLNLSDIR' and 'mandir'
	  variables to make flags.

	gnu: libssh: Upgrade to 0.6.3.
	* gnu/packages/ssh.scm (libssh): Upgrade to 0.6.3.

	gnu: pulseaudio: Increase timeouts for tests.
	* gnu/packages/pulseaudio.scm: Set the 'CK_DEFAULT_TIMEOUT' environment
	  variable to 120 in the 'pre-check' phase.  Suggested by Ludovic Courtès.

	gnu: file: Upgrade to 5.18.
	* gnu/packages/file.scm (file): Upgrade to 5.18.

2014-04-01  Ludovic Courtès  <ludo@gnu.org>

	gnu: guile-json: Install under .../site/2.0.
	* gnu/packages/guile.scm (guile-json)[source]: Add 'snippet'.

	pki: Keep ACL in native sexp format to speed up 'authorized-key?'.
	* guix/pki.scm (acl-entry-sexp, acl-sexp): Remove.
	  (public-keys->acl, current-acl): Return a native sexp.
	  (acl->public-keys, authorized-key?): Expect ACL to be a native sexp.
	* guix/scripts/archive.scm (authorize-key): Convert ACL to
	  canonical-sexp when writing it.

	substitute-binary: Avoid consing 'regexp-exec' arguments.
	* guix/scripts/substitute-binary.scm (regexp-exec): Change formals
	  to (rx str . rest).

	substitute-binary: Avoid reloading the ACL repeatedly.
	* guix/scripts/substitute-binary.scm (guix-substitute-binary) <--query>:
	  Cache the result of (current-acl); pass it to 'valid-narinfo?' calls.
	  This saves 12% wall-clock time for "guix build emacs -n".

	gnu: Add Bogofilter.
	* gnu/packages/mail.scm (bogofilter): New variable.

2014-04-01  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add guile-json.
	* gnu/packages/guile.scm (guile-json): New variable.

2014-03-31  Ludovic Courtès  <ludo@gnu.org>

	Use 'signature-case' in (guix nar) and 'substitute-binary'.
	* guix/nar.scm (restore-file-set)[assert-valid-signature]: Rewrite in
	  terms of 'signature-case'.
	* guix/scripts/substitute-binary.scm (narinfo-signature->canonical-sexp):
	  Call 'leave' instead of 'raise' when SIGNATURE is invalid.
	  (&nar-signature-error, &nar-invalid-hash-error): Remove.
	  (assert-valid-signature): Add 'narinfo' parameter; remove 'port'.
	  Rewrite in terms of 'signature-case' and 'leave'.  Mention NARINFO's
	  URI in error messages.  Adjust caller.
	  (narinfo-sha256): New procedure.
	  (assert-valid-narinfo): Use it.
	  (valid-narinfo?): Rewrite using 'narinfo-sha256' and
	  'signature-case'.
	* tests/substitute-binary.scm (assert-valid-signature,
	  test-error-condition): Remove.
	  ("corrupt signature data", "unauthorized public key", "invalid
	  signature"): Remove.

	pki: Add 'signature-case' macro.
	* guix/pki.scm (%signature-status): New procedure.
	  (signature-case): New macro.
	* tests/pki.scm (%secret-key, %alternate-secret-key): New variables.
	  ("signature-case valid-signature", "signature-case invalid-signature",
	  "signature-case hash-mismatch", "signature-case unauthorized-key",
	  "signature-case corrupt-signature"): New tests.

	substitute-binary: Notify of valid signatures.
	* guix/scripts/substitute-binary.scm (assert-valid-narinfo): Add
	  #:verbose? parameter; when true, write "found valid signature".
	  (valid-narinfo?): Pass #:verbose? #f.

	guix archive: Make sure $sysconfdir/guix exists in '--authorize'.
	* guix/scripts/archive.scm (authorize-key): Add 'mkdir-p' call.
	  Reported by Alex Sassmannshausen <alex.sassmannshausen@gmail.com>.

2014-03-31  Alex Sassmannshausen  <alex.sassmannshausen@gmail.com>

	doc: fix typo.
	* doc/guix.texi (Substitutes): add a missing 's'.

2014-03-31  Eric Bavier  <bavier@member.fsf.org>

	gnu: Remove unused lambda arguments and prefer separate phases over augmented phases.
	* gnu/packages/compression.scm (sharutils) [arguments]: Remove unused
	  lambda args.
	* gnu/packages/gl.scm (mesa) [arguments]: Same
	* gnu/packages/fltk.scm [arguments]: Same.  Substitute const check
	  phase with #:tests? #f.  Add pre-configure phase.
	* gnu/packages/ghostscript.scm (ghostscript) [arguments]: Put makefile
	  patches in separate phase.  Put so steps oinseparate phases.
	* gnu/packages/glib.scm (gobject-introspection) [arguments]: Remove
	  unused lambda args.  Put patches in pre-configure phase.
	* gnu/packages/gnupg.scm (gnupg) [arguments]: Put patch in
	  pre-configure phase.
	  (pius) [arguments]: Delete const #t configure and build phases.
	  (signing-party) [arguments]: Factor patches into post-unpack phase.
	  (paperkey) [arguments]: Remove unused lambda args.  Factor out
	  patches into pre-check phase.
	* gnu/packages/icu4c.scm [arguments]: Change source dir after standard
	  unpack phase.  Factor configure patches into pre-configure phase.
	* gnu/packages/lsof.scm [arguments]: Remove unused lambda args.
	  Remove unnecessary apply.
	* gnu/packages/lvm.scm (lvm2) [arguments]: Factor out patches into
	  pre-configure phase.
	* gnu/packages/libtiff.scm [arguments]: Same
	* gnu/packages/maths.scm (hdf5) [arguments]: Same
	* gnu/packages/gtk.scm (gtk+-2) [arguments]: Same
	* gnu/packages/mp3.scm (libmad) [arguments]: Same
	  (id3lib) [arguments]: Same
	* gnu/packages/python.scm (python-2) [arguments]: Same
	* gnu/packages/texlive.scm (texlive) [arguments]: Same
	* gnu/packages/pretty-print.scm (a2ps) [arguments]: Same
	  (trueprint) [arguments]: Same
	  (source-highlight) [arguments]: Same.  Remove unused lambda args.
	* gnu/packages/netpbm.scm [arguments]: Remove unused lambda args.
	  Factor out test patches into pre-check phase.  Condense calls to
	  substitute*
	* gnu/packages/openldap.scm [arguments]: Factor out libtool copy into
	  post-configure phases. [synopsis] Remove package name.
	* gnu/packages/ssh.scm (openssh) [arguments]: Factor out patches into
	  separate phases.
	* gnu/packages/tcsh.scm [arguments]: Factor out test patches into
	  pre-check phase.
	* gnu/packages/version-control.scm (git) [arguments]: Factor out
	  patches into post-configure phase.
	* gnu/packages/vim.scm [arguments]: Same. [synopsis] Remove package
	  name.
	* gnu/packages/vpn.scm (openconnect) [arguments]: Put configure flags
	  in #:configure-flags

2014-03-31  Ludovic Courtès  <ludo@gnu.org>

	offload: Exit with code 100 upon build failures.
	* guix/scripts/offload.scm (transfer-and-offload): Exit with code 100
	  upon build failure.

2014-03-30  Ludovic Courtès  <ludo@gnu.org>

	doc: Document substitutes.
	* doc/guix.texi (Invoking guix-daemon): Add cross-reference to
	  "Substitutes".
	  (Features): Remove footnote about unauthenticated substitutes.  Link
	  to "Substitutes".
	  (Substitutes): New node.
	  (Invoking guix build): Link to "Substitutes".
	  (Packaging Guidelines): Likewise.

	Add hydra.gnu.org's narinfo signing public key.
	* hydra.gnu.org.pub: New file.
	* Makefile.am (pkgdata_DATA): New variable.

	tests: Test the error output of 'substitute-binary'.
	* tests/substitute-binary.scm (test-error*): Rename to...
	  (test-quit): ... this.  Add 'error-rx' parameter and honor it.
	  ("not a number", "wrong version number", "substitute, no signature",
	  "substitute, invalid hash", "substitute, unauthorized key"): Adjust
	  accordingly.

	tests: Add more signed substitute tests.
	* tests/substitute-binary.scm (%narinfo): Set 'URL', 'Compression', and
	  'NarHash'.
	  (call-with-narinfo): Create 'example.out' and 'example.nar'.
	  ("query narinfo without signature", "substitute, no signature",
	  "substitute, authorized key"): New tests.

	tests: Simplify 'substitute-binary' tests; reduce use of global variables.
	* tests/substitute-binary.scm (signature-body): Change 'str' parameter
	  to 'bv', and expect it to be a bytevector.
	  (%signature-body, %wrong-signature, %acl): Remove.
	  (signature): Rename to...
	  (signature-field): ... this.  Add 'bv-or-str' parameter.  Change 'str'
	  parameter to #:version.  Add #:public-key parameter.  Call
	  'signature-body' directly.  Change domain part of the signature to
	  'example.gnu.org'.
	  ("not a number", "wrong version number", "valid
	  narinfo-signature->canonical-sexp"): Use 'signature-field' instead of
	  'signature' or %SIGNATURE.
	  (test-error-condition): Add 'message-rx' parameter and honor it.
	  ("corrupt signature data", "unauthorized public key", "invalid
	  signature"): Adjust accordingly.
	  (narinfo, %signed-narinfo): Remove.
	  ("query narinfo with invalid hash"): Use '%narinfo' and
	  'signature-field' instead of 'narinfo' and '%signature'.
	  ("query narinfo signed with authorized key", "query narinfo signed
	  with unauthorized key", "substitute, invalid hash", "substitute,
	  unauthorized key"): Likewise.

	tests: Make sure the daemon reports substitute hash mismatches.
	* tests/store.scm ("substitute, corrupt output hash"): New test.

	substitute-binary: Defer narinfo authentication and authorization checks.
	* guix/scripts/substitute-binary.scm (narinfo-signature->canonical-sexp):
	  Catch 'gcry-error' around 'string->canonical-sexp' call, and re-raise
	  as a SRFI-35 &message and &nar-signature-error.
	  (narinfo-maker): Handle when SIGNATURE is #f or an invalid canonical
	  sexp.
	  (&nar-signature-error, &nar-invalid-hash-error): New variables.
	  (assert-valid-signature): Use them.  Expect 'signature' to be a
	  canonical sexp.
	  (read-narinfo): Remove authentication and authorization checks.
	  (%signature-line-rx): New variable.
	  (assert-valid-narinfo, valid-narinfo?): New procedures.
	  (guix-substitute-binary): Wrap body in 'with-error-handling'.
	  [valid?]: New procedure.
	  <--query>: Show only store items of narinfos that match
	  'valid-narinfo?'.
	  <--substitute>: Call 'assert-valid-narinfo'.
	* tests/substitute-binary.scm (test-error*): Use 'test-equal'.
	  (%keypair): Remove.
	  (%public-key, %private-key): Load from signing-key.{pub,sec}.
	  (signature-body): Add #:public-key parameter.
	  (call-with-narinfo): New procedure.
	  (with-narinfo): New macro.
	  ("corrupt signature data", "unauthorized public key", "invalid
	  signature"): Make the first argument to 'assert-valid-signature' a
	  canonical sexp.
	  ("invalid hash", "valid read-narinfo", "valid write-narinfo"):
	  Remove.
	  ("query narinfo with invalid hash", "query narinfo signed with
	  authorized key", "query narinfo signed with unauthorized key",
	  "substitute, invalid hash", "substitute, unauthorized key"): New
	  tests.

	substitute-binary: Store the cache's URI in the local cached narinfo.
	* guix/scripts/substitute-binary.scm (<narinfo>)[uri-base]: New field.
	  (narinfo-maker): Pass CACHE-URL as the 'uri-base' value.
	  (string->narinfo): Add 'cache-uri' parameter.
	  (lookup-narinfo)[cache-entry]: Switch to version 1.  Add 'cache-uri'
	  field.  Adjust body accordingly.
	  (remove-expired-cached-narinfos): Switch to version 1 by default.

2014-03-30  Nikita Karetnikov  <nikita@karetnikov.org>

	substitute-binary: Support the Signature field of a narinfo file.
	* guix/scripts/substitute-binary.scm (<narinfo>): Add the 'signature'
	  and 'contents' fields.
	  (narinfo-signature->canonical-sexp): New function.
	  (narinfo-maker): Add the 'signature' argument and use it.
	  (assert-valid-signature): New function.
	  (read-narinfo): Support the Signature field.
	  (write-narinfo): Use 'narinfo-contents'.
	  (%allow-unauthenticated-substitutes?): New variable.
	* guix/base64.scm, tests/base64.scm, tests/substitute-binary.scm: New files.
	* Makefile.am (SCM_TESTS): Add tests/base64.scm and
	  tests/substitute-binary.scm.
	  (MODULES): Add guix/base64.scm.
	* test-env.in: Set 'GUIX_ALLOW_UNAUTHENTICATED_SUBSTITUTES'.

	nar: Clarify that 'assert-valid-signature' accepts a string.
	* guix/nar.scm (assert-valid-signature): Improve the wording.

2014-03-29  Ludovic Courtès  <ludo@gnu.org>

	gnu: ed: Upgrade to 1.10.
	* gnu/packages/ed.scm (ed): Upgrade to 1.10.  Use '.tar.lz' file, and
	  add 'native-inputs' field.

	gnu: ocrad: Upgrade to 0.23.
	* gnu/packages/ocrad.scm (ocrad): Upgrade to 0.23.

	tests: Make sure 'guix archive --import' succeeds.
	* tests/guix-archive.sh: Check the exit value of 'guix archive
	  --import'.

2014-03-27  Ludovic Courtès  <ludo@gnu.org>

	daemon: Add tests for substitutes and --no-substitutes.
	* tests/guix-daemon.sh: Add substituter tests.

	daemon: Clear $NIX_SUBSTITUTERS when passed '--no-substitutes'.
	* nix/nix-daemon/guix-daemon.cc (main): When --no-substitutes is used,
	  clear NIX_SUBSTITUTERS.  Before that, and after
	  89faa5c75cb3a419c6d02c51f56955275b7ae351, '--no-substitutes' would
	  lead to attempts to use 'download-using-manifests.pl', which in
	  practice would gracelessly fail.

	daemon: Change some options via 'settings.set'.
	* nix/nix-daemon/guix-daemon.cc (parse_opt): Use 'settings.set' instead
	  of direct field access for 'buildCores', 'maxBuildJobs', and
	  'useSubstitutes'.
	  (main): Call 'settings.update' after 'argp_parse'.

2014-03-27  Mark H Weaver  <mhw@netris.org>

	gnu: tcl: Install man pages in share/man.
	* gnu/packages/tcl.scm (tcl): Add --mandir configure flag.

2014-03-27  Sree Harsha Totakura  <sreeharsha@totakura.in>

	Add (guix svn-download).
	* guix/svn-download.scm, guix/build/svn.scm: New files.
	* Makefile.am (MODULES): Add them.

2014-03-26  Andreas Enge  <andreas@enge.fr>

	gnu: gnu-pw-mgr: Fix download location.
	* gnu/packages/gnu-pw-mgr.scm (gnu-pw-mgr): Fix download location.

2014-03-26  Eric Bavier  <bavier@member.fsf.org>

	gnu: Add mc
	* gnu/packages/mc.scm: New file
	* gnu/packages/patches/mc-fix-ncurses-build.patch: New patch
	* gnu-system.am (GNU_SYSTEM_MODULES): Add mc.scm.
	(dist_patch_DATA): Add patch

	gnu: libssh2: Fix use with libssh2.pc
	* gnu/packages/ssh.scm (libssh2): Pass --with-libgcrypt configure flag and
	  propagate inputs.

2014-03-26  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'core-updates'

	offload: Remove erroneous 'close-pipe' call.
	* guix/scripts/offload.scm (send-files): Remove 'close-pipe' call from
	  'guard' handler ('pipe' here referred to Guile's 'pipe' procedure.)

	offload: Wait for the processes involved in 'guix archive --missing'.
	* guix/scripts/offload.scm (send-files): Keep the second return value of
	  'filtered-port'.  Call 'waitpid' on it.

2014-03-26  Andreas Enge  <andreas@enge.fr>

	gnu: gp2c: Upgrade to 0.0.8pl1.
	* gnu/packages/algebra.scm (gp2c): Upgrade to 0.0.8pl1, add native input perl.

2014-03-26  Ludovic Courtès  <ludo@gnu.org>

	offload: Allow one transfer in each direction simultaneously.
	* guix/scripts/offload.scm (transfer-and-offload): Use 'upload' lock
	  instead of 'bandwidth' around 'send-files' calls, and 'download' lock
	  around 'retrieve-files' call.

	offload: Disable SSH-level compression.
	* guix/scripts/offload.scm (remote-pipe): Remove '-z' lsh command line
	  argument.  This makes transfers almost an order of magnitude slower.
	  OpenSSH's ssh(1) man page notes: "Compression is desirable on modem lines
	  and other slow connections, but will only slow down things on fast
	  networks."  See also
	  <http://www.spikelab.org/blog/transfer-largedata-scp-tarssh-tarnc-compared.html>.

2014-03-26  Andreas Enge  <andreas@enge.fr>

	gnu: pari-gp: Upgrade to 2.7.0.
	* gnu/packages/algebra.scm (pari-gp): Upgrade to 2.7.0.

2014-03-25  Eric Bavier  <bavier@member.fsf.org>

	gnu: gnu-pw-mgr: Upgrade to 1.2
	* gnu/packages/gnu-pw-mgr.scm: Upgrade to 1.2

2014-03-25  Ludovic Courtès  <ludo@gnu.org>

	check-available-binaries: Make sure substitutes are enabled.
	* build-aux/check-available-binaries.scm: Add call to
	  'set-build-options'.

	hydra: Hard-code target systems.
	* build-aux/hydra/gnu-system.scm (hydra-jobs)[systems]: Define locally,
	  independently of ARGUMENTS.  This matches the new Hydra convention,
	  where using a 'system' input is deprecated.

	gnu: guile-ssh: Upgrade to 0.6.0.
	* gnu/packages/ssh.scm (guile-ssh): Upgrade to 0.6.0.
	  [arguments]: Remove #:tests? #f; add #:parallel-build? #f.

	gnu: recutils: Upgrade to 1.7.
	* gnu/packages/recutils.scm (recutils): Upgrade to 1.7.
	  Add 'arguments' field.

	download: Don't use 'http-get*' on Guile 2.0.10+.
	* guix/build/download.scm (http-fetch)[post-2.0.7?]: Use
	  'string->number' and numeric comparison.  This fixes version
	  comparison with "2.0.10" and subsequent 2.0 releases.

2014-03-25  Eric Bavier  <bavier@member.fsf.org>

	gnu: Add cursynth
	* gnu/packages/cursynth.scm: New file
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it

2014-03-25  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: remove python-fix-dbm.patch
	* gnu/packages/patches/python-fix-dbm.patch: remove file. It is not needed
	  anymore, and is probably a left-over of a failed merge.
	* gnu-system.am: remove gnu/packages/patches/python-fix-dbm.patch

	gnu: Enable tests in Python 3.
	* gnu/packages/python.scm: enable tests for Python 3
	* gnu/packages/python-fix-tests.patch: New file.
	* gnu/packages/gnu-system.am (dist_patch_DATA): add it.

	gnu: Python: use /nix/.../sh instead of /bin/sh in the subprocess module
	* gnu/packages/python.scm (python-2): patch Lib/subprocess.py to use
	  /nix/.../sh.

	gnu: Enable the 'ctypes' module in Python.
	* gnu/packages/python.scm (python-2): add libffi to the inputs and use it to
	  build the ctypes module.

2014-03-25  Ludovic Courtès  <ludo@gnu.org>

	hydra: Fix typo in core package list.
	* build-aux/hydra/gnu-system.scm: Use (gnu packages gcc).
	  (%core-packages): Remove nonexistent 'gcc'; add GCC-4.8 and GCC-4.7.

	hydra: Remove cross-builds from i686-linux to mips64el-linux-gnuabi64.
	* build-aux/hydra/gnu-system.scm (hydra-jobs)[cross-jobs]: Define
	  'from-32-to-64?'.  Filter out %CROSS-TARGETS that match.

	hydra: Build GCC and glibc, not their '-final' variant.
	* build-aux/hydra/gnu-system.scm (%core-packages): Replace GCC-FINAL and
	  GLIBC-FINAL with GCC and GLIBC.

2014-03-24  Manolis Ragkousis  <manolis837@gmail.com>
	    Ludovic Courtès  <ludo@gnu.org>

	gnu: autotools: Add Autoconf 2.68; turn 'autoconf-wrapper' into a procedure.
	* gnu/packages/autotools.scm (autoconf-2.68): New variable.
	  (autoconf-wrapper): Turn into a procedure.  Turn comment into a
	  docstring.
	  (automake): Adjust accordingly.

2014-03-24  Ludovic Courtès  <ludo@gnu.org>

	offload: Compress files being sent/retrieved.
	* guix/scripts/offload.scm (send-files): Add "xz -dc |" to the remote
	  pipe command.  Pass PIPE through 'call-with-compressed-output-port'.
	  Remove 'close-pipe' call.
	  (retrieve-files): Add "| xz -c" to the remote pipe command.  Pass PIPE
	  through 'call-with-decompressed-port'.  Remove 'close-pipe' call.

	utils: Add 'call-with-decompressed-port' and 'call-with-compressed-output-port'.
	* guix/utils.scm (call-with-decompressed-port,
	  call-with-compressed-output-port): New procedures.
	* tests/utils.scm ("compressed-output-port + decompressed-port"):
	  Rewrite to use them.

	utils: Add 'filtered-output-port' and 'compressed-output-port'.
	* guix/utils.scm (filtered-output-port, compressed-output-port): New
	  procedures.
	* tests/utils.scm ("compressed-output-port + decompressed-port"): New
	  test.

	gnu: glibc: Patch mtrace.pl to avoid retaining a reference to Perl.
	* gnu/packages/base.scm (glibc)[argument] <pre-configure phase>: Patch
	  malloc/mtrace.pl.

2014-03-23  Mark H Weaver  <mhw@netris.org>

	gnu: tor: Upgrade to 0.2.4.21.
	* gnu/packages/tor.scm (tor): Upgrade to 0.2.4.21.

2014-03-22  Ludovic Courtès  <ludo@gnu.org>

	tests: Make sure substitutes are usable when we need them.
	* tests/derivations.scm ("derivation-prerequisites-to-build and
	  substitutes"): Add call to 'set-build-options'.

	authenticate: Support reading the hash or key from stdin.
	* guix/scripts/authenticate.scm (guix-authenticate): Add clauses
	  for ("rsautl" "-sign" "-inkey" key) and ("rsautl" "-verify" "-inkey" _
	  "-pubin").
	* tests/guix-authenticate.sh (hash): Add test using -sign and -verify in
	  a pipeline.

	authenticate: Move actual work to separate procedures.
	* guix/scripts/authenticate.scm (read-canonical-sexp): Change to expect
	  a port instead of a file name.
	  (read-hash-data): Likewise.
	  (sign-with-key, validate-signature): New procedures.
	  (guix-authenticate): Rewrite in terms of these two procedures.

	Update 'nix-upstream' sub-module.
	* nix-upstream: Update.

	utils: Add 'decompressed-port' and 'compressed-port'.
	* guix/utils.scm (decompressed-port, compressed-port): New procedures.
	* guix/scripts/substitute-binary.scm (decompressed-port): Remove.
	  (guix-substitute-binary): Pass a symbol or #f as the first argument to
	  'decompress-port'.
	* tests/utils.scm ("compressed-port, decompressed-port, non-file"): New
	  test.

	utils: 'filtered-port' doesn't leave dangling processes behind.
	* guix/utils.scm (filtered-port): Make sure the 'execl' child process
	  always exits, and does (primitive-_exit 1) upon execution failure.
	  Use 'primitive-_exit' in the 'dump-port' child process.
	* tests/utils.scm ("filtered-port, does not exist"): New test.

2014-03-22  Yakkala Yagnesh Raghava  <hi@yagnesh.org>

	licenses: Fix Nixpkgs license URL.
	* guix/licenses.scm: Fix Nixpkgs URL in comment.

2014-03-22  Eric Bavier  <bavier@member.fsf.org>

	gnu: Provide single-precision fftw library for pulseaudio
	* gnu/packages/algebra.scm (fftwf): New variable
	* gnu/packages/pulseaudio.scm (pulseaudio): Use it

2014-03-22  Mark H Weaver  <mhw@netris.org>

	Merge branch 'master' into core-updates

	gnu: guile: Upgrade to 2.0.11.
	* gnu/packages/guile.scm (guile): Upgrade to 2.0.11.

	gnu: cmake: Install man pages and docs in share/{man,doc}.
	* gnu/packages/cmake.scm (cmake): Pass --mandir and --docdir to configure.
	  Rewrite the code that selects the first two components of the version.

	gnu: flac: Install man pages in share/man.
	* gnu/packages/xiph.scm (flac): Add --mandir configure flag.

2014-03-21  Eric Bavier  <bavier@member.fsf.org>

	gnu: libvorbis: disable parallel tests
	* gnu/packages/xiph.scm (libvorbis): disable parallel tests

2014-03-21  Mark H Weaver  <mhw@netris.org>

	gnu: openssh: Upgrade to 6.6p1.
	* gnu/packages/ssh.scm (openssh): Upgrade to 6.6p1.

2014-03-20  Ludovic Courtès  <ludo@gnu.org>

	daemon: Really override the substituters setting.
	Reported by Andreas Enge <andreas@enge.fr>:
	<https://lists.gnu.org/archive/html/guix-devel/2014-03/msg00211.html>.

	* nix/nix-daemon/guix-daemon.cc (main): Set the 'NIX_SUBSTITUTERS'
	  env. var.  Leave 'settings.substituters' unchanged.

2014-03-20  Ludovic Courtès  <ludo@gnu.org>

	pk-crypto: Don't use Ed25519 when libgcrypt is older than 1.6.0.
	* guix/pk-crypto.scm (gcrypt-version): New procedure.
	* guix/scripts/archive.scm (%key-generation-parameters): New variable.
	  (%options) <generate-key>: Use it.
	* tests/pk-crypto.scm ("sign + verify, Ed25519"): Skip if using gcrypt < 1.6.0.

2014-03-20  Mark H Weaver  <mhw@netris.org>

	gnu: tzdata: Upgrade to 2014a.

	gnu: lynx: Upgrade to 2.8.8rel.2.
	* gnu/packages/lynx.scm (lynx): Upgrade to 2.8.8rel.2.

	gnu: util-macros: Install .pc file in lib/pkgconfig; remove INSTALL file.
	* gnu/packages/xorg.scm (util-macros): Substitute "$(libdir)/pkgconfig"
	  for "$(datadir)/pkgconfig" in Makefile.in.  After install, remove
	  share/util-macros/INSTALL and share/util-macros.

	gnu: bc: Install docs in share/man and share/info.
	* gnu/packages/algebra.scm (bc): Pass --mandir and --infodir to configure.

	gnu: unzip: Install man pages in share/man.
	* gnu/packages/zip.scm (unzip): Substitute /share/man/ for /man/ in Makefile.

	gnu: screen: Install docs in share/man and share/info.
	* gnu/packages/screen.scm (screen): Add --mandir and --infodir
	  configure flags.

	gnu: netcat: Install docs in share/man and share/info.
	* gnu/packages/admin.scm (netcat): Add --mandir and --infodir
	  configure flags.

2014-03-19  Ludovic Courtès  <ludo@gnu.org>

	gnu: readline: Fix cross-compilation.
	* gnu/packages/readline.scm (readline)[arguments]: Add
	  "bash_cv_wcwidth_broken=no" to #:configure-flags
	  when (%current-target-system) is true.

	offload: Send build logs to file descriptor 4.
	* guix/scripts/offload.scm (with-error-to-port): New macro.
	  (remote-pipe): Add #:error-port parameter.  Use 'with-error-to-port'
	  around 'open-pipe*' call.
	  (build-log-port): New procedure.
	  (offload): Change #:log-port to default to (build-log-port).  Call
	  'remote-pipe' with #:error-port LOG-PORT.

	substitute-binary: Quietly handle 404s when fetching narinfos.
	* guix/scripts/substitute-binary.scm (fetch): Add #:quiet-404?
	  parameter.  Upon &http-get-error, re-raise C if the QUIET-404? is
	  true and the code is 404.
	  (fetch-narinfo): Pass #:quiet-404? #t.

	gnu: xterm: Upgrade to 303.
	* gnu/packages/xorg.scm (xterm): Upgrade to 303.

	pk-crypto: Use RFC6979 when signing with an ECC or DSA key.
	* guix/pk-crypto.scm (bytevector->hash-data): Add #:key-type parameter.
	  Use the 'pkcs1' flag when KEY-TYPE is 'rsa', and 'rfc6979' when
	  KEY-TYPE is 'ecc' or 'dsa'.
	  (key-type): New procedure.
	* guix/scripts/authenticate.scm (read-hash-data): Add 'key-type'
	  parameter.  Pass it to 'bytevector->hash-data'.  Adjust caller
	  accordingly.
	* tests/pk-crypto.scm (%ecc-key-pair): New variable.
	  ("key-type"): New test.
	  ("sign + verify"): Pass #:key-type to 'bytevector->hash-data'.
	  ("sign + verify, Ed25519"): New test.

	gnu: imagemagick: Upgrade to 6.8.8-8.
	* gnu/packages/imagemagick.scm (imagemagick): Upgrade to 6.8.8-8.

2014-03-19  Mark H Weaver  <mhw@netris.org>

	gnu: bzip2: Install man pages to share/man/man1, not share/man1.
	* gnu/packages/compression.scm (bzip2)[fix-man-dir]: Rename "man"
	  to "share/man", not "share".

	gnu: ncurses: Install man pages in share/man/man*, not man/man*.
	* gnu/packages/ncurses.scm (ncurses): Add --mandir configure flag.

2014-03-19  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Window Maker.
	* gnu/packages/gnustep.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	tests: Test recovery from 'valid-path?' RPCs with an invalid parameter.
	* tests/store.scm ("valid-path? live", "valid-path? false", "valid-path?
	  error", "valid-path? recovery"): New tests.

2014-03-18  Ludovic Courtès  <ludo@gnu.org>

	Update 'nix-upstream' sub-module.
	* nix-upstream: Update.

	gnu: libxft: Propagate Freetype and Fontconfig.
	* gnu/packages/xorg.scm (libxft): Move Freetype and Fontconfig from
	  'inputs' to 'propagated-inputs'.

	gnu: guile: Upgrade to 2.0.10.
	* gnu/packages/guile.scm (guile-2.0): Upgrade to 2.0.10.

	gnu: Make libgc 7.4 the default.
	* gnu/packages/bdw-gc.scm (libgc): Rename to...
	  (libgc-7.2): ... this.
	  (libgc-7.4): Rename to...
	  (libgc): ... this.
	* gnu/packages/guile.scm (guile-2.0): Switch to LIBGC.
	  (guile-2.0/fixed): Alias GUILE-2.0.

2014-03-17  Ludovic Courtès  <ludo@gnu.org>

	guix archive: Generate curve Ed25519 keys by default.
	* guix/scripts/archive.scm (%options) <generate-key>: Default to curve
	  Ed25519.  Suggested by Christian Grothoff <grothoff@in.tum.de>.

	guix archive: Improve '--generate-key' error reporting.
	* guix/scripts/archive.scm (%options) <generate-key>: Report the error
	  source and string when 'string->canonical-sexp' fails.

2014-03-17  Ludovic Courtès  <ludo@gnu.org>

	build: Fix test failures due to the nix -> guix directory name change.
	Reported by Nikita Karetnikov <nikita@karetnikov.org>
	and Pierre-Antoine Rault <par@rigelk.eu>.

	* test-env.in: Change 'NIX_LOG_DIR' in accordance with f5768af.
	* tests/guix-register.sh: Likewise for 'NIX_LOG_DIR' and 'NIX_DB_DIR'.

2014-03-17  Raimon Grau  <raimonster@gmail.com>

	gnu: luajit: Update to 2.0.3.
	* gnu/packages/lua.scm (luajit): Update to 2.0.3.

2014-03-17  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'master' into core-updates

	gnu: python: Change URL to https.
	* gnu/packages/python.scm (python-2, python)[source]: Change URL to
	  https.  This makes sure GnuTLS is available in the derivation that
	  downloads the source, which is required since http URLs get redirected
	  to https anyway.  Reported by Manolis Ragkousis <manolis837@gmail.com>.

	gnu: pulseaudio: Upgrade to 5.0.
	* gnu/packages/pulseaudio.scm (pulseaudio): Upgrade to 5.0.
	  Remove patches.
	* gnu/packages/patches/pulseaudio-test-timeouts.patch,
	  gnu/packages/patches/pulseaudio-volume-test.patch: Remove.
	* gnu-system.am (dist_patch_DATA): Adjust accordingly.

2014-03-16  Ludovic Courtès  <ludo@gnu.org>

	gnu: fuse: Refer to the right 'mount' and 'umount' commands.
	* gnu/packages/linux.scm (fuse)[inputs]: Change to...
	  [native-inputs]: ... this.
	  [arguments]: Add #:phases argument.

2014-03-14  Ludovic Courtès  <ludo@gnu.org>

	store: Add 'hash-part->path'.
	* guix/store.scm (hash-part->path): New procedure.
	* tests/store.scm ("hash-part->path"): New test.

2014-03-13  Ludovic Courtès  <ludo@gnu.org>

	offload: Fix 'choose-build-machine' for several machines.
	* guix/scripts/offload.scm (choose-build-machine)[undecorate]: Turn into
	  a two-argument procedure.

	offload: Convert the port number to a string when invoking lsh.
	* guix/scripts/offload.scm (remote-pipe, send-files): Pass the result of
	  'build-machine-port' to 'number->string'.

	offload: Allow build machines to specify a port number.
	* guix/scripts/offload.scm (<build-machine>): Add 'port' field.
	  (remote-pipe, send-files): Use lsh's '-p' option when invoking it.

	guix build: Support '--with-source' along with '-e'.
	* guix/scripts/build.scm (derivation-from-expression): Remove.
	  (options->derivations): Handle pairs of the form
	  "('argument . (? derivation?))".
	  (options/resolve-packages): Add 'store' parameter; update caller.  Add
	  'system' variable.  Add case for 'expression pairs.
	* guix/scripts/archive.scm (derivation-from-expression): New procedure.

	gnu: guile-xcb: Upgrade to 1.3.
	* gnu/packages/guile-wm.scm (guile-xcb): Upgrade to 1.3.
	  [arguments] Pass --with-guile-site-dir= instead of --datadir=,
	  and pass --with-guile-site-ccache-dir=.  Remove #:phases.

2014-03-12  Ludovic Courtès  <ludo@gnu.org>

	gnu: linux-libre: Build the FUSE module.
	* gnu/packages/linux.scm (linux-libre): Set CONFIG_FUSE_FS=m.

	gnu: unionfs-fuse: Add statically-linked variant.
	* gnu/packages/linux.scm (unionfs-fuse/static): New variable.

	guix build: Add '--with-source'.
	* guix/scripts/build.scm (package-with-source): New procedure.
	  (show-help): Add '--with-source'.
	  (%options): Likewise.
	  (options->derivations): Call 'options/with-source' and
	  'options/resolve-packages'.
	  (options/resolve-packages, options/with-source): New procedures.
	* doc/guix.texi (Invoking guix build): Document '--with-source'.

2014-03-11  Ludovic Courtès  <ludo@gnu.org>

	download: 'download-to-store' accepts plain file names.
	* guix/download.scm (download-to-store): When URI is #f, assume that URL
	  is a file name, and handle it.

2014-03-11  Mark H Weaver  <mhw@netris.org>

	gnu: libgc: Upgrade to 7.2e.
	* gnu/packages/bdw-gc.scm (libgc): Upgrade to 7.2e.

2014-03-10  Ludovic Courtès  <ludo@gnu.org>

	More /gnu/store replacements.
	* gnu/packages/gcc.scm (gcc-4.7): Change /nix/store in comment.
	* gnu/system/vm.scm (operating-system-default-contents):
	  Use (%store-prefix) instead of "/nix/store".
	* guix/derivations.scm (derivation-path->output-path,
	  derivation-path->output-paths): Change to /gnu/store in docstring.

	Change default store values from /nix/store to /gnu/store.
	* gnu/packages/ld-wrapper.scm (%store-directory): Change the default to
	  /gnu/store.
	* guix/build/utils.scm (%store-directory): New procedure.
	  (remove-store-references): Use it for the default value of 'store'.
	* guix/packages.scm (patch-and-repack)[builder]: Change default store to
	  /gnu/store.

	Merge branch 'master' into core-updates

	gnu: linux-initrd: Make the pseudo-tty device nodes.
	* guix/build/linux-initrd.scm (make-essential-device-nodes): Create
	  /dev/ptmx and /dev/pts.
	* gnu/system/vm.scm (qemu-image): Umount /fs/dev/pts before /fs.

	tests: 'topologically-sorted' test handles different references orders.
	* tests/store.scm ("topologically-sorted, more difficult"): Arrange to
	  handle a different ordering of (references %store y).

	gnu: Add UnionFS-FUSE.
	* gnu/packages/linux.scm (unionfs-fuse): New variable.

2014-03-10  Pierre-Antoine Rault  <par@rigelk.eu>
	    Ludovic Courtès  <ludo@gnu.org>

	doc: Update packaging guidelines.
	* HACKING (Submitting Patches): Mention 'git send-mail'.
	* doc/guix.texi (Packaging Guidelines): More details on how to prepare a
	  package module.
	  (Contributing): Add reference to #guix channel on Freenode.

2014-03-10  Eric Bavier  <bavier@member.fsf.org>

	gnu: pretty-print: Fix boost reference
	* gnu/packages/pretty-print.scm (source-highlight): Change "boost-1.54" input
	  to "boost"

2014-03-09  Ludovic Courtès  <ludo@gnu.org>

	offload: Honor absolute build timeouts.
	* guix/scripts/offload.scm (offload): Remove default value for
	  'build-timeout'.  Pass '--timeout' to the remote 'guix build'
	  process.
	  (transfer-and-offload, process-request): Remove default value for
	  'build-timeout'.

	guix build: Add '--timeout' to the common build options.
	* guix/scripts/build.scm (show-build-options-help): Document
	  '--timeout'.
	  (set-build-options-from-command-line): Pass #:timeout to
	  'set-build-options'.
	  (%standard-build-options): Add '--timeout'.
	* doc/guix.texi (Invoking guix build): Document it.

	store: Add #:timeout build option.
	* guix/serialization.scm (write-string-pairs): New procedure.
	* guix/store.scm (write-arg): Add 'string-pairs' case.
	  (set-build-options): Add 'timeout' keyword parameter.  Honor it.
	* tests/derivations.scm ("build-expression->derivation and timeout"):
	  New test.

	gnu: Add libpcap and jnettop.
	* gnu/packages/admin.scm (libpcap, jnettop): New variables.

	build: Change state and log directories to $localstatedir/.../guix.
	* daemon.am (libstore_a_CPPFLAGS): Change /nix to /guix.
	* guix/config.scm.in (%state-directory): Likewise.
	* guix/store.scm (log-file): Likewise.

	Change the default store file name to /gnu/store.
	* configure.ac: Change the default 'storedir' to /gnu/store.  Print
	  $storedir.
	* doc/guix.texi: Replace "/nix/store" by "/gnu/store", except where
	  describing Nix compatibility.
	* Makefile.am: Likewise.

	offload: Move macro definitions before use.
	* guix/scripts/offload.scm (lock-file, unlock-file, with-file-lock,
	  with-machine-lock, machine-slot-file, acquire-build-slot,
	  release-build-slot): Move definitions above their first use.

2014-03-09  Andreas Enge  <andreas@enge.fr>

	gnu: soprano: Add input raptor2.
	* gnu/packages/rdf.scm (soprano): Add input raptor2.

2014-03-09  Ludovic Courtès  <ludo@gnu.org>

	offload: Distinguish between 'decline' and 'postpone'.
	* guix/scripts/offload.scm (transfer-and-offload): New procedure, with
	  core formerly in 'process-request'.
	  (choose-build-machine): Remove 'requirements' parameter.
	  (process-request): Reply 'decline' when none of MACHINES matches the
	  requirements, and 'postpone' when MACHINES are busy.

2014-03-09  Andreas Enge  <andreas@enge.fr>

	gnu: raptor2: Disable parallel tests.
	* gnu/packages/rdf.scm (raptor2): Disable parallel tests since it makes
	    tests fail.

2014-03-08  Ludovic Courtès  <ludo@gnu.org>

	offload: Prevent locked files from being GC'd.
	* guix/scripts/offload.scm (%slots): New variable.
	  (choose-build-machine): Add SLOT to '%slots'.

	offload: Fix thinko.
	* guix/scripts/offload.scm (choose-build-machine)[machine+slots]: Use
	  'filter-map', not 'filter'.

	offload: Make 'parallel-builds' a hard limit.
	* guix/scripts/offload.scm (machine-choice-lock-file,
	  machine-slot-file, acquire-build-slot, release-build-slot): New
	  procedures.
	  (choose-build-machine): Operate with (machine-choice-lock-file)
	  taken.  Acquire a build slot for each of MACHINES.  Release those not
	  used.

	offload: Further generalize lock files.
	* guix/scripts/offload.scm (lock-machine, unlock-machine): Remove.
	  (lock-file, unlock-file): New procedures.
	  (with-file-lock): New macro.
	  (with-machine-lock): Rewrite in terms of 'with-file-lock'.

	offload: Generalize the machine lock mechanism.
	* guix/scripts/offload.scm (lock-machine): Add 'hint' parameter.
	  (unlock-machine): Remove 'machine' parameter.
	  (with-machine-lock): Add 'hint' parameter, and pass it down.
	  (process-request): Adjust uses of 'with-machine-lock' to pass the
	  'bandwidth hint.

	utils: Add a non-blocking option for 'fcntl-flock'.
	* guix/utils.scm (F_SETLK): New variable.
	  (fcntl-flock): Add 'wait?' keyword parameter; honor it.
	* tests/utils.scm ("fcntl-flock non-blocking"): New test.

	doc: Explain what's special about the (gnu packages ...) name space.
	* doc/guix.texi (Invoking guix package): Explain where packages are
	  searched for and link to "Package Modules".
	  (Defining Packages) <example>: Use 'define-module' clause instead of
	  'use-modules'.  Explain why and link to "Package Modules".
	  (Invoking guix build): Explain where packages aer searched for and
	  link to "Package Modules".
	  (Package Modules): Explain that (gnu packages ...) is scanned.

2014-03-07  Eric Bavier  <bavier@member.fsf.org>

	gnu: Add a2ps, trueprint, enscript, and source-highlight
	* gnu/packages/pretty-print.scm: New file
	* gnu/packages/patches/source-highlight-regexrange-test.patch: New file
	* gnu-system.am (dist_patch_DATA): Add patch.
	(GNU_SYSTEM_MODULES): Add pretty-print.scm

2014-03-07  Cyril Roelandt  <tipecaml@gmail.com>

	coreutils: fix test suite
	* gnu/packages/patches/coreutils-skip-nohup.patch: patch taken from the git
	  repository of coreutils, that makes sure tests/misc/nohup.sh does not fail
	  when /dev/tty does not exist.
	* gnu/packages/base.scm (coreutils): use it.
	* gnu-system.am (dist_patch_DATA): add it.

2014-03-07  Ludovic Courtès  <ludo@gnu.org>

	store: 'export-paths' doesn't export references of the given files.
	This fixes a regression introduced in
	99fbddf9a623757e39d88bfb431f8f7d6f24b75b ("store: Change 'export-paths'
	to always export in topological order.")

	* guix/store.scm (export-paths): Define 'ordered' variable.  Iterate
	  over it.
	* tests/store.scm ("export/import paths, ensure topological order"): Add
	  'file0'.  Adjust accordingly.

2014-03-06  David Thompson  <dthompson2@worcester.edu>

	gnu: Add ncmpc.
	* gnu/packages/mpd.scm (ncmpc): New variable.

2014-03-06  Ludovic Courtès  <ludo@gnu.org>

	utils: 'fcntl-flock' passes an errno when throwing an exception.
	* guix/utils.scm (%libc-errno-pointer, errno): New procedures.
	  (fcntl-flock): Use it as the exception's argument.

	offload: Serialize file transfers to build machines.
	* guix/scripts/offload.scm (machine-lock-file, lock-machine,
	  unlock-machine): New procedures.
	  (with-machine-lock): New macro.
	  (process-request): Wrap 'send-files' and 'retrieve-files' calls in
	  'with-machine-lock'.

	tests: Rewrite 'fcntl-lock' test.
	* tests/utils.scm (temp-file): New variable.
	  ("fcntl-flock"): Rewrite to actually test whether the child process
	  waits for the lock to be released.  The previous test was wrong
	  because (1) it expected F_SETLK semantics, not F_SETLKW, and (2) it
	  got EBADF because of a mismatch between the open mode and the lock
	  style.

	download: Perform derivations locally.
	* guix/download.scm (url-fetch): Pass #:local-build? #t to
	  'build-expression->derivation'.
	* guix/git-download.scm (git-fetch): Likewise.

2014-03-06  Mark H Weaver  <mhw@netris.org>

	gnu: Add bitlbee.
	* gnu/packages/messaging.scm (bitlbee): New variable.
	* gnu/packages/patches/bitlbee-fix-tests.patch: New file.
	* gnu/packages/patches/bitlbee-memset-fix.patch: New file.
	* gnu-system.am (dist_patch_DATA): Add patches.

	gnu: Add libotr.
	* gnu/packages/messaging.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	gnu: gnupg: Add support for version 1.4.16.
	* gnu/packages/gnupg.scm (gnupg-1): New variable.

2014-03-05  Mark H Weaver  <mhw@netris.org>

	gnu: Add lynx.
	* gnu/packages/lynx.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2014-03-05  Mark H Weaver  <mhw@netris.org>
	    Ludovic Courtès  <ludo@gnu.org>

	gnu: gnutls: Upgrade to 3.2.12.
	* gnu/packages/gnutls.scm (gnutls): Upgrade to 3.2.12.

2014-03-03  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add ElementTree and pybugz.
	* gnu/packages/python.scm (python2-element-tree, python2-pybugz): New
	  variables.

	doc: Factorize documentation of common build options.
	* doc/guix.texi (Invoking guix package): Remove documentation for
	  --dry-run, --fallback, --no-substitutes, and --max-silent-time.  Add a
	  cross-ref to "Invoking guix build".
	  (Invoking guix archive): Add "common build options" as the cross-ref
	  topic for "Invoking guix build".
	  (Invoking guix build): Move common build options separately.  Add a
	  paragraph to explain.

2014-03-02  Andreas Enge  <andreas@enge.fr>

	gnu: subversion: Update to 1.7.14.
	* gnu/packages/version-control.scm (subversion): Update to 1.7.14.

	gnu: subversion: Enable http checkouts.
	* gnu/packages/version-control.scm (subversion): Add input neon-0.29.6 to
	    enable http and https checkouts.

	gnu: Add neon-0.29.6.
	* gnu/packages/version-control.scm (neon-0.29.6): New variable.

	gnu: Add neon.
	* gnu/packages/version-control.scm (neon): New variable.

2014-03-01  Manolis Ragkousis  <manolis837@gmail.com>
	    Ludovic Courtès  <ludo@gnu.org>

	gnu: hurd: Add Hurd headers.
	* gnu/packages/hurd.scm (hurd-headers): New variable.

2014-03-01  Ludovic Courtès  <ludo@gnu.org>

	guix package: Use the common build options from (guix scripts build).
	* guix/scripts/build.scm (%standard-build-options): Change option
	  handlers to support multiple seeds.
	* guix/scripts/package.scm (show-help): Remove --dry-run, --fallback,
	  --no-substitutes, and --max-silent-time.
	  (%options): Likewise, and add %STANDARD-BUILD-OPTIONS.
	  (%default-options): Add 'verbosity'.
	  (guix-package): Call 'set-build-options-from-command-line' instead of
	  'set-build-options'.

	gnu: guile-ssh: Upgrade to 0.5.0.
	* gnu/packages/ssh.scm (guile-ssh): Upgrade to 0.5.0.
	  [arguments]: Adjust 'autoreconf' phase.  Add #:parallel-tests? #f and
	  #:tests? #f.
	  [native-inputs]: Add TEXINFO.

	substitute-binary: Gracefully handle HTTP GET errors.
	* guix/http-client.scm (&http-get-error): New condition type.
	  (http-fetch): Raise it instead of using 'error'.
	* guix/scripts/substitute-binary.scm (fetch) <http>: Wrap body into
	  'guard' form; gracefully handle 'http-get-error?' conditions.

	offload: Comment out attempt to set up an lsh gateway.
	* guix/scripts/offload.scm (open-ssh-gateway): Comment out.
	  (process-request): Remove call to 'open-ssh-gateway' and to 'kill'.

	offload: 'remote-pipe' uses the right SSH key.
	* guix/scripts/offload.scm (remote-pipe): Pass -i when invoking
	  %LSHG-COMMAND.

	offload: Take the target machine load into account.
	* guix/scripts/offload.scm (machine-load, machine-less-loaded?,
	  machine-less-loaded-or-faster?): New procedures.
	  (choose-build-machine): Use 'machine-less-loaded-or-faster?' when
	  sorting.  Return the head of MACHINES unless it's loaded is >= 2.

2014-02-28  Ludovic Courtès  <ludo@gnu.org>

	guix archive: Change '--help' to show '--authorize'.
	* guix/scripts/archive.scm (show-help): Add '--authorize'.

	gnu: libgc: Change URLs to point to hboehm.info.
	* gnu/packages/bdw-gc.scm (libgc)[source, home-page, license]: Update
	  URL.
	  (libatomic-ops)[source, home-page]: Likewise.
	  (libgc-7.4)[source]: Likewise.

2014-02-28  Ludovic Courtès  <ludo@gnu.org>

	Partly revert "gnu: Remove now unneeded 'modules' fields from 'origin' specifications."
	This partly reverts commit a3a1417dc715f432fadbefbe9896f56a14236741.

	* gnu/packages/base.scm (glibc)[source]: Re-add 'modules' clause.
	* gnu/packages/lsh.scm (lsh)[source]: Remove 'use-modules' form from
	  'snippet'.  Add 'modules' field.

2014-02-28  Ludovic Courtès  <ludo@gnu.org>

	gnu: coreutils: Patch 'Makefile.in', not 'local.mk'.
	* gnu/packages/patches/coreutils-dummy-man.patch: Patch 'Makefile.in',
	  not 'local.mk'; the latter otherwise requires Automake to regenerate
	  the build system.

2014-02-28  Ludovic Courtès  <ludo@gnu.org>

	gnu: Remove now unneeded 'modules' fields from 'origin' specifications.
	The previous commit has made (guix build utils) imported by default, so
	no need to specify it.

	* gnu/packages/base.scm (glibc)[source]: Remove 'modules' and
	  'imported-modules' fields.
	* gnu/packages/lsh.scm (lsh)[source]: Likewise.

2014-02-28  Ludovic Courtès  <ludo@gnu.org>

	packages: Support 'patches' and 'snippets' for sources that are directories.
	* guix/packages.scm (patch-and-repack)[numeric-extension?, tarxz-name]:
	  New procedures.
	  [builder]: Adjust to deal with SOURCE when it's a directory.
	  <body>: Use 'tarxz-name'.  Always add (guix build utils) to
	  IMPORTED-MODULES.

	gnu-maintenance: Adjust 'latest-release' to filter Bash's patch directories.
	* guix/gnu-maintenance.scm (latest-release)[patch-directory-name?]: New
	  procedure.
	  <subdirs>: Use it to filter out Bash-like patch directories.

2014-02-27  Ludovic Courtès  <ludo@gnu.org>

	gnu: bash, readline: Upgrade.
	* gnu/packages/readline.scm (readline): Upgrade to 6.3.
	* gnu/packages/bash.scm (bash): Upgrade to 4.3.

	Merge branch 'master' into core-updates
	Conflicts:
		gnu/packages/libwebsockets.scm

	hydra: Set the default absolute build timeout to 20h.
	* build-aux/hydra/gnu-system.scm (package->alist): Add 'timeout' item.

	gnu: Move libwebsockets to (gnu packages web).
	* gnu/packages/libwebsockets.scm: Remove.  Move libwebsockets package
	  definition to...
	* gnu/packages/web.scm (libwebsockets): ... here.
	* gnu-system.am (GNU_SYSTEM_MODULES): Remove libwebsockets.scm.

	store: Use 'when' instead of 'if' in effectful context.
	* guix/store.scm (set-build-options): Use 'when' instead of 'if'.

2014-02-25  David Thompson  <dthompson2@worcester.edu>

	gnu: Add mpd.
	* gnu/packages/mpd.scm (mpd): New variable.

	gnu: Add libmpdclient.
	* gnu/packages/mpd.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2014-02-25  Eric Bavier  <bavier@member.fsf.org>

	gnu: zile: Upgrade to 2.4.10
	* gnu/packages/zile.scm (zile): Upgrade to 2.4.10

	gnu: parallel: Upgrade to 20140222
	* gnu/packages/parallel.scm (parallel): Upgrade to 20140222

2014-02-25  Mark H Weaver  <mhw@netris.org>

	gnu: ffmpeg: Upgrade to 2.1.4
	* gnu/packages/video.scm (ffmpeg): Upgrade to 2.1.4.

2014-02-25  Sree Harsha Totakura  <sreeharsha@totakura.in>

	gnu: libmicrohttpd: Update to 0.9.34.
	* gnu/packages/gnunet.scm (libmicrohttpd): Update to 0.9.34.

2014-02-24  Mark H Weaver  <mhw@netris.org>

	Update SRFI-64 to the latest upstream version.
	* srfi/srfi-64.scm: Export 'test-group'.  Call 'cond-expand-provide'.
	* srfi/srfi-64.upstream.scm: Update to the latest upstream version.

2014-02-24  Sree Harsha Totakura  <sreeharsha@totakura.in>

	gnu: Add miniupnpc.
	* gnu/packages/upnp.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2014-02-22  Ludovic Courtès  <ludo@gnu.org>

	gnu: coreutils: Attempt to really fix cross-compilation.
	* gnu/packages/patches/coreutils-dummy-man.patch: Directly take the
	  patch from <http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-core/coreutils/coreutils-8.22/fix-for-dummy-man-usage.patch>.

	gnu: grep: Upgrade to 2.18.
	* gnu/packages/base.scm (grep): Upgrade to 2.18.

	build-system/gnu: Allow the source to be a directory.
	* guix/build/gnu-build-system.scm (unpack): Check if SOURCE is a
	  directory, and copy it locally if it is.
	* gnu/packages/libwebsockets.scm (libwebsockets)[arguments]: Remove
	  'unpack' phase.

	Merge branch 'master' into core-updates
	Conflicts:
		gnu-system.am

2014-02-21  Ludovic Courtès  <ludo@gnu.org>

	derivations: Remove unused 'derivation' parameter.
	* guix/derivations.scm (derivation): Remove unused #:hash-mode parameter.
	* doc/guix.texi (Derivations): Adjust accordingly.

	gnu: Add libwebsockets.
	* gnu/packages/libwebsockets.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	Add (guix git-download).
	* guix/git-download.scm, guix/build/git.scm: New files.
	* Makefile.am (MODULES): Add them.
	* guix/packages.scm (<origin>): Fix comment for 'method' field.

	doc: More on what's special about the archive format.
	* doc/guix.texi (Invoking guix archive): Expound on what sets the Nar
	  format apart.

	nar: Produce archives with files sorted in C collation order.
	* guix/nar.scm (write-file) <directory>: Pass 'string<?' as the second
	  argument to 'scandir'.
	* tests/nar.scm ("write-file puts file in C locale collation order"):
	  New test.

	derivations: Add support for recursive fixed-output derivations.
	* guix/derivations.scm (<derivation-output>): Add 'recursive?' field.
	  Adjust 'make-derivation-output' callers.
	  (%read-derivation) <fixed-output>: When HASH-ALGO starts with 'r:',
	  set the 'recursive?' field and drop 'r:' from the hash algo name.
	  (write-derivation)[write-output]: Write the algo as 'r:HASH-ALGO' when
	  the RECURSIVE? field is set.
	  (derivation-hash) <fixed-output>: Prepend "r:" when RECURSIVE? is set.
	  (fixed-output-path): New procedure.
	  (derivation): Add #:recursive? parameter.  Use 'fixed-output-path' to
	  compute the output file name of a fixed output derivation.
	  (build-expression->derivation): Add #:recursive? parameter.  Pass it
	  to 'derivation'.
	* tests/derivations.scm ("fixed-output derivation, recursive",
	  "build-expression->derivation produces recursive fixed-output",
	  "build-expression->derivation uses recursive fixed-output"): New
	  tests.
	* doc/guix.texi (Derivations): Document #:recursive? for 'derivation'.
	  Add #:recursive? for 'build-expression->derivation'.

	guix hash: Add '--recursive'.
	* guix/scripts/hash.scm (show-help): Add --recursive.
	  (%options): Likewise.
	  (guix-hash)[file-hash]: New procedure.  Honor --recursive.
	  Use it.
	* guix/nar.scm (write-file): Add missing field to the &nar-error
	  condition raised upon unsupported file type; change its message to be
	  more descriptive.
	* tests/guix-hash.sh: Add tests with -r.
	* doc/guix.texi (Invoking guix hash): Document --recursive.

	ui: Handle SRFI-35 '&message' conditions.
	* guix/ui.scm (call-with-error-handling): Add case for
	  'message-condition?'.
	* po/Makevars: Fix typo in comment.

	nar: 'write-file' can write to non-file ports.
	* guix/nar.scm (write-contents): Use 'sendfile' only when P is a file
	  port.
	* tests/nar.scm ("write-file supports non-file output ports"): New test.

	gnu: mpc123: Add patch that fixes a segfault.
	* gnu/packages/patches/mpc123-initialize-ao.patch: New file.
	* gnu/packages/mp3.scm (mpc123): Use it.
	* gnu-system.am (dist_patch_DATA): Add it.

2014-02-21  Mark H Weaver  <mhw@netris.org>

	gnu: emacs: Add more inputs: giflib, libice, libsm, alsa-lib.
	* gnu/packages/emacs.scm (emacs): Add 'giflib', 'libice', 'libsm', and
	  'alsa-lib' inputs.  Remove "--with-gif=no" from configure arguments.

	gnu: Add giflib.
	* gnu/packages/giflib.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2014-02-21  Andreas Enge  <andreas@enge.fr>

	gnu: gmime: Use gnome mirror for download.
	* gnu/packages/mail.scm (gmime): Use gnome mirror, fixes download problems
	    with automatic https redirection.

2014-02-20  Manolis Ragkousis  <manolis837@gmail.com>
	    Ludovic Courtès  <ludo@gnu.org>

	gnu: hurd: Add MiG.
	* gnu/packages/hurd.scm (mig): New variable.

2014-02-20  Ludovic Courtès  <ludo@gnu.org>

	guix hash: Don't load the whole file in memory.
	* guix/scripts/hash.scm (guix-hash)[eof->null]: Remove.
	  (guix-hash): Use 'port-sha256' to compute the hash instead of
	  'get-bytevector-all' and co.

2014-02-20  Mark H Weaver  <mhw@netris.org>

	gnu: tor: Upgrade to 0.2.4.20.
	* gnu/packages/tor.scm (tor): Upgrade to 0.2.4.20.

	gnu: Add gmime.
	* gnu/packages/mail.scm (gmime): New variable.

	gnu: gpgme: Make 'libgpg-error' a propagated input.
	* gnu/packages/gnupg.scm (gpgme): Make 'libgpg-error' a propagated input.

	gnu: shishi: Add more inputs for libidn and PAM support.
	* gnu/packages/shishi.scm (shishi): Add 'pkg-config' native-input.
	  Add 'libidn' and 'linux-pam' inputs.

2014-02-19  Eric Bavier  <ericbavier@gmail.com>

	gnu: calcurse: New module
	* gnu/packages/calcurse.scm: New file
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it

2014-02-19  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add /etc/shells.
	* gnu/system.scm (etc-directory): Add /etc/shells.

	gnu: vm: Remove '%demo-operating-system'.
	* gnu/system/vm.scm (%demo-operating-system): Remove.
	  (system-qemu-image, system-qemu-image/shared-store,
	  system-qemu-image/shared-store-script): Adjust accordingly.

	gnu: Define '%base-services'.
	* gnu/services/base.scm (%base-services): New variable.
	* gnu/system.scm (<operating-system>)[services]: Change the default
	  value to %BASE-SERVICES.
	* doc/guix.texi (Using the Configuration System): Change
	  '%standard-services' to '%base-services'.

	gnu: Introduce the (gnu services ...) modules.
	* gnu/system/dmd.scm: Remove file.  Move contents to...
	* gnu/services.scm, gnu/services/base.scm, gnu/services/dmd.scm,
	  gnu/services/networking.scm, gnu/services/xorg.scm: ... here.  New
	  files.
	* gnu/system.scm, gnu/system/vm.scm: Adjust accordingly.
	* guix/scripts/system.scm (%user-module): Likewise.
	* doc/guix.texi (Using the Configuration System): Likewise.
	  (Defining Services): Likewise.

	gnu: bigloo: Upgrade to 4.1a.
	* gnu/packages/scheme.scm (bigloo): Upgrade to 4.1a.

2014-02-18  Ludovic Courtès  <ludo@gnu.org>

	gnu: qemu: Disable debug info.
	* gnu/packages/qemu.scm (qemu-headless): Add '--disable-debug-info' as a
	  'configure' flag.

	Add 'guix system'.
	* guix/scripts/system.scm: New file.
	* Makefile.am (MODULES): Add it.
	* po/POTFILES.in: Likewise.
	* doc/guix.texi (Using the Configuration System): Link to "Invoking guix
	  system".
	  (Invoking guix system): New node.

2014-02-18  Sree Harsha Totakura  <sreeharsha@totakura.in>

	gnu: curl: Fix tests.
	* gnu/packages/curl.scm (curl): Add a new phase and python-2 to native-inputs.

	gnu: curl: Update to 7.35.0.
	* gnu/packages/curl.scm (curl): Update to 7.35.0.

	gnu: gnurl: Do not disable testcase 1022.
	* gnu/packages/gnunet.scm (gnurl): Do not disable testcase 1022.

	gnu: ncdc: Update to 1.19.
	* gnu/packages/dc (ncdc): Update to 1.19.

2014-02-18  Mark H Weaver  <mhw@netris.org>

	gnu: gnutls: Upgrade to 3.2.11.
	* gnu/packages/gnutls.scm (gnutls): Upgrade to 3.2.11.  Improve URI
	  computation.

	gnu: icu4c: Upgrade to 52.1.
	* gnu/packages/icu4c.scm (icu4c): Upgrade to 52.1.

	gnu: patchelf: Fix platform page size determination.
	* gnu/packages/patches/patchelf-page-size.patch: New file.
	* gnu/packages/elf.scm (patchelf): Add the patch.
	* gnu-system.am (dist_patch_DATA): Add the patch.

2014-02-18  Ludovic Courtès  <ludo@gnu.org>

	guix build: Factorize common options.
	* guix/scripts/build.scm (show-build-options-help,
	  set-build-options-from-command-line): New procedures.
	  (show-help): Remove description of --dry-run,
	  --fallback, --no-substitutes, --max-silent-time, and --cores.  Call
	  'show-build-options-help'.
	  (%standard-build-options): New variable.
	  (%options): Remove --dry-run, --fallback, --no-substitutes,
	  --verbosity, --max-silent-time, and --cores.  Add
	  %STANDARD-BUILD-OPTIONS.
	  (guix-build): Use 'set-build-options-from-command-line' instead of
	  'set-build-options'.
	* guix/scripts/archive.scm (show-help): Remove description of --dry-run,
	  --fallback, --no-substitutes, --max-silent-time, and --cores.  Call
	  'show-build-options-help'.
	  (%options): Remove --dry-run, --fallback, --no-substitutes,
	  --verbosity, --max-silent-time, and --cores.  Add
	  %STANDARD-BUILD-OPTIONS.
	  (export-from-store): Call 'set-build-options-from-command-line'
	  instead of 'set-build-options.

2014-02-17  Mark H Weaver  <mhw@netris.org>

	gnu: Add xapian.
	* gnu/packages/search.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2014-02-16  Sree Harsha Totakura  <sreeharsha@totakura.in>

	gnu: gnurl: Update to 7.35.0.
	* gnu/packages/gnunet.scm (gnurl): Update to 7.35.0.

2014-02-16  John Darrington  <jmd@gnu.org>

	gnu: Add hdf5.
	* gnu/packages/maths.scm (hdf5): New variable.
	* gnu/packages/maths.scm (octave): New input hdf5.

2014-02-16  Mark H Weaver  <mhw@netris.org>

	gnu: dmd: Sleep longer in tests, for slower machines.
	* gnu/packages/patches/dmd-tests-longer-sleeps.patch: New file.
	* gnu/packages/admin.scm (dmd): Add the patch.
	* gnu-system.am (dist_patch_DATA): Add it.

	gnu: Add ttf-dejavu.
	* gnu/packages/fonts.scm (ttf-dejavu): New variable.

	Update .gitignore for Guile 2.0.9 bootstrap binaries.
	* .gitignore: Change version number in ignored Guile bootstrap
	  binaries from 2.0.7 to 2.0.9.

	gnu: ratpoison: Patch to use $SHELL instead of /bin/sh.
	* gnu/packages/patches/ratpoison-shell.patch: New file.
	* gnu/packages/ratpoison.scm (ratpoison): Add patch.
	* gnu-system.am (dist_patch_DATA): Add patch.

2014-02-16  Ludovic Courtès  <ludo@gnu.org>

	Add Manolis to 'AUTHORS'.

2014-02-16  Manolis Ragkousis  <manolis837@gmail.com>
	    Ludovic Courtès  <ludo@gnu.org>

	gnu: Add GNU Mach headers.
	* gnu/packages/hurd.scm: New file
	* gnu-system.am (GNU_SYSTEM_MODULES): Add hurd.scm

2014-02-12  Sree Harsha Totakura  <sreeharsha@totakura.in>

	gnu: gnunet: Fix failing testcases.
	* gnu/packages/gnunet.scm (gnurl): Add pkg-config.
	* gnu/packages/patches/gnunet-fix-tests.patch: Append fix for integration testcases.

2014-02-12  Ludovic Courtès  <ludo@gnu.org>

	guix build: Move 'set-build-options' call earlier.
	* guix/scripts/build.scm (guix-build): Move 'set-build-options' call
	  before 'show-what-to-build'.

	store: Add comments for the stracer.
	* guix/store.scm (%worker-magic-1, %worker-magic-2): Add comments.

2014-02-11  Mark H Weaver  <mhw@netris.org>

	gnu: isc-dhcp: Upgrade to 4.3.0.
	* gnu/packages/admin.scm (isc-dhcp): Upgrade to 4.3.0.

2014-02-11  Sree Harsha Totakura  <sreeharsha@totakura.in>

	gnu: curl, gnurl: Fix failing testcase 172.
	* gnu/packages/patches/curl-fix-test172.patch: New file.
	* gnu-system.am (dist_patch_DATA): Add the patch file.
	* gnu/packages/gnunet.scm (gnurl): Apply the patch file.
	* gnu/packages/curl.scm (curl): Apply the patch file.

2014-02-11  Andreas Enge  <andreas@enge.fr>

	gnu: gnunet: Correct typo.
	* gnu/packages/gnunet.scm (gnunet): Correct typo.

2014-02-11  Mark H Weaver  <mhw@netris.org>

	gnu: texinfo: Make version 4.13a available.
	* gnu/packages/texinfo.scm (texinfo-4): New variable.

2014-02-10  Andreas Enge  <andreas@enge.fr>

	gnu: gnunet: Add input libmicrohttpd.
	* gnu/packages/gnunet.scm (gnunet): Add input libmicrohttpd and improve
	    formatting.

2014-02-10  Ludovic Courtès  <ludo@gnu.org>

	store: Change 'export-paths' to always export in topological order.
	* guix/store.scm (export-paths): Pass PATHS through
	  'topologically-sorted' before iterating.
	* tests/store.scm ("export/import paths, ensure topological order"): New
	  test.

2014-02-10  John Darrington  <jmd@gnu.org>

	gnu: lout: Change docdir from "doc" to "share/doc"
	* gnu/packages/lout.scm (lout):
	  Change docdir from "doc" to "share/doc".

2014-02-10  Sree Harsha Totakura  <sreeharsha@totakura.in>
	    Andreas Enge  <andreas@enge.fr>

	gnu: Add GNUnet.
	* gnunet/packages/gnunet.scm (gnunet): New variable.
	* gnu/package/patches/gnunet-fix-scheduler.patch: New file.
	* gnu/package/patches/gnunet-fix-tests.patch: New file.
	* gnu-system.am (dist_patch_DATA): Add the above two patch files.

2014-02-10  Ludovic Courtès  <ludo@gnu.org>

	gnu: gstreamer 1.0.10: Temporarily disable tests.
	* gnu/packages/gstreamer.scm (gstreamer): Add 'arguments' field.

	gnu: glibc: Upgrade to 2.19.
	* gnu/packages/base.scm (glibc): Upgrade to 2.19.  Remove
	  'glibc-make-4.0.patch'.
	* gnu/packages/patches/glibc-make-4.0.patch: Remove.
	* gnu-system.am (dist_patch_DATA): Adjust accordingly.

2014-02-10  John Darrington  <jmd@gnu.org>

	build-system/gnu: Set the docdir to "share/doc"
	* guix/build/gnu-build-system.scm (configure):
	  Change docdir directory from "doc" to "share/doc".

2014-02-10  Ludovic Courtès  <ludo@gnu.org>

	gnu: coreutils: Fix cross-compilation issue with 'dummy-man'.
	This should work around the bug described at
	<http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-core/coreutils/coreutils-8.22/fix-for-dummy-man-usage.patch>.

	* gnu/packages/base.scm (coreutils)[patches]: Add
	  'coreutils-dummy-man.patch'.
	  [native-inputs]: Don't pass PERL when (%current-target-system) is
	  true.
	* gnu/packages/patches/coreutils-dummy-man.patch: New file.
	* gnu-system.am (dist_patch_DATA): Add it.

2014-02-10  Mark H Weaver  <mhw@netris.org>

	gnu: openssh: Upgrade to 6.5p1.
	* gnu/packages/ssh.scm (openssh): Upgrade to 6.5p1.

	gnu: openssl: Upgrade to 1.0.1f.
	* gnu/packages/openssl.scm (openssl): Upgrade to 1.0.1f.

2014-02-10  Ludovic Courtès  <ludo@gnu.org>

	union: Do not compare directories upon collision.
	* guix/build/union.scm (file=?): Return #f if FILE1 and FILE2 are not
	  regular files.  Fixes a bug whereby collisions among directories would
	  lead to the invocation of 'file=?' and thus 'call-with-input-file' on
	  directories.  Reported by Mark H. Weaver <mhw@netris.org>.

2014-02-10  Ludovic Courtès  <ludo@gnu.org>

	download: Provide a 'User-Agent' field in HTTP requests.
	Fixes <http://bugs.gnu.org/16703>.
	Reported by Raimon Grau <raimonster@gmail.com>.

	* guix/build/download.scm (http-fetch)[headers]: New variable.
	  Pass it as #:headers or #:extra-headers to 'http-get' and
	  'http-get*'.

2014-02-09  Ludovic Courtès  <ludo@gnu.org>

	gnu: dmd: Add SLiM service.
	* gnu/system/dmd.scm (xorg-service): Remove.
	  (xorg-start-command, slim-service): New procedure.

	gnu: dmd: Fix X font directory name in X service.
	* gnu/system/dmd.scm (xorg-service)[xserver.conf]: Fix directory name in
	  'FontPath' entry for FONT-ADOBE75DPI.

	gnu: linux-initrd: When booting, chdir to the new root before calling 'chroot'.
	* guix/build/linux-initrd.scm (boot-system): Add 'chdir' call right
	  before 'chroot'.

	gnu: slim: Work around flaky synchronization with the X server.
	* gnu/packages/patches/slim-sigusr1.patch: New file.
	* gnu/packages/slim.scm (slim): Use it.
	* gnu-system.am (dist_patch_DATA): Add it.

2014-02-09  Raimon Grau  <raimonster@gmail.com>

	gnu: Add stalonetray
	* gnu/packages/stalonetray.scm: New file
	* gnu-system.am (GNU_SYSTEM_MODULES): Add stalonetray.scm

2014-02-08  Eric Bavier  <ericbavier@gmail.com>

	gnu: moe: New module
	* gnu/packages/moe.scm: New file
	* gnu-system.am (GNU_SYSTEM_MODULES): Add moe.scm

2014-02-08  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add FUSE.
	* gnu/packages/linux.scm (fuse): New variable.

	gnu: Move root's home directory to /root.
	* gnu/system.scm (operating-system-derivation): Change root's
	  'home-directory' to "/root".
	* gnu/system/vm.scm (operating-system-default-contents): Add /root.

2014-02-07  Ludovic Courtès  <ludo@gnu.org>

	gnu: python-pysqlite: Point to the latest release tarball.
	* gnu/packages/python.scm (python2-pysqlite): Change 'version' to
	  "2.6.3a".  Change 'uri' to point to pypi.python.org.
	  Reported by Mark H Weaver <mhw@netris.org> and others.
	  Update 'home-page' and 'synopsis'.

2014-02-07  Eric Bavier  <ericbavier@gmail.com>

	gnu: Add paperkey.
	* gnu/packages/gnupg.scm (paperkey): New variable.

2014-02-06  Ludovic Courtès  <ludo@gnu.org>

	gnu: gdb: Upgrade to 7.7.
	* gnu/packages/gdb.scm (gdb): Upgrade to 7.7.  Remove
	  'gdb-loongson-madd-fix.patch', no longer needed.
	* gnu/packages/patches/gdb-loongson-madd-fix.patch: Remove.
	* gnu-system.am (dist_patch_DATA): Adjust accordingly.

	daemon: Add '--gc-keep-outputs' and '--gc-keep-derivations'.
	* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_GC_KEEP_OUTPUTS,
	  GUIX_OPT_GC_KEEP_DERIVATIONS): New macros.
	  (options): Add 'gc-keep-outputs' and 'gc-keep-derivations'.
	  (string_to_bool): New function.
	  (parse_opt): Honor GUIX_OPT_GC_KEEP_DERIVATIONS and
	  GUIX_OPT_GC_KEEP_OUTPUTS.
	* doc/guix.texi (Invoking guix-daemon): Document --gc-keep-outputs and
	  --gc-keep-derivations.

	Add Raimon to 'AUTHORS'.

2014-02-06  Raimon Grau  <raimonster@gmail.com>

	gnu: Add luajit
	* gnu/packages/lua.scm (luajit): New variable.

2014-02-06  John Darrington  <jmd@gnu.org>

	gnu: Add Glade.
	* gnu/packages/gnome.scm (glade): New variable.

2014-02-06  Ludovic Courtès  <ludo@gnu.org>

	gnu: binutils: Build with --enable-deterministic-archives.
	* gnu/packages/base.scm (binutils): Add
	  '--enable-deterministic-archives' to #:configure-flags.
	  Suggestion from Lunar's 2014 FOSDEM talk on reproducible builds.

	gnu: coreutils: Move Perl to 'native-inputs'.
	* gnu/packages/base.scm (coreutils): Add 'native-inputs' field.
	  This should allow cross builds to have man pages, and work around this
	  'dummy-man' bug:
	  <http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-core/coreutils/coreutils-8.22/fix-for-dummy-man-usage.patch>.

2014-02-06  Andreas Enge  <andreas@enge.fr>

	gnu: imagemagick: Upgrade to 6.8.8-4.
	* gnu/packages/imagemagick.scm (imagemagick): Upgrade to 6.8.8-4.

2014-02-06  Eric Bavier  <ericbavier@gmail.com>

	gnu: gnu-pw-mgr: Upgrade to 1.1.
	* gnu/packages/gnu-pw-mgr.scm (gnu-pw-mgr): Upgrade to 1.1.

2014-02-05  Ludovic Courtès  <ludo@gnu.org>

	gnu: guile-wm: Upgrade to 1.0.
	* gnu/packages/guile-wm.scm (guile-wm): Upgrade to 1.0.

	gnu: system: Build /etc/localtime.
	* gnu/system.scm (etc-directory)[bashrc]: Use 'text-file*' instead of
	  'text-file'.  Adjust users accordingly.
	  [files]: Add the /etc/localtime file for TIMEZONE.
	  Add TZDATA to the 'file-union' inputs.
	  (operating-system-derivation): Pass 'etc-directory' PROFILE-DRV
	  instead of PROFILE.

	gnu: slim: Upgrade to 1.3.6; allow the choice of a config file at run time.
	* gnu/packages/slim.scm (slim): Upgrade to 1.3.6.  Add patches.  Comment
	  out systemd-related stuff from CMakeLists.txt.  Add
	  "-DBUILD_SHARED_LIBS=OFF" and "-DCMAKE_SKIP_BUILD_RPATH=ON" to
	  #:configure-flags.  Adjust 'home-page' field.
	* gnu/packages/patches/slim-config.patch,
	  gnu/packages/patches/slim-session.patch: New files.
	* gnu-system.am (dist_patch_DATA): Add them.

2014-02-05  John Darrington  <jmd@gnu.org>

	gnu: inkscape: New module
	* gnu/packages/inkscape.scm,
	  gnu/packages/patches/inkscape-stray-comma.patch: New files.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add inkscape.scm.
	  (dist_patch_DATA): Add inkscape-stray-comma.patch.

2014-02-04  John Darrington  <jmd@gnu.org>

	gnu: Add Boost.
	* gnu/packages/boost.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add boost.scm

	gnu: gxmessage: New module
	* gnu/packages/gxmessage.scm: New file
	* gnu-system.am (GNU_SYSTEM_MODULES): Add gxmessage.scm

2014-02-03  Ludovic Courtès  <ludo@gnu.org>

	gnu: dmd: Use 'text-file*' when building Xorg's config file.
	* gnu/system/dmd.scm (xorg-service)[xserver.conf]: Change to use
	  'text-file*' instead of 'text-file'.
	  Adjust body accordingly.  Remove now extraneous packages from the
	  service's 'inputs' field.

	monads: Add 'text-file*'.
	* guix/monads.scm (text-file*): New procedure.
	* tests/monads.scm ("text-file*"): New test.
	* doc/guix.texi (The Store Monad): Change example since the previous one
	  would erroneously fail to retain a reference to Coreutils.  Document
	  'text-file*'.

2014-02-03  John Darrington  <jmd@gnu.org>

	gnu: file: Upgrade to 5.16.
	* gnu/packages/file.scm (file): Upgrade to 5.16.

	gnu: gtkmm-2 New variable
	* gnu/packages/gtk.scm (gtkmm-2): New variable.

2014-02-02  Ludovic Courtès  <ludo@gnu.org>

	gnu: vm: Create all the user directories.
	* gnu/system/vm.scm (operating-system-default-contents)[user-directories]:
	  New procedure.  Use it to create each user's home and GC root
	  directories.

	gnu: Add xterm.
	* gnu/packages/xorg.scm (xterm): New variable.

	gnu: vm: Add /run/current-system and /bin/sh.
	* gnu/system/vm.scm (operating-system-default-contents): Populate
	  /run/current-system and create /bin/sh.
	* gnu/system.scm (operating-system-profile-derivation,
	  operating-system-profile-directory): New procedures.
	  (operating-system-derivation): Use it.

	offload: Have 'build-machines' honor its argument.
	* guix/scripts/offload.scm (build-machines): Honor FILE.

2014-02-01  Ludovic Courtès  <ludo@gnu.org>

	gnu: linux-initrd: Build /dev/input devices.
	* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
	  dev/input devices.

	gnu: Add preliminary Xorg service.
	* gnu/system/dmd.scm (xorg-service): New procedure.

	gnu: linux-initrd: Make /dev/{mem,kmem}.
	* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
	  dev/{mem,kmem}.

2014-01-31  Ludovic Courtès  <ludo@gnu.org>

	gnu: xorg-server: Use /var as $localstatedir.
	* gnu/packages/xorg.scm (xorg-server): Pass --localstatedir=/var.  In
	  'configure' phase, patch 'hw/xfree86/Makefile.in'.

	gnu: vm: Add support for running a VM that shares its store with the host.
	* gnu/system/vm.scm (qemu-image): Check whether GUIX is #f.
	  (operating-system-build-gid, operating-system-default-contents): New
	  procedures.
	  (system-qemu-image): Use 'operating-system-build-gid'.
	  (system-qemu-image/shared-store,
	  system-qemu-image/shared-store-script): New procedures.
	* gnu/system.scm: Add missing exports.

	gnu: linux-initrd: Allow the root file system to be volatile.
	* gnu/system/linux-initrd.scm (qemu-initrd): Add 'volatile-root?'
	  parameter.
	* guix/build/linux-initrd.scm (boot-system): Likewise.  Honor it.

	gnu: linux: Really build 9p/virtio modules.
	* gnu/packages/linux.scm (linux-libre): Add CONFIG_NET_9P and
	  CONFIG_9P_FS.

	gnu: linux-initrd: Recognize 9p file systems.
	* gnu/system/linux-initrd.scm (qemu-initrd)[virtio-9p-modules]: New
	  variable.
	  [linux-modules]: Append VIRTIO-9P-MODULES when a 9p file system is in
	  MOUNTS.
	* guix/build/linux-initrd.scm (mount-qemu-9p): New procedure.
	  (boot-system): Recognize '9p' in MOUNTS, and use 'mount-qemu-9p'.

	gnu: linux-initrd: Match kernel module file names exactly.
	* gnu/system/linux-initrd.scm (expression->initrd)[string->regexp]: New
	  procedure.  Use it in the call to 'find-files'.

	gnu: linux-initrd: Properly distinguish between /dev/sda* and /dev/vda*.
	* guix/build/linux-initrd.scm (make-essential-device-nodes): Rename
	  devices with major = 8 to /dev/sda*.  Make /dev/vda* devices.
	* gnu/system/vm.scm (qemu-image): Change '/dev/vda' to '/dev/sda'.
	* gnu/system.scm (operating-system-derivation): Likewise.

	gnu: linux-initrd: Start a REPL when the root could not be mounted.
	* guix/build/linux-initrd.scm (boot-system): Catch errors when mounting
	  ROOT and call 'start-repl' upon error.

	gnu: linux-libre: Build more virtio modules.
	* gnu/packages/linux.scm (linux-libre): Append CONFIG_NET_9P_VIRTIO and
	  CONFIG_VIRTIO_{NET,BLK,BALLOON} to '.config'.

2014-01-30  Ludovic Courtès  <ludo@gnu.org>

	gnu: vm: Run QEMU with '-enable-kvm'.
	* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass QEMU
	  '-enable-kvm'.

2014-01-30  John Darrington  <jmd@gnu.org>

	gnu: Add GNU Octave.
	* gnu/packages/maths.scm (octave): New variable.

2014-01-29  Ludovic Courtès  <ludo@gnu.org>

	gnu: linux-libre: Build virtio modules.
	* gnu/packages/linux.scm (linux-libre): Build modules matching
	  CONFIG.*VIRTIO.

	gnu: linux-libre: Upgrade to 3.13.
	* gnu/packages/linux.scm (linux-libre): Upgrade to 3.13.

2014-01-29  Sree Harsha Totakura  <sreeharsha@totakura.in>
	    Ludovic Courtès  <ludo@gnu.org>

	gnu: gnunet: Add gnurl 7.34.0.
	* gnu/packages/gnunet.scm (gnurl): New variable. Thanks to Zerwas for
	  the initial recipe.

2014-01-29  Ludovic Courtès  <ludo@gnu.org>

	gnu: libgcrypt: Upgrade to 1.6.1.
	* gnu/packages/gnupg.scm (libgcrypt): Upgrade to 1.6.1.

	gnu: linux-initrd: Factorize boot code.
	* guix/build/linux-initrd.scm (boot-system): New procedure.
	* gnu/system/linux-initrd.scm (qemu-initrd): Add keyword parameters
	  'guile-modules-in-chroot?' and 'mounts'.  Change builder to simply
	  call 'boot-system'.
	  (gnu-system-initrd): Change to a simple call to 'qemu-initrd'.
	* gnu/system/vm.scm (expression->derivation-in-linux-vm): Call
	  'qemu-initrd' with #:guile-modules-in-chroot?.

	gnu: Lower initrd makers from packages to monadic procedures.
	* gnu/packages/linux-initrd.scm: Remove.
	* gnu/system/linux-initrd.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly.
	* gnu/system.scm (<operating-system>): Change default 'initrd' value
	  to (gnu-system-initrd).
	  (operating-system-derivation): Bind 'operating-system-initrd'.  Pass
	  'menu-entry' an initrd file name instead of a package.
	* gnu/system/grub.scm (grub-configuration-file): Expect 'initrd' to be
	  file name.

	monads: Add 'imported-modules' and 'compiled-modules'.
	* guix/monads.scm (package-file): Fix typo.
	  (imported-modules, compiled-modules): New procedures.

2014-01-28  Ludovic Courtès  <ludo@gnu.org>

	gnu: qemu-initrd: Adjust to allow booting with a non-empty /root.
	* gnu/packages/linux-initrd.scm (qemu-initrd): Use 'mkdir-p' instead of
	  'mkdir' for /root/xchg and /root/{share,lib}.  When TO-LOAD is a
	  symlink, resolve it.
	  (gnu-system-initrd): Fix typo in message.

	Revert "build-system/gnu: Pass --localstatedir=/var --sharedstatedir=/com."
	This reverts commit 65529e49ff5b9052544271b1b7923feed4312849.

2014-01-27  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Pass --localstatedir=/var --sharedstatedir=/com.
	Suggested by John Darrington <john@darrington.wattle.id.au>
	and Mark H Weaver <mhw@netris.org>.

	* guix/build/gnu-build-system.scm (configure): Pass --localstatedir=/var
	  --sharedstatedir=/com.
	* gnu/packages/admin.scm (dmd): Remove 'arguments' field.
	* gnu/packages/avahi.scm (avahi): Remove --localstatedir flag.
	* gnu/packages/glib.scm (dbus): Likewise.
	* gnu/packages/package-management.scm (guix): Likewise.
	* gnu/packages/pulseaudio.scm (pulseaudio): Likewise.

2014-01-27  Ludovic Courtès  <ludo@gnu.org>

	download: Add archive.apache.org to the Apache mirrors.
	* guix/download.scm (%mirrors)[apache]: Add archive.apache.org as a last
	  resort.

	offload: Do not try to retrieve anything upon build failure.
	* guix/scripts/offload.scm (offload): Add 'log-port' keyword parameter.
	  Handle log display here.  Return the result of (close-pipe pipe).
	  (process-request): Adjust 'offload' call site accordingly.  Call
	  'retrieve-files' only when 'offload' returns zero; exit when 'offload'
	  returns non-zero.

	gnu: iotop: Fix typos.
	* gnu/packages/linux.scm (iotop): Fix typos introduced by myself.

2014-01-27  Sree Harsha Totakura  <sreeharsha@totakura.in>

	gnu: linux: Add iotop-0.6.
	* gnu/packages/linux.scm (iotop): New variable.

2014-01-27  Ludovic Courtès  <ludo@gnu.org>

	gnu: libffi: Leave a copy of headers where libffi.pc expects them.
	Suggested by Sree Harsha Totakura <sreeharsha@totakura.in>.

	* gnu/packages/libffi.scm (libffi): Symlink header files instead of
	  moving them.

2014-01-26  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add asciidoc.
	* gnu/packages/asciidoc.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	gnu: qemu: Add note about 9p.
	* gnu/packages/qemu.scm (qemu/smb-shares): Add comment.

2014-01-26  John Darrington  <jmd@gnu.org>

	gnu: Add gnuplot
	* gnu/packages/maths.scm (gnuplot): New variable

2014-01-26  Ludovic Courtès  <ludo@gnu.org>

	build: Set 'NIX_LIBEXEC_DIR' in 'pre-inst-env'.
	Reported by Nikita Karetnikov <nikita@karetnikov.org>.

	* test-env.in: Move 'NIX_LIBEXEC_DIR' setting to...
	* pre-inst-env.in: ... here.

2014-01-26  Andreas Enge  <andreas@enge.fr>

	gnu: lapack: Update to 3.5.0.
	* gnu/packages/maths.scm (lapack): Update to 3.5.0.

2014-01-25  Ludovic Courtès  <ludo@gnu.org>

	gnu: sdl: Explicitly link against libXext.
	* gnu/packages/sdl.scm (sdl): Add #:configure-flags to 'arguments'.
	  Move PKG-CONFIG to 'native-inputs'.

2014-01-25  Andreas Enge  <andreas@enge.fr>

	gnu: apl: Update to 1.2.
	* gnu/packages/apl.scm (apl): Update to 1.2.

	gnu: global: Update to 6.2.10.
	* gnu/packages/global.scm (global): Update to 6.2.10.

	gnu: lightning: Update to 2.0.3.
	* gnu/packages/lightning.scm (lightning): Update to 2.0.3.

2014-01-25  Ludovic Courtès  <ludo@gnu.org>

	tests: Adjust to recent Binutils change.
	* tests/guix-package.sh: Refer to 'glibc:debug' instead of
	  'binutils:lib' since the latter no longer exists.

	Prefer local builds for "small" derivations.
	* gnu/system.scm (union, file-union, links): Pass #:local-build? #t to
	  'derivation-expression'.
	* guix/derivations.scm (imported-files, compiled-modules): Likewise.
	* guix/profiles.scm (profile-derivation): Likewise.

2014-01-25  Andreas Enge  <andreas@enge.fr>

	gnu: parallel: Update to 20140122.
	* gnu/packages/parallel.scm (parallel): Update to 20140122.

2014-01-25  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'master' into core-updates

	derivations: Add #:local-build? parameter for derivations.
	* guix/derivations.scm (derivation): Add #:local-build? parameter and
	  honor it.
	  (build-expression->derivation): Likewise.
	* doc/guix.texi (Derivations): Update documentation of these
	  procedures.

2014-01-25  John Darrington  <jmd@gnu.org>

	gnu: fltk: New module
	* gnu/packages/fltk.scm: New file
	* gnu-system.am: New file fltk.scm

	gnu: libxft: Propagate input.
	* gnu/packages/xorg.scm (libxft): Propagate input libxrender.

	gnu: ncdu: New module
	* gnu/packages/ncdu.scm: New file
	* gnu-system.am: New file ncdu.scm

2014-01-25  Sree Harsha Totakura  <sreeharsha@totakura.in>

	gnu: Add Corkscrew 2.0.
	* gnu/packages/ssh.scm (corkscrew): New variable.

	gnu: Add ncdc-1.18.1.
	* gnu/packages/dc.scm : New module.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add module.

2014-01-25  Ludovic Courtès  <ludo@gnu.org>

	profiles: Remove misleading message.
	Fixes <http://bugs.gnu.org/16484>.
	Reported by Andreas Enge <andreas@enge.fr>.

	* guix/profiles.scm (profile-derivation)[builder]: Remove "building
	  profile '~a' with ~a packages" message.

2014-01-25  Ludovic Courtès  <ludo@gnu.org>

	doc: More about offloading.
	* doc/guix.texi (Daemon Offload Setup): Start with "When desired".  Say
	  more on what can go in 'machines.scm', and mention Guile-Avahi.
	  (Invoking guix-daemon): Document '--no-build-hook'.
	  (Invoking guix build): Add xref to "Daemon Offload Setup".

	wget: Upgrade to 1.15.
	* gnu/packages/wget.scm (wget): Upgrade to 1.15.  Remove Gettext from
	  'inputs'.  Move Perl to 'native-inputs'.

2014-01-24  Andreas Enge  <andreas@enge.fr>

	gnu: ffmpeg: Update to 2.1.3.
	* gnu/packages/video.scm (ffmpeg): Update to 2.1.3.

	gnu: ffmpeg: Add input opus.
	* gnu/packages/video.scm (ffmpeg): Add input opus.

2014-01-24  Ludovic Courtès  <ludo@gnu.org>

	Add Sree to 'AUTHORS'.

2014-01-24  Sree Harsha Totakura  <sreeharsha@totakura.in>

	gnu: Add Opus 1.1.
	* gnu/packages/xiph.scm (opus): New variable.

2014-01-24  Ludovic Courtès  <ludo@gnu.org>

	Add 'guix offload' as a daemon build hook.
	* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_NO_BUILD_HOOK): New macro.
	  (options): Add '--no-build-hook'.
	  (parse_opt): Handle it.
	  (main)[HAVE_DAEMON_OFFLOAD_HOOK]: Set 'useBuildHook' by default.
	  Set $NIX_BUILD_HOOK to our offload hook unless otherwise specified.
	  [!HAVE_DAEMON_OFFLOAD_HOOK]: Clear 'useBuildHook'.
	* pre-inst-env.in: Set and export NIX_BUILD_HOOK.
	* nix/scripts/offload.in, guix/scripts/offload.scm: New files.
	* guix/ui.scm (show-guix-help)[internal?]: Add "offload".
	* config-daemon.ac: Call 'GUIX_CHECK_UNBUFFERED_CBIP'.
	  Instantiate 'nix/scripts/offload'.  Set 'BUILD_DAEMON_OFFLOAD'
	  conditional, and optionally define 'HAVE_DEAMON_OFFLOAD_HOOK' cpp
	  macro.
	* daemon.am (nodist_pkglibexec_SCRIPTS)[BUILD_DAEMON_OFFLOAD]: Add it.
	* Makefile.am (MODULES)[BUILD_DAEMON_OFFLOAD]: Add
	  'guix/scripts/offload.scm'.
	  (EXTRA_DIST)[!BUILD_DAEMON_OFFLOAD]: Likewise.
	* m4/guix.m4 (GUIX_CHECK_UNBUFFERED_CBIP): New macro.
	* doc/guix.texi (Setting Up the Daemon): Move most of the body to...
	  (Build Environment Setup): ... this.  New subsection.
	  (Daemon Offload Setup): New subsection.

	store: Add 'topologically-sorted'.
	* guix/store.scm (topologically-sorted): New procedure.
	* tests/store.scm ("topologically-sorted, one item",
	  "topologically-sorted, several items", "topologically-sorted, more
	  difficult"): New tests.

	nar: Add 'restore-file-set', for use by build hooks.
	* guix/nar.scm (&nar-invalid-hash-error, &nar-signature-error): New
	  condition types.
	  (&nar-error): Add 'file' and 'port' fields.
	  (&nar-read-error): Remove 'port' and 'file' fields.
	  (lock-store-file, unlock-store-file, finalize-store-file,
	  temporary-store-directory, restore-file-set): New procedures.
	* tests/nar.scm (%seed): New variable.
	  (random-text): New procedure.
	  ("restore-file-set (signed, valid)", "restore-file-set (missing
	  signature)", "restore-file-set (corrupt)"): New tests.
	* po/Makevars (XGETTEXT_OPTIONS): Add '--keyword=message'.nar fixes
	* po/POTFILES.in: Add guix/nar.scm.

	store: Add 'with-store' convenience macro.
	* guix/store.scm (with-store): New macro.

	hash: Add 'open-sha256-input-port', for Guile > 2.0.9.
	* guix/hash.scm (open-sha256-input-port): New procedure.
	* tests/hash.scm (supports-unbuffered-cbip?): New procedure.
	  ("open-sha256-input-port, empty", "open-sha256-input-port, hello",
	  "open-sha256-input-port, hello, one two",
	  "open-sha256-input-port, hello, read from wrapped port"): New tests.

	pki: Factorize signature manipulation procedures.
	* guix/pki.scm (signature-subject, signature-signed-data,
	  valid-signature?): New procedures.
	* guix/scripts/authenticate.scm (guix-authenticate): Adjust to use
	  them.

	utils: Add 'fcntl-flock'.
	* guix/utils.scm (%struct-flock, F_SETLKW, F_xxLCK): New variables.
	  (fcntl-flock): New procedure.
	* tests/utils.scm ("fcntl-flock"): New test.

	store: Add 'register-path' procedure.
	* guix/store.scm (register-path): New procedure.
	* tests/store.scm ("register-path"): New test.
	* guix/config.scm.in (%guix-register-program): New variable.
	* configure.ac: Compute and substitute 'guix_sbindir'.  Compute
	  'guix_prefix'.
	* pre-inst-env.in: Define 'GUIX_REGISTER'.

	guix-register: Support registration in the current store, without '--prefix'.
	* nix/guix-register/guix-register.cc (register_validity): Leave
	  'info.path' unmodified when PREFIX is empty.
	  (main): Call 'settings.processEnvironment' early on.
	  Leave 'settings.nixStore' unmodified when PREFIX is empty.

	store: Add comments for the %stderr constants.
	* guix/store.scm (process-stderr): Add comments for the various
	  constants, to help when stracing.

	ui: Filter out internal commands from '--help'.
	* guix/ui.scm (show-guix-help)[internal?]: New procedure.
	  Use it to filter out internal commands reported by '--help'.

2014-01-23  Andreas Enge  <andreas@enge.fr>

	gnu: Rename (gnu packages oggvorbis) to (gnu packages xiph).
	* gnu/packages/oggvorbis.scm: Rename this ...
	* gnu/packages/xiph.scm: ... to this. Adjust module name accordingly.
	* gnu-system.am (GNU_SYSTEM_MODULES): Update.
	* gnu/packages/{gnunet.scm, libcanberra.scm, mp3.scm, pulseaudio.scm, sdl.scm,
	    video.scm}: Use new module name.

2014-01-23  Sree Harsha Totakura  <sreeharsha@totakura.in>

	gnu: sqlite: Upgrade to 3.8.2.
	* gnu/packages/sqlite.scm (sqlite): Upgrade to 3.8.2.

2014-01-22  Ludovic Courtès  <ludo@gnu.org>

	gnu: guile-2.0: Switch to libgc 7.4.0.
	* gnu/packages/guile.scm (guile-2.0): Use LIBGC-7.4.
	  (guile-2.0/fixed): Keep using LIBGC.

	gnu: Add libatomic_ops 7.4.0 and libgc 7.4.0.
	* gnu/packages/bdw-gc.scm (libatomic-ops, libgc-7.4): New variables.

	gnu: libgc: Explicitly mark license as 'x11-style'.
	* gnu/packages/bdw-gc.scm (libgc)[license]: Use 'x11-style'.

	gnu: isc-dhcp: Fix license.
	* gnu/packages/admin.scm (isc-dhcp): Change license to ISC.

	gnu: gnubik: Synchornize synopsis and description.
	* gnu/packages/games.scm (gnubik): Synchornize synopsis and description.

	gnu: Add GNU V.E.R.A.
	* gnu/packages/dictionaries.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	licenses: Add GNU FDL 1.3+.
	* guix/licenses.scm (fdl1.3+): New variable.

2014-01-20  Ludovic Courtès  <ludo@gnu.org>

	gnu: glib: Upgrade to 2.39.1.
	* gnu/packages/glib.scm (glib): Upgrade to 2.39.1.  Run tests
	  sequentially.
	* gnu/packages/patches/glib-tests-desktop.patch: Adjust for 2.39.1.  Add
	  hunk for gsettings.c.

2014-01-18  Ludovic Courtès  <ludo@gnu.org>

	doc: List what's in the chroot.
	* doc/guix.texi (Setting Up the Daemon): List what's in the chroot.

	Update 'nix-upstream' sub-module; adjust build system, doc, and substituter.
	* nix-upstream: Update sub-module.
	* daemon.am (libutil_a_SOURCES): Add affinity.cc.
	  (libutil_headers): Add affinity.hh.
	  (libexec_PROGRAMS, nix_setuid_helper_SOURCES,
	  nix_setuid_helper_CPPFLAGS, nix_setuid_helper_LDADD): Remove.
	* doc/guix.texi (Setting Up the Daemon): Remove paragraph about
	  'nix-setuid-helper'.
	* guix/scripts/substitute-binary.scm (guix-substitute-binary): Exit 0 when
	  %CACHE-URL has an HTTP scheme and looking up its host fails.
	  Always print a newline to stdout when starting.

2014-01-18  Ludovic Courtès  <ludo@gnu.org>

	linux-initrd: Make /dev/{null,zero} world-writable.
	Reported by zerwas on #guix.

	* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
	  /dev/null and /dev/zero world-writable.

2014-01-18  Andreas Enge  <andreas@enge.fr>

	gnu: mesa: Propagate input.
	* gnu/packages/gl.scm (mesa): Propagate input libx11.

2014-01-18  Ludovic Courtès  <ludo@gnu.org>

	hydra: Add debugging for the Guix job set.
	* build-aux/hydra/guix.scm: Set '%load-verbosely'.

2014-01-18  Andreas Enge  <andreas@enge.fr>

	gnu: gl: Correct copyright notice. * gnu/packages/gl.scm: Add copyright notice for mesa, moved here from     module xorg in commit 200726e.

2014-01-17  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add DocBook DTD and XSL style sheets.
	* gnu/packages/docbook.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	doc: Distinguish between (gnu packages ...) and "GNU packages".
	* doc/guix.texi (Package Modules): Add a footnote stating that (gnu
	  packages ...) has nothing to do with "GNU packages."

	ui: Update copyright year in '--version' output.
	* guix/ui.scm (show-version-and-exit): Increment copyright year.

2014-01-15  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add libexif, libgphoto2, and gphoto2.
	* gnu/packages/photo.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2014-01-15  John Darrington  <john@darrington.wattle.id.au>

	gnu: pspp: Upgrade to 0.8.2
	* gnu/packages/maths.scm (pspp): Update to 0.8.2.
	* gnu/packages/patches/pspp-tests.patch: Deleted.
	* gnu-system.am: Removed pspp-tests.patch from the manifest.

2014-01-15  Andreas Enge  <andreas@enge.fr>

	gnu: mpc: Update to 1.0.2.
	* gnu/packages/multiprecision.scm (mpc): Update to 1.0.2.

2014-01-15  Ludovic Courtès  <ludo@gnu.org>

	gnu: git: 'git-submodule' works even if Perl is not in $PATH.
	* gnu/packages/version-control.scm (git): Add 'native-inputs' field;
	  move Gettext there from 'inputs'.  In 'split' phase, wrap the
	  'git-submodule' script.

2014-01-15  Andreas Enge  <andreas@enge.fr>

	gnu: valgrind: Update to 2.9.0.
	* gnu/packages/valgrind.scm (valgrind): Update to 2.9.0.

2014-01-15  Ludovic Courtès  <ludo@gnu.org>

	Update 'sr.po'.

	gnu: Add Taylor UUCP.
	* gnu/packages/uucp.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2014-01-14  Ludovic Courtès  <ludo@gnu.org>

	gnu: inetutils: Upgrade to 1.9.2.
	* gnu/packages/admin.scm (inetutils): Upgrade to 1.9.2.  Add Readline
	  as an input.

	doc: Fix another reference to (gnu packages admin).
	* doc/guix.texi (Using the Configuration System): Change module name
	  to (gnu packages admin).

	gnu: Add mpc123.
	* gnu/packages/mp3.scm (libmpcdec, mpc123): New variables.

2014-01-13  Ludovic Courtès  <ludo@gnu.org>

	gnu: Changes references to (gnu packages admin).
	* gnu/packages/version-control.scm, gnu/packages/vim.scm,
	  gnu/system.scm, gnu/system/dmd.scm, gnu/system/shadow.scm,
	  gnu/system/vm.scm: Change references to (gnu packages system) to (gnu
	  packages admin).
	  This is a followup to commit 4aeea89.

	gnu: Rename (gnu packages system) to (gnu packages admin).
	* gnu/packages/system.scm: Rename to...
	* gnu/packages/admin.scm: ... this.  Adjust module name accordingly.
	* gnu-system.am (GNU_SYSTEM_MODULES): Update.

	gnu: Add ISC's DHCP implementation.
	* gnu/packages/system.scm (isc-dhcp): New variable.

	gnu: Add libtirpc.
	* gnu/packages/onc-rpc.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	guix package: Gracefully handle EPIPE on '--search'.
	* guix/scripts/package.scm (guix-package): Wrap body of 'search' in
	  'leave-on-EPIPE'.

	ui: Don't use hyphens in 'package->recutils' output.
	* guix/ui.scm (package->recutils): Rename recutils field from
	  'home-page' to 'homepage'.

	gnu: Add aumix.
	* gnu/packages/linux.scm (aumix): New variable.

	gnu: Add GnuPG's pinentry.
	* gnu/packages/gnupg.scm (pinentry): New variable.

	gnu: guile-ssh: Remove now unneeded cruft.
	* gnu/packages/ssh.scm (guile-ssh): Remove libssh version hack from
	  'autoreconf' phase.

2014-01-12  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Aspell dictionaries.
	* gnu/packages/aspell.scm (aspell-dictionary): New procedure.
	  (aspell-dict-en, aspell-dict-eo, aspell-dict-es, aspell-dict-fr): New
	  variables.

2014-01-11  Ludovic Courtès  <ludo@gnu.org>

	hydra: Add GCC, Binutils, and libc to the core package set.
	* build-aux/hydra/gnu-system.scm (%core-packages): Add GCC-FINAL,
	  GLIBC-FINAL, and BINUTILS.

2014-01-08  Ludovic Courtès  <ludo@gnu.org>

	gnu: grep, coreutils: Upgrade.
	* gnu/packages/base.scm (grep): Upgrade to 2.16.
	  (coreutils): Upgrade to 8.22.

	gnu: gettext: Upgrade to 0.18.3.2.
	* gnu/packages/gettext.scm (gnu-gettext): Upgrade to 0.18.3.2.

	gnu: binutils: Upgrade to 2.24.
	* gnu/packages/patches/binutils-loongson-madd-fix.patch: Remove.
	* gnu-system.am (dist_patch_DATA): Adjust accordingly.
	* gnu/packages/base.scm (binutils): Upgrade to 2.24.  Remove
	  'binutils-loongson-madd-fix.patch'.  Remove 'outputs' field.  Pass
	  '--enable-install-libbfd'.

	Merge branch 'master' into core-updates

	config: '%store-directory' always honors $NIX_STORE_DIR.
	* guix/config.scm.in (%store-directory): Honor $NIX_STORE_DIR.
	* guix/store.scm (%store-prefix): Use %store-directory directly.

	config: '%state-directory' always honors $NIX_STATE_DIR.
	* guix/config.scm.in (%state-directory): Honor $NIX_STATE_DIR.
	* guix/scripts/package.scm (%profile-directory): Use %state-directory
	  directly.
	* guix/store.scm (%default-socket-path, log-file): Likewise.

	store: Fix 'log-file' to support uncompressed logs.
	* guix/store.scm (log-file): Report the file without '.bz2' if it
	  exists.

2014-01-07  Ludovic Courtès  <ludo@gnu.org>

	gnu: make: Build with Guile support.
	* gnu/packages/base.scm (gnu-make, gnu-make-boot0): Add 'native-inputs'
	  field.

	gnu: glibc: Build the Info pages.
	* gnu/packages/base.scm (glibc): Add 'native-inputs' field.
	  (perl-boot0): New variable.
	  (linux-libre-headers-boot0): Use it.
	  (texinfo-boot0): New variable.
	  (glibc-final-with-bootstrap-bash): Add 'native-inputs' field.

2014-01-06  Ludovic Courtès  <ludo@gnu.org>

	archive: Add '--missing'.
	* guix/scripts/archive.scm (show-help, %options): Add '--missing'.
	  (guix-archive)[lines]: New procedure.
	  Use it to honor '--missing'.
	* tests/guix-archive.sh: Add tests.
	* doc/guix.texi (Invoking guix archive): Document '--missing'.

2014-01-05  Ludovic Courtès  <ludo@gnu.org>

	gnu: lsh: Move generic patching to 'snippet'.
	* gnu/packages/lsh.scm (lsh): Move generic patching to the 'snippet'
	  field of 'origin'.

	archive: Make sure $sysconfdir/guix exists.
	* guix/pki.scm (ensure-acl): Make sure the directory of %ACL-FILE
	  exists.
	* guix/scripts/archive.scm (generate-key-pair): Likewise for
	  %PUBLIC-KEY-FILE.

	guix build: Add '--no-build-hook'.
	* guix/scripts/build.scm (%default-options): Add 'build-hook?' pair.
	  (show-help, %options): Add --no-build-hook.
	  (guix-build): Pass the 'build-hook?' value to 'set-build-options'.
	* doc/guix.texi (Invoking guix build): Document '--no-build-hook'.

2014-01-04  Ludovic Courtès  <ludo@gnu.org>

	guix package: Gracefully deal with EPIPE on stdout for --list-*.
	* guix/scripts/package.scm (leave-on-EPIPE): New macro.
	  (guix-package): Use it for 'list-installed', 'list-available', and
	  '--list-generations'.
	* tests/guix-package.sh: Add test.

	gnu: lsh: Fix the absolute file name of 'sexp-conv'.
	* gnu/packages/lsh.scm (lsh): Rename 'fix-test-suite' phase to
	  'pre-configure'.  Set PATH_SEXP_CONV in environ.h.in.

	gnu: nettle: Set the RUNPATH on 'sexp-conv' and other programs.
	* gnu/packages/nettle.scm (nettle): Rename 'inputs' to 'native-inputs'.
	  Add 'arguments' field.

	gnu: lsh: Distinguish between native inputs and target inputs.
	* gnu/packages/lsh.scm (lsh): Move M4, Guile, gperf, and psmisc to
	  'native-inputs'.  Use GUILE-2.0 instead of GUILE-FINAL.

2014-01-03  Ludovic Courtès  <ludo@gnu.org>

	doc: Update 'ROADMAP'.
	* ROADMAP: Add link to the updated road map, and the a note on release
	  history.

	Thank Niels.

	gnu: pulseaudio: Add patch for 'volume-test'; re-enable tests.
	* gnu/packages/patches/pulseaudio-volume-test.patch: New file.
	* gnu-system.am (dist_patch_DATA): Add it.
	* gnu/packages/pulseaudio.scm (pulseaudio): Use it.  Remove
	  #:tests? #t.

2013-12-30  John Darrington  <jmd@gnu.org>

	gnu: games: Add new package gnubg
	* gnu/packages/games.scm (gnubg): New variable

2013-12-30  Ludovic Courtès  <ludo@gnu.org>

	gnu: libgcrypt: Add "debug" output.
	* gnu/packages/gnupg.scm (libgcrypt): Add 'outputs' field.

	archive: Add '--authorize'.
	* guix/scripts/archive.scm (authorize-key): New procedure.
	  (guix-archive): Call it when OPTS contains 'authorize-key'.
	* tests/guix-archive.sh: Add test with invalid public key.
	* guix/pki.scm: Export '%acl-file'.
	* doc/guix.texi (Invoking guix archive): Make it clear that '--import'
	  works only with authorized keys.  Document '--authorize'.

	archive: Add '--generate-key'.
	* guix/pk-crypto.scm (error-source, error-string): New procedures.
	* guix/pki.scm (%private-key-file): New variable.
	* guix/scripts/archive.scm (show-help): Document '--generate-key'.
	  (%options): Add "generate-key".
	  (generate-key-pair): New procedure.
	  (guix-archive): Call 'generate-key' when OPTS contains a
	  'generate-key' pair.
	* doc/guix.texi (Setting Up the Daemon): Suggest generating a key pair.
	  (Invoking guix archive): Document '--generate-key'.

	pk-crypto: Fix 'canonical-sexp->sexp' for atoms.
	* guix/pk-crypto.scm (canonical-sexp->sexp): Add hack to extract an
	  atom's buffer.
	* tests/pk-crypto.scm ("sexp->canonical-sexp->sexp"): Add sample.

	pk-crypto: Work around Libgcrypt bug <https://bugs.g10code.com/gnupg/issue1594>.
	* guix/pk-crypto.scm (canonical-sexp-fold): Call 'nth-data' before
	  'nth' to work around <https://bugs.g10code.com/gnupg/issue1594>.
	* tests/pk-crypto.scm ("https://bugs.g10code.com/gnupg/issue1594"): New
	  test.

	authenticate: Consistently use 'leave' for fatal error reporting.
	* guix/scripts/authenticate.scm (guix-authenticate): Replace all uses of
	  'format' + 'exit' with 'leave'.

	Thank Kete.

2013-12-30  John Darrington  <jmd@gnu.org>

	gnu: mesa: Move out of xorg.scm and into gl.scm
	* gnu/packages/xorg.scm (mesa): Move to...
	* gnu/packages/gl.scm (mesa): ... here.  New variable.
	* gnu/packages/gnome.scm, gnu/packages/gnuzilla.scm,
	  gnu/packages/qemu.scm, gnu/packages/qt.scm: Adjust accordingly.

2013-12-30  Ludovic Courtès  <ludo@gnu.org>

	doc: Invoke 'useradd' with '--system'.
	Reported by Kete <kete@ninthfloor.org>.
	Fixes <http://bugs.gnu.org/16289>.

	* doc/guix.texi (Setting Up the Daemon): Add '--system' to the 'useradd'
	  command line.  Suggested by Kete <kete@ninthfloor.org>.

2013-12-29  Ludovic Courtès  <ludo@gnu.org>

	gnu: automake: Upgrade to 1.14.1.
	* gnu/packages/autotools.scm (automake): Upgrade to 1.14.1.

	gnu: gdbm: Upgrade to 1.11.
	* gnu/packages/gdbm.scm (gdbm): Upgrade to 1.11.

	build: Improve documentation of Nix-related options.
	* configure.ac: Add documentation for --with-nix and --with-nixpkgs.

2013-12-29  John Darrington  <jmd@gnu.org>

	gnu: games: New module
	* gnu/packages/games.scm (gnubik): New variable

	gnu: gnome: Add new package gtkglext
	* gnu/packages/gnome.scm (gtkglext): New variable.
	* gnu/packages/patches/gtkglext-disable-disable-deprecated.patch,
	  gnu/packages/patches/gtkglext-remove-pangox-dependency.patch: New
	  files.
	* gnu-system.am (dist_patch_DATA): Add them.

2013-12-29  Ludovic Courtès  <ludo@gnu.org>

	authenticate: Disallow imports signed with unauthorized keys.
	* guix/scripts/authenticate.scm (signature-sexp): Remove.
	  (guix-authenticate): Upon '-verify', check whether the signature's
	  public key passes 'authorized-key?'.

	Add (guix pki).
	* guix/pki.scm, tests/pki.scm: New files.
	* Makefile.am (MODULES): Add 'guix/pki.scm'.
	  (SCM_TESTS): Add 'tests/pki.scm'.

	config: Export '%config-directory'.
	* configure.ac: Define and substitute 'guix_sysconfdir'.
	* guix/config.scm.in (%config-directory): New variable.

	Move 'with-atomic-file-output' to (guix utils).
	* guix/scripts/substitute-binary.scm (with-atomic-file-output): Move to...
	* guix/utils.scm (with-atomic-file-output): ... here.

	pk-crypto: Add canonical-sexp to sexp conversion procedures.
	* guix/pk-crypto.scm (canonical-sexp-fold, canonical-sexp->sexp,
	  sexp->canonical-sexp): New procedures.
	* tests/pk-crypto.scm ("canonical-sexp->sexp",
	  "sexp->canonical-sexp->sexp"): New tests.

	pk-crypto: Add 'canonical-sexp-length' and related procedures.
	* guix/pk-crypto.scm (canonical-sexp-length, canonical-sexp-null?,
	  canonical-sexp-list?): New procedures.
	* tests/pk-crypto.scm ("canonical-sexp-length", "canonical-sexp-list?"):
	  New tests.

	pk-crypto: 'canonical-sexp-nth-data' returns a symbol for "tokens".
	* guix/pk-crypto.scm (token-string?): New procedure.
	  (canonical-sexp-nth-data): Return a symbol when the element is a
	  "token", and a bytevector otherwise.
	  (latin1-string->bytevector): Remove.
	  (hash-data->bytevector): Adjust accordingly.
	* tests/pk-crypto.scm ("canonical-sexp-nth"): Adjust accordingly.  Add
	  octet string example.

	authenticate: Store the public key as part of the signature.
	* guix/scripts/authenticate.scm (signature-sexp): New procedure.
	  (guix-authenticate): Use it to produce the signature.  Adjust
	  verification code accordingly.
	* tests/store.scm ("import corrupt path"): Adjust test accordingly.

	pk-crypto: Rename 'gcry-sexp' to 'canonical-sexp'.
	* guix/pk-crypto.scm: Rename procedures, variables, etc. from
	  'gcry-sexp' to 'canonical-sexp'.  Add comment with references.
	* guix/scripts/authenticate.scm, tests/pk-crypto.scm: Adjust
	  accordingly.

2013-12-28  Andreas Enge  <andreas@enge.fr>

	gnu: python: Update to 3.3.3.
	* gnu/packages/python.scm (python): Update to 3.3.3.

	gnu: python-2: Update to 2.7.6.
	* gnu/packages/python.scm (python-2): Update to 2.7.6.

	gnu: parallel: Update to 20131122.
	* gnu/packages/parallel.scm (parallel): Update to 20131122.

	gnu: xorriso: Update to 1.3.4.
	* gnu/packages/cdrom.scm (xorriso): Update to 1.3.4.

	gnu: libcdio: Update to 0.92.
	* gnu/packages/cdrom.scm (libcdio): Update to 0.92.

	gnu: libextractor: Update to 1.3.
	* gnu/packages/gnunet.scm (libextractor): Update to 1.3.

2013-12-22  Andreas Enge  <andreas@enge.fr>

	gnu: vim: Update to 7.4.
	* gnu/packages/vim.scm (vim): Update to 7.4.

2013-12-22  Ludovic Courtès  <ludo@gnu.org>

	Update 'TODO'.

	Add 'guix archive'.
	* guix/scripts/archive.scm, tests/guix-archive.sh: New files.
	* Makefile.am (MODULES): Add 'archive.scm'.
	  (SH_TESTS): Add 'guix-archive.sh'.
	* doc/guix.texi (Invoking guix archive): New section.
	* guix/scripts/build.scm: Export 'derivation-from-expression'.
	* guix/scripts/package.scm: Export 'specification->package+output'.

	build: Install 'guix-authenticate'.
	* daemon.am (nodist_libexec_SCRIPTS): New variable.

2013-12-21  Ludovic Courtès  <ludo@gnu.org>

	guix build: Improve procedural decomposition.
	* guix/scripts/build.scm (%store): Remove.
	  (derivation-from-expression): Add 'store' parameter.  Adjust caller
	  accordingly.
	  (register-root): New procedure, formerly within 'guix-build'.
	  (options->derivations): New procedure, formerly inline within
	  'guix-build'.
	  (guix-build): Adjust accordingly.

	Factorize package search between 'guix package' and 'guix build'.
	* guix/scripts/package.scm (newest-available-packages): Remove.
	  (find-best-packages-by-name): Move to...
	* gnu/packages.scm (find-best-packages-by-name): ... here.
	  (find-newest-available-packages): Memoize.
	* guix/scripts/build.scm (specification->package): New procedure,
	  formerly called 'find-package' within 'guix-build'.
	  (guix-build): Adjust accordingly.

	authenticate: Add test.
	* tests/guix-authenticate.sh: New file.
	* Makefile.am (SH_TESTS): Add it.

2013-12-21  Ludovic Courtès  <ludo@gnu.org>

	build: Adjust pk-crypto tests to Libgcrypt 1.5.3.
	Reported by Andreas Enge <andreas@enge.fr>.

	* tests/pk-crypto.scm ("string->gcry-sexp->string"): Remove "#C0FFEE#"
	  from SEXPS.
	  ("gcry-sexp-nth"): Start at index 1.

2013-12-20  Ludovic Courtès  <ludo@gnu.org>

	daemon: Implement signed archive import/export.
	* guix/scripts/authenticate.scm, nix/scripts/guix-authenticate.in,
	  tests/signing-key.pub, tests/signing-key.sec: New files.
	* po/POTFILES.in: Add 'guix/scripts/authenticate.scm'.
	* guix/store.scm (dump-port): New procedure.
	  (process-stderr): Add 'user-port' optional parameter.  Handle
	  the %STDERR-WRITE and %STDERR-READ cases as expected.
	  (import-paths, export-path, export-paths): New procedures.
	* tests/store.scm ("export/import several paths", "import corrupt
	  path"): New tests.
	* Makefile.am (MODULES): Add 'guix/scripts/authenticate.scm'.
	  (EXTRA_DIST): Add 'tests/signing-key.{pub,sec}'.
	* daemon.am (libstore_a_CPPFLAGS)[-DNIX_CONF_DIR]: Change 'NIX_CONF_DIR'
	  to .../guix.  Change 'OPENSSL_PATH' to 'guix-authenticate'.
	* config-daemon.ac: Instantiate 'nix/scripts/guix-authenticate'.
	* nix/nix-daemon/guix-daemon.cc (main): Augment $PATH to include
	  'settings.nixLibexecDir'.
	* test-env.in: Export 'NIX_CONF_DIR' and 'NIX_LIBEXEC_DIR'.  Populate
	  $NIX_CONF_DIR.

	pk-crypto: Add a few sexp utility procedures.
	* guix/pk-crypto.scm (gcry-sexp-car, gcry-sexp-cdr, gcry-sexp-nth,
	  gcry-sexp-nth-data, dereference-size_t, latin1-string->bytevector,
	  hash-data->bytevector): New procedures.
	* tests/pk-crypto.scm ("gcry-sexp-car + cdr", "gcry-sexp-nth",
	  "gcry-sexp-nth-data", "bytevector->hash-data->bytevector"): New tests.

	Update 'TODO'.

	Add (guix pk-crypto).
	* guix/pk-crypto.scm, tests/pk-crypto.scm: New files.
	* Makefile.am (MODULES, SCM_TESTS): Add them.

2013-12-19  Ludovic Courtès  <ludo@gnu.org>

	sync-with-upstream: Work around limitation of dash.
	Reported by Andreas Enge <andreas@enge.fr>.

	* nix/sync-with-upstream: Expand use of {cc,hh}, to placate dash.

2013-12-19  Ludovic Courtès  <ludo@gnu.org>

	daemon: Fix 'HashSink::currentHash()'.
	Before that, calls to 'HashSink::currentHash()' would eventually lead to
	a segfault because the underlying gcrypt handle has been closed.  (Note
	that this method is only used via 'importPaths' and 'exportPath', though.)

	* nix/libutil/gcrypt-hash.hh (struct guix_hash_context): Add a
	  constructor and a copy constructor; move out of 'extern "C"'.
	* nix/libutil/gcrypt-hash.cc (guix_hash_final): Clear 'md_handle' upon
	  exit.
	* nix/sync-with-upstream (top_srcdir): Change hash.{cc,hh} to read
	  'struct Ctx' instead of 'union Ctx'.

2013-12-19  Ludovic Courtès  <ludo@gnu.org>

	daemon: Add libgcrypt call to state that the initialization is over.
	* nix/nix-daemon/guix-daemon.cc (main): Add 'gcry_control' call.

2013-12-18  Andreas Enge  <andreas@enge.fr>

	gnu: xf86-video-vmware: Add input xorg-server.
	* gnu/packages/xorg.scm (xf86-video-vmware): Add input xorg-server.

	gnu: iso-codes: Update to 3.49.
	* gnu/packages/iso-codes.scm (iso-codes): Update to 3.49.

	gnu: shishi: Use libgcrypt-1.5.
	* gnu/packages/shishi.scm (shishi): Use input libgcrypt-1.5 instead of 1.6.

	gnu: libgcrypt: Make old version 1.5.3 public.
	* gnu/packages/gnupg.scm (libgcrypt-1.5): New variable.
	* gnu/packages/ssh.scm (libssh): Use libgcrypt-1.5 instead of defining it
	    ad-hoc.

2013-12-17  Ludovic Courtès  <ludo@gnu.org>

	gnu: libssh: Upgrade to 0.5.5.
	* gnu/packages/ssh.scm (libssh): Upgrade to 0.5.5.

	gnu: libssh: Build against an older libgcrypt.
	* gnu/packages/ssh.scm (libssh): Use libgcrypt 1.5.3 as an input.

2013-12-17  John Darrington  <john@darrington.wattle.id.au>

	gnu: gnu-build-system: Add CC_FOR_BUILD to configure flags.
	* guix/build/gnu-build-system.scm: Add new configure flag: CC_FOR_BUILD=gcc

	* gnu/packages/gnupg.scm, gnu/packages/guile.scm, gnu/packages/make-bootstrap.scm:
	  remove CC_FOR_BUILD from these package descriptions.

2013-12-17  Andreas Enge  <andreas@enge.fr>

	gnu: ffmpeg: Modify runpath of binaries to include output library path.
	* gnu/packages/video.scm (ffmpeg): Patch binaries to add output library path
	    to runpath.

2013-12-16  Ludovic Courtès  <ludo@gnu.org>

	gnu: tor: Upgrade to 0.2.4.19.
	* gnu/packages/tor.scm (tor): Upgrade to 0.2.4.19.

	gnu: freeipmi: Upgrade to 1.3.4.
	* gnu/packages/freeipmi.scm (freeipmi): Upgrade to 1.3.4.

	gnu: libgcrypt: Upgrade to 1.6.0.
	* gnu/packages/gnupg.scm (libgcrypt): Upgrade to 1.6.0.

	pull: Move build code to (guix build pull).
	* guix/build/pull.scm: New file.
	* Makefile.am (MODULES): Add it.
	* guix/scripts/pull.scm (unpack): Use it.

2013-12-16  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add gnome-desktop.
	* gnu/packages/gnome.scm (gnome-desktop): New variable.

2013-12-15  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add iso-codes.
	* gnu/packages/iso-codes.scm: New file.
	* gnu-system.am: Add it.

	gnu: Add libpeas.
	* gnu/packages/gnome.scm (libpeas): New variable.

	gnu: gtk+: enable introspection.
	* gnu/packages/gtk.scm (atk, gdk-pixbuf, gtk+, pango): enable introspection
	* guix/build/gnome.scm: New file.

	gnu: gobject-introspection: look for 'gcc' when no compiler seems available.
	* gnu/packages/patches/gobject-introspection.patch: New file.

2013-12-15  Ludovic Courtès  <ludo@gnu.org>

	gnu: Move libelf and patchelf to (gnu packages elf).
	* gnu/packages/patchelf.scm (patchelf): Move to...
	* gnu/packages/elf.scm (patchelf): ... here.
	* gnu/packages/patchelf.scm: Remove.
	* gnu-system.am (GNU_SYSTEM_MODULES): Adjust accordingly.
	* gnu/packages/gcc.scm (libelf): Move to...
	* gnu/packages/elf.scm (libelf): ... here.
	* gnu/packages/cdrom.scm, gnu/packages/icu4c.scm,
	  gnu/packages/samba.scm, gnu/packages/scheme.scm, gnu/packages/ssh.scm:
	  Adjust references to (gnu packages patchelf).

	gnu: Add elfutils.
	* gnu/packages/elf.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-12-15  John Darrington  <jmd@gnu.org>

	gnu: Move numerous "inputs" which should be "native-inputs".
	* gnu/packages/avahi.scm, gnu/packages/cdrom.scm, gnu/packages/cryptsetup.scm,
	  gnu/packages/curl.scm, gnu/packages/emacs.scm, gnu/packages/fontutils.scm,
	  gnu/packages/gdb.scm, gnu/packages/geeqie.scm, gnu/packages/ghostscript.scm,
	  gnu/packages/glib.scm, gnu/packages/gnome.scm, gnu/packages/gnunet.scm,
	  gnu/packages/gnupg.scm, gnu/packages/gnuzilla.scm, gnu/packages/graphviz.scm,
	  gnu/packages/groff.scm, gnu/packages/gstreamer.scm, gnu/packages/gtk.scm,
	  gnu/packages/gv.scm, gnu/packages/imagemagick.scm, gnu/packages/irssi.scm,
	  gnu/packages/kde.scm, gnu/packages/libcanberra.scm, gnu/packages/libtiff.scm,
	  gnu/packages/linux.scm, gnu/packages/lvm.scm, gnu/packages/mp3.scm,
	  gnu/packages/netpbm.scm, gnu/packages/parted.scm, gnu/packages/pdf.scm,
	  gnu/packages/pulseaudio.scm, gnu/packages/qemu.scm, gnu/packages/qt.scm,
	  gnu/packages/ratpoison.scm, gnu/packages/rdf.scm, gnu/packages/slim.scm,
	  gnu/packages/texlive.scm, gnu/packages/version-control.scm,
	  gnu/packages/video.scm, gnu/packages/vpn.scm, gnu/packages/w3m.scm,
	  gnu/packages/xml.scm, gnu/packages/xnee.scm, gnu/packages/xorg.scm,
	  gnu/packages/zip.scm:  Move some build-time dependencies from `inputs' to
	  `native-inputs'.

2013-12-15  John Darrington  <john@darrington.wattle.id.au>

	gnu: gnupg: Fix cross-compile issues.
	* gnu/packages/gnupg.scm (libgpg-error): Add gcc as a native input,
	  and set the CC_FOR_BUILD variable.

	* gnu/packages/gnupg.scm (libgcrypt): Add libgpg-error as a native input and
	  set the --with-gpg-error-prefix configure option.

	* gnu/packages/gnupg.scm (libksba): Add libgpg-error as a native input and
	  set the --with-gpg-error-prefix configure option.

2013-12-15  John Darrington  <jmd@gnu.org>

	gnu: openssl: Fix cross-compile issues.
	* gnu/packages/openssl.scm (openssl): Move perl from inputs to
	  native-inputs.
	  Replace reference to target bash with the native bash or target bash as
	  appropriate.

2013-12-15  Andreas Enge  <andreas@enge.fr>

	gnu: imagemagick: Add inputs.
	* gnu/packages/imagemagick.scm (imagemagick): Add inputs fftw and lcms.

	gnu: imagemagick: Update to 6.8.7-9.
	* gnu/packages/imagemagick.scm (imagemagick): Update to 6.8.7-9.

2013-12-14  Andreas Enge  <andreas@enge.fr>

	gnu: qt: Update to 5.2.0.
	* gnu/packages/qt.scm (qt): Update to 5.2.0.

2013-12-14  Mark H Weaver  <mhw@netris.org>

	guix package: allow multiple arguments after -i, -r, and -u.
	* guix/scripts/package.scm (%options): Adapt option processors to accept and
	  return a second seed value: 'arg-handler', which handles bare arguments (if
	  not false).  The install, remove, and upgrade option processors return an
	  arg-handler that repeat the same operation.  All other option processors
	  return #f as the arg-handler.  Make the arguments to install and remove
	  optional.  The upgrade option processor deletes (upgrade . #f) from the
	  alist before adding a new entry.
	  (guix-package): Procedures passed to 'args-fold*' accept the new seed value
	  'arg-handler'.  The 'operand-proc' uses 'arg-handler' (if not false).

	* doc/guix.texi (Invoking guix package): Update docs.

	* tests/guix-package.sh: Add test.

2013-12-14  John Darrington  <john@darrington.wattle.id.au>

	gnu: libxml2: Fixed cross-compilation.
	* gnu/packages/xml.scm (libxml2): assign "cross-libc"
	  to the variable glibc.

2013-12-14  Ludovic Courtès  <ludo@gnu.org>

	gnu: tzdata: Fix cross-compilation.
	Reported by John Darrington <john@darrington.wattle.id.au>.

	* gnu/packages/base.scm (tzdata): Use the 'source' keyword argument in
	  phases rather than the "source" input.  This fixes cross-compilation.

2013-12-14  Ludovic Courtès  <ludo@gnu.org>

	pull: Compile guix/ files before gnu/ files.
	* guix/scripts/pull.scm (unpack)[builder]: Build files under guix/
	  before files under gnu/.

	pull: Compile files in parallel.
	* guix/scripts/pull.scm (unpack)[builder](compile-file*): Remove.
	  (call-with-process, p-for-each): New procedures.  Use them to compile
	  files in parallel.

2013-12-14  Ludovic Courtès  <ludo@gnu.org>

	pull: Limit memory usage when compiling.
	Reported by Arne Babenhauserheide <arne.babenhauserheide@kit.edu>.

	* guix/scripts/pull.scm (unpack)[builder](compile-file*): Change to run
	  'compile-file' in a child process.  This limits memory usage; before
	  that memory usage was proportional to the number of files to compile.

2013-12-14  Andreas Enge  <andreas@enge.fr>

	gnu: icecat: Further analyse the failure of using system libpng and libjpeg.
	* gnu/packages/gnuzilla.scm (icecat): Add comments.

2013-12-13  John Darrington  <jmd@gnu.org>

	gnu: file: Fixed cross-compilation.
	* gnu/packages/file.scm (file): [(eq? (%current-target-system) #f)] Add native-inputs.

2013-12-13  Ludovic Courtès  <ludo@gnu.org>

	gnu: icecat: Build without debugging symbols; use some of the system libs.
	* gnu/packages/gnuzilla.scm (icecat): Add 'native-inputs'.  Add bzip2,
	  libevent, libffi, and zlib as inputs.  Add #:configure-flags.  Change
	  'configure' phase to honor it.

	gnu: idutils: Add Emacs as an input so idutils.el gets compiled and installed.
	* gnu/packages/idutils.scm (idutils): Add Emacs to 'native-inputs'.

	gnu: global: Install the elisp file under $out/share/emacs/site-lisp.
	* gnu/packages/global.scm (global)[arguments]: Add #:phases.

2013-12-13  Andreas Enge  <andreas@enge.fr>

	gnu: ffmpeg: Check via "make fate".
	* gnu/packages/patches/ffmpeg-check.patch: Drop patch.
	* gnu-system.am (dist_patch_DATA): Unregister patch.
	* gnu/packages/video.scm (ffmpeg): Drop patch and use "fate" as test target
	    as recommended at http://trac.ffmpeg.org/ticket/3177#comment:11 .
	* gnu/packages/video.scm

2013-12-11  Ludovic Courtès  <ludo@gnu.org>

	gnu: libtasn1: Upgrade to 3.4.
	* gnu/packages/gnutls.scm (libtasn1): Upgrade to 3.4.  Add
	  'native-inputs' field.

	build: Skip one 'package-source-derivation' test when networking is missing.
	* tests/packages.scm ("package-source-derivation, snippet"): Skip when
	  networking is missing.

	gnu: guix: Upgrade to 0.5.
	* gnu/packages/package-management.scm (guix): Upgrade to 0.5.  Update
	  the bootstrap binaries; add mips64el; add
	  'guix-test-networking.patch'.

	build: Bump to version 0.6.
	* configure.ac: Switch to 0.6.

	Update 'NEWS'.

	build: Remove '..' from srcdir/builddir in 'pre-inst-env'.
	* pre-inst-env.in (abs_top_srcdir, abs_top_builddir): New variables.
	  Use them instead of @abs_top_srcdir@ and @abs_top_builddir@.
	  This fixes the "package-field-location, relative file name" test in
	  'make distcheck'.

	doc: Slightly improve the "System Configuration" node.
	* doc/guix.texi (System Configuration): Add paragraph on upgrades and
	  rollback, moved from "Using the Configuration System".
	  (Using the Configuration System): Change variable name to
	  'komputilo'.  Add xref to "Package Modules".

	gnu: gdb: Upgrade to 7.6.2.
	* gnu/packages/gdb.scm (gdb): Update to 7.6.2.

	gnu: vm: Increase size of VM image.
	* gnu/system/vm.scm (system-qemu-image): Add 'disk-image-size'
	  parameter; increase it.

	store: Optimize 'store-path-package-name' and 'store-path-hash-part'.
	* guix/store.scm (store-regexp*): New procedure.
	  (store-path-package-name, store-path-hash-part): Use it.

	store: Add tests for 'store-path-package-name'.
	* tests/store.scm ("store-path-package-name", "store-path-package-name
	  #f"): New tests.

2013-12-10  Ludovic Courtès  <ludo@gnu.org>

	Update '.po' files.

2013-12-10  Andreas Enge  <andreas@enge.fr>

	NEWS: Small changes.
	NEWS: Typos and very minor changes.

2013-12-10  Ludovic Courtès  <ludo@gnu.org>

	Update 'NEWS'.

	gnu: Honor the operating system's locale and timezone.
	* gnu/system.scm (etc-directory): Add 'locale' and 'timezone'
	  parameters.  Set 'LC_ALL', 'TZ', and 'TZDIR' in /etc/profile.
	  (operating-system-derivation): Adjust call accordingly.
	* gnu/system/vm.scm (%demo-operating-system): Change locale to
	  'en_US.UTF-8'.  Add TZDATA to 'packages'.

	hydra: Add zlib, gzip, and xz to the core package set.
	* build-aux/hydra/gnu-system.scm (%core-packages): Add zlib, gzip, and xz.

2013-12-10  John Darrington  <jmd@gnu.org>

	gnu: compression: Fix cross-compilation of zlib.
	* gnu/packages/compression.scm : Zlib uses a non-standard
	  way of configuring for cross-compilation.  Thanks to Ludovic
	  for showing me the correct way to fix this.

2013-12-10  Ludovic Courtès  <ludo@gnu.org>

	doc: First stab at documenting whole-system configuration.
	* doc/guix.texi (Features): Add xref to "Using the Configuration
	  System".
	  (System Configuration, Using the Configuration System, Defining
	  Services): New nodes.

	gnu: Allow a plain list of packages in 'operating-system'.
	* gnu/system.scm (union): Allow (PACKAGE OUTPUT), (PACKAGE), and
	  PACKAGE.
	  (<operating-system>)[packages]: Make the default a list of package?
	  objects.
	* gnu/system/vm.scm (%demo-operating-system): Likewise.  Add a few
	  packages.

	gnu: Add 'inputs' field to <user-account>; make 'shell' a monadic value.
	* gnu/system/shadow.scm (<user-account>)[inputs]: New field.
	  (passwd-file): Bind the 'shell' field of each account.
	* gnu/system/vm.scm (%demo-operating-system): Remove 'shell' field.
	* gnu/system/dmd.scm (guix-build-accounts): Store a monadic value in
	  'shell'.  Add 'inputs' field.
	* gnu/system.scm (operating-system-derivation): Remove 'shell' field for
	  'root' account.  Add all the 'user-account-inputs' to EXTRAS.

	gnu: dmd: Avoid "already exists" error on startup.
	* gnu/system/dmd.scm (dmd-configuration-file)[config]: Remove
	  "/var/nix/gcroots/etc-directory" before trying to recreate it.

	gnu: Add (gnu system).
	* gnu/system/vm.scm (lower-inputs): Move to monads.scm.
	  (qemu-image): Don't add GRUB-CONFIGURATION to the INPUTS-TO-COPY.
	  (union, file-union, etc-directory): Move to gnu/system.scm.
	  (%demo-operating-system): New variable.
	  (system-qemu-image): Add 'os' parameter.  Rewrite in terms of
	  'operating-system-derivation'.
	* guix/monads.scm (lower-inputs): New procedure.
	* gnu/system/grub.scm (grub-configuration-file): Change 'entries' to be
	  a plain list instead of a list of monadic values.
	* gnu/system.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	monads: Fix 'anym'.
	* guix/monads.scm (anym): Fix successful case.
	* tests/monads.scm ("anym"): New test.

2013-12-10  Andreas Enge  <andreas@enge.fr>

	gnu: perl-xml-dom: Propagate inputs.
	* gnu/packages/xml.scm (perl-xml-dom): Drop inputs that are obtained through
	    propagation, propagate the other inputs.

	gnu: perl-libxml: Propagate input.
	* gnu/packages/xml.scm (perl-libxml): Propagate input perl-xml-parser.

	gnu: perl-http-message: Propagate input perl-http-date.
	* gnu/packages/web.scm (perl-http-message): Propagate input perl-http-date.
	* gnu/packages/web.scm (perl-http-cookies, perl-http-daemon): Drop input perl-http-date.

2013-12-09  Andreas Enge  <andreas@enge.fr>

	gnu: perl-libwww: Propagate all inputs.
	* gnu/packages/web.scm (perl-libwww): Drop inputs that appear through
	    propagation, and propagate all others.

	gnu: perl-file-listing: Propagate input.
	* gnu/packages/web.scm (perl-file-listing): Propagate input perl-http-date.

	gnu: perl-www-robotrules: Propagate input.
	* gnu/packages/web.scm (perl-www-robotrules): Propagate input perl-uri.

	gnu: perl-http-negotiate: Propagate input.
	* gnu/packages/web.scm (perl-http-negotiate): Propagate input
	    perl-http-message, drop input perl-uri (propagated by perl-http-message).

	gnu: perl-http-daemon: Propagate inputs.
	* gnu/packages/web.scm (perl-http-daemon): Propagate inputs perl-http-date,
	    perl-http-message and perl-lwp-mediatypes; drop input perl-uri
	    (propagated by perl-http-message).

	gnu: perl-http-cookies: Propagate inputs.
	* gnu/packages/web.scm (perl-http-cookies): Propagate inputs perl-http-date
	    and perl-http-message; drop input perl-uri (itself propagated from
	    perl-http-message).

	gnu: perl-http-message: Propagate input perl-uri.
	* gnu/packages/web.scm (perl-http-message): Propagate input perl-uri,
	    since "perl -MHTTP::Message" complains that it is missing.

	gnu: Add perl-xml-dom.
	* gnu/packages/xml.scm (perl-xml-dom): New variable.

	gnu: Add perl-libwww.
	* gnu/packages/web.scm (perl-libwww): New variable.

	gnu: Add perl-encode-locale.
	* gnu/packages/web.scm (perl-encode-locale): New variable.

	gnu: Add perl-file-listing.
	* gnu/packages/web.scm (perl-file-listing): New variable.

	gnu: Add perl-file-list.
	* gnu/packages/perl.scm (perl-file-list): New variable.

	build-system/perl: Honour phases argument in perl build system.
	* guix/build-system/perl.scm (perl-build): Propagate phases argument to
	    builder.

2013-12-08  Andreas Enge  <andreas@enge.fr>

	gnu: rcs: Update to 5.9.2.
	* gnu/packages/version-control.scm (rcs): Update to 5.9.2.

	gnu: parallel: Update to 20131122.
	* gnu/packages/parallel.scm (parallel): Update to 20131122.

2013-12-08  Ludovic Courtès  <ludo@gnu.org>

	gnu: Populate /etc upon startup.
	* gnu/packages/patches/dmd-getpw.patch: New file.
	* gnu-system.am (dist_patch_DATA): Add it.
	* gnu/packages/system.scm (dmd): Use it.
	* gnu/system/vm.scm (system-qemu-image): Don't explicitly populate /etc;
	  don't add ETC to the GC roots.
	* gnu/system/dmd.scm (dmd-configuration-file): Add 'etc' parameter.
	  [config]: Populate /etc from there.

2013-12-08  Andreas Enge  <andreas@enge.fr>

	gnu: Add perl-net-http.
	* gnu/packages/web.scm (perl-net-http): New variable.

	gnu: Add perl-www-robotrules.
	* gnu/packages/web.scm (perl-www-robotrules): New variable.

	gnu: Add perl-http-negotiate.
	* gnu/packages/web.scm (perl-http-negotiate): New variable.

	gnu: bison: Update to 3.0.2.
	* gnu/packages/bison.scm (bison): Update to 3.0.2.

	gnu: Add perl-http-daemon.
	* gnu/packages/web.scm (perl-http-daemon): New variable.

2013-12-07  Andreas Enge  <andreas@enge.fr>

	gnu: Add perl-http-cookies.
	* gnu/packages/web.scm (perl-http-cookies): New variable.

	gnu: Add perl-http-message.
	* gnu/packages/web.scm (perl-http-message): New variable.

	gnu: Add perl-io-html.
	* gnu/packages/web.scm (perl-io-html): New variable.

	gnu: Add perl-lwp-mediatypes.
	* gnu/packages/web.scm (perl-lwp-mediatypes): New variable.

	gnu: Add perl-uri.
	* gnu/packages/web.scm (perl-uri): New variable.

	gnu: Add perl-http-date.
	* gnu/packages/web.scm (perl-http-date): New variable.

	gnu: Add perl-html-parser.
	* gnu/packages/web.scm (perl-html-parser): New variable.

	gnu: Add perl-html-tagset.
	* gnu/packages/web.scm (perl-html-tagset): New variable.

	gnu: Rename perl-xml-parser-perlsax to perl-libxml.
	* gnu/packages/xml.scm (perl-libxml): Rename from perl-xml-parser-perlsax.

2013-12-07  Ludovic Courtès  <ludo@gnu.org>

	gnu: dmd: Add 'pam-services' field to <service>.
	* gnu/system/dmd.scm (<service>)[pam-services]: New field.
	  (mingetty-service): Add #:motd and #:allow-empty-passwords?
	  parameters.  Add MOTD to 'inputs' field; add 'pam-services' field.
	* gnu/system/vm.scm (system-qemu-image): Aggregate PAM entries from
	  SERVICES.

	gnu: vm: Fix inputs in 'file-union'.
	* gnu/system/vm.scm (file-union): Filter out members of FILES that are
	  outputs of INPUTS.

	gnu: dmd: Add 'user-accounts' and 'user-groups' fields to <service>.
	* gnu/system/shadow.scm (guix-build-accounts): Move to...
	* gnu/system/dmd.scm (guix-build-accounts): ... here.
	  (<service>)[user-accounts, user-groups]: New fields.
	  (guix-service): New #:build-user-id and #:build-accounts parameters.
	  Use 'guix-build-accounts' and set the 'user-accounts' and
	  'user-groups' fields accordingly.
	* gnu/system/vm.scm (system-qemu-image): Remove use of
	  'guix-build-accounts'.  Augment ACCOUNTS and GROUPS from what SERVICES
	  demand.

	doc: Adjust "Building from Git" instructions.
	* HACKING (Building from Git): As a follow-up to ff1cbb9, update the
	  error reported when pkg.m4 is missing.  Suggested by
	  John Darrington <john@darrington.wattle.id.au>.

	gnu: Move /etc/resolv.conf handling to the networking service.
	* gnu/system/vm.scm (etc-directory): Remove 'resolv.conf'.
	  (system-qemu-image): Use 'static-networking-service' with
	  #:name-servers.  Don't populate the image with /etc/resolv.conf.
	* gnu/system/dmd.scm (static-networking-service): Add #:name-servers
	  parameter.  Use it to populate /etc/resolv.conf.

	gnu: vm: Factorize /etc creation.
	* gnu/system/vm.scm (expression->derivation-in-linux-vm)[lower-inputs]:
	  Move to top-level...
	  (lower-inputs): ... here.  New variable.
	  (file-union, etc-directory): New procedures.
	  (system-qemu-image): Use 'etc-directory'; remove redundant code, and
	  register the result of 'etc-directory' as a GC root.

2013-12-06  Andreas Enge  <andreas@enge.fr>

	gnu: pulseaudio: Disable tests on mips64el.
	* gnu/packages/pulseaudio.scm (pulseaudio): Drop tests also on mips64el.

	gnu: Add perl-xml-regexp.
	* gnu/packages/xml.scm (perl-xml-regexp): New variable.

	gnu: Add perl-xml-parser-perlsax.
	* gnu/packages/xml.scm (perl-xml-parser-perlsax): New variable.

	gnu: libmicrohttpd: Upgrade to 0.9.32.
	* gnu/packages/gnunet.scm (libmicrohttpd): Upgrade to 0.9.32.

	gnu: soprano: Add input raptor2.
	* gnu/packages/rdf.scm (soprano): Add input raptor2.

	gnu: Add raptor2.
	* gnu/packages/rdf.scm (raptor2): New variable.

2013-12-05  Ludovic Courtès  <ludo@gnu.org>

	gnu: pulseaudio: Fix typo introduced in 76dcc99.
	* gnu/packages/pulseaudio.scm (pulseaudio): Disable tests on i686.
	  (pavucontrol): Remove 'arguments'.

	monads: Remove erroneous comment.
	* guix/monads.scm (sequence): Remove erroneous comment.

	gnu: pulseaudio: Disable tests on i686.
	* gnu/packages/pulseaudio.scm (pavucontrol): New 'arguments' field.

2013-12-05  Ludovic Courtès  <ludo@gnu.org>

	build: Work around build problem on systems that lack (gnutls).
	Reported at <https://lists.gnu.org/archive/html/guix-devel/2013-12/msg00002.html>.

	* Makefile.am (MODULES): Shuffle modules to work around build failure
	  on systems that lack the (gnutls) module.

2013-12-05  Andreas Enge  <andreas@enge.fr>

	gnu: ffmpeg: Enable tests.
	* gnu/packages/video.scm (ffmpeg): Add upstream patch and re-enable tests.
	* gnu/packages/patches/ffmpeg-check.patch: New file.
	* gnu-system.am (dist_patch_DATA): Register patch.

2013-12-04  Ludovic Courtès  <ludo@gnu.org>

	gnu: Move 'guile-ssh' to (gnu packages ssh).
	Reported by John Darrington <john@darrington.wattle.id.au>.

	* gnu/packages/guile.scm (guile-ssh): Move to...
	* gnu/packages/ssh.scm (guile-ssh): ... here.  New variable.
	  This fixes a circular dependency issue, as reported at
	  <https://lists.gnu.org/archive/html/guix-devel/2013-12/msg00024.html>.

2013-12-04  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Fix reference to Gettext in 'dist-package'.
	* guix/build-system/gnu.scm (dist-package): Change 'gettext' to
	  'gnu-gettext'.

	derivations: Use more keyword parameters for 'build-expression->derivation'.
	* guix/derivations.scm (build-expression->derivation): Turn 'system' and
	  'inputs' into keyword parameters.
	  Adjust callers accordingly.
	* gnu/system/linux.scm, gnu/system/vm.scm, guix/build-system/cmake.scm,
	  guix/build-system/gnu.scm, guix/build-system/perl.scm,
	  guix/build-system/python.scm, guix/build-system/trivial.scm,
	  guix/download.scm, guix/packages.scm, guix/profiles.scm,
	  guix/scripts/pull.scm, tests/derivations.scm, tests/guix-build.sh,
	  tests/monads.scm, tests/store.scm, tests/union.scm: Adjust users of
	  'build-expression->derivation' and 'derivation-expression'
	  accordingly.
	* doc/guix.texi (Derivations): Adjust 'build-expression->derivation'
	  documentation accordingly.
	  (The Store Monad): Likewise for 'derivation-expression'.

	Augment 'gitignore'.

	nls: Add Vietnamese translation.
	* po/vi.po: New file.
	* po/LINGUAS: Add 'vi'.

	Update 'eo.po'.

2013-12-04  Andreas Enge  <andreas@enge.fr>

	gnu: ffmpeg: Disable tests.
	* gnu/packages/video.scm (ffmpeg): Disable tests, see
	    https://trac.ffmpeg.org/ticket/3177 .

2013-12-04  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Guile-SSH.
	* gnu/packages/guile.scm (guile-ssh): New variable.

	gnu: libssh: Add $libdir to RUNPATH of libssh_threads.so.
	* gnu/packages/ssh.scm (libssh)[arguments]: Add #:phases, #:modules, and
	  #:imported-modules.
	  [native-inputs]: New field.

	gnu: Improve synopses in vpn.scm.
	* gnu/packages/vpn.scm (vpnc): Shorten synopsis, and fix spelling.
	  (openconnect): Fix synopsis spelling.

2013-12-03  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add missing copyright line.
	* gnu/packages/vpn.scm: Add copyright line lost in commit 7af8a9b.

	gnu: patchelf: Shorten synopsis.
	* gnu/packages/patchelf.scm (patchelf): Shorten synopsis.

2013-12-03  Eric Bavier  <bavier@member.fsf.org>

	Add GNU Serveez
	* gnu/packages/serveez.scm: New file
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it

2013-12-03  John Darrington  <jmd@gnu.org>

	gnu: Add mtools.
	* gnu/packages/mtools.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-12-03  Eric Bavier  <bavier@member.fsf.org>

	gnu: Add gnu-pw-mgr
	* gnu/packages/gnu-pw-mgr.scm: New file
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it

2013-12-03  Ludovic Courtès  <ludo@gnu.org>

	gnu: Move GVPE to vpn.scm.
	* gnu/packages/vpn.scm (gvpe): New variable, moved from...
	* gnu/packages/gvpe.scm: ... here.  Remove.
	* gnu-system.am (GNU_SYSTEM_MODULES): Remove 'gvpe.scm'.

	gnu: Add Guile-WM.
	* gnu/packages/guile-wm.scm (guile-wm): New variable.

	gnu-maintenance: Ignore "redirect" blurbs.
	* guix/gnu-maintenance.scm (official-gnu-packages)[official-description]:
	  Return #f for blurbs that start with "redirect ".

2013-12-02  Ludovic Courtès  <ludo@gnu.org>

	gnu: dmd: Update start/stop of standard service definitions.
	* gnu/system/dmd.scm (mingetty-service): Add 'stop' field.
	  (nscd-service): Run with '--foreground'.  Change 'stop' to use
	  'make-kill-destructor'.
	  (syslog-service): Run with '--no-detach'; change 'stop' similarly.
	  (guix-service): Likewise for 'stop'.
	  (static-networking-service): Remove 'sleep' call from 'start'.  Change
	  'stop' to return #f when networking was actually stopped.

	gnu: dmd: Upgrade to 0.1.
	* gnu/packages/system.scm (dmd): Upgrade to 0.1.  Move PKG-CONFIG to
	  'native-inputs'.

	gnu: Add Guile-XCB.
	* gnu/packages/guile-wm.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-12-02  John Darrington  <john@darrington.wattle.id.au>

	gnu: pspp: Enabled build of the gui
	* gnu/packages/math.scm (pspp): Removed the --without-gui flag
	and added the necessary inputs to build it.

	gnu: Add GtkSourceView.
	* gnu/packages/gtk.scm (gtksourceview): New variable.

2013-12-01  Ludovic Courtès  <ludo@gnu.org>

	gnu: Synchronize descriptions with 'gnumaint'.

2013-11-29  gzg  <gzg@riseup.net>

	Update references from Guy's old name

2013-11-28  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add libssh.
	* gnu/packages/ssh.scm (libssh): New variable.

	build-system/cmake: Build out of source tree by default.
	* guix/build-system/cmake.scm (cmake-build): Change 'out-of-source?' to
	  default to #t.
	* guix/build/cmake-build-system.scm (configure): Add 'out-of-source?'
	  keyword parameter and honor it.

	gnu: dmd: Add service documentation.
	* gnu/system/dmd.scm (<service>): Add 'documentation' field.
	  (host-name-service, mingetty-service, nscd-service, syslog-service,
	  static-networking-service): Provide a 'documentation' value.
	  (dmd-configuration-file): Use it.

	gnu: qemu/smb-shares: Keep the original patches.
	* gnu/packages/qemu.scm (qemu/smb-shares): Keep the patches from
	  QEMU-HEADLESS.

2013-11-27  Andreas Enge  <andreas@enge.fr>

	gnu: luit: Accomodate stricter warnings of gcc-4.8.
	* gnu/packages/patches/luit-posix.patch: New file.
	* gnu-system.am (dist_patch_DATA): Register patch.
	* gnu/packages/xorg.scm (luit): Apply patch.

	gnu: ffmpeg: Update to 2.1.1.
	* gnu/packages/video.scm (ffmpeg): Update to 2.1.1.

2013-11-26  Ludovic Courtès  <ludo@gnu.org>

	gnu: qemu: Upgrade to 1.6.1.
	* gnu/packages/patches/qemu-make-4.0.patch: New file.
	* gnu/packages/qemu.scm (qemu-headless): Use it.  Upgrade to 1.6.1.
	* gnu-system.am (dist_patch_DATA): Add it.

	gnu: mit-krb5: Build with GCC 4.7.
	* gnu/packages/mit-krb5.scm (mit-krb5): Make BISON and PERL native
	  inputs.  Add GCC-4.7 as a native input.

	substitute-binary: Work around Guile 2.0.5's broken 'n-par-map'.
	* guix/scripts/substitute-binary.scm (n-par-map*): New procedure.
	  (guix-substitute-binary): Use it instead of 'n-par-map'.
	  Reported by Nikita Karetnikov and Eric Bavier.

	Add Guy to 'AUTHORS'.

	gnu: xmodmap: Add patch to allow builds with GCC 4.8.
	* gnu/packages/patches/xmodmap-asprintf.patch: New file.
	* gnu/packages/xorg.scm (xmodmap): Use it.
	* gnu-system.am (dist_patch_DATA): Add it.

2013-11-25  Andreas Enge  <andreas@enge.fr>

	gnu: Correct typo in previous commit.
	* gnu/packages/rdf.scm: Name module rdf.

	gnu: Add soprano.
	* gnu/packages/rdf.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add module.

2013-11-25  gzg  <gzg@riseup.net>

	gnu: Add SLiM.
	* gnu/packages/slim.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-11-25  Ludovic Courtès  <ludo@gnu.org>

	gnu: iproute2: Upgrade to 3.12.0.
	* gnu/packages/linux.scm (iproute): Upgrade to 3.12.0.

2013-11-24  Ludovic Courtès  <ludo@gnu.org>

	gnu: {binutils,bash,gnu-make}-final are private.
	* gnu/packages/base.scm (binutils-final, bash-final, gnu-make-final):
	  Use 'define', not 'define-public'.

	list-packages: Make 'snippet-link' more tolerant.
	* build-aux/list-packages.scm (package->sxml)[snippet-link]: If
	  'package-field-location' returns #f, use 'package-location.

	Add John to 'AUTHORS'.

2013-11-24  John Darrington  <john@darrington.wattle.id.au>

	gnu: pixman: Upgrade to 0.32.4.
	* gnu/packages/xorg.scm (pixman): Upgrade to 0.32.4.

2013-11-24  Ludovic Courtès  <ludo@gnu.org>

	guix package: Honor the current output when upgrading.
	* guix/scripts/package.scm (specification->package+output): Pass OUTPUT
	  to 'package-specification->name+version+output'.

2013-11-23  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'core-updates'
	Conflicts:
		gnu/packages/gnunet.scm

	doc: List the supported platforms.
	* doc/guix.texi (GNU Distribution): List the supported platforms.

	gnu: net-tools: Adjust to removal of the 'patch' phase.
	* gnu/packages/linux.scm (net-tools): Adjust to removal of the 'patch'
	  phase.  Reported by Mark H. Weaver <mhw@netris.org>.

2013-11-23  Andreas Enge  <andreas@enge.fr>

	gnu: libextractor: Add input.
	* gnu/packages/gnunet.scm (libextractor): Add input exiv2.

2013-11-23  Ludovic Courtès  <ludo@gnu.org>

	gnu: qemu: Add GUI version.
	* gnu/packages/qemu.scm (qemu): Rename to...
	  (qemu-headless): ... this.
	  (qemu/smb-shares): Inherit from it.
	  (qemu): New variable.
	* gnu/packages/grub.scm (qemu-for-tests): Inherit from QEMU-HEADLESS.

	gnu: sdl: Propagate libx11.
	* gnu/packages/sdl.scm (sdl): Propagate LIBX11.
	  (sdl-gfx, sdl-ttf): Remove LIBX11 from 'inputs'.

2013-11-23  Ludovic Courtès  <ludo@gnu.org>

	build: Make sure pkg.m4 is present.
	Suggested by John Darrington <john@darrington.wattle.id.au>.

	* configure.ac: Forbid occurrences of 'PKG_CHECK_MODULES' in the
	  output.

2013-11-23  Andreas Enge  <andreas@enge.fr>

	gnu: libextractor: Add optional inputs.
	* gnu/packages/gnunet.scm (libextractor): Add inputs ffmpeg and gstreamer.

2013-11-23  Ludovic Courtès  <ludo@gnu.org>

	gnu: make-bootstrap: Add missing inputs for Canadian cross of '%gcc-static'.
	* gnu/packages/make-bootstrap.scm (%gcc-static): Add 'native-inputs'
	  field.

2013-11-23  David Thompson  <dthompson2@worcester.edu>

	gnu: Add SDL extension libraries.
	* gnu/packages/sdl.scm (sdl-gfx, sdl-image, sdl-mixer, sdl-net, sdl-ttf): New
	  variables.

2013-11-22  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add PowerTOP.
	* gnu/packages/linux.scm (powertop): New variable.

	gnu: Add libnl.
	* gnu/packages/linux.scm (libnl): New variable.

2013-11-21  Ludovic Courtès  <ludo@gnu.org>

	gnu: apl: Adjust to gettext renaming.
	* gnu/packages/apl.scm (apl): Use GNU-GETTEXT.

2013-11-20  Ludovic Courtès  <ludo@gnu.org>

	hydra: Adjust to gettext package rename.
	* build-aux/hydra/gnu-system.scm (%core-packages): Change 'gettext' to
	  'gnu-gettext'.

	Merge branch 'master' into core-updates
	Conflicts:
		guix/packages.scm

	gnu: gettext: Rename binding to 'gnu-gettext'.
	* gnu/packages/gettext.scm (gettext): Rename to...
	  (gnu-gettext): ... this.  This is used to work around the circular
	  dependency introduced in commit c42a4b7, which users with a #:renamer
	  cannot cope with.
	* gnu/packages/acl.scm, gnu/packages/attr.scm, gnu/packages/cdrom.scm,
	  gnu/packages/fdisk.scm, gnu/packages/gkrellm.scm, gnu/packages/glib.scm,
	  gnu/packages/gnunet.scm, gnu/packages/grub.scm, gnu/packages/linux.scm,
	  gnu/packages/maths.scm, gnu/packages/nano.scm, gnu/packages/parted.scm,
	  gnu/packages/system.scm, gnu/packages/version-control.scm,
	  gnu/packages/vpn.scm, gnu/packages/w3m.scm, gnu/packages/wget.scm:
	  Adjust accordingly.

2013-11-20  Eric Bavier  <bavier@member.fsf.org>

	gnu: Add GNU Parallel.
	* gnu/packages/parallel.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-11-20  Ludovic Courtès  <ludo@gnu.org>

	build-system/python: Add #:test-target parameter.
	* guix/build-system/python.scm (python-build): Add #:test-target
	  parameter.  Reported by Eric Bavier <ericbavier@gmail.com>.

	gnu: make-bootstrap: Simplify '%gcc-static'.
	* gnu/packages/make-bootstrap.scm (%gcc-static): Add a bunch of
	  --disable configure flags.  Remove useless 'inputs' field.

2013-11-20  David Thompson  <dthompson2@worcester.edu>

	gnu: Add SDL and SDL2.
	* gnu/packages/sdl.scm (sdl, sdl2): New variables.

2013-11-19  Ludovic Courtès  <ludo@gnu.org>

	gnu: autogen: Upgrade to 5.18.2.
	* gnu/packages/autogen.scm (autogen): Upgrade to 5.18.2.

	gnu: bison: Upgrade to 3.0.1.
	* gnu/packages/bison.scm (bison): Upgrade to 3.0.1.

	gnu: hello: Upgrade to 2.9.
	* gnu/packages/base.scm (hello): Upgrade to 2.9.  Remove 'arguments' and
	  'inputs' fields, which were never needed.

	gnu: libextractor: Upgrade to 1.2.
	* gnu/packages/gnunet.scm (libextractor): Upgrade to 1.2.

	gnu: freeipmi: Upgrade to 1.3.3.
	* gnu/packages/freeipmi.scm (freeipmi): Upgrade to 1.3.3.

	gnu: rcs: Upgrade to 5.9.1.
	* gnu/packages/version-control.scm (rcs): Upgrade to 5.9.1.  Add ed as
	  an input.

	gnu: lightning: Upgrade to 2.0.2.
	* gnu/packages/lightning.scm (lightning): Upgrade to 2.0.2.

	gnu: linux-libre: Upgrade to 3.12.
	* gnu/packages/linux.scm (linux-libre): Upgrade to 3.12.

	gnu: vm: Really create a QCOW2-format image.
	* gnu/system/vm.scm (expression->derivation-in-linux-vm): Pass "-f
	  qcow2" to 'qemu-img create'.

	doc: Link to package-list.html.
	* doc/guix.texi (GNU Distribution): Add link to package-list.html.

	list-packages: Produce link to the origin snippet, if any.
	* build-aux/list-packages.scm (package->sxml)[patches](snippet-link):
	  New procedure.
	  Use it to produce a link to the 'origin-snippet', if any.

2013-11-18  Ludovic Courtès  <ludo@gnu.org>

	packages: 'package-field-location' returns a relative file name.
	* guix/packages.scm (package-field-location): Set
	  %FILE-PORT-NAME-CANONICALIZATION.
	* tests/packages.scm ("package-field-location, relative file name"): New
	  test.

	guix build: '-e' can be passed a monadic thunk.
	* guix/ui.scm (read/eval): New procedure.
	  (read/eval-package-expression): Use it.
	* guix/scripts/build.scm (derivations-from-package-expressions): Rename to...
	  (derivation-from-expression): ... this.  Accept procedures, under the
	  assumption that they are monadic thunk.
	  (show-help): Adjust accordingly.
	  (guix-build): Ditto.
	* tests/guix-build.sh: Add test.
	* doc/guix.texi (Invoking guix build): Augment description of '-e'.

	doc: Mention Linux containers; emphasize reproducible builds.
	* doc/guix.texi (Introduction): Use "containers" instead of "chroots".
	  (Invoking guix-daemon): Add @cindex entries.  Mention the Linux
	  container features.
	  (Features): Add sentence on build reproducibility.

2013-11-18  Andreas Enge  <andreas@enge.fr>

	gnu: pspp: Add input cairo.
	* gnu/packages/maths.scm (pspp): Add cairo and further necessary inputs.
	* gnu/packages/patches/pspp-tests.patch: New file, thanks to
	  John Darrington <john@darrington.wattle.id.au>.
	* gnu-system.am (dist_patch_DATA): Register patch.

	gnu: gettext: Enable "xgettext --language=glade".
	* gnu/packages/gettext.scm (gettext): Add input expat, explicitly link with it.

2013-11-18  Ludovic Courtès  <ludo@gnu.org>

	gnu: gcc: Really always link against libgcc_s.so.
	* gnu/packages/gcc.scm (gcc-4.7): Add snippet to add -lgcc_s to the
	  "lib" spec.  Remove --as-needed trick from 65d3b7c: it had no effect
	  in cases where we have !static-libgcc && !shared-libgcc.

	gnu: gettext: Upgrade to 0.18.3.1.
	* gnu/packages/gettext.scm (gettext): Upgrade to 0.18.3.1.

	gnu: gcc: Always link against libgcc_s.so.
	* gnu/packages/gcc.scm (gcc-4.7)[pre-configure]: Add snippet to #undef
	  USE_LD_AS_NEEDED.

	gnu: tar: Upgrade to 1.27.1.
	* gnu/packages/base.scm (tar): Upgrade to 1.27.1.

2013-11-16  Ludovic Courtès  <ludo@gnu.org>

	gnu: glibc: Really disable 'ldconfig' and /etc/ld.so.cache.
	* gnu/packages/base.scm (glibc): Add 'snippet' to set use_ldconfig=no.
	  Remove "glibc-no-ld-so-cache.patch"; that patch would still build
	  'ldconfig', and ld.so would still contain ld.so.cache-related code,
	  and would look for info in /etc/etc/ld.so.cache (sic).
	* gnu/packages/patches/glibc-no-ld-so-cache.patch: Remove.
	* gnu-system.am (dist_patch_DATA): Adjust accordingly.

2013-11-16  Ludovic Courtès  <ludo@gnu.org>

	tests: Adjust to bootstrap tarball updates.
	Reported by Mark H. Weaver <mhw@netris.org>.

	* tests/packages.scm ("package-source-derivation, snippet"): Change to
	  "guile-2.0.9.tar.xz".
	* tests/union.scm ("union-build"): Check or include/c++ being a symlink.

2013-11-16  Ludovic Courtès  <ludo@gnu.org>

	doc: Improve "Installing Guix from Guix" section.
	Reported by Mark H. Weaver <mhw@netris.org>.

	* README (Installing Guix from Guix): Explicitly mention $PATH
	  separately.  Mention $ACLOCAL_PATH, not $ACLOCAL.  Give the exact
	  command to install the dependencies.  Remove mention of
	  $GUIX_LD_WRAPPER_ALLOW_IMPURITIES, which is no longer needed.

2013-11-16  Ludovic Courtès  <ludo@gnu.org>

	gnu: cflow: Install Emacs mode.
	* gnu/packages/cflow.scm (cflow): Add Emacs as an input.

	gnu: Switch to GCC 4.8 as the default compiler.
	* build-aux/download.scm (file-name->uri): Update URL to /20131110.
	* gnu-system.am (nodist_bootstrap_x86_64_linux_DATA,
	  nodist_bootstrap_i686_linux_DATA): Change base name to
	  'guile-2.0.9.tar.xz'.
	  (gnu/packages/bootstrap/x86_64-linux/guile-2.0.9.tar.xz,
	  gnu/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz): New targets.
	  (gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz,
	  gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz): Remove.
	  (gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz): Update
	  hash.
	* gnu/packages/base.scm (gcc-boot0): Base upon GCC-4.8.  Enable C++, and
	  add a few --disable flags.  Remove MPFR workaround.
	  (cross-gcc-wrapper): Base upon GCC-4.8.  Wrap both 'gcc' and 'g++'.
	  (libstdc++): New variable.
	  (gcc-final): Add it as an input; pass corresponding -I and -L flags.
	* gnu/packages/bootstrap.scm (%bootstrap-guile): Always use
	  "guile-2.0.9.tar.xz.
	  (%bootstrap-coreutils&co): Update hashes.
	  (%bootstrap-binutils): Update URL and hashes.
	  (%bootstrap-glibc): Likewise.
	  (%bootstrap-gcc): Likewise.
	* gnu/packages/gcc.scm (gcc-4.7): Add LDFLAGS.
	  Add --disable-libstdcxx-pch.
	  Modify the GNU_USER*_SPEC macros from gnu-user*.h instead of the raw
	  _SPEC macros.

2013-11-14  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Adjust timeout handling for Guile > 2.0.9.
	* guix/scripts/substitute-binary.scm (with-timeout): Update comment to
	  mention the fix's commit ID.
	  (fetch): In the 'with-timeout' handler, close PORT only one Guile
	  versions < 2.0.9.39.  Before that, on Guile >= 2.0.9.39, the HTTP
	  client would end up trying to read from a closed file descriptor.

2013-11-13  Ludovic Courtès  <ludo@gnu.org>

	derivations: Allow 'map-derivations' to replace sources.
	* guix/derivations.scm (map-derivation)[input->output-paths]: Allow
	  non-derivation inputs.
	  Allow replacements to be store files.  Replace in SOURCES too.
	* tests/derivations.scm ("map-derivation, sources"): New test.

	packages: Suitably cope with indirect store paths as package sources.
	* guix/packages.scm (package-source-derivation): Don't let indirect
	  store paths pass through.
	* tests/packages.scm ("package-source-derivation, indirect store path"):
	  New test.

	store: Make 'direct-store-path?' public.
	* guix/store.scm (direct-store-path?): New procedure.
	* guix/derivations.scm (derivation)[direct-store-path?]: Remove.
	* tests/store.scm ("direct-store-path?"): New test.

	derivations: Add 'map-derivation'.
	* guix/derivations.scm (map-derivation): New procedure.
	* tests/derivations.scm ("map-derivation"): New test.

	utils: Add 'string-replace-substring'.
	* guix/utils.scm (string-replace-substring): New procedure.  Based on
	  code by Mark H. Weaver.
	* tests/utils.scm ("string-replace-substring"): New test.

2013-11-12  Andreas Enge  <andreas@enge.fr>

	gnu: Add IceCat.
	* gnu/packages/gnuzilla.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-11-12  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add GNU APL.
	* gnu/packages/apl.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-11-12  Ludovic Courtès  <ludo@gnu.org>

	guix build: Add '--log-file'.
	* guix/scripts/build.scm (show-help): Add '--log-file'.
	  (%options): Likewise.
	  (guix-build): Set %FILE-PORT-NAME-CANONICALIZATION.  Honor '--log-file'.
	* tests/guix-build.sh: Add '--log-file' tests.
	* doc/guix.texi (Invoking guix build): Document '--log-file'.

	store: Add 'log-file' procedure.
	* guix/store.scm (log-file): New procedure.
	* tests/store.scm ("log-file, derivation", "log-file, output file
	  name"): New tests.

2013-11-11  Andreas Enge  <andreas@enge.fr>

	gnu: Add phonon.
	* gnu/packages/kde.scm (phonon): New variable.

	gnu: qt: Enable SIMD instructions available on x86_64.
	* gnu/packages/qt.scm (qt, qt-4): Enable mmx, 3dnow, sse and sse2 on x86_64.

2013-11-11  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add GVPE.
	* gnu/packages/gvpe.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	gnu: Add GNU complexity.
	* gnu/packages/complexity.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-11-09  Ludovic Courtès  <ludo@gnu.org>

	nls: Add Serbian translation.
	* po/sr.po: New file.
	* po/LINGUAS: Add 'sr'.

2013-11-08  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Increase lookup concurrency to reduce latency.
	* guix/scripts/substitute-binary.scm (%lookup-threads): New variable.
	  (guix-substitute-binary): Use 'n-par-map' instead of 'par-map' for
	  batch 'lookup-narinfo' calls.

	Merge branch 'master' into core-updates
	Conflicts:
		guix/packages.scm

2013-11-07  Ludovic Courtès  <ludo@gnu.org>

	gnu: lapack: Use origin snippet to remove the non-free files.
	* gnu/packages/maths.scm (lapack): Add 'snippet' field with contents of
	  former 'remove-non-free-files' phase; remove that phase.

	packages: Add a 'snippet' field to <origin>.
	* guix/packages.scm (<origin>): Add 'snippet', 'modules', and
	  'imported-modules' fields.
	  (patch-and-repack): Make 'inputs' a keyword parameter.  Add 'snippet',
	  'modules', and 'imported-modules' parameters.  Accept SOURCE as a raw
	  file name.  Insert SNIPPET in BUILDER.  Pass IMPORTED-MODULES to
	  'build-expression->derivation'.
	  (package-source-derivation): Pass the extra arguments to
	  'patch-and-repack'.
	* tests/packages.scm ("package-source-derivation, snippet"): New test.
	* doc/guix.texi (Defining Packages): Mention the 'patches' and 'snippet'
	  fields.
	  (Invoking guix build): Tell that --source has patches and snippets
	  applied.
	  (Software Freedom): Mention packages that contain non-free code.

2013-11-07  Ludovic Courtès  <ludo@gnu.org>

	doc: Document current security issue with substitutes.
	Suggested by Mark H. Weaver <mhw@netris.org>.

	* doc/guix.texi (Features): Add note about unauthenticated binaries.

2013-11-07  Ludovic Courtès  <ludo@gnu.org>

	doc: Improve documentation of '--no-substitutes'.
	Suggested by Mark H. Weaver <mhw@netris.org>.

	* doc/guix.texi (Invoking guix package): Spell out the --no-substitutes
	  documentation.
	  (Invoking guix build): Use the more complete --no-substitutes
	  documentation.
	  (Invoking guix-daemon): Explain the interaction with what clients ask
	  for.

2013-11-07  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add LAPACK.
	* gnu/packages/maths.scm (lapack): New variable.

2013-11-07  Ludovic Courtès  <ludo@gnu.org>

	Add indentation rule for 'origin'.

2013-11-04  Ludovic Courtès  <ludo@gnu.org>

	tests: Fix max-silent-time test.
	* tests/derivations.scm ("build-expression->derivation and
	  max-silent-time"): Use STORE instead of %STORE.  Change BUILDER to
	  succeed by default.  Return #f when no exception is raised.

	tests: Add the builder as an input to raw derivations.
	* tests/derivations.scm ("build derivation with 1 source",
	  "derivation with local file as input",
	  "derivation with a fixed-output input",
	  "multiple-output derivation",
	  "multiple-output derivation, non-alphabetic order",
	  "user of multiple-output derivation"): Add %BASH as an input, needed
	  in chroot builds.

2013-11-04  Mark H Weaver  <mhw@netris.org>

	gnu: mit-krb5: don't assume arguments are evaluated right-to-left.
	* gnu/packages/patches/mit-krb5-init-fix.patch: New file.
	* gnu/packages/mit-krb5.scm (mit-krb5): Apply patch at the end of the custom
	  unpack phase.
	* gnu-system.am (dist_patch_DATA): Add patch.

	Add mips64el-linux to the list of supported systems.
	* m4/guix.m4 (GUIX_ASSERT_SUPPORTED_SYSTEM): Add mips64el-linux to the list of
	  supported systems.

2013-11-04  Mark H Weaver  <mhw@netris.org>

	gnu: add bootstrap support for mips64el-linux using the MIPS N32 ABI.
	* .gitignore: Add entry for bootstrap/mips64el-linux/guile-2.0.9.tar.xz.

	* gnu-system.am (bootstrap_mips64el_linuxdir,
	  dist_bootstrap_mips64el_linux_DATA, nodist_bootstrap_mips64el_linux_DATA):
	  New variables.
	  (DISTCLEANFILES): Add $(nodist_bootstrap_mips64el_linux_DATA).
	  (gnu/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz): New target.

	* build-aux/download.scm (file-name->uri): Adapt to the newer mips64el-linux
	  bootstrap tarballs.

	* gnu/packages/bootstrap.scm (%bootstrap-guile, %bootstrap-coreutils&co,
	  %bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc): Adapt to the newer
	  mips64el-linux bootstrap tarballs.

	* gnu/packages/bootstrap/mips64el-linux/bash:
	* gnu/packages/bootstrap/mips64el-linux/mkdir:
	* gnu/packages/bootstrap/mips64el-linux/tar:
	* gnu/packages/bootstrap/mips64el-linux/xz: New files.

2013-11-04  Mark H Weaver  <mhw@netris.org>

	gnu: liboop: fix deplibs check method for mips64.
	* gnu/packages/patches/liboop-mips64-deplibs-fix.patch: New file.
	* gnu/packages/lsh.scm (liboop): Add patch.
	* gnu-system.am (dist_patch_DATA): Add patch.

	gnu: gd: fix deplibs check method for mips64.
	* gnu/packages/patches/gd-mips64-deplibs-fix.patch: New file.
	* gnu/packages/gd.scm (gd): Add patch.
	* gnu-system.am (dist_patch_DATA): Add patch.

	gnu: libmad: Fix MIPS assembler code to work with new GCC.
	* gnu/packages/patches/libmad-mips-newgcc.patch: New file.
	* gnu/packages/mp3.scm (libmad): Add patch.
	* gnu-system.am (dist_patch_DATA): Add patch.

	gnu: libtheora: patch ancient config.guess to support mips64.
	* gnu/packages/patches/libtheora-config-guess.patch: New file.
	* gnu/packages/oggvorbis.scm (libtheora): Add patch.
	* gnu-system.am (dist_patch_DATA): Add patch.

	gnu: alsa-lib: fix atomic op declarations for MIPS.
	* gnu/packages/patches/alsa-lib-mips-atomic-fix.patch: New file.
	* gnu/packages/linux.scm (alsa-lib): Add patch.
	* gnu-system.am (dist_patch_DATA): Add patch.

	gnu: gdb: patch-makefile-SHELL for all Makefile.in files.
	* gnu/packages/gdb.scm (gdb): patch-makefile-SHELL for all Makefile.in files
	  after configure.

	gnu: gdb: Fix opcode table for Loongson fused multiply-add.
	* gnu/packages/patches/gdb-loongson-madd-fix.patch: New file.
	* gnu/packages/gdb.scm (gdb): Add patch.
	* gnu-system.am (dist_patch_DATA): Add patch.

	gnu: libffi: fix handling of uint32_t arguments on MIPS N32.
	* gnu/packages/patches/libffi-mips-n32-fix.patch: New file.
	* gnu/packages/libffi.scm (libffi): Add patch.
	* gnu-system.am (dist_patch_DATA): Add patch.

	gnu: libtool: skip a test that fails on MIPS N32.
	* gnu/packages/patches/libtool-skip-tests-for-mips.patch: New file.
	* gnu/packages/autotools.scm (libtool): Add patch.
	* gnu-system.am (dist_patch_DATA): Add patch.

	gnu: binutils: apply fixes and workarounds for Loongson 2F CPUs.
	* gnu/packages/patches/binutils-loongson-madd-fix.patch: New file.
	* gnu/packages/patches/binutils-loongson-workaround.patch: New file.
	* gnu/packages/base.scm (binutils): Add patches.
	* gnu-system.am (dist_patch_DATA): Add patches.

2013-11-03  Ludovic Courtès  <ludo@gnu.org>

	gnu: recutils: Upgrade to 1.6.
	* gnu/packages/recutils.scm (recutils): Upgrade to 1.6.  Add cURL and
	  libgcrypt as inputs.

	ui: Make '--version' output GCS-compliant.
	* guix/ui.scm (show-version-and-exit): Display copyright year, license,
	  and LACK OF WARRANTY.

	gnu: make-bootstrap: Build libc and Guile without a .gnu_debuglink.
	* gnu/packages/make-bootstrap.scm (glibc-for-bootstrap, %guile-static):
	  Add 'outputs' field.

2013-11-02  Ludovic Courtès  <ludo@gnu.org>

	gnu: make-bootstrap: Allow bit-reproducibility for 'glibc-stripped'.
	* gnu/packages/make-bootstrap.scm (%glibc-stripped): Remove '.install'
	  and '..install.cmd' files.

2013-11-02  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: cmake: Bump to 2.8.12
	* gnu/packages/cmake.scm: bump to 2.8.12

2013-11-02  Ludovic Courtès  <ludo@gnu.org>

	gnu: make-bootstrap: Add C++ header files to the bootstrap GCC.
	* gnu/packages/make-bootstrap.scm (%gcc-stripped): Add $gcc/include/c++.

	gnu: cross-gcc: Fix build of 'gcc-cross-sans-libc'.
	* gnu/packages/cross-base.scm (cross-gcc): Add "--disable-libatomic".

	doc: Document the syntax of the '--remove' argument.
	* doc/guix.texi (Invoking guix package): Document the syntax of
	  '--remove' patterns.

2013-11-01  Ludovic Courtès  <ludo@gnu.org>

	guix package: Show the output name of what's being removed.
	* guix/scripts/package.scm (show-what-to-remove/install): Show the
	  output name of packages being removed.

	guix package: Fix indentation of "will be removed" messages.
	* guix/scripts/package.scm (show-what-to-remove/install): Remove extra
	  indentation from the removal sentences.

2013-11-01  Ludovic Courtès  <ludo@gnu.org>

	guix package: Allow removal of a specific package output.
	Fixes <http://bugs.gnu.org/15756>.

	* guix/profiles.scm (<manifest-pattern>): New record type.
	  (remove-manifest-entry): Remove.
	  (entry-predicate, manifest-matching-entries): New procedures.
	  (manifest-remove): Accept a list of <manifest-pattern>.
	  (manifest-installed?): Replace 'name' parameter by 'pattern', a
	  <manifest-pattern>.
	* guix/scripts/package.scm (options->removable): Return a list of
	  <manifest-pattern>.
	  (guix-package)[process-action]: Use 'manifest-matching-entries' to
	  compute the list of packages to remove.
	* tests/profiles.scm: New file.
	* Makefile.am (SCM_TESTS): Add it.

2013-11-01  Ludovic Courtès  <ludo@gnu.org>

	guix package: Separate '--remove' option processing.
	* guix/scripts/package.scm (options->removable): New procedure.
	  (guix-package)[process-actions]: Use it.  Rename 'remove*' to 'remove'
	  and 'install*' to 'install'.

	ui: Factorize package specification parsing.
	* guix/ui.scm (package-specification->name+version+output): New
	  procedure.
	* guix/scripts/package.scm (specification->package+output): Use it.
	* tests/ui.scm ("package-specification->name+version+output"): New test.

	Add (guix profiles).
	* guix/scripts/package.scm (show-what-to-remove/install): New procedure,
	  moved from...
	  (guix-package): ... here.
	  (<manifest>, make-manifest, <manifest-entry>,
	  profile-manifest, manifest->sexp, sexp->manifest, read-manifest,
	  write-manifest, remove-manifest-entry, manifest-remove,
	  manifest-installed?, manifest=?, profile-regexp, generation-numbers,
	  previous-generation-number, profile-derivation, generation-number,
	  generation-file-name, generation-time, lower-input): Move to...
	* guix/profiles.scm: ... here.  New file.
	* Makefile.am (MODULES): Add it.

2013-11-01  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add GCC front ends for Fortran, Go, Objective C, and Objective C++.
	* gnu/packages/gcc.scm (custom-gcc, gfortran-4.8, gccgo-4.8)
	  (gcc-objc-4.8, gcc-objc++-4.8): New variables.

2013-11-01  Andreas Enge  <andreas@enge.fr>

	gnu: ffmpeg: Fix typo in configure flags.
	* gnu/packages/video.scm (ffmpeg): Add "d" in "3d" in configure flags.

2013-11-01  Ludovic Courtès  <ludo@gnu.org>

	gnu: Revert to GCC 4.7 as the default compiler.
	GCC 4.8 relies on C++ headers (<cstring>, <iosfwd>, etc.) that are
	missing from the current bootstrap GCC.

	* gnu/packages/base.scm (gcc-boot0, cross-gcc-wrapper, gcc-final): Base
	  on GCC-4.7.  This reverts part of commit 9ae7cee.

2013-11-01  Andreas Enge  <andreas@enge.fr>

	gnu: Add ffmpeg.
	* gnu/packages/video.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add module.

2013-11-01  Ludovic Courtès  <ludo@gnu.org>

	gnu: Switch to GCC 4.8 as the default compiler.
	* gnu/packages/base.scm (gcc-boot0, cross-gcc-wrapper, gcc-final): Base
	  on GCC-4.8.
	* gnu/packages/cross-base.scm (cross-gcc): Likewise.
	* gnu/packages/make-bootstrap.scm (package-with-relocatable-glibc,
	  %gcc-static, %gcc-stripped): Likewise.

	gnu: grep: Update to 2.15.
	* gnu/packages/base.scm (grep): Update to 2.15.

	Merge branch 'master' into core-updates

2013-11-01  Mark H Weaver  <mhw@netris.org>

	gnu: pulseaudio: increase timeout of thread test.
	* gnu/packages/patches/pulseaudio-test-timeouts.patch: New file.
	* gnu/packages/pulseaudio.scm (pulseaudio): Add patch.
	* gnu-system.am (dist_patch_DATA): Add patch.

2013-10-31  Ludovic Courtès  <ludo@gnu.org>

	union: Do not warn when identical files collide.
	* guix/build/union.scm (file=?): New procedure.
	  (union-build)[resolve-collision]: Do not warn when identical files
	  collide.

	gnu: Add bridge-utils.
	* gnu/packages/linux.scm (bridge-utils): New variable.

2013-10-30  Andreas Enge  <andreas@enge.fr>

	gnu: libmicrohttpd: Update to 0.9.31.
	* gnu/packages/gnunet.scm (libmicrohttpd): Update to 0.9.31,
	    synchronise the description with GNU SRC.

	gnu: Add gst-plugins-base-0.10.
	* gnu/packages/gstreamer.scm (gst-plugins-base-0.10): New variable.

	gnu: gstreamer-0.10: Propagate input libxml2.
	* gnu/packages/gstreamer.scm (gstreamer-0.10): Propagate input libxml2.

2013-10-30  Ludovic Courtès  <ludo@gnu.org>

	guix package: Factorize generation file name computation.
	* guix/scripts/package.scm (generation-file-name): New procedure.
	  Change all occurrences of (format #f "~a-~a-link" profile number) to
	  use it.

	guix package: Specify inputs for each manifest entry.
	* guix/scripts/package.scm (<manifest-entry>): Add 'inputs' field.
	  (manifest=?, lower-input): New procedure.
	  (profile-derivation)[builder]: Add #:log-port argument to
	  'union-build'.
	  [ensure-valid-input]: Remove.
	  Add each entry's inputs to the input list.
	  (options->installable): Return just the list of entries.
	  [package->manifest-entry]: Set 'inputs' field.
	  [canonicalize-deps]: Rename to...
	  [deduplicate]: ... this.  Remove input fiddling.
	  (guix-package)[process-actions]: Use 'manifest=?' to compare the new
	  and old manifests.  Pass directly PROF-DRV to 'show-what-to-build'.
	  Pass #:print-build-trace #f to 'set-build-options'.

	union: Make the log port a parameter.
	* guix/build/union.scm (union-build): Add 'log-port' keyword parameter;
	  use it.

	derivations: 'derivation-path->output-path' honors the 'output' parameter.
	* guix/derivations.scm (derivation-path->output-path): Pass OUTPUT.
	* tests/derivations.scm ("multiple-output derivation,
	  derivation-path->output-path"): New test.

	guix package: Always use the term "profile", not "user environment".
	* guix/scripts/package.scm (%user-environment-directory): Rename to...
	  (%user-profile-directory): ... this.  Update users accordingly.
	  (profile-derivation): Use the term "profile" instead of "user
	  environment", and use "profile" as the derivation name.

	guix package: Introduce <manifest> and <manifest-entry> types.
	* guix/scripts/package.scm (<manifest>, <manifest-entry>): New record
	  types.
	  (make-manifest, read-manifest, manifest->sexp, sexp->manifest,
	  read-manifest, write-manifest, remove-manifest-entry, manifest-remove,
	  manifest-installed?): New procedures.
	  (profile-derivation): Take a manifest as the second parameter.  Use
	  'manifest->sexp'.  Expect <manifest-entry> objects instead of
	  "tuples".  Adjust callers accordingly.
	  (search-path-environment-variables): Changes 'packages' parameter to
	  'entries'.  Rename 'package-in-manifest->package' to
	  'manifest-entry->package'; expect <manifest-entry> objects.
	  (display-search-paths): Rename 'packages' to 'entries'.
	  (options->installable): Change 'installed' to 'manifest'.  Have
	  'canonicalize-deps' return name/path tuples instead of raw packages.
	  Rename 'package->tuple' to 'package->manifest-entry'.  Use
	  <manifest-entry> objects instead of tuples.
	  (guix-package)[process-actions]: Likewise.  Rename 'packages' to
	  'entries'.
	  [process-query]: Use 'manifest-entries' instead of
	  'manifest-packages'.

	guix package: Better separate option processing.
	* guix/scripts/package.scm (find-package): Rename to...
	  (specification->package+output): ... this.  Rename 'name' parmameter
	  to 'spec'.  Return a package and output name instead of a tuple.
	  (options->installable): New procedure
	  (guix-package)[process-actions]: Use it, and remove corresponding
	  code.

2013-10-30  Andreas Enge  <andreas@enge.fr>

	gnu: Add gstreamer-0.10.
	* gnu/packages/gstreamer.scm (gstreamer-0.10): New variable.
	* gnu/packages/patches/gstreamer-0.10-bison3.patch,
	  gnu/packages/patches/gstreamer-0.10-silly-test.patch: New files.
	* gnu-system.am (dist_patch_DATA): Add patches.

2013-10-29  Andreas Enge  <andreas@enge.fr>

	gnu: mit-krb5: Update to 1.11.3.
	* gnu/packages/mit-krb5.scm (mit-krb5): Update to 1.11.3.

2013-10-29  Ludovic Courtès  <ludo@gnu.org>

	guix package: Declutter the entry point.
	* guix/scripts/package.scm (newest-available-packages,
	  find-best-packages-by-name, find-package, upgradeable?): New
	  procedures, moved from...
	  (guix-package): ... here.

2013-10-29  Mark H Weaver  <mhw@netris.org>

	Change indentation rule for 'package' for the common case.
	* .dir-locals.el: Change the indentation rule for 'package' to do the right
	  thing for packages without an inherit clause.

2013-10-29  Ludovic Courtès  <ludo@gnu.org>

	list-runtime-roots: List files referenced by environment variables.
	Inspired by <https://github.com/NixOS/nix/compare/772b70952f75...4ddd077bfa9a>.

	* nix/scripts/list-runtime-roots.in (%store-directory): New variable.
	  (proc-environ-roots): New procedure.
	  (<top-level>): Use it.

2013-10-29  Ludovic Courtès  <ludo@gnu.org>

	doc: Augment the "Porting" section.
	Reported by Andreas Enge <andreas@enge.fr>.

	* doc/guix.texi (Porting): Document needed changes to (gnu packages
	  bootstrap) and (gnu packages linux).

2013-10-29  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add python2-empy.
	* gnu/packages/python.scm (python2-empy): New variable.

2013-10-29  Ludovic Courtès  <ludo@gnu.org>

	build-system/{cmake,perl}: Don't use (guix build gnu-build-system).
	Previously references to '%standard-phases' in builder-side code would
	refer to the wrong one.

	* guix/build-system/cmake.scm (cmake-build): Remove (guix build
	  gnu-build-system) from the default MODULES value.
	* guix/build-system/perl.scm (perl-build): Likewise.

2013-10-28  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: gcc-4.8: Upgrade to 4.8.2.
	* gnu/packages/gcc.scm (gcc-4.8): Upgrade to 4.8.2.

2013-10-26  Andreas Enge  <andreas@enge.fr>

	gnu: mesa: Update URI.
	* gnu/packages/xorg.scm (mesa): Update URI.

	gnu: lzip: Update to 1.15.
	* gnu/packages/compression.scm (lzip): Update to 1.15.

2013-10-26  David Thompson  <dthompson2@worcester.edu>

	gnu: Add libmikmod.
	* gnu/packages/sdl.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-10-26  Eric Bavier  <bavier@member.fsf.org>

	gnu: Add Pem.
	 * gnu/packages/pem.scm: New file.
	 * gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-10-26  Andreas Enge  <andreas@enge.fr>

	gnu: Add sharutils.
	* gnu/packages/compression.scm (sharutils): New variable.

2013-10-25  Andreas Enge  <andreas@enge.fr>

	gnu: rsync: Update to 3.1.0.
	* gnu/packages/rsync.scm (rsync): Update to 3.1.0.

2013-10-24  Andreas Enge  <andreas@enge.fr>

	gnu: gmp: Update to 5.1.3.
	* gnu/packages/multiprecision.scm (gmp): Update to 5.1.3.

2013-10-23  Andreas Enge  <andreas@enge.fr>

	gnu: qt: Correct source uri.
	* gnu/packages/qt.scm (qt-4): Correct source uri (reported by
	    Cyril Roelandt <tipecaml@gmail.com>).

2013-10-22  Andreas Enge  <andreas@enge.fr>

	gnu: Add GLPK.
	* gnu/packages/maths.scm (glpk): New variable.

2013-10-19  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add GNU Alive.
	* gnu/packages/system.scm (alive): New variable.

2013-10-18  Ludovic Courtès  <ludo@gnu.org>

	build: Build the bootstrap-graph.{png,eps,pdf} under $(top_srcdir).
	Fixes <http://bugs.gnu.org/15640>.
	Reported by Eric Bavier <ericbavier@gmail.com>.

	* doc.am (EXTRA_DIST): Add doc/images/bootstrap-graph.pdf to the
	  distribution.
	  (pdf-local, info-local, ps-local): Prepend $(top_srcdir) to the image
	  file names.

2013-10-18  Ludovic Courtès  <ludo@gnu.org>

	gnu: dfc: Add missing input.
	* gnu/packages/system.scm (dfc): Add 'native-inputs' field.

2013-10-17  Ludovic Courtès  <ludo@gnu.org>

	gnu: glib: Work around test failure in 'gio/tests/network-address.c'.
	* gnu/packages/patches/glib-tests-newnet.patch: New file.
	* gnu/packages/glib.scm (glib): Use it.
	* gnu-system.am (dist_patch_DATA): Add it.

	gnu: evince: Set search path for MIME info.
	* gnu/packages/gnome.scm (evince): Add #:phases argument.  Remove "perl"
	  and "perl-xml-parser" inputs since they are not directly needed; move
	  "intltool" to 'native-inputs'.

	gnu: Add shared-mime-info.
	* gnu/packages/gnome.scm (shared-mime-info): New variable.

	gnu: Add SCons.
	* gnu/packages/python.scm (scons): New variable.

2013-10-17  Nikita Karetnikov  <nikita@karetnikov.org>

	doc: Improve the copyright notice.

2013-10-16  Ludovic Courtès  <ludo@gnu.org>

	gnu: make: Update to 4.0, with Guile support.
	* gnu/packages/base.scm (gnu-make): Update to 4.0.  Add Guile as an input.
	  (gnu-make-boot0): Patch 'build.sh' so it does not attempt to build 'guile.c'.
	  (gnu-make-final): New variable.
	  (%final-inputs): Use it.
	  (glibc): Add 'glibc-make-4.0.patch'.
	* gnu/packages/patches/glibc-make-4.0.patch: New file.
	* gnu-system.am (dist_patch_DATA): Add it.

	gnu: base: Fix circular dependency between %final-outputs and <origin> inputs.
	* gnu/packages/base.scm (%final-inputs): Add
	  'package-with-bootstrap-guile' to 'finalize'.

2013-10-16  Ludovic Courtès  <ludo@gnu.org>

	utils: 'find-files' always returns a proper list.
	Reported at <http://bugs.gnu.org/15608>.

	* guix/build/utils.scm (find-files): Change the 'error' procedure to
	  return RESULT.  Before we would end up with an improper list.

2013-10-16  Ludovic Courtès  <ludo@gnu.org>

	gnu: readline: Turn 'patches' into a list.
	* gnu/packages/readline.scm (readline): Turn 'patches' into a list.

2013-10-16  Andreas Enge  <andreas@enge.fr>

	gnu: harfbuzz: Update to 0.9.22.
	* gnu/packages/gtk.scm (harfbuzz): Update to 0.9.22; should solve the test
	    problems on i686.

2013-10-16  Ludovic Courtès  <ludo@gnu.org>

	Update 'AUTHORS'.

2013-10-16  Eric Bavier  <bavier@member.fsf.org>

	gnu: Add autogen package
	* gnu/package/autogen.scm: New file
	* gnu-system.am: Add it

2013-10-15  Ludovic Courtès  <ludo@gnu.org>

	Remove weirdnesses caused by 'letrec*' behavior of record field initializers.
	* gnu/packages/bootstrap.scm (package-from-tarball): Remove '*' from
	  parameter names.  Adjust accordingly.
	* gnu/packages/linux-initrd.scm (expression->initrd): Use 'name'
	  directly, removing the 'name*' alias.
	* gnu/packages/linux.scm (linux-libre-headers, linux-libre): Rename
	  'version*' to 'version'.

	records: define-record-type*: Field bindings are bound with 'let*'.
	* guix/records.scm (define-record-type*): Wrap field bindings in a
	  'let*', not in a 'letrec*', which turned out to be pointlessly
	  inconvenient.
	* tests/records.scm: Adjust test names accordingly.

	build: Add 'clean-go' target.
	* Makefile.am (clean-go): New phony target.

	guix package: '--search' matches against package names.
	* guix/scripts/package.scm (find-packages-by-description): Return
	  packages whose name matches RX.

2013-10-14  Ludovic Courtès  <ludo@gnu.org>

	Thank Jeffrin and David.

2013-10-14  David Thompson  <dthompson2@worcester.edu>

	gnu: Add libtheora.
	* gnu/packages/oggvorbis.scm (libtheora): New variable.

2013-10-14  Ludovic Courtès  <ludo@gnu.org>

	gnu: subversion, cmake: Clean up descriptions.
	* gnu/packages/cmake.scm (cmake): Simplify the synopsis.
	* gnu/packages/version-control.scm (subversion): Remove "open-source"
	  from the description.

2013-10-13  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add libgnome-keyring and Evince.
	* gnu/packages/gnome.scm (libgnome-keyring, evince): New variables.

	gnu: poppler: Build the poppler-glib bindings.
	* gnu/packages/pdf.scm (poppler): Add Cairo and GLib as inputs.

	gnu: Add dogtail.
	* gnu/packages/python.scm (python2-dogtail): New variable.

	pull: Compile modules correctly regardless of the compilation order.
	* guix/scripts/pull.scm (unpack)[builder]: Work around
	  <http://bugs.gnu.org/15602>.

2013-10-13  Andreas Enge  <andreas@enge.fr>

	gnu: kde: Add module and automoc4 package.
	* gnu/packages/kde.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	guix: Make cmake build system aware of usual paths.
	*  guix/build/cmake-build-system.scm (configure): Set CMAKE_LIBRARY_PATH to
	     LIBRARY_PATH and CMAKE_INCLUDE_PATH to CPATH.

	gnu: cmake: Update patch to work with new system.
	* gnu/packages/patches/cmake-fix-tests.patch: Update to work with -p1.
	* gnu/packages/cmake.scm (cmake): Drop patch flag -p0.

	gnu: gsl: Update to 1.16.
	* gnu/packages/maths.scm (gsl): Update to 1.16, disable parallel tests
	    leading to a failure in vector.

	gnu: gtk+: Update to 3.10.1.
	* gnu/packages/gtk.scm (gtk+): Update to 3.10.1, drop no longer needed
	    configure flag.

2013-10-13  Ludovic Courtès  <ludo@gnu.org>

	pull: Simplify the builder.
	* guix/scripts/pull.scm (unpack)[builder]: Use 'copy-recursively' and
	  'copy-file' instead of 'file-system-fold'.

	doc: Document "guix pull --url".
	* doc/guix.texi (Invoking guix pull): Add --url.

2013-10-12  Andreas Enge  <andreas@enge.fr>

	gnu: qt: Add patch to distribution.
	* gnu-system.am (dist_patch_DATA): Add qt patch.

2013-10-12  Ludovic Courtès  <ludo@gnu.org>

	gnu: qemu-with-multiple-smb-shares: Fix typo.
	* gnu/packages/qemu.scm (qemu/smb-shares): Turn 'patches' into a list.

	build-system/perl: Lazily resolve (gnu packages perl).
	* guix/build-system/perl.scm (default-perl): New procedure.
	  (perl-build): Use it.

	pull: Add '--url' option.
	* guix/scripts/pull.scm (%default-options): Add 'tarball-url' pair.
	  (%options, show-help): Add '--url'.
	  (guix-pull): Honor it.

	download: Support 'file://' URLs.
	* guix/download.scm (download-to-store): When URL has a 'file' scheme or
	  no scheme, use 'add-to-store' directly.

	guix: Add missing call to 'bindtextdomain'.
	* scripts/guix.in (config-lookup): Add "localedir" entry.
	  (run-guix-main): Add call to 'bindtextdomain'.
	* guix/ui.scm (initialize-guix): Use %GETTEXT-DOMAIN instead of a
	  literal.

2013-10-12  Andreas Enge  <andreas@enge.fr>

	gnu: Add gp2c.
	* gnu/packages/algebra.scm (gp2c): New variable.

	gnu: Add Qt 4.8.5.
	* gnu/packages/qt.scm (qt-4): New variable.
	* gnu/packages/patches/qt4-tests.patch: New file, patch dropping tests
	    requiring a running X server.

2013-10-11  Arne Babenhauserheide  <arne.babenhauserheide@kit.edu>

	gnu: Add Mercurial.
	* gnu/packages/version-control.scm (mercurial): New variable.

2013-10-11  Ludovic Courtès  <ludo@gnu.org>

	gnu-maintenance: Adjust URL of package description file.
	* guix/gnu-maintenance.scm (%package-description-url): Adjust to the
	  new URL.

2013-10-11  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add GNU acct.
	* gnu/packages/acct.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-10-11  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Valgrind: make it work with glibc 2.18.
	* gnu/packages/patches/valgrind-glibc.patch: update it.

2013-10-10  Ludovic Courtès  <ludo@gnu.org>

	build-system/{gnu,cmake}: Remove #:patches and #:patch-flags parameters.
	* guix/build/gnu-build-system.scm (patch): Remove.
	  (%standard-phases): Remove 'patch'.
	* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Remove
	  #:patches and #:patch-flags parameters.
	* guix/build-system/cmake.scm (cmake-build): Likewise.
	* guix/build-system/python.scm (package-with-explicit-python): Update
	  comment.

	gnu: Use the 'patches' field of <origin>.
	* gnu/packages/autotools.scm (libtool): Add 'patches' field to the
	  origin.  Remove 'inputs' field.
	* gnu/packages/base.scm (findutils, gnu-make, binutils, glibc):
	  Likewise.
	* gnu/packages/m4.scm (m4): Likewise.
	* gnu/packages/perl.scm (perl): Likewise.
	* gnu/packages/readline.scm (readline): Likewise.

	gnu: bootstrap: Use the bootstrap tools for <origin> patching.
	* gnu/packages/bootstrap.scm (bootstrap-origin): Override the
	  'patch-guile' and 'patch-inputs' fields of SOURCE.

	packages: The 'patch-guile' field of <origin> is now a package.
	* guix/packages.scm (default-guile): Return a package instead of a
	  derivation.
	  (package-source-derivation): Adjust accordingly.

	gnu: tar: Update to 1.17.
	* gnu/packages/base.scm (tar): Update to 1.17.  Remove 'arguments' and
	  'inputs'.
	* gnu/packages/patches/tar-gets-undeclared.patch: Remove.
	* gnu-system.am (dist_patch_DATA): Remove 'tar-gets-undeclared.patch'.

	gnu: linux-libre-headers: Support cross-compilation.
	* gnu/packages/linux.scm (linux-libre-headers):
	  When (%current-target-system) is true, pass it as the argument to
	  'build-phase'.  This fixes cross-compilation.
	  Reported by Mark H. Weaver <mhw@netris.org>.

	daemon: Set the umask to 022 when starting.
	* nix/nix-daemon/guix-daemon.cc (main): Add 'umask' call.
	* test-env.in: Remove use of 'umask'.

	gnu: Add pavucontrol.
	* gnu/packages/pulseaudio.scm (pavucontrol): New variable.

2013-10-10  Andreas Enge  <andreas@enge.fr>

	gnu: qt: Propagate input mesa.
	* gnu/packages/qt.scm (qt): Propagate input mesa.

	gnu: qt: Do not use special SSE etc. instructions.
	* gnu/packages/qt.scm (qt): Add configure flags to disable machine specific
	    instructions.

	gnu: qt: Add input pulseaudio.
	* gnu/packages/qt.scm (qt): Add input pulseaudio.

2013-10-09  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Pangomm, ATKmm, and GTKmm.
	* gnu/packages/gtk.scm (atk)[synopsis]: Fix typo.
	  (pangomm, atkmm, gtkmm): New variables.

	list-packages: Show a list of patches for each package.
	* build-aux/list-packages.scm (list-join): New procedure.
	  (package->sxml)[patch-url]: New procedure.
	  Use it.

	snix: Prefer descriptions from the Womb rather than from Nixpkgs.
	* guix/snix.scm (snix-derivation->guix-package): Use
	  'gnu-package-doc-description' as the description for GNU packages.

	Synchronize package descriptions with the Womb.
	* gnu/packages/algebra.scm,
	  gnu/packages/aspell.scm,
	  gnu/packages/autotools.scm,
	  gnu/packages/base.scm,
	  gnu/packages/bash.scm,
	  gnu/packages/bison.scm,
	  gnu/packages/cdrom.scm,
	  gnu/packages/cflow.scm,
	  gnu/packages/compression.scm,
	  gnu/packages/cpio.scm,
	  gnu/packages/cppi.scm,
	  gnu/packages/ddrescue.scm,
	  gnu/packages/dejagnu.scm,
	  gnu/packages/ed.scm,
	  gnu/packages/emacs.scm,
	  gnu/packages/fdisk.scm,
	  gnu/packages/freeipmi.scm,
	  gnu/packages/gawk.scm,
	  gnu/packages/gcal.scm,
	  gnu/packages/gcc.scm,
	  gnu/packages/gdb.scm,
	  gnu/packages/gdbm.scm,
	  gnu/packages/gettext.scm,
	  gnu/packages/ghostscript.scm,
	  gnu/packages/global.scm,
	  gnu/packages/gnunet.scm,
	  gnu/packages/gnupg.scm,
	  gnu/packages/gnutls.scm,
	  gnu/packages/gperf.scm,
	  gnu/packages/gprolog.scm,
	  gnu/packages/groff.scm,
	  gnu/packages/grub.scm,
	  gnu/packages/gsasl.scm,
	  gnu/packages/guile.scm,
	  gnu/packages/gv.scm,
	  gnu/packages/help2man.scm,
	  gnu/packages/idutils.scm,
	  gnu/packages/indent.scm,
	  gnu/packages/less.scm,
	  gnu/packages/libidn.scm,
	  gnu/packages/libsigsegv.scm,
	  gnu/packages/libunistring.scm,
	  gnu/packages/lightning.scm,
	  gnu/packages/linux.scm,
	  gnu/packages/lsh.scm,
	  gnu/packages/m4.scm,
	  gnu/packages/mail.scm,
	  gnu/packages/maths.scm,
	  gnu/packages/multiprecision.scm,
	  gnu/packages/nano.scm,
	  gnu/packages/ncurses.scm,
	  gnu/packages/nettle.scm,
	  gnu/packages/ocrad.scm,
	  gnu/packages/oggvorbis.scm,
	  gnu/packages/parted.scm,
	  gnu/packages/plotutils.scm,
	  gnu/packages/pth.scm,
	  gnu/packages/readline.scm,
	  gnu/packages/recutils.scm,
	  gnu/packages/rush.scm,
	  gnu/packages/scheme.scm,
	  gnu/packages/screen.scm,
	  gnu/packages/shishi.scm,
	  gnu/packages/smalltalk.scm,
	  gnu/packages/system.scm,
	  gnu/packages/texinfo.scm,
	  gnu/packages/time.scm,
	  gnu/packages/unrtf.scm,
	  gnu/packages/version-control.scm,
	  gnu/packages/wdiff.scm,
	  gnu/packages/wget.scm,
	  gnu/packages/which.scm,
	  gnu/packages/xnee.scm,
	  gnu/packages/zile.scm: Change value of the 'description' field to that
	  of the Womb.

	build: 'sync-descriptions' now compares GNU package descriptions.
	* build-aux/sync-synopses.scm: Rename to...
	* build-aux/sync-descriptions.scm: ... this.  Compare the value of
	  'gnu-package-doc-description' and 'package-description' and report any
	  mismatch.
	* Makefile.am (EXTRA_DIST): Adjust accordingly.
	  (sync-synopses): Rename to...
	  (sync-descriptions): ... this.

	gnu-maintenance: Get descriptions from 'gnumaint/pkgdescr.txt'.
	* guix/gnu-maintenance.scm (%gnumaint-base-url): New variable.
	  (%package-list-url): Use it.
	  (%gsrc-package-list-url): Remove.
	  (%package-description-url): New variable.
	  (official-gnu-packages): Change to use %PACKAGE-DESCRIPTION-URL
	  instead of %GSRC-PACKAGE-LIST-URL.  Adjust recutils field names
	  accordingly.

	Update 'TODO'.

	gnu: Use the 'patches' field of <origin>.
	* gnu/packages/apr.scm,
	  gnu/packages/autotools.scm,
	  gnu/packages/avahi.scm,
	  gnu/packages/cdrom.scm,
	  gnu/packages/cmake.scm,
	  gnu/packages/cpio.scm,
	  gnu/packages/cross-base.scm,
	  gnu/packages/emacs.scm,
	  gnu/packages/flex.scm,
	  gnu/packages/fontutils.scm,
	  gnu/packages/glib.scm,
	  gnu/packages/grub.scm,
	  gnu/packages/guile.scm,
	  gnu/packages/idutils.scm,
	  gnu/packages/libevent.scm,
	  gnu/packages/linux.scm,
	  gnu/packages/mail.scm,
	  gnu/packages/make-bootstrap.scm,
	  gnu/packages/mp3.scm,
	  gnu/packages/oggvorbis.scm,
	  gnu/packages/pdf.scm,
	  gnu/packages/plotutils.scm,
	  gnu/packages/qemu.scm,
	  gnu/packages/recutils.scm,
	  gnu/packages/rush.scm,
	  gnu/packages/scheme.scm,
	  gnu/packages/system.scm,
	  gnu/packages/tcsh.scm,
	  gnu/packages/valgrind.scm,
	  gnu/packages/vpn.scm,
	  gnu/packages/w3m: Use the 'patches' field of <origin> instead of
	  adding a patch as input plus using #:patches.

2013-10-09  Ludovic Courtès  <ludo@gnu.org>

	packages: Add 'patches' and related fields to <origin>.
	See <https://lists.gnu.org/archive/html/guix-devel/2013-09/msg00137.html>
	for the rationale.

	* guix/packages.scm (<origin>)[patches, patch-flags, patch-inputs,
	  patch-guile]: New fields.
	  (%standard-patch-inputs, default-guile, patch-and-repack): New
	  procedures.
	  (package-source-derivation): When 'patches' is non-empty, call
	  'patch-and-repack'.
	* guix/utils.scm (file-sans-extension): New procedure.

2013-10-08  Andreas Enge  <andreas@enge.fr>

	gnu: Add Qt 5.1.1.
	* gnu/packages/qt.scm (qt): New variable.

2013-10-07  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Cairomm.
	* gnu/packages/gtk.scm (cairomm): New variable.

2013-10-06  Ludovic Courtès  <ludo@gnu.org>

	Update 'AUTHORS'.
	* AUTHORS: Add Alex, Joshua, and Aljosha.

	Augment 'TODO'.

	gnu: Add alsa-utils.
	* gnu/packages/linux.scm (alsa-utils): New variable.

	gnu: xmlto: Keep references to libxml2, libxslt, and util-linux programs.
	* gnu/packages/xml.scm (xmlto): Add 'arguments' field.
	  [inputs]: Add libxml2 and libxslt.

	gnu: Gracefully handle circular dependencies between 'base' and 'linux'.
	* gnu/packages/base.scm (linux-libre-headers-boot0): Turn into a thunk.
	  User updated.

2013-10-06  Andreas Enge  <andreas@enge.fr>

	gnu: pari-gp: Update to 2.5.5.
	* gnu/packages/algebra.scm (pari-gp): Update to 2.5.5.

	gnu: mutt: Add input gpgme.
	* gnu/packages/mail.scm (mutt): Add input gpgme.

	gnu: Add gpgme.
	* gnu/packages/gnupg.scm (gpgme): New variable.

	gnu: icu4c: Patch RUNPATH of libraries.
	* gnu/packages/icu4c.scm (icu4c): Elf-patch RUNPATH of libraries, for instance
	    of libicuuc.so.

	gnu: cdparanoia: Fix links of internal libraries into binary.
	* gnu/packages/cdrom.scm (cdparanoia): Use patchelf to link internal libraries
	    into binary.

2013-10-06  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add libsigc++ and glibmm.
	* gnu/packages/glib.scm (libsigc++, glibmm): New variable.

2013-10-05  Ludovic Courtès  <ludo@gnu.org>

	gnu: gobject-introspection: Export via #:export.
	* gnu/packages/glib.scm: Export 'gobject-instrospection' via the
	  #:export clause.

2013-10-05  Joshua S. Grant  <youlysses@riseup.net>

	gnu: Add freeglut, glu, and FTGL.
	* gnu/packages/gl.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-10-05  Ludovic Courtès  <ludo@gnu.org>

	gnu: ao: Build PulseAudio back-end.
	* gnu/packages/oggvorbis.scm (ao): Add PulseAudio as an input.

	gnu: oggvorbis: Use #:export clause.
	* gnu/packages/oggvorbis.scm: Use #:export clause instead of
	  'define-public'.

	gnu: pulseaudio: Add dependency on libcap.
	* gnu/packages/pulseaudio.scm (pulseaudio): Add dependency on libcap.

	gnu: Add libcap.
	* gnu/packages/linux.scm (libcap): New variable.

	download: Add Debian mirrors.
	* guix/download.scm (%mirrors)[debian]: New set of mirrors.

	gnu: gnupg: Upgrade to 2.0.22.
	* gnu/packages/gnupg.scm (gnupg): Update to 2.0.22. This release fixes
	  security issue CVE-2013-4402 in the OpenPGP packet parser.

2013-10-04  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add PulseAudio and related libraries.
	* gnu/packages/pulseaudio.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	gnu: Add FFTW.
	* gnu/packages/algebra.scm (fftw): New variable.

2013-10-04  Andreas Enge  <andreas@enge.fr>

	gnu: Add libxkbcommon.
	* gnu/packages/qt.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	gnu: xorg: Add xcb-util-renderutil.
	* gnu/packages/xorg.scm (xcb-util-renderutil): New variable.

	gnu: xorg: Add xcb-util-keysyms.
	* gnu/packages/xorg.scm (xcb-util-keysyms): New variable.

	gnu: xorg: Add xcb-util-image.
	* gnu/packages/xorg.scm (xcb-util-image): New variable.

	gnu: xorg: Add xcb-util.
	* gnu/packages/xorg.scm (xcb-util): New variable.
	* gnu/packages/xorg.scm (xcb-util-wm): Expand the description.

2013-10-03  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Add xcb-util-wm.
	* gnu/packages/xorg.scm (xcb-util-wm): New variable.

2013-10-03  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Netcat.
	* gnu/packages/system.scm (netcat): New variable.

	monads: Allow resolution of a monad's bind/return at expansion time.
	* guix/monads.scm (<monad>): Turn in a raw SRFI-9 record type.
	  (define-monad): New macro.
	  (with-monad): Add a case for when MONAD is a macro.
	  (identity-return, identity-bind, store-return, store-bind): Inline.
	  (%identity-monad, %store-monad): Use 'define-monad'.
	* tests/monads.scm ("monad?"): New test.

	gnu: vm: Rewrite helper functions as monadic functions.
	* gnu/system/dmd.scm (host-name-service, nscd-service, mingetty-service,
	  syslog-service, guix-service, static-networking-service): Rewrite as
	  monadic functions.
	  (dmd-configuration-file): Use 'text-file' instead of
	  'add-text-to-store'.
	* gnu/system/grub.scm (grub-configuration-file): Rewrite as a monadic
	  function.
	* gnu/system/linux.scm (pam-services->directory): Likewise.
	* gnu/system/shadow.scm (group-file, passwd-file, guix-build-accounts):
	  Likewise.
	* gnu/system/vm.scm (expression->derivation-in-linux-vm, qemu-image,
	  union, system-qemu-image): Likewise.

	Add (guix monads).
	* guix/monads.scm: New file.
	* tests/monads.scm: New file.
	* Makefile.am (MODULES): Add guix/monads.scm.
	  (SCM_TESTS): Add tests/monads.scm.
	* doc/guix.texi (The Store Monad): New node.
	  (The Store): Reference it.

2013-10-03  Andreas Enge  <andreas@enge.fr>

	gnu: libxcb: Enable xcb-xkb.
	* gnu/packages/xorg.scm (libxcb): Add configure flag "--enable-xkb".

	gnu: gnome: Add brasero.
	* gnu/packages/gnome.scm (brasero): New variable; not totally usable due to
	    lacking inputs.

2013-10-02  Andreas Enge  <andreas@enge.fr>

	gnu: Add hicolor-icon-theme.
	* gnu/packages/gnome.scm (hicolor-icon-theme): New variable.

	gnu: gnome: Add gnome-icon-theme.
	* gnu/packages/gnome.scm (gnome-icon-theme): New variable.

	gnu: Add icon-naming-utils.
	* gnu/packages/gnome.scm (icon-naming-utils): New variable.

	gnu: Add perl-xml-simple.
	* gnu/packages/xml.scm (perl-xml-simple): New variable.

	gnu: gnome: Add gsettings-desktop-schemas.
	* gnu/packages/gnome.scm (gsettings-desktop-schemas): New variable.

	gnu: xnee: Drop input gtk+.
	* gnu/packages/xnee.scm (xnee): Drop unused input gtk+.

	gnu: itstool: Really push the modification announced in 9000d556.
	* gnu/packages/glib.scm (itstool): Do as announced in 9000d556.

	gnu: itstool: Add propagated inputs python-2 and libxml2.
	* gnu/packages/glib.scm (itstool): Add propagated input python-2; it is needed
	    to rewrite the shebang in the output python script and must be propagated
	    so that PYTHONPATH gets set when using itstool; and libxml2, imported as a
	    module by the script.

	gnu: Add libcanberra.
	* gnu/packages/libcanberra.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	gnu: libvorbis: Propagate input libogg.
	* gnu/packages/oggvorbis.scm (libvorbis): Propagate input libogg, as
	    stipulated by the pkg-config files.

	gnu: gnome: Add libnotify.
	* gnu/packages/gnome.scm (libnotify): New variable.

	gnu: racket: Revert input from gtk+-3 to gtk+-2.
	* gnu/packages/scheme.scm (racket): Revert input from gtk+-3 to gtk+-2.

2013-10-01  Andreas Enge  <andreas@enge.fr>

	gnu: gtk+: Propagate inputs.
	* gnu/packages/gtk.scm (gtk+): Propagate inputs at-spi2-atk, libxi and
	    libxinerama.

	gnu: Revert inputs from gtk+-3 to gtk+-2.
	* gnu/packages/cdrom.scm (dvdisaster): Replace input gtk+ by gtk+-2.
	* gnu/packages/emacs.scm (emacs): Replace input gtk+ by gtk+-2.
	* gnu/packages/geeqie.scm (geeqie): Replace input gtk+ by gtk+-2.
	* gnu/packages/gkrellm.scm (gkrellm): Replace input gtk+ by gtk+-2.
	* gnu/packages/mp3.scm (ripperx): Replace input gtk+ by gtk+-2.
	* gnu/packages/scheme.scm: Drop duplicate inclusion of module gtk.

	gnu: gtk+-2: Update to 2.24.21.
	* gnu/packages/gtk.scm (gtk+-2): Update to 2.24.21, add inputs perl and
	    python.

	gnu: Add Gtk+ 3.
	* gnu/packages/gtk.scm (gtk+): Switch to version 3.10.0.
	* gnu/packages/gtk.scm (gtk+-2): New name for version 2.24.20.

	gnu: Drop gtk+-3, erroneously pushed in the previous commit.
	* gnu/packages/gtk.scm (gtk+-3): Delete variable.

	gnu: Add at-spi2-atk.
	* gnu/packages/gtk.scm (at-spi2-atk): New variable.

	gnu: atk: Update to 2.10.0.
	* gnu/packages/gtk.scm (atk): Update to 2.10.0.

	gnu: Add at-spi2-core.
	* gnu/packages/gtk.scm (at-spi2-core): New variable.

2013-09-30  Andreas Enge  <andreas@enge.fr>

	gnu: libxi: Propagate inputs inputproto and libx11.
	* gnu/packages/xorg.scm (libxi): Propagate inputs inputproto and libx11,
	    as stipulated by xi.pc.

	gnu: glib: Update to 2.38.0.
	* gnu/packages/glib.scm (glib): Update to 2.38.0 and drop rewriting of GTESTER.
	* gnu/packages/patches/glib-tests-homedir.patch: Update patch for 2.38.0.
	* gnu/packages/patches/glib-tests-desktop.patch: Update patch for 2.38.0 and
	    drop test dbus-appinfo.

2013-09-29  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add gobject-introspection.
	* gnu/packages/glib.scm (gobject-introspection): New variable.

2013-09-29  Ludovic Courtès  <ludo@gnu.org>

	gnu: git: Add graphical tools to the "gui" output.
	* gnu/packages/version-control.scm (git): Add "gui" output.  Add Tcl/Tk
	  as inputs.  Add #:configure-flags.  Augment 'split' phase to handle
	  graphical user interfaces.

	gnu: git: Do not retain reference from "out" to Subversion.
	* gnu/packages/version-control.scm (git): Wrap 'git-svn', not 'git', for
	  PERL5LIB and LD_LIBRARY_PATH.

2013-09-29  Aljosha Papsch  <misc@rpapsch.de>

	Add httpd
	* gnu/packages/web.scm (httpd): New variable
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it

2013-09-29  Ludovic Courtès  <ludo@gnu.org>

	gnu: bzip2: Allow cross-compilation.
	Reported by Nikita Karetnikov <nikita@karetnikov.org>.

	* gnu/packages/compression.scm (bzip2): Add 'set-cross-environment'
	  phase for cross-compilation.

2013-09-29  Ludovic Courtès  <ludo@gnu.org>

	gnu: git: Add "svn" output for 'git-svn'.
	* gnu/packages/version-control.scm (git): Add SUBVERSION as an input.
	  Add 'split' phase.

	gnu: subversion: Install Perl bindings.
	* gnu/packages/version-control.scm (subversion): Add
	  'install-perl-bindings' phase.

	gnu: Add SWIG.
	* gnu/packages/swig.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	gnu: libmicrohttpd: Update to 0.9.30.
	* gnu/packages/gnunet.scm (libmicrohttpd): Update to 0.9.30.

	gnu: flex: Use Bison 2.7 for tests.
	* gnu/packages/bison.scm (bison): Move FLEX to 'inputs', and remove the
	  hack that turned off its test suite.
	* gnu/packages/flex.scm (flex): Add 'bison-for-tests' in 'inputs', and
	  use that to run the tests.

	Update 'pt_BR.po'.

2013-09-28  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Skribilo.
	* gnu/packages/skribilo.scm (skribilo): New variable.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	gnu: Add Guile-Cairo.
	* gnu/packages/gtk.scm (guile-cairo): New variable.

	gnu: xorriso: Update to 1.3.2.
	* gnu/packages/cdrom.scm (xorriso): Update to 1.3.2.

	gnu: lightning: Update to 2.0.1.
	* gnu/packages/lightning.scm (lightning): Update to 2.0.1.

	gnu: freeipmi: Update to 1.3.2.
	* gnu/packages/freeipmi.scm (freeipmi): Update to 1.3.2.

	gnu: gdb: Update to 7.6.1.
	* gnu/packages/gdb.scm (gdb): Update to 7.6.1.

2013-09-27  Ludovic Courtès  <ludo@gnu.org>

	gnu: bison: Update to 3.0.
	* gnu/packages/bison.scm (bison): Update to 3.0.  Make Perl a native
	  input.  Add a variant of Flex as a native input.  Use #:export instead
	  of 'define-public'.
	* gnu/packages/flex.scm (flex): Use #:export instead of 'define-public'.

	gnu: units: Update to 2.02.
	* gnu/packages/maths.scm (units): Update to 2.02.

	gnu: texinfo: Update to 5.2.
	* gnu/packages/texinfo.scm (texinfo): Update to 5.2.

	gnu: global: Update to 6.2.9.
	* gnu/packages/global.scm (global): Update to 6.2.9.

	build: Bump version to 0.5.
	* configure.ac: Switch to 0.5.

	gnu: guix: Update to 0.4.
	* gnu/packages/package-management.scm (guix): Update to 0.4.
	  (guix-0.4): Remove.
	* gnu/system/vm.scm (qemu-image, system-qemu-image): Use GUIX instead of
	  GUIX-0.4.

	gnu: vm: Remove erroneous store reference.
	* gnu/system/vm.scm (system-qemu-image): Remove reference from BOOT to
	  MINGETTY since MINGETTY may not be valid yet.

	Update '.po' files.

	gnu: vm: Add more packages to the profile.
	* gnu/system/vm.scm (system-qemu-image): Add grep, sed, and Findutils to
	  the profile.

2013-09-27  Nikita Karetnikov  <nikita@karetnikov.org>

	doc: Fix typos.
	* doc/guix.texi: Fix typos.

2013-09-27  Ludovic Courtès  <ludo@gnu.org>

	Update 'NEWS'.

2013-09-27  Ludovic Courtès  <ludo@gnu.org>

	gnu: module-init-tools: Remove reference to unavailable man page tarball.
	Fixes <http://bugs.gnu.org/15187>.
	Reported by Mark H. Weaver <mhw@netris.org>.

	* gnu/packages/linux.scm (module-init-tools): Remove reference to
	  Gentoo's pre-built man pages and 'unpack-man-pages' phase.  Add
	  'fake-docbook' phases.

2013-09-27  Ludovic Courtès  <ludo@gnu.org>

	Update 'NEWS'.

	gnu: guix: Remove warning about 0.4 hack.
	* gnu/packages/package-management.scm (guix-0.4): Remove warning.

	Merge branch 'core-updates'

	doc: Link from "guix gc" to '--delete-generations'.
	* doc/guix.texi (Invoking guix package): Mention that deleting
	  generations prevents roll-back.
	  (Invoking guix gc): Link to '--delete-generations'.

	guix package: '--delete-generations' deletes generations older than specified.
	* guix/scripts/package.scm (matching-generations): Add
	  'duration-relation' keyword parameter.
	  (guix-package)[process-action](delete-generations): Pass
	  #:duration-relation >.
	* tests/guix-package.sh: Add test.
	* doc/guix.texi (Invoking guix package): Clarify the meaning of
	  durations for '--list-durations' and '--delete-durations'.

	tests: Fix typo.
	* tests/guix-package.sh: Add missing "-p" option.

	gnu: vm: Add a few packages to the default profile.
	* gnu/system/vm.scm (system-qemu-image): Add procps, psmisc, and Zile to
	  the default profile.  Increase the image size to 550 MiB.

	gnu: dmd: Make the 'networking' service slightly more robust.
	* gnu/system/dmd.scm (static-networking-service)[start]: Sleep before
	  running 'route', to leave time for the interface to come up.
	  [stop]: Run "route del -net default".

	gnu: vm: Set the right permissions and ownership on directories.
	* gnu/system/vm.scm (qemu-image): Change the store's mode to #o1775.
	  Support 'populate' clauses that specify a UID and GID.
	  (system-qemu-image): Make sure /nix/store has owner 'root' and group
	  'guixbuild'.  Set the right owner for /home/guest.  Create
	  /var/nix/profiles/per-user/{root,guest}.

	gnu: linux-initrd: Mount /tmp as a tmpfs.
	* gnu/packages/linux-initrd.scm (gnu-system-initrd): Make sure /root/tmp
	  exists; mount it as a tmpfs.

	gnu: vm: Add build users.
	* gnu/system/shadow.scm (guix-build-accounts): New procedure.
	* gnu/system/vm.scm (system-qemu-image): Use it.  Add the "guixbuild"
	  group.
	* gnu/system/dmd.scm (guix-service): Add 'builder-group' parameter.
	  Pass 'guix-daemon' the '--build-users-group' option.

	gnu: vm: Add /etc/{services,protocols,rpc} to the image.
	* gnu/system/vm.scm (system-qemu-image): Link
	  /etc/{services,protocols,rpc}.  Add net-base as an input.

	Run 'guix' with '--no-auto-compile'.
	* scripts/guix.in: Change '-s' to '--no-auto-compile'.  This avoids
	  annoying messages about auto-compilation, and avoids permission denied
	  issues when running without write access in the usual places.

	gnu: vm: Add a 'guest' account.
	* gnu/system/vm.scm (system-qemu-image): Add a "guest" user and a
	  "users" user group.  Make /home/guest.  Add /etc/group.  Update
	  /etc/issue to mention it.

	gnu: shadow: Add record type for user groups.
	* gnu/system/shadow.scm (<user-group>): New record type.
	  (group-file): New procedure.
	* gnu/system/vm.scm (system-qemu-image): Use it.

	gnu: shadow: Add record type for user accounts.
	* gnu/system/shadow.scm (<user-account>): New record type.
	  (passwd-file): Use it.
	* gnu/system/vm.scm (system-qemu-image): Adjust accordingly.

	gnu: Add net-base.
	* gnu/packages/system.scm (net-base): New variable.

	build-system/trivial: Take the 'source' field into account.
	* guix/build-system/trivial.scm (trivial-build): When SOURCE is true,
	  add it to INPUTS.
	  (trivial-cross-build): Likewise.
	* tests/packages.scm ("trivial with source"): New test.

	gnu: vm: Set the default networking route.
	* gnu/system/dmd.scm (static-networking-service): Add #:gateway
	  parameter and honor it.
	* gnu/system/vm.scm (system-qemu-image): Pass #:gateway to
	  'static-networking-service'.

	gnu: Add net-tools.
	* gnu/packages/linux.scm (net-tools): New variable.

	gnu: dmd: Download from alpha.gnu.org.
	* gnu/packages/system.scm (dmd): Use the alpha.gnu.org URL.

2013-09-26  Andreas Enge  <andreas@enge.fr>

	gnu: harfbuzz: Update to 0.9.21.
	* gnu/packages/gtk.scm (harfbuzz): Update to 0.9.21.

	gnu: Add dvdisaster.
	* gnu/packages/cdrom.scm (dvdisaster): New variable.

2013-09-26  Nikita Karetnikov  <nikita@karetnikov.org>

	guix package: Add '--delete-generations'.
	* guix/scripts/package.scm (switch-to-previous-generation): New function.
	  (roll-back): Use the new function instead of 'switch-link'.
	  (show-help): Add '--delete-generations'.
	  (%options): Likewise.
	  (guix-package)[process-actions]: Add 'current-generation-number',
	  'display-and-delete', and 'delete-generation'.  Add support for
	  '--delete-generations', and reindent the code.
	* tests/guix-package.sh: Test '--delete-generations'.
	* doc/guix.texi (Invoking guix-package): Document '--delete-generations'.

	guix package: Add 'link-to-empty-profile'.
	* guix/scripts/package.scm (link-to-empty-profile): New function.
	  (roll-back): Use it.

	guix package: Exit with 0 when there is nothing to list.
	* guix/scripts/package.scm (guix-package)[process-query]: Exit with 0
	  when there are no generations containing packages or no profiles.

2013-09-26  Andreas Enge  <andreas@enge.fr>

	gnu: xf86-input-joystick: Fix installation path.
	* gnu/packages/xorg.scm (xf86-input-joystick): Fix installation path.

	gnu: xf86-input-vmmouse: Fix installation path.
	* gnu/packages/xorg.scm (xf86-input-vmmouse): Fix installation path.

	gnu: xf86-input-synaptics: Fix installation paths.
	* gnu/packages/xorg.scm (xf86-input-synaptics): Fix installation paths.

2013-09-26  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'master' into core-updates

	gnu: zile: Fix references to /bin/sh.
	* gnu/packages/zile.scm (zile): Add 'patch-/bin/sh' phase.  Move Perl
	  and help2man to 'native-inputs'.

	gnu: vm: Add nscd service.
	* gnu/system/dmd.scm (nscd-service): New procedure.
	* gnu/system/vm.scm (system-qemu-image): Use it.  Make /var/run/nscd.

2013-09-25  Ludovic Courtès  <ludo@gnu.org>

	packages: Make the 'output' parameter of 'package-output' optional.
	* guix/packages.scm (package-output): Make the 'output' parameter
	  optional.

	gnu: vm: Add 'networking' service.
	* gnu/system/vm.scm (system-qemu-image): Use
	  'static-networking-service'.  Add /etc/resolv.conf.  Add Inetutils to
	  the profile.
	* gnu/system/dmd.scm (static-networking-service): New procedure.

	gnu: vm: Register the profile as a GC root.
	* gnu/system/vm.scm (system-qemu-image): Register PROFILE as a GC root.

	gnu: vm: Add 'host-name' service.
	* gnu/system/dmd.scm (host-name-service): New procedure.
	  (mingetty-service): Require the 'host-name' service.
	* gnu/system/vm.scm (system-qemu-image): Add the 'host-name' service.
	  Set PS1 in /etc/bashrc to something sensible.

	gnu: vm: Add /etc/issue and a motd.
	* gnu/system/vm.scm (system-qemu-image): Build a 'motd' and an 'issue'
	  file.  Pass 'unix-pam-service' that motd.  Have /etc/issue point to
	  the 'issue' file.

	Update 'eo.po'.

	gnu: vm: Change #:populate to a list of directives.
	* gnu/system/vm.scm (qemu-image): Change 'populate' parameter to be a
	  list of directives.
	  (system-qemu-image): Adjust accordingly.

	gnu: vm: Add more ttys.
	* gnu/system/vm.scm (system-qemu-image): Add more ttys.

	gnu: vm: Change GRUB label.
	* gnu/system/vm.scm (system-qemu-image): Change GRUB label.

	gnu: vm: Make a union of the visible packages; add /etc/profile.
	* gnu/system/vm.scm (qemu-image): Add Guix as an input when
	  INITIALIZE-STORE?.
	  (union): New procedure.
	  (system-qemu-image): Use it.  Build /etc/profile.  Pass PROFILE among
	  #:inputs-to-copy instead of listing all the individual profiles.
	  Remove explicit 'build-derivations' call.

	gnu: vm: Support derivation objects as inputs.
	* gnu/system/vm.scm (expression->derivation-in-linux-vm)[input-alist]:
	  Add case for derivation? objects.
	  Same for #:inputs values.
	  (qemu-image)[input->name+derivation]: Likewise.

	Update 'NEWS'.

2013-09-25  Nikita Karetnikov  <nikita@karetnikov.org>

	guix package: Show which generation is the current one.
	* guix/scripts/package.scm (guix-package)[process-query]: Show that a
	  generation is the current one if the profile points to it.
	* tests/guix-package.sh: Test it.

	tests: Use 'test -z' to check that a string equals zero.

	guix package: Do not list the zeroth generation.
	* guix/scripts/package.scm (guix-package)[process-query]: Change
	  'list-generation' to not list the zeroth generation.
	* tests/guix-package.sh: Test it.
	* doc/guix.texi (Invoking guix package): Document it, and use the
	  right term when talking about generations.

	guix package: Exit with 1 when a generation cannot be listed.
	* guix/scripts/package.scm (guix-package)[process-query]: Exit with 1
	  when a generation does not exist or the profile points to the zeroth
	  generation.
	* tests/guix-package.sh: Test the former case.

2013-09-25  Andreas Enge  <andreas@enge.fr>

	gnu: libksba: Update to 1.3.0.
	* gnu/packages/gnupg.scm (libksba): Update to 1.3.0.

	gnu: libgcrypt: Update to 1.5.3
	* gnu/packages/gnupg.scm (libgcrypt): Update to 1.5.3.

	gnu: gnupg: Update to 2.0.21.
	* gnu/packages/gnupg.scm (gnupg): Update to 2.0.21.

	gnu: pspp: Update to 0.8.1.
	* gnu/packages/maths.scm (pspp): Update to 0.8.1.

	gnu: fontconfig: Add and register gs-fonts.
	* gnu/packages/fontutils.scm (fontconfig): Add gs-fonts as an input and
	    register it in the configuration file; so any porgram using fontconfig
	    should at least have the gs-fonts at its disposal.

2013-09-25  Ludovic Courtès  <ludo@gnu.org>

	gnu: m4: Upgrade to 1.4.17.
	* gnu/packages/m4.scm (m4): Upgrade to 1.4.17.  Remove
	  'm4-s_isdir.patch' and 'm4-gets-undeclared.patch'.
	* gnu/packages/patches/m4-s_isdir.patch: Remove.
	* gnu-system.am (dist_patch_DATA): Adjust accordingly.

	gnu: guix: Rework 0.4 hack to gracefully handle lack of tarball.
	* gnu/packages/package-management.scm (guix-0.4): Fall back to the
	  source of GIUX when the tarball doesn't exist.

2013-09-24  Ludovic Courtès  <ludo@gnu.org>

	gnu: vm: Add a service for the Guix daemon.
	* gnu/system/dmd.scm (guix-service): New procedure.
	* gnu/system/vm.scm (system-qemu-image): Use it.

	gnu: vm: Initialize the image's store.
	* gnu/system/vm.scm (qemu-image): Add 'initialize-store?' keyword
	  parameter.  Use 'guix-register' when INITIALIZE-STORE? is true.
	  (system-qemu-image): Pass #:initialize-store? #t.

	gnu: guix: Set $localstatedir; add gzip as input.
	* gnu/packages/package-management.scm (guix): Add "--localstatedir=/var".
	  Add GZIP as an explicit input, to avoid referring to the final gzip.

2013-09-24  Ludovic Courtès  <ludo@gnu.org>

	guix-register: Allow the initial directory creation to proceed.
	This fixes a bug whereby 'guix-register' would bail out when trying to
	create NIX_STORE_DIR/.links when NIX_STORE_DIR is read-only.

	* nix/guix-register/guix-register.cc (parse_opt): Initialize
	  'settings.nixStore' to PREFIX + NIX_STORE_DIR.
	  (main): Change 'settings.nixStore' once the 'LocalStore' has been
	  instantiated.

2013-09-24  Ludovic Courtès  <ludo@gnu.org>

	gnu: racket: Add dependency on GTK+.
	* gnu/packages/scheme.scm (racket): Add dependency on GTK+ and
	  gdk-pixbuf.

2013-09-24  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Fix xorg-server.
	* gnu/packages/xorg.scm (xkbcomp-intermediate): New variable, serves as
	    input to xkeyboard-config.
	* gnu/packages/xorg.scm (xkeyboard-config): Add input xkbcomp-intermediate.
	* gnu/packages/xorg.scm (xkbcomp): Add input xkeyboard-config.
	* gnu/packages/xorg.scm (xorg-server): Adapt xkb paths and replace references
	    to /bin/sh (with Ludovic Courtès <ludo@gnu.org>).

2013-09-23  Ludovic Courtès  <ludo@gnu.org>

	guix-register: Expect closures to refer to the original store.
	* nix/guix-register/guix-register.cc (prefix): New variable.
	  (parse_opt): Use it.
	  (register_validity): Change 'info.path' to the final store name.
	  Hash the final under its real path.
	* tests/guix-register.sh: Adjust the contents of $closure accordingly.
	  Rename 'NIX_LOCALSTATE_DIR' to 'NIX_STATE_DIR'.  Don't try to call
	  'valid-path?'.  Add test using 'sqlite3'.

2013-09-23  Alex Sassmannshausen  <alex.sassmannshausen@gmail.com>

	list-packages: Progressive Enhancement approach to JS.
	* build-aux/list-packages.scm (package->sxml): Add parameters previous,
	  description-ids and remaining, update docstring accordingly. Introduce logic
	  for fold-values process.
	  (insert-tr): Moved sxml package table-row generation to new function; remove
	  <a> elements and JS function calls. These are created through JS
	  (prep_pkg_descs). Add insert-js-call for every 15th package, and the last.
	  (insert-js-call): New function.
	  (packages->sxml): Change map to fold values; add init params.
	  (insert-js): show_hide: add compatibility check, introduce, use thingLink
	               prep: new JS function.
	               bulk_show_hide: new JS function.

2013-09-23  Andreas Enge  <andreas@enge.fr>

	gnu: mutt: Add SASL for authenticated SMTP.
	* gnu/packages/mail.scm (mutt): Add input cyrus-sasl.

2013-09-23  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'master' into core-updates

	build: check-available-binaries: Adjust to derivation API change.
	* build-aux/check-available-binaries.scm: Use 'derivation->output-path'
	  instead of 'derivation-path->output-path'.

	nar: Fix file descriptor leak when writing a Nar.
	* guix/nar.scm (write-contents)[call-with-binary-input-file]: Always
	  close PORT.

	doc: Document '--list-generations' among the query options.
	* doc/guix.texi (Invoking guix package): Move '--list-generations' below
	  "In addition to these actions".

2013-09-23  Ludovic Courtès  <ludo@gnu.org>

	guix package: Show most recently installed packages last.
	Suggested by Andreas Enge <andreas@enge.fr>.

	* guix/scripts/package.scm (guix-package)[list-generations,
	  list-installed]: Reverse the result of 'manifest-packages'.
	* doc/guix.texi (Invoking guix package): Document the order of packages
	  for '--list-generations' and '--list-installed'.

2013-09-23  Ludovic Courtès  <ludo@gnu.org>

	Add 'guix-register'.
	* nix/guix-register/guix-register.cc, tests/guix-register.sh: New
	  files.
	* Makefile.am (SH_TESTS)[BUILD_DAEMON]: Add tests/guix-register.sh.
	* daemon.am (sbin_PROGRAMS, guix_register_SOURCES,
	  guix_register_CPPFLAGS, guix_register_LDADD): New variables.
	* test-env.in: Export 'storedir', 'prefix', 'datarootdir', 'datadir',
	  and 'localstatedir'.

	build: Build the daemon with -Wall.
	* daemon.am (AM_CXXFLAGS): New variable.

2013-09-22  Andreas Enge  <andreas@enge.fr>

	gnu: Add mutt.
	* gnu/packages/mail.scm (mutt): New variable.

	gnu: Add fetchmail.
	* gnu/packages/mail.scm (fetchmail): New variable.

	gnu: Rename module mailutils to mail.
	* gnu/packages/mail.scm: Rename from gnu/packages/mailutils.scm.
	* gnu-system.am: Rename the module.

	gnu: Add gnome-doc-utils.
	* gnu/packages/gnome.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add module.

	gnu: Add gst-plugins-base.
	* gnu/packages/gstreamer.scm (gst-plugins-base): New variable.

	gnu: gstreamer: Depend on python-wrapper.
	* gnu/packages/gstreamer.scm (gstreamer): Replace input python by
	    python-wrapper.

	gnu: Add gstreamer.
	* gnu/packages/gstreamer.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add module.

	gnu: xcursor-themes: Install data into package output directory.
	* gnu/packages/xorg.scm (xcursor-themes): Install icons into output directory
	    instead of libxcursor.

	gnu: Add python2-pyicu.
	* gnu/packages/python.scm (python2-pyicu): New variable.

2013-09-21  Ludovic Courtès  <ludo@gnu.org>

	guix package: Sort the list of generation numbers in '--list-generations'.
	* guix/scripts/package.scm (generation-numbers): Sort the result.

	guix package: Internationalize "Generation" string.
	* guix/scripts/package.scm (guix-package): Internationalize generation
	  listing.

	Thank Cyrill.

2013-09-21  Ludovic Courtès  <ludo@gnu.org>

	pull: Adjust to 'derivation' API change.
	Fixes <http://bugs.gnu.org/15428>.
	Reported by Cyrill Schenkel <cyrill.schenkel@gmail.com>.

	* guix/scripts/pull.scm (guix-pull): 'unpack' returns a single value.

2013-09-21  Andreas Enge  <andreas@enge.fr>

	gnu: Add python-simplejson, python2-simplejson.
	* gnu/packages/python.scm (python-simplejson, python2-simplejson):
	    New variables.

2013-09-21  Ludovic Courtès  <ludo@gnu.org>

	gnu: python2-pysqlite: Fix 'license'.
	* gnu/packages/python.scm (python2-pysqlite): Refer to (@ (guix
	  licenses) zlib), not to the same-named package.

	gnu: QEMU images boots into dmd.
	* gnu/system/dmd.scm: New file.
	* gnu/system/vm.scm (system-qemu-image): Define dmd services.
	  [populate]: Make var/log and etc/group.
	  [boot]: Execute dmd directly.
	  Add dmd and etc-group as inputs; add the inputs of dmd services.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add gnu/system/dmd.scm.

	gnu: Add GNU dmd.
	* gnu/packages/system.scm (dmd): New variable.

2013-09-19  Nikita Karetnikov  <nikita@karetnikov.org>

	guix package: Add '--list-generations'.
	* guix/scripts/package.scm: Import (srfi srfi-19).
	  (generation-time, matching-generations): New functions.
	  (show-help): Add '--list-generations'.
	  (%options): Likewise.
	  (guix-package)[process-query]: Add support for '--list-generations'.
	* guix/ui.scm: Import (srfi srfi-19) and (ice-9 regex).
	  (string->generations, string->duration): New functions.
	* tests/guix-package.sh: Test '--list-generations'.
	* tests/ui.scm: Import (srfi srfi-19).
	  Test 'string->generations' and 'string->duration'.
	* doc/guix.texi (Invoking guix-package): Document '--list-generations'.

2013-09-19  Andreas Enge  <andreas@enge.fr>

	gnu: isl: Update urls.
	* gnu/packages/gcc.scm (isl): Update source and home page url.

2013-09-18  Ludovic Courtès  <ludo@gnu.org>

	hydra: Pass the directory name of the Nix checkout.
	* build-aux/hydra/guix.scm (hydra-jobs): Extract the 'file-name' item
	  from NIX-CHECKOUT, and pass that to 'tarball-package'.

	hydra: Fix typo.
	* build-aux/hydra/guix.scm (tarball-package): Unquote 'nix-checkout'.

	hydra: Add missing import.
	* build-aux/hydra/gnu-system.scm, build-aux/hydra/guix.scm: Use (guix
	  derivations).

	hydra: Return the .drv file names, not the <derivation> objects.
	* build-aux/hydra/gnu-system.scm (package->alist): Call
	  'derivation-file-name' on the result of 'package-derivation'.
	* build-aux/hydra/guix.scm (package->alist): Likewise.

	hydra: Point the Git submodule to our local copy.
	* build-aux/hydra/guix.scm (tarball-package): Add 'nix-checkout'
	  parameter.  Replace 'patch-bootstrap-script' phase by
	  'set-nix-module'.
	  (hydra-jobs): Get the 'nix' value from ARGUMENTS, and pass it to
	  'tarball-package'.

	derivations: 'derivation' and related procedures return a single value.
	* guix/derivations.scm (derivation->output-path,
	  derivation->output-paths): New procedures.
	  (derivation-path->output-path): Use 'derivation->output-path'.
	  (derivation-path->output-paths): Use 'derivation->output-paths'.
	  (derivation): Accept 'derivation?' objects as inputs.  Return a single
	  value.
	  (build-derivations): New procedure.
	  (compiled-modules): Use 'derivation->output-paths'.
	  (build-expression->derivation)[source-path]: Add case for when the
	  input matches 'derivation?'.
	  [prologue]: Accept 'derivation?' objects in INPUTS.
	  [mod-dir, go-dir]: Use 'derivation->output-path'.
	* guix/download.scm (url-fetch): Adjust to the single-value return.
	* guix/packages.scm (package-output): Use 'derivation->output-path'.
	* guix/scripts/build.scm (guix-build): When the argument is
	  'derivation-path?', pass it through 'read-derivation'.
	  Use 'derivation-file-name' to print out the .drv file names, and to
	  register them.  Use 'derivation->output-path' instead of
	  'derivation-path->output-path'.
	* guix/scripts/package.scm (roll-back): Adjust to the single-value
	  return.
	  (guix-package): Use 'derivation->output-path'.
	* guix/ui.scm (show-what-to-build): Adjust to deal with 'derivation?'
	  objects instead of .drv file names.
	* gnu/system/grub.scm (grub-configuration-file): Use
	  'derivation->output-path' instead of 'derivation-path->output-path'.
	* gnu/system/vm.scm (qemu-image, system-qemu-image): Likewise.
	* tests/builders.scm, tests/derivations.scm, tests/packages.scm,
	  tests/store.scm, tests/union.scm: Adjust to the new calling
	  convention.
	* doc/guix.texi (Defining Packages, The Store, Derivations): Adjust
	  accordingly.

	tests: Clarify filtering of the "debug" output.
	* tests/guix-package.sh: Clearly filter out the "debug" output of
	  'gnu-make-boot0'.

	derivations: Add a nicer printer.
	* guix/derivations.scm (<derivation>): Add a printer.

2013-09-17  Ludovic Courtès  <ludo@gnu.org>

	derivations: Keep the .drv file name in <derivation> objects.
	* guix/derivations.scm (<derivation>): Add 'file-name' field.
	  (%read-derivation): Use (port-filename DRV-PORT) as the file name for
	  the result.
	  (derivation): Set the 'file-name' field in the result.
	* tests/derivations.scm ("build derivation with 1 source"): Assert that
	  'derivation-file-name' returns the right thing.

2013-09-16  Ludovic Courtès  <ludo@gnu.org>

	gnu: dbus: Add dependency on libX11.
	* gnu/packages/glib.scm: Use #:export instead of 'define-public'.
	  (dbus): Add LIBX11 as an input.

2013-09-15  Ludovic Courtès  <ludo@gnu.org>

	gnu: glibc: Fix 'ldd' on x86_64.
	Reported by Cyril Roelandt at
	<https://lists.gnu.org/archive/html/guix-devel/2013-09/msg00136.html>.

	* gnu/packages/patches/glibc-ldd-x86_64.patch: New file.
	* gnu-system.am (dist_patch_DATA): Add it.
	* gnu/packages/base.scm (glibc): Use it.

2013-09-15  Ludovic Courtès  <ludo@gnu.org>

	utils: 'find-files' returns a sorted list.
	* guix/build/utils.scm (find-files): Sort the result lexicographically.
	* guix/scripts/pull.scm (unpack): Don't sort the result of 'find-files'.

2013-09-14  Andreas Enge  <andreas@enge.fr>

	Merge branch 'python'

2013-09-13  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Add '--help'.
	Reported by Nikita Karetnikov <nikita@karetnikov.org>.

	* guix/scripts/substitute-binary.scm (show-help): New procedure.
	  (guix-substitute-binary): Add '--help'.

2013-09-13  Ludovic Courtès  <ludo@gnu.org>

	gnu: gnutls: Upgrade to 3.2.4.
	* gnu/packages/gnutls.scm (gnutls): Update to 3.2.4; remove 'arguments'
	  field, remove "patch/fix-tests" from the inputs.
	* gnu/packages/patches/gnutls-fix-tests-on-32-bits-system.patch: Remove.
	* gnu-system.am (dist_patch_DATA): Adjust accordingly.

2013-09-13  Andreas Enge  <andreas@enge.fr>

	gnu: Add python2-mechanize.
	* gnu/packages/python.scm (python2-mechanize): New variable.

2013-09-13  Nikita Karetnikov  <nikita@karetnikov.org>

	guix package: Rename generation-related procedures.
	* guix/scripts/package.scm (profile-numbers): Rename to 'generation-numbers'.
	  (previous-profile-number): Rename to 'previous-generation-number'.
	  (profile-number): Rename to 'generation-number'.
	  (roll-back): Rename 'previous-profile' to 'previous-generation'.

2013-09-12  Andreas Enge  <andreas@enge.fr>

	gnu: Add python2-sqlite.
	* gnu/packages/python.scm (python2-sqlite): New variable.

2013-09-12  Ludovic Courtès  <ludo@gnu.org>

	Thank Matthias and Yutaka.

2013-09-12  Ludovic Courtès  <ludo@gnu.org>

	daemon: Use 'int' instead of the internal 'gcry_md_algo_t' type.
	Fixes compilation with the forthcoming libgcrypt 1.6.x.
	Reported by Matthias Wachs <wachs@net.in.tum.de>
	and NIIBE Yutaka <gniibe@fsij.org>.

	* nix/libutil/gcrypt-hash.cc (guix_hash_init, guix_hash_final): Use
	  'int' as the type of the 'algo' parameter.
	* nix/libutil/gcrypt-hash.hh: Update declarations accordingly.

2013-09-11  Ludovic Courtès  <ludo@gnu.org>

	gnu: avahi, dbus: Use /var as $localstatedir.
	* gnu/packages/avahi.scm (avahi): Pass '--localstatedir'; add
	  'patch/localstatedir'.
	* gnu/packages/glib.scm (dbus): Pass '--localstatedir' and
	  '--with-session-socket-dir'; add 'patch/localstatedir'.
	* gnu/packages/patches/avahi-localstatedir.patch,
	  gnu/packages/patches/dbus-localstatedir.patch: New files.
	* gnu-system.am (dist_patch_DATA): Add them.

2013-09-11  Andreas Enge  <andreas@enge.fr>

	gnu: Update python-babel, python2-babel to 1.3.
	* gnu/packages/python.scm (python-babel, python2-babel): Update to 1.3.

2013-09-11  Ludovic Courtès  <ludo@gnu.org>

	gnu: Move helper code to (gnu system …) modules.
	* gnu/packages/grub.scm (<menu-entry>, grub-configuration-file): Move
	  to...
	* gnu/system/grub.scm: ... here.  New file.
	* gnu/packages/linux.scm (<pam-service>, <pam-entry>,
	  pam-service->configuration, pam-service->directory,
	  %pam-other-services, unix-pam-service): Move to...
	* gnu/system/linux.scm: ... here.  New file.
	* gnu/system/vm.scm (passwd-file): Move to...
	* gnu/system/shadow.scm: ... here.  New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add
	  gnu/system/{grub,linux,shadow}.scm.

	gnu: vm: Remove potluck hacks.
	* gnu/system/vm.scm (example1): Remove.
	  (example2): Rename to...
	  (system-qemu-image): ... this.  Add 'store' parameter, and remove call
	  to 'open-connection'.

2013-09-11  Andreas Enge  <andreas@enge.fr>

	gnu: Add python-dateutil, python2-dateutil.
	* gnu/packages/python.scm (python-dateutil, python2-dateutil): New variables.

	guix: python: Create module installation path and add it to PYTHONPATH during   the installation phase.
	* guix/build/python-build-system.scm (get-python-version): New procedure.
	* guix/build/python-build-system.scm (install): Create and add path.
	* gnu/packages/python.scm (python-setuptools): Drop path creation code.

2013-09-11  Ludovic Courtès  <ludo@gnu.org>

	gnu: vm: Setup PAM.
	* gnu/system/vm.scm (example2): Use 'pam-services->directory'.  Change
	  POPULATE to create /etc/pam.d, /etc/login.defs, and /var/run.  Change
	  BOOT to spawn syslogd; boot to Bash.  Add inputs.

	gnu: vm: Create shadow files with the right format.
	* gnu/system/vm.scm (passwd-file): When SHADOW? is true, use the right
	  shadow(5) format.  Always add a trailing newline.

	linux-initrd: Create /dev/klog and /dev/kmsg.
	* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
	  /dev/klog and /dev/kmsg.

	gnu: linux-initrd: Fix typo.
	* gnu/packages/linux-initrd.scm (gnu-system-initrd): Add missing
	  argument to 'format' call.

	gnu: linux-pam: Add declarative PAM service interface.
	* gnu/packages/linux.scm (<pam-service>, <pam-entry>): New record
	  types.
	  (pam-service->configuration, pam-services->directory,
	  unix-pam-service): New procedures.
	  (%pam-other-services): New variable.

	store: The 'references' parameter of 'add-text-to-store' is now optional.
	* guix/store.scm (add-text-to-store): Make 'references' optional.
	* tests/store.scm ("dead-paths", "references"): Use 'add-text-to-store'
	  with no optional argument.
	* doc/guix.texi (The Store): Adjust accordingly.

2013-09-10  Andreas Enge  <andreas@enge.fr>

	gnu: Add python-setuptools, python2-setuptools.
	* gnu/packages/python.scm (python-setuptools, python2-setuptools):
	    New variables.

	guix: python: Do not import %standard-phases from gnu-build-system.
	* guix/build-system/python.scm (python-build): Drop module gnu-build-system.
	    Thanks to Ludovic Courtès <ludo@gnu.org>.

	gnu: isl: Update urls.
	* gnu/packages/gcc.scm (isl): Update source and home page url.

	guix: python: Add parameter #:phases to build system.
	* guix/build-system/python.scm (python-build): Use parameter #:phases.

2013-09-09  Ludovic Courtès  <ludo@gnu.org>

	gnu: vm: Copy /etc/shadow to the guest.
	* gnu/system/vm.scm (example2): Add SHADOW to #:inputs-to-copy.

2013-09-08  Ludovic Courtès  <ludo@gnu.org>

	gnu: vm: Create valid /etc/shadow and /etc/passwd.
	* gnu/system/vm.scm (/etc/passwd): Rename to...
	  (passwd-file): ... this. Add 'shadow?' keyword parameter.  Change
	  format of ACCOUNTS, and fix CONTENTS.
	  (example2): Adjust accordingly.  Create both /etc/shadow and
	  /etc/passwd, the latter being used by getpwnam(3) & co. when nscd is
	  not running.

	gnu: vm: Clear timestamps on the imported files, like in the store.
	* gnu/system/vm.scm (qemu-image): Clear timestamps on the copied files.

2013-09-08  Andreas Enge  <andreas@enge.fr>

	guix: python: Add package-with-python2, a procedure rewriting a package   to compile with Python 2 instead of the default Python 3.
	* guix/build-system/python.scm (default-python2, package-with-explicit-python,
	    package-with-python2): New procedures.
	* guix/build-system/python.scm (python2-pytz, python2-babel): Use
	    package-with-python2.

2013-09-08  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'master' into core-updates

	hydra: Support a 'subset' argument.
	* build-aux/hydra/gnu-system.scm (%core-packages): New variable.
	  (%packages-to-cross-build): Make an alias for %CORE-PACKAGES.
	  (hydra-jobs): Check for the 'subset' argument, and honor it for values
	  "all" and "core".

	gnu: glibc: Upgrade to 2.18.
	* gnu/packages/base.scm (glibc): Upgrade to 2.18.

	gnu: linux-libre: Upgrade to 3.11.
	* gnu/packages/linux.scm (linux-libre): Upgrade to 3.11.  Add bc as an
	  input.

2013-09-07  Ludovic Courtès  <ludo@gnu.org>

	gnu: grub: Add support for building configuration files.
	* gnu/packages/grub.scm (<menu-entry>): New record type.
	  (grub-configuration-file): New procedure.
	* gnu/system/vm.scm (qemu-image): Remove parameters 'linux',
	  'linux-arguments', and 'initrd'.  Add 'grub-configuration' parameter.
	  Honor them, and remove grub.cfg generation code accordingly.
	  (example2): Use `grub-configuration-file', and adjust accordingly.

	doc: Add "Data Types and Pattern Matching" to the Coding Style.
	* HACKING (Data Types and Pattern Matching): New section.

2013-09-07  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add the 'license:' prefix.
	* gnu/packages/glib.scm (itstool): Change 'gpl3+' to 'license:gpl3+'.

2013-09-06  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add itstool.
	* gnu/packages/glib.scm (itstool): New variable.

2013-09-05  Ludovic Courtès  <ludo@gnu.org>

	gnu: vm: Add /etc/shadow in the QEMU image.
	* gnu/system/vm.scm (qemu-image): Add 'populate' keyword parameter and
	  honor it; make it an input.
	  (/etc/shadow): New procedure.
	  (example2): Call it; build 'populate' script, and pass it to
	  'qemu-image'.

	gnu: vm: Remove unused 'qemu-image' argument.
	* gnu/system/vm.scm (qemu-image): Remove 'boot-expression' parameter,
	  superseded by 'linux-arguments'.

2013-09-05  Andreas Enge  <andreas@enge.fr>

	guix: python: Add build phase and factor out calls to setup.py.
	* guix/build/python-build-system.scm (call-setuppy): New procedure.
	* guix/build/python-build-system.scm (build): New procedure.
	* guix/build/python-build-system.scm (check, install): Use call-setuppy.
	* guix/build/python-build-system.scm (%standard-phases): Add call to build.

	gnu: python: Disable tests in python2-pytz and python2-babel.
	* gnu/packages/python.scm (python2-pytz, python2-babel): Disable tests.

	gnu: python: Disable tests in pytz and babel.
	* gnu/packages/python.scm (python-pytz, python-babel): Disable tests.

	gnu: python: Honour #:tests? and #:test-target in build system.
	* guix/build/python-build-system.scm (check): Use named parameters tests?
	    and test-target (default now: "test" instead of "check").

	gnu: git: Switch back to Python 2.
	* gnu/packages/version-control.scm (git): Switch back to Python 2.

2013-09-05  Ludovic Courtès  <ludo@gnu.org>

	gnu: vm: First stab at building a populated QEMU image.
	* gnu/packages/linux-initrd.scm (gnu-system-initrd): New variable.
	* gnu/system/vm.scm (qemu-image): Add #:linux-arguments parameter.
	  [input->name+derivation]: Add case for 'store-path?' items.
	  Remove LOADER from `inputs'.

	gnu: linux-initrd: Fix creation of /dev/tty nodes.
	* guix/build/linux-initrd.scm (make-essential-device-nodes): Make
	  /dev/tty.  Change from 'block-special' to 'char-special' for /dev/tty*
	  nodes.

	gnu: vm: 'qemu-image' populates /dev on the target root file system.
	* gnu/system/vm.scm (qemu-image): Use (guix build linux-initrd).  Remove
	  'mknod' calls; use 'make-essential-device-nodes' to populate /dev on
	  the target image.
	* gnu/packages/linux-initrd.scm (qemu-initrd): When /root/dev exists,
	  don't call 'make-essential-device-nodes'.

2013-09-04  Andreas Enge  <andreas@enge.fr>

	gnu: python: Implement the python naming scheme for pytz and babel.
	* gnu/packages/python.scm (pytz): Rename this ...
	* gnu/packages/python.scm (python-pytz): ... to this
	* gnu/packages/python.scm (python2-pytz): New variable, input python-2.
	* gnu/packages/python.scm (babel): Rename this ...
	* gnu/packages/python.scm (python-babel): ... to this
	* gnu/packages/python.scm (python2-babel): New variable, input python-2.

	gnu: subversion: Switch back to Python 2.
	* gnu/packages/version-control.scm (subversion): Switch back to Python 2.

	gnu: qemu: Switch back to Python 2.
	* gnu/packages/qemu.scm (qemu): Switch back to Python 2.

	gnu: texlive: Switch back to Python 2.
	* gnu/packages/texlive.scm (texlive): Switch back to Python 2.

	gnu: rubber: Switch back to Python 2.
	* gnu/packages/texlive.scm (rubber): Switch back to Python 2.

	gnu: mesa: Switch back to Python 2.
	* gnu/packages/xorg.scm (mesa): Switch back to Python 2.

	gnu: libxml2: Switch back to Python 2.
	* gnu/packages/xml.scm (libxml2): Switch back to Python 2.

	gnu: zziplib: Switch back to Python 2.
	* gnu/packages/zip.scm (zziplib): Switch back to Python 2.

	gnu: bazaar: Switch back to Python 2.
	* gnu/packages/version-control.scm (bazaar): Switch back to Python 2.

	guix: python: Switch to python-wrapper as the default version for the python   build system (switches to Python 3) and compute python-version instead of   passing it as a parameter.
	* guix/build-system/python.scm (default-python): Switch to python-wrapper.
	* guix/build-system/python.scm (python-build): Drop parameter #:python-version.
	* guix/build/python-build-system.scm (wrap): Compute python version from input.

	gnu: xorg: Update comment for mesa.
	* gnu/packages/xorg.scm (mesa): New compilation trial with 9.2.

	gnu: libdrm: Update to 2.4.46.
	* gnu/packages/xorg.scm (libdrm): Update to 2.4.46.

2013-09-03  Ludovic Courtès  <ludo@gnu.org>

	hydra: Add Graphviz as an input to the "tarball" job.
	* build-aux/hydra/guix.scm (tarball-package): Add GRAPHVIZ to
	  `native-inputs'.

2013-09-03  Andreas Enge  <andreas@enge.fr>

	gnu: python: Replace input python by python-wrapper.
	* gnu/packages/{gdb.scm (gdb), cryptsetup.scm (cryptsetup),
	  ghostscript.scm (ghostscript), glib.scm (glib), gnupg.scm (pius),
	  gtk.scm (cairo, harfbuzz), libevent.scm (libevent), netpbm.scm (netpbm),
	  oggvorbis.scm (libkate), qemu.scm (qemu), samba.scm (samba),
	  texlive.scm (rubber, texlive), version-control.scm (subversion),
	  xml.scm (libxml2, libxslt), xorg.scm (libxcb, mesa, xcb-proto, xorg-server),
	  yasm.scm (yasm), zip.scm (zziplib)}:
	  Replace input python by python-wrapper.

2013-09-03  Ludovic Courtès  <ludo@gnu.org>

	hydra: Add Git as an input to the "tarball" job.
	* build-aux/hydra/guix.scm (tarball-package): Add `native-inputs' field.

2013-09-03  Andreas Enge  <andreas@enge.fr>

	gnu: python: Add package python-wrapper.
	* gnu/packages/python.scm (python-wrapper): New variable.

2013-09-03  Ludovic Courtès  <ludo@gnu.org>

	pull: Compile files in the lexicographic order.
	* guix/scripts/pull.scm (unpack): Print the name of the file being
	  compiled.  Sort the names of files to compile.

	build-system/cmake: Fix typo.
	* guix/build-system/cmake.scm (default-cmake): Add missing quote.

	build-system/gnu: Delay resolution of (@ (gnu packages cmake) cmake).
	* guix/build-system/cmake.scm (default-cmake): New procedure.
	  (cmake-build): Use it.

2013-09-02  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Show the Nar size, when available.
	* guix/scripts/substitute-binary.scm (guix-substitute-binary)["--substitute"]:
	  Show the Nar size, when available.
	* guix/ui.scm (show-what-to-build): Add 'TODO'.

2013-09-02  Ludovic Courtès  <ludo@gnu.org>

	union: Don't traverse sub-directories only found in one element of the union.
	This significantly reduces I/O when building profiles, especially with
	lots of package-specific sub-directories (such as 'share/emacs/24.3',
	'texmf', etc.)

	* guix/build/union.scm (union-build)[file-tree](others-have-it?): New
	  procedure.  Use it in the 'enter?' parameter of 'file-system-fold';
	  change 'skip' parameter accordingly.
	* tests/union.scm ("union-build"): Ensure that 'include' is a symlink
	  and 'bin' is a directory.

2013-09-02  Ludovic Courtès  <ludo@gnu.org>

	gnu: lzo: Build the shared library.
	* gnu/packages/compression.scm (lzo): Build the shared library.

2013-09-02  Andreas Enge  <andreas@enge.fr>

	gnu: python: Revert 77c7f8f4 and make Python 3 the default.
	* gnu/packages/python.scm (python-3): Rename this to...
	* gnu/packages/python.scm (python): ...this, rename this to...
	* gnu/packages/python.scm (python-2): ...this.

2013-09-02  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add dfc.
	* gnu/packages/system.scm (dfc): New variable.

	gnu: Add htop.
	* gnu/packages/system.scm (htop): New variable.

2013-09-02  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add mingetty.
	* gnu/packages/system.scm (mingetty): New variable.

	store: Add a printer for <nix-server>.
	* guix/store.scm (<nix-server>): Set a printer.

	gnu: linux-initrd: Factorize device node creation.
	* guix/build/linux-initrd.scm (make-essential-device-nodes): New
	  procedure.
	* gnu/packages/linux-initrd.scm (qemu-initrd): Use it.

2013-09-01  Andreas Enge  <andreas@enge.fr>

	gnu: Add git.
	* gnu/packages/version-control.scm (git): New variable.

	gnu: cairo: Update to 1.12.16.
	* gnu/packages/gtk.scm (cairo): Update to 1.12.16.

	gnu: Update harfbuzz to 0.9.20.
	* gnu/packages/gtk.scm (harfbuzz): Update to 0.9.20.

	gnu: python: Temporarily make python 2 the default.
	* gnu/packages/python.scm (python-2): Rename this to...
	* gnu/packages/python.scm (python): ...this, rename this to...
	* gnu/packages/python.scm (python-3): ...this. Reverts to version 2 as the
	  default input for packages requiring Python.

2013-08-31  Ludovic Courtès  <ludo@gnu.org>

	gnu: vm: `qemu-image' can copy store closures into the target image.
	* gnu/system/vm.scm (qemu-image): Add #:inputs-to-copy and
	  #:boot-expression parameters.  Honor them.  Append INPUTS-TO-COPY to
	  the #:inputs argument for `expression->derivation-in-linux-vm'.
	  (example2): Add #:boot-expression and #:inputs-to-copy arguments.

	gnu: `expression->derivation-in-linux-vm' accepts files as inputs.
	* gnu/system/vm.scm (expression->derivation-in-linux-vm): Accept items
	  in INPUTS that refer to a file instead of a package.

	gnu: `expression->derivation-in-linux-vm' export references graphs.
	* gnu/system/vm.scm (expression->derivation-in-linux-vm): Add
	  #:reference-graphs parameter.  Honor it.  Delete duplicates in
	  #:modules argument.

	gnu: linux-initrd: Make device nodes for QEMU's hard disk.
	* gnu/packages/linux-initrd.scm (qemu-initrd): Make /dev/vda*.

	gnu: linux-initrd: Make Guile modules accessible in the chroot.
	* gnu/packages/linux-initrd.scm (qemu-initrd): Add (guix build utils) to
	  #:modules, and use it.  Copy .scm and .go files to /root.
	* guix/build/linux-initrd.scm (bind-mount): New procedure.

2013-08-31  Andreas Enge  <andreas@enge.fr>

	gnu: python: Adapt native-search-paths for Python 3.3.
	* gnu/packages/python.scm (python): Modify native-search-paths.

	gnu: Add Python 3.
	*  gnu/packages/python.scm (python-2): Rename from python for version 2.
	*  gnu/packages/python.scm (python): New variable for version 3.

	gnu: Add yasm.
	* gnu/packages/yasm.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add module.

	gnu: Add xmlto.
	* gnu/packages/xml.scm (xmlto): New variable.

	gnu: Add dbus-glib.
	* gnu/packages/glib.scm (dbus-glib): New variable.

	gnu: pari-gp: Update to 2.5.4.
	* gnu/packages/algebra.scm (pari-gp): Update to 2.5.4.

	gnu: gsl: Disable numerically unstable test on i686.
	* gnu/packages/maths.scm (gsl): Disable test.

	doc: Stylistic changes to "Packaging Guidelines"

2013-08-30  Ludovic Courtès  <ludo@gnu.org>

	doc: Add note about .dir-locals.el.
	* HACKING (Coding Style): Mention special indentation rules and
	  .dir-locals.el.

	doc: Add a "Coding Style" section in 'HACKING'.
	* HACKING (Coding Style): New section.

	doc: Remove "Adding new packages" from `HACKING'.
	* HACKING (Adding new packages): Remove since it's now in the manual.

2013-08-30  Nikita Karetnikov  <nikita@karetnikov.org>

	doc: Remove an extra space after @ref.

2013-08-30  Ludovic Courtès  <ludo@gnu.org>

	gnu: hop: Allow compilation with Bigloo 4.0b.
	Fixes <http://bugs.gnu.org/15194>.
	Reported by Mark H Weaver <mhw@netris.org>.

	* gnu/packages/patches/hop-bigloo-4.0b.patch: New file.
	* gnu-system.am (dist_patch_DATA): Add it.
	* gnu/packages/scheme.scm (hop): Use it.

2013-08-29  Andreas Enge  <andreas@enge.fr>

	doc: Add duplicate copyright notice again.
	* doc/guix.texi: Add second copyright notice again inside @ifinfo, needed
	  since the first one does not appear in the info output.
	  Partially undoes commit da7cabd.

2013-08-29  Ludovic Courtès  <ludo@gnu.org>

	doc: Fix the image size in PDF/PS/DVI output.
	* doc/guix.texi (Bootstrapping): Specify an image width for the TeX
	  output.  Before that, the image would be much wider than the US Letter
	  page width.

	build: Have `pdf' depend on the PDF image.
	* doc.am (DOT_OPTIONS): Remove `-Tpng'.
	  (.dot.pdf): New rule.
	  (pdf-local): Depend on the .pdf.

	build: Use `missing' for `dot'.
	* configure.ac: Substitute `DOT'.
	* doc.am (.dot.png, .dot.eps): Use $(DOT).

2013-08-29  Ludovic Courtès  <ludo@gnu.org>

	build: Build docs from the top-level Makefile.
	This undoes commit 575ed8d ("doc: Create own Makefile.am in subdirectory."),
	and fixes a bug whereby "make pdf" or "make ps" wouldn't do anything.

	* doc/Makefile.am: Remove.
	* doc.am: New file.  Use `-local' rules to build the image.
	* Makefile.am: Include it.
	* configure.ac: Use `-Woverride' to avoid undesired overridding of
	  Automake rules.

2013-08-29  Andreas Enge  <andreas@enge.fr>

	gnu: gsl: Move from module algebra to maths.
	* gnu/packages/algebra.scm (gsl): Move variable from here...
	* gnu/packages/maths.scm (gsl): ...to here.

2013-08-29  Ludovic Courtès  <ludo@gnu.org>

	gnu: linux-initrd: Add (guix build linux-initrd) and use it.
	* gnu/packages/linux-initrd.scm (qemu-initrd): Add #:modules argument.
	  Factorize and move some of the code to...
	* guix/build/linux-initrd.scm: ... here.  New file.
	* Makefile.am (MODULES): Add it.

	gnu: make-bootstrap: Remove the `debug' output from the static Coreutils.
	* gnu/packages/make-bootstrap.scm (%static-inputs)[coreutils]: Add
	  `outputs' field.

	gnu: linux-initrd: Allow Guile modules to be embedded in the initrd.
	* gnu/packages/linux-initrd.scm (raw-build-system): New macro.
	  (module-package, compiled-module-package): New procedures.
	  (expression->initrd): Add `modules' keyword parameter.
	  Add "modules" and "modules/compiled" inputs; copy them onto the
	  initrd.
	* guix/derivations.scm (imported-modules, compiled-modules): Publicize.

2013-08-28  Andreas Enge  <andreas@enge.fr>

	gnu: imagemagick: Update to 6.8.6-9.
	* gnu/packages/imagemagick.scm (imagemagick): Update to 6.8.6-9.

	doc: Add package guidelines for names and numbers.
	* doc/guix.texi: Three new subsections.

	doc: Shuffle some text around.
	* doc/guix.texi: Drop duplicate copyright notice, start section
	    "Packaging Guidelines" with existant text.

	doc: Create own Makefile.am in subdirectory.
	* doc/Makefile.am: New file.
	* Makefile.am: Reference subdirectory doc.

2013-08-28  Alex Sassmannshausen  <alex.sassmannshausen@gmail.com>

	list-packages: Tidy CSS in preparation for split into external file.
	* build-aux/list-packages.scm (insert-css): Tidy CSS alignment etc.

2013-08-28  Ludovic Courtès  <ludo@gnu.org>

	vm: Use more keyword parameters for `expression->derivation-in-linux-vm'.
	* gnu/system/vm.scm (expression->derivation-in-linux-vm): Turn `system'
	  and `inputs' into keyword parameters.
	  (qemu-image, example1): Adjust accordingly.

	derivations: Rename #:dependency-graphs to #:references-graphs.
	* guix/derivations.scm (derivation, build-expression->derivation):
	  Rename #:dependency-graphs to #:references-graphs, for consistency in
	  the terminology.
	* tests/derivations.scm: Adjust accordingly.

2013-08-27  Andreas Enge  <andreas@enge.fr>

	gnu: Update python to 2.7.5.
	* gnu/packages/python.scm (python): Update to 2.7.5.

2013-08-26  Ludovic Courtès  <ludo@gnu.org>

	doc: Change `HACKING' to refer to guix-devel@gnu.org.
	Reported by Alex Sassmannshausen <alex.sassmannshausen@gmail.com>.

	* HACKING: Replace "bug-guix" by "guix-devel".

2013-08-26  Ludovic Courtès  <ludo@gnu.org>

	derivations: Add #:dependency-graphs to `build-expression->derivation'.
	* guix/derivations.scm (build-expression->derivation): Add
	  #:dependency-graphs keyword argument.  Pass it to `derivation'.
	* tests/derivations.scm ("build-expression->derivation with
	  #:dependency-graphs"): New test.
	* doc/guix.texi (Derivations): Update `build-expression->derivation'
	  description.

	derivations: Add #:dependency-graphs `derivation' parameter.
	* guix/derivations.scm (derivation): Add `dependency-graphs' keyword
	  parameter; honor it.
	* tests/derivations.scm (bootstrap-binary): New procedure.
	  (%bash): Use it.
	  (%mkdir): New variable.
	  (directory-contents): Add `slurp' optional parameter.
	  ("derivation with #:dependency-graphs"): New test.
	* doc/guix.texi (Derivations): Update accordingly.

	derivations: Move 3 positional parameters into keyword parameters.
	* guix/derivations.scm (derivation): Turn `system', `env-vars', and
	  `inputs' into keyword parameters.
	  (build-expression->derivation): Adjust accordingly.
	* gnu/packages/bootstrap.scm (%bootstrap-guile): Likewise.
	* tests/derivations.scm, tests/store.scm: Likewise.
	* doc/guix.texi (Derivations): Likewise.

	gnu: Add Guile-Lib.
	* gnu/packages/guile.scm (guile-lib): New variable.

2013-08-25  Ludovic Courtès  <ludo@gnu.org>

	download: Add kernel.org mirrors.
	Fixes <http://bugs.gnu.org/15182>.
	Reported by Mark H Weaver <mhw@netris.org>.

	* guix/download.scm (%mirrors)[kernel.org]: Add ftp.be.debian.org and
	  mirror.linux.org.au.

2013-08-25  Ludovic Courtès  <ludo@gnu.org>

	hydra: Comment out all Git invocations in `bootstrap'.
	* build-aux/hydra/guix.scm (tarball-package): Comment out all `git'
	  invocations.

	hydra: Add missing import.
	* build-aux/hydra/guix.scm: Use (srfi srfi-26).

	hydra: Add missing import.
	* build-aux/hydra/guix.scm: Use (srfi srfi-26).

	hydra: Return a symbol/thunk pair.
	* build-aux/hydra/guix.scm (hydra-jobs): Return a symbol/thunk pair.

	gnu: pius: Use the right `gpg' binary.
	* gnu/packages/gnupg.scm (pius): Add GnuPG as an input.  Patch the
	  installed binaries to refer to the right GnuPG executable.  Fix
	  synopsis.

2013-08-24  Ludovic Courtès  <ludo@gnu.org>

	hydra: Extract the actual file name from the Guix checkout.
	* build-aux/hydra/guix.scm (hydra-jobs): Extract the `file-name' part of
	  CHECKOUT.

	hydra: Add job to run "make distcheck" on Guix.
	* build-aux/hydra/guix.scm: New file.
	* Makefile.am (EXTRA_DIST): Add it.

	gnu: Add Guix.
	* gnu/packages/package-management.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	build-system/gnu: Add `dist-package'.
	* guix/build/gnu-dist.scm: New file.
	* Makefile.am (MODULES): Add it.
	* guix/build-system/gnu.scm (%default-modules): New variable.
	  (gnu-build): Use it.
	  (dist-package): New procedure.

	packages: Allow file names as package sources.
	* guix/packages.scm (package-source-derivation): Add cases for SOURCE as
	  a store path or user file.
	* tests/packages.scm ("package-source-derivation, file",
	  "package-source-derivation, store path"): New tests.

	doc: Mention what's in the chroot, and add a caveat about /dev/shm.
	* doc/guix.texi (Setting Up the Daemon): Document the default content of
	  the chroot, and the /dev/shm caveat.

2013-08-24  Andreas Enge  <andreas@enge.fr>

	gnu: Add pspp.
	* gnu/packages/maths.scm (pspp): New variable.
	* THANKS: Thank John Darrington for help with debugging.

	gnu: Add libmicrohttpd.
	* gnu/packages/gnunet.scm (libmicrohttpd): New variable.

	gnu: Add units.
	* gnu/packages/maths.scm: New module.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add module.

	gnu: Add libextractor.
	* gnu/packages/gnunet.scm: New module.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add module.
	* THANKS: Thank Christian Grothoff for help with debugging.

	gnu: Add gkrellm.
	* gnu/packages/gkrellm.scm: New module.
	* gnu/packages/gnu-system.am (GNU_SYSTEM_MODULES): Add module.

2013-08-24  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Valgrind.
	* gnu/packages/valgrind.scm, gnu/packages/patches/valgrind-glibc.patch:
	  New files.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add valgrind.scm.
	  (dist_patch_DATA): Add valgrind-glibc.patch.

	gnu: Add GNU lightning.
	* gnu/packages/lightning.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

2013-08-23  Ludovic Courtès  <ludo@gnu.org>

	gnu: tzdata: Fix hash of tzcode tarball.
	Fixes <http://bugs.gnu.org/15153>.

	* gnu/packages/base.scm (tzdata): Update tzcode hash, which was modified
	  upstream.

2013-08-23  Ludovic Courtès  <ludo@gnu.org>

	utils: Add `guile-version>?', and use it.
	This fixes Guile version comparisons when (version) has a
	vendor-specific suffix.

	Reported by Andreas Enge <andreas@enge.fr>.

	* guix/utils.scm (guile-version>?): New procedure.
	* tests/utils.scm ("guile-version>? 1.8", "guile-version>? 10.5"): New
	  tests.
	* guix/scripts/substitute-binary.scm (fetch, progress-report-port): Use
	  `guile-version>?' instead of `version>?'.
	* guix/http-client.scm (when-guile<=2.0.5, http-fetch): Likewise.

2013-08-23  Ludovic Courtès  <ludo@gnu.org>

	gnu: Have `qemu-image' explicitly reboot when done.
	* gnu/system/vm.scm (qemu-image): Call `reboot' when we're done.  Change
	  `menuentry' title.

	Add TODO item.

2013-08-22  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Try hard to avoid port buffering.
	* guix/scripts/substitute-binary.scm (fetch): In the `file' case, open
	  with the `b' flag, so that the coding cookie reading thing doesn't
	  lead to buffering some of the data (on 2.0.5).
	* tests/utils.scm ("filtered-port, file"): Open with `r0b'.  Fixes a
	  test failure with Guile 2.0.5 whereby the first byte of FILE would be
	  missing from DECOMPRESSED.

2013-08-21  Ludovic Courtès  <ludo@gnu.org>

	gnu: guile-ncurses: Install modules under .../site/2.0.
	* gnu/packages/guile.scm (guile-ncurses): Append /2.0 to `guilesitedir'.

2013-08-21  Andreas Enge  <andreas@enge.fr>

	gnu: indent: Cosmetic change.
	* gnu/packages/indent.scm (indent): Use #:renamer on licenses to be better
	    suited as an example for packaging.

2013-08-21  Ludovic Courtès  <ludo@gnu.org>

	gnu: make-bootstrap: Add a couple of synopses.
	* gnu/packages/make-bootstrap.scm (%guile-static,
	  %guile-static-stripped): Add synopsis.

	gnu: guile-static-stripped: Make sure the resulting binary works.
	* gnu/packages/make-bootstrap.scm (%guile-static-stripped): When
	  compiling natively, make sure the final binary works.

2013-08-21  Ludovic Courtès  <ludo@gnu.org>

	gnu: guile-static: Add missing hunk in guile-default-utf8.patch.
	Before that, the ‘guile’ binary from ‘guile-static-stripped’ would abort
	as it tries and fails to open an iconv descriptor for ISO-8859-1.

	* gnu/packages/patches/guile-default-utf8.patch: Add missing hunk for
	  Guile 2.0.9.

2013-08-21  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Don't pretend to report download progress on Guile 2.0.5.
	* guix/scripts/substitute-binary.scm (progress-report-port): On Guile
	  2.0.5, return PORT directly and emit a warning.

2013-08-21  Ludovic Courtès  <ludo@gnu.org>

	gnu: grub: Use older QEMU to run the test suite.
	Fixes build failure <http://hydra.gnu.org/build/16064>.

	* gnu/packages/grub.scm (qemu-for-tests): New variable.
	  (grub): Use it.

2013-08-21  Ludovic Courtès  <ludo@gnu.org>

	gnu: qemu: Install the Info manuals.
	* gnu/packages/qemu.scm (qemu): Add `install-info' phase.  Add Texinfo
	  as an input.

2013-08-20  Andreas Enge  <andreas@enge.fr>

	gnu: Move non-X11 fonts from module xorg to fonts.
	* gnu/packages/fonts.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add module fonts.
	* gnu/packages/xorg.scm (font-bitstream-vera-ttf): Move this...
	* gnu/packages/fonts.scm (ttf-bitstream-vera): ...to this.
	* gnu/packages/xorg.scm (freefont-ttf): Move this...
	* gnu/packages/fonts.scm (freefont-ttf): ...to this.

	gnu: xorg: Shorten commented out packages.
	* gnu/packages/xorg.scm: Shorten package definitions that are already
	    commented out, keeping only the reason for not including them.

	gnu: xorg: Remove non-free font font-bh-ttf/font-luxi-ttf.
	* gnu/packages/xorg.scm (font-luxi-ttf): Comment out variable.

2013-08-20  Ludovic Courtès  <ludo@gnu.org>

	gnu: glib: Add `file' as a propagated input.
	* gnu/packages/glib.scm (intltool): Add FILE as an input.

	gnu: Add exiv2 and Geeqie.
	* gnu/packages/geeqie.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	gnu: bigloo: Update to 4.0b.
	* gnu/packages/scheme.scm (bigloo): Update to 4.0b.  Patch the
	  `configure-gc' scripts.  Remove `patch-absolute-file-names' phase.
	* gnu/packages/patches/bigloo-gc-shebangs.patch: Adjust to new version.

2013-08-19  Cyril Roelandt  <tipecaml@gmail.com>

	list-packages: properly specify the size of images.
	* build-aux/list-packages.scm (package->sxml, packages->sxml): specify the size
	  of images in pixels (see
	  http://www.w3.org/TR/html5/embedded-content-0.html#attr-dim-height)

2013-08-19  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add GNU Ocrad.
	* gnu/packages/ocrad.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	gnu: freefont: Synchronize synopsis.
	* gnu/packages/xorg.scm (freefont-ttf): Synchronize synopsis with the
	  Womb.

2013-08-19  Alex Sassmannshausen  <alex.sassmannshausen@gmail.com>

	list-packages: Add missing closing </div> after footer include.
	* build-aux/list-packages.scm (list-packages): Add missing closing </div>
	  after footer include.

2013-08-17  Cyril Roelandt  <tipecaml@gmail.com>

	list-packages: Remove a useless "colspan" attribute.
	* build-aux/list-packages.scm (package->sxml): remove a useless "colspan"
	  attribute.

	list-packages: Add an "alt" attribute for the logos.
	* build-aux/list-packages.scm (package->sxml): add an alternative text for the
	  logos of the packages.

2013-08-17  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Shadow.
	* gnu/packages/system.scm (shadow): New variable.

	gnu: linux-pam: Install headers under $includedir/security.
	* gnu/packages/linux.scm (linux-pam): Add `--includedir' configure flag.

	gnu: Add GNU Freefont.
	* gnu/packages/xorg.scm (freefont-ttf): New variable.

2013-08-16  Ludovic Courtès  <ludo@gnu.org>

	gnu: Remove QEMU-KVM, which is no longer needed.
	* gnu/packages/qemu.scm (qemu-kvm): Remove.
	  (qemu): Incorporate parts of QEMU-KVM that used to be inherited.
	  (qemu-kvm/smb-shares): Rename to...
	  (qemu/smb-shares): ... this.
	* gnu/system/vm.scm (expression->derivation-in-linux-vm): Adjust
	  accordingly.

2013-08-15  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Bitstream Vera.
	* gnu/packages/xorg.scm (font-bitstream-vera-ttf): New variable.

	gnu: Correct name and description of the Luxi font package.
	* gnu/packages/xorg.scm (font-bitstream-type1): Rename to...
	  (font-luxi-ttf): ... this.  Change name to "font-luxi-ttf".  Adjust
	  synopsis and description.

2013-08-15  Cyril Roelandt  <tipecaml@gmail.com>

	Make "guix -h" work as "guix --help".
	* guix/ui.scm (guix-main): have the same behaviour for the "-h" and "--help"
	  options.

2013-08-15  Cyril Roelandt  <tipecaml@gmail.com>

	list-packages: remove useless "language" attribute of "script" element
	See http://www.w3.org/TR/html5-diff/#changed-attributes for more information.

	* build-aux/list-packages.html (insert-js): remove "language" attribute, useless for the
	  "script" element.

2013-08-15  Cyril Roelandt  <tipecaml@gmail.com>

	list-packages: remove deprecated "height" attribute on "td" element.
	See http://www.w3.org/TR/html5-diff/#obsolete-attributes for more information.

	* build-aux/list-packages.html(package-sxml)[description-id]: remove "height"
	  attribute for "td" elements.

2013-08-15  Alex Sassmannshausen  <alex.sassmannshausen@gmail.com>

	list-packages: Tidying and refactoring in preparation for substantive changes.
	* build-aux/list-packages.scm (package->sxml)[license, status]: Add
	  title for <a> element.
	  Add alt and title for gnu-logo <img> element.  Add title to package
	  website <a> element.
	  (packages->sxml): Wrap <div id="intro"> intro paragraph in <p> element.
	  Add table header row to <table id="packages">
	  Add <a> back to top of the page beneath table.
	  (insert-css, insert-js): New procedures.
	  (list-packages): Move JavaScript to 'insert-js', and CSS to 'insert-css'.

	list-packages: Centralise CSS styling in <head>.
	* build-aux/list-packages.scm (package-logo): Assign class of
	  'package-description' to package synopsis div; 'package-logo'.  Move inline
	  CSS where possible.
	  (packages->sxml): Assign id of 'intro' to intro div, 'packages' to the
	  table. Move inline CSS.
	  (list-packages): Create new <style> section, containing all inline CSS.
	  Move JavaScript <script> section to above banner include to place it in
	  <head>.

2013-08-15  Ludovic Courtès  <ludo@gnu.org>

	Update `eo.po'.

2013-08-07  Andreas Enge  <andreas@enge.fr>

	gnu: Add ripperX.
	* gnu/packages/mp3.scm (ripperx): New variable.
	* gnu/packages/patches/ripperx-libm.patch: New file.
	* gnu-system.am (dist_patch_DATA): Add patch.

	gnu: Add cdparanoia.
	* gnu/packages/cdrom.scm (cdparanoia): New variable.
	* gnu/packages/patches/cdparanoia-fpic.patch: New file.
	* gnu-system.am: Add patch.

	gnu: Add lame.
	* gnu/packages/mp3.scm (lame): New variable.

	gnu: texlive: Update to 2013.
	* gnu/packages/texlive.scm (texlive): Update to 2013.

2013-08-06  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Install fonts into package output instead of into font-util.
	* gnu/packages/xorg.scm (font-adobe100dpi, font-adobe75dpi, font-misc-misc,
	    font-schumacher-misc): Add configure flag to modify FONTROOTDIR.

2013-08-05  Andreas Enge  <andreas@enge.fr>

	gnu: fontconfig: Update to 2.10.93.
	* gnu/packages/fontutils.scm (fontconfig): Update to 2.10.93.

	gnu: harfbuzz: Update to 0.9.19.
	* gnu/packages/gtk.scm (harfbuzz): Update to 0.9.19.

	gnu: mpfrcx: Update to 0.4.2.
	* gnu/packages/algebra.scm (mpfrcx): Update to 0.4.2.

	gnu: fplll: Update to 4.0.4.
	* gnu/packages/algebra.scm (fplll): Update to 4.0.4.

	gnu: emacs: Use gtk+.
	* gnu/packages/emacs.scm (emacs): Enable input gtk+ instead of libXaw.

	gnu: fontconfig: Look for fonts in user profile.
	* gnu/packages/fontutils.scm (fontconfig): Add configure flag.

	gnu: gtk+: Synchronise description with GSRC.
	* gnu/packages/gtk.scm (gtk+): Modify description.

	gnu: Rename "libapr" to "apr" and "libaprutil" to "apr-util".
	* gnu/packages/apr.scm: Rename file from libapr.scm.
	* gnu/packages/patches/apr-skip-getservbyname-test.patch: Rename file
	    from libapr-skip-getservbyname-test.patch.
	* gnu-system.am (GNU_SYSTEM_MODULES): Rename module libapr to apr.
	* gnu-system.am (dist_patch_DATA): Rename patch file.
	* gnu/packages/apr.scm (apr): Rename from libapr.
	* gnu/packages/apr.scm (apr-util): Rename from libaprutil, change
	    input name.
	* gnu/packages/version-control.scm (subversion): Change input name.

2013-07-20  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Xnee.
	* gnu/packages/xnee.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	gnu: ddrescue: Update to 1.17.
	* gnu/packages/ddrescue.scm (ddrescue): Update to 1.17.  Add lzip as a
	  native input.

	gnu: Add lzip.
	* gnu/packages/compression.scm (lzip): New variable.

2013-07-19  Ludovic Courtès  <ludo@gnu.org>

	Update `TODO'.

	build: Bump version to 0.4.
	* configure.ac: Switch to 0.4.

	doc: Improve build instructions in README and HACKING.
	* README (Requirements): Remove Nixpkgs.  Remove mentions of building
	  from Git.
	  (Installation): Refer to the manual.
	* HACKING: List requirements for when building from Git.
	  Remove the `dot: Command not found' error.

2013-07-17  Ludovic Courtès  <ludo@gnu.org>

	Update NEWS.

2013-07-17  Ludovic Courtès  <ludo@gnu.org>

	gnu: linux-libre: Add alternate URLs.
	Fixes <http://bugs.gnu.org/14851>.
	Reported by Andreas Enge <andreas@enge.fr>.

	* gnu/packages/linux.scm (linux-libre-urls): New procedure.
	  (linux-libre-headers, linux-libre): Use it.

2013-07-17  Ludovic Courtès  <ludo@gnu.org>

	gnu: tzdata: Update hash.
	Fixes <http://bugs.gnu.org/14890>.
	Reported by Andreas Enge <andreas@enge.fr>.

	* gnu/packages/base.scm (tzdata): Update hash.

2013-07-17  Ludovic Courtès  <ludo@gnu.org>

	doc: Add "Adding New Packages".
	* doc/guix.texi (Adding New Packages): New section.
	  (Packaging Guidelines): Make a subsection thereof.
	  (From the Source Tarball to the Package): New subsection.
	  (Contributing): Link to "Adding New Packages".
	  (Package Modules): Link to modules in Guile's manual.

	build: Check the availability of i686-linux binaries.
	* build-aux/check-available-binaries.scm (%supported-systems): New
	  variable.
	  (native): Map over these.

	build: Provide a replacement (srfi srfi-37) when the user's one is broken.
	* srfi/srfi-37.scm.in: New file, taken from Guile 2.0.9.
	* m4/guix.m4: New macro.
	* configure.ac: Use it.  Define Automake conditional `INSTALL_SRFI_37'.
	* Makefile.am (nobase_nodist_guilemodule_DATA)[INSTALL_SRFI_37]: Add
	  srfi/srfi-37.scm.
	  (GOBJECTS)[INSTALL_SRFI_37]: Add srfi/srfi-37.go.
	  (srfi/srfi-37.scm)[INSTALL_SRFI_37]: New target.
	  (EXTRA_DIST): Add srfi/srfi-37.scm.in.

	doc: Mark 2.0.5 as being the minimum Guile version.
	* doc/guix.texi (Requirements): Require Guile 2.0.5+.
	* README: Ditto.

	Update .po files.

2013-07-16  Ludovic Courtès  <ludo@gnu.org>

	Update NEWS.

	doc: Refer to guix-devel@gnu.org.
	* doc/guix.texi (Contributing): Refer to guix-devel@gnu.org.

	gnu: subversion: Fetch over plain HTTP.
	* gnu/packages/version-control.scm (subversion): Use the http:// URL
	  to work around <http://bugs.gnu.org/14884>.  Reported by Mark Weaver
	  and Andreas Enge.

	list-packages: Add links to hydra.gnu.org.
	* build-aux/list-packages.scm (package->sxml)[status]: New procedure.
	  Use it at the end of each description.
	  (packages->sxml): Add link to hydra.gnu.org.

	gnu: libphidget: Add "debug" output.
	* gnu/packages/libphidget.scm (libphidget): Add `outputs' field.

	hydra: Fix typo.
	* build-aux/hydra/gnu-system.scm (hydra-jobs): Use `cons', not `append'.

	hydra: Build for all the specified systems.
	* build-aux/hydra/gnu-system.scm (hydra-jobs): Pick all the `system'
	  keys in ARGUMENTS.
	  [cross-jobs]: Turn into a procedure, with a `system' parameter.
	  Build packages for all of SYSTEMS and %CROSS-TARGETS.

	hydra: Distinguish between jobs for different system types.
	* build-aux/hydra/gnu-system.scm (package-job, package-cross-job):
	  Append `.SYSTEM' to the job name.

	hydra: Honor the `system' argument.
	* build-aux/hydra/gnu-system.scm (hydra-jobs): Really look up the
	  `system' symbol in ARGUMENTS.

2013-07-16  Andreas Enge  <andreas@enge.fr>

	gnu: libapr, libaprutil: Upgrade.
	* gnu/packages/libapr.scm (libapr): Upgrade to 1.4.8.
	* gnu/packages/libapr.scm (libaprutil): Upgrade to 1.5.2.

2013-07-15  Ludovic Courtès  <ludo@gnu.org>

	guix package: Allow separate install of several outputs of the same package.
	* guix/scripts/package.scm (guix-package)[process-actions](same-package?):
	  New procedure.  Use it instead of `alist-delete' when filtering out
	  duplicate packages from the profile.

	build: Check for the availability of binaries upon "distcheck".
	* build-aux/check-available-binaries.scm: New file.
	* Makefile.am (EXTRA_DIST): Add it.
	  (distcheck-hook, assert-binaries-available): New target.

	Thank the translators.

	Add `pt_BR' translation.

2013-07-15  Andreas Enge  <andreas@enge.fr>

	gnu: pango, gtk+: Propagate inputs.
	* gnu/packages/gtk.scm (pango): Propagate input cairo.
	* gnu/packages/gtk.scm (gtk+): Propagate inputs atk, gdk-pixbuf and pango;
	    drop input cairo, propagated through pango.

	Add gtk+.
	* gnu/packages/gtk.scm (pango): Propagate input harfbuzz.
	* gnu/packages/gtk.scm (gtk+): New variable.

2013-07-14  Ludovic Courtès  <ludo@gnu.org>

	gnu: make-bootstrap: Skip tests for the statically-linked gawk.
	* gnu/packages/make-bootstrap.scm (%static-inputs)[gawk]: Add #:tests? #f.

	Update `eo.po'.

	Rename (guix web) to (guix http-client).
	* guix/web.scm: Rename to...
	* guix/http-client.scm: ... this.
	* guix/gnu-maintenance.scm, guix/scripts/substitute-binary.scm,
	  Makefile.am, po/POTFILES.in: Update accordingly.

2013-07-13  Nikita Karetnikov  <nikita@karetnikov.org>

	doc: Add "Building from Git" to 'HACKING'.

2013-07-12  Ludovic Courtès  <ludo@gnu.org>

	guix package: Fix handling of `-e'.
	This fixes a bug whereby a command like

	  guix package -e '(@@ (gnu packages base) gnu-make-boot0)'

	would only succeed when the outputs of that package are available, and
	otherwise fail with "/nix/store/... is not valid".

	* guix/scripts/package.scm (guix-package)[process-action](package->tuple):
	  Leave P as is in the result.  Move `package->tuple' call from INSTALL*
	  to INSTALL.

2013-07-12  Ludovic Courtès  <ludo@gnu.org>

	ui: Ignore SIGPIPE and catch `system-error' exceptions.
	* guix/ui.scm (initialize-guix): Call `sigaction'.
	  (call-with-error-handling): Wrap `thunk' in a (catch 'system-error ...).

	guix package: Reuse FTP connections for subsequent `latest-release' calls.
	* guix/gnu-maintenance.scm (latest-release): Add `ftp-close' and
	  `ftp-open' keyword parameters.
	* guix/scripts/package.scm (ftp-open*): New variable.
	  (check-package-freshness): Call `latest-release' with `ftp-open*' and
	  a no-op procedure.

	gnu-maintenance: `latest-release' closes its connection.
	* guix/gnu-maintenance.scm (latest-release): Close CONN before
	  returning.

	gnu: plotutils: Allow compilation with newer libpng.
	* gnu-system.am (dist_patch_DATA): Add it.
	* gnu/packages/patches/plotutils-libpng-jmpbuf.patch: New file.
	* gnu/packages/plotutils.scm (plotutils): Add
	  `plotutils-libpng-jmpbuf.patch' as an input, and apply it.

	gnu: freeipmi: Upgrade to 1.2.8.
	* gnu/packages/freeipmi.scm (freeipmi): Upgrade to 1.2.8.

	gnu: libidn: Upgrade to 1.28.
	* gnu/packages/libidn.scm (libidn): Upgrade to 1.28.

	gnu: gnupg: Upgrade support libraries.
	* gnu/packages/gnupg.scm (libgpg-error): Upgrade to 1.12.
	  (libassuan): Upgrade to 2.1.1.

2013-07-11  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Directly replace the global `regexp-exec'.
	* guix/scripts/substitute-binary.scm (%regexp-exec-mutex, string->uri):
	  Remove.
	  (regexp-exec): Replace this global binding by a thread-safety wrapper.
	  (fields->alist): Remove `with-mutex', and directly alias `recutils->alist'.

	gnu: help2man: Upgrade to 1.43.3.
	* gnu/packages/help2man.scm (help2man): Upgrade to 1.43.3.

	gnu: xorriso: Upgrade to 1.3.0.
	* gnu/packages/cdrom.scm (xorriso): Upgrade to 1.3.0.

	substitute-binary: Increase the default timeout.
	* guix/scripts/substitute-binary.scm (%fetch-timeout): Set to 5 seconds.

	gnu: automake: Upgrade to 1.14.
	* gnu/packages/autotools.scm (automake): Upgrade to 1.14.

	guix refresh: Keep only the newest versions of packages as upgrade candidates.
	* guix/scripts/refresh.scm (guix-refresh)[keep-newest]: New procedure.
	  Use it to keep only once copy of each package.

2013-07-10  Ludovic Courtès  <ludo@gnu.org>

	list-packages: Show the package logo, when available.
	* build-aux/list-packages.scm (lookup-gnu-package): New procedure.
	  (package->sxml): Add the package logo, when available, next to the
	  description.

	Update eo.po.

	gnu-maintenance: Add `doc-description' field to <gnu-package-descriptor>.
	* guix/gnu-maintenance.scm (%gsrc-package-list-url): New variable.
	  (<gnu-package-descriptor>): Add `doc-description' field.
	  (official-gnu-packages)[group-package-fields]: Rename to...
	  [read-records]: ... this.  Reverse the result.
	  [gsrc-description]: New procedure.
	  Add the "description" field to the alist passed to `alist->record'.

	records: `recutils->alist' recognizes lines starting with a `+'.
	* guix/records.scm (%recutils-plus-rx): New variable.
	  (recutils->alist): Use it to read + lines.
	* tests/records.scm ("recutils->alist with + lines"): New test.

	gnu-maintenance: Use `recutils->alist'.
	* guix/gnu-maintenance.scm (official-gnu-packages)[group-package-fields]:
	  Rewrite in terms of `recutils->alist'.  Remove `state' parameter.
	  Specify "doc-url" and "language" as multiple-value keys in the
	  `alist->record' call.

	records: `alist->record' supports multiple-field occurrences.
	* guix/records.scm (alist->record): Add `multiple-value-keys'
	  parameter.  Update docstring, and honor it.
	* tests/records.scm ("alist->record"): New record.

	records: `recutils->alist' recognizes comments.
	* guix/records.scm (%recutils-comment-rx): New variable.
	  (recutils->alist): Match comments.
	* tests/records.scm ("recutils->alist"): Add comments.

	records: Add `recutils->alist' for public consumption.
	* guix/records.scm (%recutils-field-rx): New variable.
	  (recutils->alist): New procedure, formerly known as `fields->alist'.
	* guix/scripts/substitute-binary.scm (fields->alist): Use it.
	* tests/records.scm ("recutils->alist"): New test.

	gnu: libpng: Upgrade to 1.5.17.
	* gnu/packages/libpng.scm (libpng): Upgrade to 1.5.17.

	list-packages: Write out the HTML page as UTF-8.
	* build-aux/list-packages.scm (list-packages): Install the "C" locale.
	  Write out as UTF-8.

	tests: Fix guix-package.sh in the presence of multiple-output `make'.
	* tests/guix-package.sh: For $boot_make_drv, take only the "out" output.
	  Reported by Nikita Karetnikov <nikita@karetnikov.org>.

	Add `build-aux/list-packages.scm'.
	* build-aux/list-packages.scm: New file.
	* Makefile.am (EXTRA_DIST): Add it.

2013-07-09  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'core-updates'

	doc: Add "Installing Debugging Files".
	* doc/guix.texi (Installing Debugging Files): New node.
	  (Packages with Multiple Outputs): Add cross-reference.

2013-07-08  Ludovic Courtès  <ludo@gnu.org>

	doc: Add "Packages with Multiple Outputs" section.
	* doc/guix.texi (Packages with Multiple Outputs): New node.
	  (Invoking guix package): Refer to it.

	tests: Adjust `package-field-location' test for Guile <= 2.0.6.
	* tests/packages.scm ("package-field-location"): Check the result of
	  `read-at' against both VALUE and (FIELD VALUE).
	  Reported by Matthew Lien - 練喆明" <bluet@bluet.org>.

	build: Set the umask to 0022 before running the daemon for tests.
	* test-env.in: Run "umask 0022" before running the daemon.
	  Reported by Matthew Lien - 練喆明 <bluet@bluet.org>

	build: Set the umask to 0022 before running the daemon for tests.
	* test-env.in: Run "umask 0022" before running the daemon.
	  Reported by Matthew Lien - 練喆明 <bluet@bluet.org>

	gnu: gettext: Upgrade to 0.18.3.
	* gnu/packages/gettext.scm (gettext): Upgrade to 0.18.3.
	  Remove patch.  Change `patch-tests' phase to use (which "sh'); keep it
	  regardless of whether we're cross compiling.

2013-07-07  Ludovic Courtès  <ludo@gnu.org>

	gnu: tzdata: Upgrade to 2013d.
	* gnu/packages/base.scm (tzdata): Upgrade to 2013d.

	doc: Move the packaging guidelines to the manual.
	* HACKING (Packaging Guidelines): Remove.
	* doc/guix.texi (Packaging Guidelines): New node.

	doc: Add a "Porting" section.
	* HACKING (Porting the Guix distro on a new platform): Remove.
	* doc/guix.texi (Porting): New node.  Describe cross-compilation as the
	  only approach.

	doc: Add a "Boostrapping" section.
	* doc/guix.texi (Package Modules): New node, with material formerly
	  under "GNU Distribution".
	  (Bootstrapping): New node.
	* Makefile.am (EXTRA_DIST): Add doc/images/bootstrap-graph.dot and
	  doc/images/bootstrap-graph.eps.
	  (infoimagedir, dist_infoimage_DATA, DOT_OPTIONS): New variable.
	  (.dot.png, .dot.eps, doc/guix.pdf, doc/guix.info, doc/guix.ps): New
	  targets.
	* doc/images/bootstrap-graph.dot: New file.

2013-07-06  Ludovic Courtès  <ludo@gnu.org>

	gnu: gcc: Add Texinfo to the native inputs.
	* gnu/packages/gcc.scm (gcc-4.7): Add `native-inputs' field.
	  (gcc-4.8): Remove outdated comment.
	* gnu/packages/base.scm (gcc-boot0): Add `native-inputs' field.

2013-07-05  Ludovic Courtès  <ludo@gnu.org>

	build: Bail out on unsupported platforms; add `--with-courage'.
	* m4/guix.m4 (GUIX_ASSERT_SUPPORTED_SYSTEM): New macro.
	* configure.ac: Use it.

	gnu: make-bootstrap: guile-static-stripped has no "debug" output.
	* gnu/packages/make-bootstrap.scm (%guile-static-stripped): Add
	  `outputs' field.

	build: Correctly determine the system type for non-Linux systems.
	* m4/guix.m4 (GUIX_SYSTEM_TYPE): Find `sed'.  Fix sed pattern in the
	  non-Linux case.

2013-07-04  Ludovic Courtès  <ludo@gnu.org>

	store: Deal with unsupported `setsockopt' operation on GNU/Hurd.
	* guix/store.scm (open-connection): Silently ignore ENOPROTOOPT on
	  `setsockopt' calls, for the sake of GNU/Hurd.
	  Reported by Matthew Lien <bluet@bluet.org> at
	  <http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00020.html>.

	daemon: Make argp usage compatible with libc on GNU/Hurd.
	* nix/nix-daemon/guix-daemon.cc (parse_opt): Cast return value to
	  `error_t' for the sake of GNU/Hurd.
	  Reported by Matthew Lien <bluet@bluet.org> at
	  <http://lists.gnu.org/archive/html/bug-guix/2013-07/msg00002.html>.

	Import (guix hash) in build-aux/download.scm.
	* build-aux/download.scm: Import (guix hash).
	  Reported by Matthew Lien <bluet@bluet.org>.

	build-system/gnu: Remove the "debug" output when `strip-binaries?' is #f.
	* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Delete "debug"
	  from OUTPUTS when STRIP-BINARIES? is false.
	* gnu/packages/cross-base.scm (cross-libc): Leave `outputs' unchanged.
	  This reverts commit a4627d4.

	gnu: cross-libc: Remove the "debug" output.
	* gnu/packages/cross-base.scm (cross-libc): Remove "debug" from the
	  `outputs' field.

2013-07-03  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add a "debug" output for some packages.
	* gnu/packages/base.scm (coreutils, gnu-make, glibc): Add a "debug" output.
	* gnu/packages/bdw-gc.scm (libgc): Likewise.
	* gnu/packages/guile.scm (guile-2.0): Likewise.
	* gnu/packages/libffi.scm (libffi): Likewise.
	* gnu/packages/multiprecision.scm (gmp, mpfr, mpc): Likewise.

	build-system/gnu: Write debug files to the "debug" sub-derivation, if any.
	* guix/build/gnu-build-system.scm (strip): Add `objcopy-command' keyword
	  parameter.
	  [debug-output, debug-file-extension]: New variables.
	  [debug-file, make-debug-file, add-debug-link]: New procedures.
	  [strip-dir]: Use them.

	utils: Re-export `alist-cons' and `alist-delete'.
	* guix/build/utils.scm: Re-export `alist-cons' and `alist-delete'.

	gnu: Add noweb.
	* gnu/packages/noweb.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	gnu: qemu: Upgrade to 1.5.1.
	* gnu/packages/qemu.scm (qemu-kvm): Add `--cc' configure option.
	  Add PIXMAN and ALSA-LIB as inputs.
	  (qemu): Upgrade to 1.5.1  Remove autotool hack for pixman.  Patch
	  tests/libqtest.c.  Remove Autoconf, Automake, and Libtool from the
	  inputs.  Fix `home-page'.

	Update `NEWS' and `TODO'.

	Use `port-sha256' and `open-sha256-port'.
	* guix/derivations.scm (derivation-hash): Add comment as to why we keep
	  the plain `sha256' call.
	* guix/scripts/download.scm (guix-download): Use `port-sha256' instead
	  of (compose sha256 get-bytevector-all).
	* guix/scripts/refresh.scm (update-package): Likewise.

2013-07-02  Ludovic Courtès  <ludo@gnu.org>

	hash: Add `open-sha256-port'.
	* guix/hash.scm (GCRY_MD_SHA256): New macro.
	  (sha256): Use it.
	  (open-sha256-md, md-write, md-read, md-close, open-sha256-port,
	  port-sha256): New procedures.
	* tests/hash.scm: New file.
	* Makefile.am (SCM_TESTS): Add it.

2013-07-01  Ludovic Courtès  <ludo@gnu.org>

	Move `sha256' to (guix hash).
	* guix/utils.scm (sha256): Move to...
	* guix/hash.scm: ... here.  New file.
	* Makefile.am (MODULES): Add it.
	* guix/derivations.scm, guix/scripts/download.scm,
	  guix/scripts/hash.scm, guix/scripts/refresh.scm, tests/base32.scm,
	  tests/derivations.scm, tests/store.scm: Use (guix hash).

	gnu: liboop: Fix & improve meta-data.
	* gnu/packages/lsh.scm (liboop): Fix home page.  Improve `synopsis' and
	  `description'.  Thanks to carl hansen <carlhansen1234@gmail.com>, who
	  raised it on bug-gsrc@gnu.org.

2013-07-01  Ludovic Courtès  <ludo@gnu.org>

	ui: Don't make substituter-related RPCs at all when substitutes are disabled.
	Reported by Nikita Karetnikov and Cyril Roelandt.

	* guix/ui.scm (show-what-to-build): Call `substitutable-path-info'
	  only when USE-SUBSTITUTES? is true.

2013-07-01  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add GNU vc-dwim.
	* gnu/packages/version-control.scm (vc-dwim): New variable.

2013-06-29  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add GNU Rush.
	* gnu/packages/rush.scm: New file.
	* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

	substitute-binary: Avoid dangling connections to the server.
	* guix/web.scm (open-socket-for-uri): New procedure.
	  (http-fetch): Add `port' keyword parameter; use it.
	* guix/scripts/substitute-binary.scm (%random-state): New variable.
	  (with-timeout): Wait a little before retrying.
	  (fetch): Use `open-socket-for-uri', and keep a copy of the socket in
	  variable `port'.  Close PORT upon timeout.

2013-06-28  Cyril Roelandt  <tipecaml@gmail.com>

	gnutls: fix the test-suite for 32 bits systems.
	* gnu/packages/patches/gnutls-fix-tests-on-32-bits-system.patch: New file.
	* gnu-system.am: Add it here...
	* gnu/packages/gnutls.scm (gnutls): ... and use it here.

	Thanks to Nikos Mavrogiannopoulos for providing this patch:
	http://permalink.gmane.org/gmane.comp.encryption.gpg.gnutls.devel/6778

2013-06-27  Ludovic Courtès  <ludo@gnu.org>

	gnu: lout: Upgrade to 3.40.
	* gnu/packages/lout.scm (lout): Upgrade to 3.40.

	download: Add Savannah's master site.
	* guix/download.scm (%mirrors): Add the "-noredirect" version of
	  Savannah.

	gnu: lsh: Upgrade to 2.1.
	* gnu/packages/lsh.scm (lsh): Upgrade to 2.1.  Add Nettle as an input.
	  Remove now unneeded patches.
	* gnu/packages/patches/lsh-guile-compat.patch,
	  gnu/packages/patches/lsh-no-root-login.patch,
	  gnu/packages/patches/lsh-pam-service-name.patch: Remove.
	* gnu-system.am (dist_patch_DATA): Remove them.

2013-06-26  Ludovic Courtès  <ludo@gnu.org>

	gnu: gcc: Use `gcc-configure-flags-for-triplet' when cross-compiling GCC.
	* gnu/packages/cross-base.scm (gcc-configure-flags-for-triplet): Move to...
	* gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): ... here.  New
	  procedure.
	  (gcc-4.7): Use it when (%current-target-system) is true.

	build: Add "mips64el-linux-gnuabi64" as a cross build target.
	* build-aux/hydra/gnu-system.scm (%packages-to-cross-build): Add
	  %bootstrap-tarballs.
	  (%cross-targets): Add "mips64el-linux-gnuabi64".

	gnu: cross-base: Add support for `mips64el-linux-gnu-gnuabi64' (N64 ABI).
	* gnu/packages/cross-base.scm (gcc-configure-flags-for-triplet): New
	  procedure.
	  (cross-gcc): Use it.
	  (xgcc-mips64el): Use *-gnuabi64 instead of the N32 ABI.

	gnu: make-bootstrap: Fix cross compilation of binutils-static.
	* gnu/packages/make-bootstrap.scm (%binutils-static): Inherit configure
	  flags from BINUTILS.

	gnu: make-bootstrap: Have %gcc-static actually static when cross building.
	* gnu/packages/make-bootstrap.scm (%gcc-static): Pass `-static' through
	  `LDFLAGS' when cross-compiling.

	gnu: gcc: Allow cross-compilation of GCC itself.
	* gnu/packages/gcc.scm (gcc-4.7): Define `CC_FOR_TARGET',
	  `AR_FOR_TARGET', etc. when cross-compiling.

	gnu: cross-base: Make `glibc-dynamic-linker' do the right thing.
	* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Determine SYSTEM
	  based on (%current-target-system) when it's true.
	* gnu/packages/cross-base.scm (cross-gcc): Directly call
	  (package-arguments gcc-4.7) from the body of `arguments'.

	gnu: cross-base: Build Binutils with `--with-sysroot=/'.
	* gnu/packages/cross-base.scm (cross-binutils): Use `--with-sysroot=/'.

2013-06-25  Ludovic Courtès  <ludo@gnu.org>

	build: Build the bootstrap tarballs on Hydra.
	* build-aux/hydra/gnu-system.scm (%packages-to-cross-build): Uncomment
	  the bootstrap tarball packages.

	gnu: make-bootstrap: Allow cross-compilation of the bootstrap tarballs.
	* gnu/packages/make-bootstrap.scm (package-with-relocatable-glibc): Turn
	  `inputs' into a thunk.  Add `native-inputs', and pass it to
	  `package-with-explicit-inputs'.
	  (%static-inputs): Add %BASH-STATIC as an input to gawk when cross
	  building.
	  (%glibc-stripped): When cross compiling,
	  use (glibc-for-bootstrap (cross-libc)) as the basis.
	  (%gcc-static): Base on GCC-4.7, not GCC-FINAL.
	  (tarball-package): TAR and XZ are native inputs.  Choose the tarball
	  file name based on (%current-target-system) too.

	build-system/gnu: `package-with-explicit-inputs' skips non-GBS packages.
	* guix/build-system/gnu.scm (package-with-explicit-inputs)[rewritten-input]:
	  Leave P unchanged if its build system is not GNU-BUILD-SYSTEM.

	gnu: cross-base: Make the cross tools native inputs.
	* gnu/packages/cross-base.scm (cross-gcc): Change `inputs' to
	  `native-inputs', and set `inputs' to the empty list.
	  (cross-libc): Likewise.

	build-system/gnu: Augment `package-with-explicit-inputs' for cross builds.
	* guix/build-system/gnu.scm (package-with-explicit-inputs): Add
	  `native-inputs' keyword parameter.  Allow INPUTS and NATIVE-INPUTS to
	  be thunks.

	gnu: bigloo: Explicitly link libbigloopthread against libgc.
	* gnu/packages/scheme.scm (bigloo): In `configure' phase, change
	  api/thread/src/Makefile to explicitly link against libgc.

	build-system/trivial: Don't bind `%target' in the builder.
	* guix/build-system/trivial.scm (trivial-cross-build): Don't bind
	  `%target' here since this causes problem when BUILDER
	  contains (use-modules ...) clauses, and can be achieved differently
	  anyway.

	gnu: gawk: Allow cross-compilation.
	* gnu/packages/gawk.scm (gawk)[arguments]: Annihilate the
	  `check-for-shared-lib-support' target when cross-compiling.

2013-06-24  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Disable test suite when cross building.
	* guix/build-system/gnu.scm (gnu-cross-build): Change #:tests? to
	  default to #f.

2013-06-23  Andreas Enge  <andreas@enge.fr>

	gnu: Add gdk-pixbuf.
	* gnu/packages/gtk.scm (gdk-pixbuf): New variable.

2013-06-22  Ludovic Courtès  <ludo@gnu.org>

	gnu: ed: Upgrade to 1.9.
	* gnu/packages/ed.scm (ed): Upgrade to 1.9.

	gnu: gcc-4.8: Upgrade to 4.8.1.
	* gnu/packages/gcc.scm (gcc-4.8): Upgrade to 4.8.1.

	gnu: libffi: Upgrade to 3.0.13.
	* gnu/packages/libffi.scm (libffi): Upgrade to 3.0.13.

	utils: `set-path-environment-variable' calls `unsetenv' for empty values.
	* guix/build/utils.scm (set-path-environment-variable): When VALUE is
	  the empty string, call `unsetenv' instead of `setenv'.
	* gnu/packages/guile.scm (guile-2.0)[arguments]: Remove `unsetenv'
	  trick.

	gnu: acl, attr: Make `gettext' a native input.
	* gnu/packages/acl.scm (acl): Make `gettext' a native input, always.
	* gnu/packages/attr.scm (attr): Likewise.

	gnu: gmp: Upgrade to 5.1.2.
	* gnu/packages/multiprecision.scm (gmp): Update to 5.1.2.

	gnu: gawk: Upgrade to 4.1.0.
	* gnu/packages/gawk.scm (gawk): Update to 4.1.0.  Remove wrong-headed
	  comments.

	gnu: gzip: Upgrade to 1.6.
	* gnu/packages/compression.scm (gzip): Upgrade.

	build-system/gnu: Set #:tests? to #f when cross-compiling.
	* guix/build/gnu-build-system.scm (check): Add `target' formal
	  parameter.  Change `tests?' to default to (not target).

	download: Don't fail when abbreviating `file://' URIs.
	* guix/build/download.scm (uri-abbreviation)[elide-path]: Handle the
	  case where URI has no `host' part.

2013-06-21  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Save `environment-variables' after each phase.
	* guix/build/gnu-build-system.scm (set-paths): Move `system' call to...
	  (gnu-build): ... here.

	build-system/gnu: Unify with (guix build-system gnu-cross-build).
	* guix/build/gnu-build-system.scm (set-paths): Add `native-inputs' and
	  `native-search-paths' keyword parameters.  Honor them.
	  (configure): Add `target' and `native-inputs' keyword parameters.
	  Look for Bash in NATIVE-INPUTS or INPUTS.  Pass `--host' when TARGET
	  is true.
	  (strip): Add `strip-command' keyword parameter.  Use it.
	* guix/build/gnu-cross-build.scm: Remove.
	* Makefile.am (MODULES): Adjust accordingly.
	* gnu/packages/acl.scm, gnu/packages/attr.scm, gnu/packages/base.scm,
	  gnu/packages/bash.scm, gnu/packages/gawk.scm,
	  gnu/packages/gettext.scm, gnu/packages/guile.scm,
	  gnu/packages/libffi.scm, gnu/packages/libsigsegv.scm,
	  gnu/packages/linux.scm, gnu/packages/ncurses.scm,
	  gnu/packages/readline.scm, guix/build-system/gnu.scm: Replace
	  `%standard-cross-phases' by `%standard-phases'.  Remove references
	  to (guix build gnu-cross-build).

2013-06-20  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'master' into core-updates
	Conflicts:
		gnu/packages/make-bootstrap.scm

	gnu: libgc: Always build with -DUSE_LIBC_PRIVATES.
	* gnu/packages/bdw-gc.scm (libgc): Add `arguments' field.
	* gnu/packages/make-bootstrap.scm (%guile-static): Remove local `libgc'.

	gnu: libgc: Switch to 7.2d.
	* gnu/packages/bdw-gc.scm (libgc): Upgrade to 7.2d.
	  (libgc-7.2): Remove.

	build: Move Hydra recipe to build-aux/hydra.
	* hydra.scm: Rename to...
	* build-aux/hydra/gnu-system.scm: ... this.
	* Makefile.am (EXTRA_DIST): Adjust accordingly.

	package: Fix i18n of the number of packages message.
	* guix/scripts/package.scm (guix-package)[process-actions]: Use `N_' for
	  i18n of the number of packages message.

	substitute-binary: Report progress while downloading.
	* guix/scripts/substitute-binary.scm (decompressed-port): Improve docstring.
	  (progress-report-port): New procedure.
	  (guix-substitute-binary)["--substitute"]: Use it to report progress.
	* guix/build/download.scm: Export `progress-proc' and `uri-abbreviation'.

2013-06-19  Ludovic Courtès  <ludo@gnu.org>

	Update eo.po.

	build: Split Makefile.am into two parts.
	* Makefile.am (MODULES): Move gnu/* to gnu-system.am.
	  (patchdir, dist_patch_DATA, bootstrapdir,
	  bootstrap_x86_64_linuxdir, bootstrap_i686_linuxdir,
	  dist_bootstrap_x86_64_linux_DATA, dist_bootstrap_i686_linux_DATA,
	  nodist_bootstrap_x86_64_linux_DATA, nodist_bootstrap_i686_linux_DATA,
	  install-data-hook, DISTCLEANFILES, DOWNLOAD_FILE,
	  gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz,
	  gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz): Move to...
	* gnu-system.am: ... here.  New file.

	package: Display the number of installed packages upon completion.
	* guix/scripts/package.scm (guix-package)[process-actions]: Display the
	  number of packages in the profile upon completion.

	Add `substitute-binary.scm' to POTFILES.in.
	* po/POTFILES.in: Add guix/scripts/substitute-binary.scm.

	gnu: Add ImageMagick.
	* gnu/packages/imagemagick.scm: New file.
	* Makefile.am (MODULES): Add it.
	* guix/download.scm (%mirrors): Add `imagemagick' entry.

2013-06-18  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Provide feedback when the server is unresponsive.
	* guix/scripts/substitute-binary.scm (%fetch-timeout): New variable.
	  (with-timeout): New macro.
	  (fetch): Add `timeout?' keyword parameter.  Enclose `http-fetch' call
	  in `with-timeout'.
	  (guix-substitute-binary): Call `fetch' with #:timeout? #f.

	build: Fix `sync-with-upstream'.
	* nix/sync-with-upstream: Remove schema.sql.hh.

	gnu: Add Linux iproute2.
	* gnu/packages/bdb.scm (bdb): Add `--enable-compat185'.
	* gnu/packages/linux.scm (iproute): New variable.

	gnu: Add iptables.
	* gnu/packages/linux.scm (iptables): New variable.

	gnu: graphviz: Fix typo.
	* gnu/packages/graphviz.scm (graphviz): Fix typo in description.

2013-06-17  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Move subversion with the other version control systems.
	* gnu/packages/subversion.scm: Remove file.
	* gnu/packages/version-control.scm (subversion): New variable.
	* Makefile.am (MODULES): remove subversion.scm.

2013-06-17  Ludovic Courtès  <ludo@gnu.org>

	build: Remove non-existent git.scm from Makefile.am.
	* Makefile.am (MODULES): Remove git.scm.

	gnu: Add Graphviz.
	* gnu/packages/graphviz.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: libpng: Propagate zlib.
	* gnu/packages/libpng.scm (libpng): Propagate zlib.

2013-06-16  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add GD.
	* gnu/packages/gd.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add Racket.
	* gnu/packages/scheme.scm (racket): New variable.

2013-06-15  Ludovic Courtès  <ludo@gnu.org>

	build-system/trivial: Fix introduction of `%target' when cross-building.
	* guix/build-system/trivial.scm (trivial-cross-build): Wrap BUILDER in a
	  `let' rather than in `begin'.

	gnu: linux-libre-headers: Allow cross-compilation.
	* gnu/packages/linux.scm (linux-libre-headers): Use (guix build
	  gnu-cross-build) and %standard-cross-phases when cross-compiling.

	gnu: pkg-config: Export package definition.
	* gnu/packages/pkg-config.scm (%pkg-config): Make public.
	  Reported by Andreas Enge <andreas@enge.fr>.

2013-06-14  Andreas Enge  <andreas@enge.fr>

	gnu: Add pango.
	* gnu/packages/gtk.scm (pango): New variable.

	gnu: Add harfbuzz.
	* gnu/packages/gtk.scm (harfbuzz): New variable.

	gnu: Add cairo.
	* gnu/packages/gtk.scm (cairo): New variable.

	gnu: Add libspectre.
	* gnu/packages/ghostscript.scm (libspectre): New variable.

2013-06-14  Ludovic Courtès  <ludo@gnu.org>

	Update `TODO'.

	Update upstream Nix sub-module.
	* nix-upstream: Update.
	* NEWS: Mention multiple-derivation output bug.

	derivations: Micro-optimize `derivation-hash'.
	* guix/derivations.scm (derivation-hash): Use a UTF-8-encoded string
	  output port.  This makes things deterministic, and slightly faster.

	gnu: make-bootstrap: Abstract things with `package-with-relocatable-glibc'.
	* gnu/packages/make-bootstrap.scm (%glibc-for-bootstrap): Replace with...
	  (glibc-for-bootstrap): ... this.  New procedure.
	  (%standard-inputs-with-relocatable-glibc): Replace with...
	  (package-with-relocatable-glibc): ... this.  New procedure.
	  (%static-inputs, %gcc-static, %guile-static): Use it.

	gnu: make-bootstrap: Keep Perl as an input only when needed.
	* gnu/packages/make-bootstrap.scm (%static-inputs)[coreutils]: Keep Perl
	  as an input only if it's an input of COREUTILS.

2013-06-13  Ludovic Courtès  <ludo@gnu.org>

	guix gc: Add `--requisites'.
	* guix/scripts/gc.scm (show-help, %options): Add `--requisites'.
	  (guix-gc): Handle it.
	* doc/guix.texi (Invoking guix gc): Document `--requisites'.
	* NEWS: Update.

	store: Add `requisites'.
	* guix/store.scm (fold-path, requisites): New procedures.
	* tests/store.scm ("requisites"): New test.

2013-06-12  Ludovic Courtès  <ludo@gnu.org>

	ld-wrapper: Unless in a build env., allow files that symlink to the store.
	* gnu/packages/ld-wrapper.scm (pure-file-name?): As a last resort, when
	  %BUILD-DIRECTORY is false, check whether FILE is a symlink, and loop
	  over it to check whether its target is in the store.

2013-06-12  Konrad Hinsen  <konrad.hinsen@fastmail.net>

	doc: Describe the build procedure in more detail.
	* README (Requirements): Replace "autoreconf" by "bootstrap".
	  (Installing Guix from Guix): Augment and update.

2013-06-12  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add GNU gcal.
	* gnu/packages/gcal.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-06-12  Konrad Hinsen  <konrad.hinsen@fastmail.net>

	Ignore /po/Makevars.template

2013-06-10  Cyril Roelandt  <tipecaml@gmail.com>

	Fix Guile version checking in the "web" code.
	* guix/web.scm (http-fetch): fix Guile version checking. The previous version
	would use features from Guile 2.0.9+ when using Guile 2.0.7.

2013-06-10  Nikita Karetnikov  <nikita@karetnikov.org>

	guix refresh: Add '--key-download'.
	* guix/gnu-maintenance.scm (download-tarball): Add a 'key-download'
	  keyword argument and pass it to 'gnupg-verify*'.  Make
	  'archive-type' a keyword argument.
	  (package-update): Add a 'key-download' keyword argument.  Pass
	  'archive-type' and 'key-download' keyword arguments to
	  'download-tarball'.

	* guix/gnupg.scm: Import (ice-9 i18n) and (guix ui).
	  (gnupg-verify*): Add a 'key-download' keyword argument and adjust
	  'gnupg-verify*' to use it.  Make 'server' a keyword argument.

	* guix/scripts/refresh.scm (show-help, %options): Add and document
	  '--key-download'.
	  (update-package): Add a 'key-download' keyword argument and pass it
	  to 'package-update'.
	  (guix-refresh): Pass 'key-download' to 'update-package'.  Limit
	  lines to a maximum of 79 characters.

2013-06-10  Ludovic Courtès  <ludo@gnu.org>

	doc: Mention copyright/license auditing in `HACKING'.

2013-06-09  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add mpg321.
	* gnu/packages/mp3.scm (mpg321): New variable.

	gnu: Add ALSA-lib; use it.
	* gnu/packages/linux.scm (alsa-lib): New variable.
	* gnu/packages/oggvorbis.scm (ao): Add ALSA-lib as an input.

	gnu: glib: Fix URL.
	* gnu/packages/glib.scm (glib): Fix URL.

	doc: Update bootstrap-related info in `HACKING'.

2013-06-08  Ludovic Courtès  <ludo@gnu.org>

	gnu: glib: Update to 2.37.1.
	* gnu/packages/glib.scm (glib): Update to 2.37.1.  Add Bash and tzdata
	  as inputs.  Remove `glib-tests-timezone.patch'.  Augment `pre-build'
	  phase to set `TZDIR', `XDG_CACHE_HOME', and to modify makefiles to
	  honor $(TESTS_ENVIRONMENT).
	* gnu/packages/patches/glib-tests-desktop.patch,
	  gnu/packages/patches/glib-tests-homedir.patch: Update.
	* gnu/packages/patches/glib-tests-timezone.patch: Remove.
	* Makefile.am (dist_patch_DATA): Update accordingly.

2013-06-08  Mark H Weaver  <mhw@netris.org>

	gnu: subversion: Download from apache archive site.
	* gnu/packages/subversion.scm (subversion): Download from archive.apache.org,
	  where versions are kept for a longer period of time.  Previously, we
	  downloaded from the mirrors, which keep only the most recent versions.

2013-06-07  Ludovic Courtès  <ludo@gnu.org>

	gnu: plotutils: Add X client libraries as inputs.
	* gnu/packages/plotutils.scm (plotutils): Add libx11, libxt, and libxaw
	  as inputs.

	gnu: Add Privoxy.
	* gnu/packages/tor.scm (privoxy): New variable.

2013-06-06  Ludovic Courtès  <ludo@gnu.org>

	packages: Make the `propagated-inputs' field thunked.
	* guix/packages.scm (<package>): Make `propagated-inputs' thunked.

2013-06-05  Ludovic Courtès  <ludo@gnu.org>

	gnu: bash-light: Allow cross-compilation.
	* gnu/packages/bash.scm (bash-light): Add (guix build gnu-cross-build)
	  to #:modules when (%current-target-system) is true.
	  Add `bash_cv_job_control_missing=no' to #:configure-flags
	  when (%current-target-system) is true.

	gnu: Fix `static-package' arguments overriding.
	* guix/build-system/gnu.scm (static-package): Call `package-arguments'
	  from within the `arguments' field, so it see the
	  right (%current-target-system).

	gnu: gnutls: Update to 3.2.1.
	* gnu/packages/gnutls.scm (gnutls): Update to 3.2.1.

	gnu: nettle: Update to 2.7.1.
	* gnu/packages/nettle.scm (nettle): Update to 2.7.1.

	gnu: automake: Update to 1.13.3.
	* gnu/packages/autotools.scm (automake): Update to 1.13.3.

2013-06-04  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add WordNet.
	* gnu/packages/wordnet.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add Tk.
	* gnu/packages/tcl.scm (tk): New variable.

	doc: Write about patch submission and packaging guidelines.
	* HACKING: Update the command names from `guix-build' to `guix build' & co.
	  (Submitting Patches, Packaging Guidelines): New sections.
	* doc/guix.texi (Contributing): New section.

	substitute-binary: Don't cache .narinfo lookups when lacking networking.
	* guix/scripts/substitute-binary.scm (lookup-narinfo): Don't cache
	  NARINFO when CACHE is #f.

	Update `NEWS'.

2013-06-03  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add Grue Hunter.
	* gnu/packages/grue-hunter.scm: New file.
	* Makefile.am (MODULES): Add it.

	licenses: Add 'agpl3' and 'agpl3+'.
	* guix/licenses.scm (agpl3, agpl3+): New variables.

2013-06-01  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add Babel.
	* gnu/packages/babel.scm (babel): New package.

2013-06-01  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add XLockMore.
	* gnu/packages/xlockmore.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: gawk: Refer to the target Bash in io.c.
	* gnu/packages/gawk.scm (gawk): Add Bash as an input
	  when (%current-target-system) is true.

	Fix name of Alexandru.

2013-05-30  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Rubber.
	* gnu/packages/texlive.scm (rubber): New variable.

	Thanks, Cojocaru.

	ui: define-diagnostic: Don't mark `_' and `N_' as literals.
	* guix/ui.scm (define-diagnostic): Use `free-identifier=?' to compare
	  the user's input with `_' and `N-".  This should fix builds with Guile 2.1.
	  Reported by Cojocaru Alexandru <xojoc@gmx.com>.

2013-05-30  Ludovic Courtès  <ludo@gnu.org>

	build-system/python: Avoid circular dependency.
	This fixes a circular dependency introduced in commit acc26ff ("gnu: Add
	pytz.").

	* guix/build-system/python.scm (default-python): New procedure.
	  (python-build): Use it.

2013-05-29  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Gracefully exit upon networking errors.
	Suggested by Andreas Enge <andreas@enge.fr>.

	* guix/scripts/substitute-binary.scm (with-networking): New macro.
	  (guix-substitute-binary): Wrap the body in `with-networking'.

2013-05-29  Ludovic Courtès  <ludo@gnu.org>

	build, package: Add `--fallback' option.
	* guix/scripts/build.scm (%options, show-help): Add `--fallback'.
	  (guix-build): Call `set-build-options' with #:fallback?.
	* guix/scripts/package.scm (%options, show-help): Add `--fallback'.
	  (guix-package): Call `set-build-options' with #:fallback?.
	* doc/guix.texi (Invoking guix package, Invoking guix build): Document
	  `--fallback'.

	store: Test the `fallback?' store option.
	* guix/store.scm (set-build-options): Rename #:try-fallback? to #:fallback?.
	* tests/store.scm ("substitute --fallback"): New test.

2013-05-29  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add pytz.
	* gnu/packages/python.scm (pytz): New package.

2013-05-29  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add torsocks.
	* gnu/packages/tor.scm (torsocks): New variable.

2013-05-28  Cyril Roelandt  <tipecaml@gmail.com>

	python-build-system: add a check phase.
	* guix/build/python-build-system.scm (check): New procedure.
	  (%standard-phases): Use it.

2013-05-27  Ludovic Courtès  <ludo@gnu.org>

	packages: Raise an error condition a cross builder is needed but unavailable.
	* guix/packages.scm (&package-cross-build-system-error): New condition type.
	  (package-cross-derivation): Raise &package-cross-build-system-error
	  when the build system doesn't support cross builds.
	* guix/ui.scm (call-with-error-handling): Add
	  package-cross-build-system-error? case.
	* tests/packages.scm ("package-cross-derivation, no cross builder"): New test.

	build-system/gnu: Fix typo in `gnu-cross-build'.
	* guix/build-system/gnu.scm (gnu-cross-build)[builder]: When
	  IMPLICIT-TARGET-INPUTS is #f, default to '().

	gnu: guile: More cross-compilation tweaks.
	* gnu/packages/guile.scm (guile-2.0): When cross-compiling, unset
	  GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH, and set
	  CC_FOR_BUILD=gcc.

	gnu: pkg-config: Provide a cross-build-friendly wrapper.
	* gnu/packages/pkg-config.scm (pkg-config): Rename to...
	  (%pkg-config): ... this.  Make private.
	  (cross-pkg-config, pkg-config-for-target): New procedures.
	  (pkg-config): New macro.

2013-05-27  Ludovic Courtès  <ludo@gnu.org>

	gnu: cross-binutils: Build with `--with-sysroot'.
	This fixes resolution of DT_NEEDED entries in cross-built libraries.
	For instance, if ltdl.so needs libdl.so and has it in its RUNPATH, then
	libdl.so is searched for in the right place.

	* gnu/packages/cross-base.scm (cross-binutils): Pass
	  `--with-sysroot=/no-such-path'.

2013-05-27  Nikita Karetnikov  <nikita@karetnikov.org>

	doc: Improve wording and fix typos in "Introduction" and "Requirements".
	* doc/guix.texi (Introduction, Requirements): Rephrase and fix typos.

2013-05-26  Ludovic Courtès  <ludo@gnu.org>

	gnu: guile: Add Bash as an input, to permit cross-compilation.
	* gnu/packages/guile.scm (guile-2.0): Add Bash as an input
	  when (%current-target-system) is true.  Use %standard-cross-phases as
	  a basis when (%current-target-system) is true.

	gnu: bash: Fix cross-compilation.
	* gnu/packages/bash.scm (bash): Pass "bash_cv_job_control_missing=no"
	  when (%current-target-system) is true.

	build: `hydra.scm' really cross-builds Gettext.
	* hydra.scm: Import (gnu packages gettext).

2013-05-25  Cyril Roelandt  <tipecaml@gmail.com>

	zlib: Add a sourceforge mirror.
	This is especially useful since the tarball is deleted from zlib.net as soon as
	a new version of zlib is released.

2013-05-25  Ludovic Courtès  <ludo@gnu.org>

	build: Add missing import in `hydra.scm'.
	* hydra.scm: Import (gnu packages gawk).

	build: `hydra.scm' cross-builds a few more packages.
	* hydra.scm (%packages-to-cross-build): Add a few packages.

	gnu: ncurses, readline: Allow cross-compilation.
	* gnu/packages/ncurses.scm (ncurses): Add `cross-pre-install-phase'.
	  Use different phases when (%current-target-system) is true.
	* gnu/packages/readline.scm (readline): Use %standard-cross-phases as
	  the base when (%current-target-system) is true.

	gnu: libffi: Allow cross-compilation.
	* gnu/packages/libffi.scm (libffi): Use %standard-cross-phases as the
	  base when cross-compiling.  Add (guix build gnu-cross-build) to the
	  #:modules when cross-compiling.  Improve synopsis.

	gnu: libtool: Allow cross-compilation.
	* gnu/packages/autotools.scm (libtool)[arguments]: Use #:phases argument
	  only when building natively.

	gnu: gawk: Allow cross-compilation.
	* gnu/packages/gawk.scm (gawk)[arguments]: Use `set-shell-file-name'
	  phase that works when cross-compiling; use `%standard-cross-phases' as
	  the base when (%current-target-system) is true.

	gnu: libsigsegv: Fix mips64el-linux-gnu (cross-)builds.
	* gnu/packages/libsigsegv.scm (libsigsegv): New `arguments' field.

	gnu: findutils: Fix cross-compilation.
	* gnu/packages/base.scm (findutils): Reinstate cross-compilation
	  #:configure-flags.

	gnu: sed: Allow cross-compilation.
	* gnu/packages/base.scm (sed): Keep the default phases
	  when (%current-target-system) is true.

	gnu: coreutils: Allow cross-compilation.
	* gnu/packages/base.scm (coreutils): Remove Perl input
	  when (%current-target-system) is true.  Use %standard-cross-phases as
	  the base when (%current-target-system) is true.

	gnu: gettext, attr, acl: Disable `check' phase twiddling when cross building.
	* gnu/packages/gettext.scm (gettext)[arguments]: Disable `check' phase
	  manipulations when (%current-target-system) is true.
	* gnu/packages/attr.scm (attr)[arguments]: Likewise.
	* gnu/packages/acl.scm (acl)[arguments]: Likewise.

	packages: Make `native-inputs' thunked.
	* guix/packages.scm (<package>): Make `native-inputs' thunked.

	packages: Re-export `%current-target-system'.
	* guix/packages.scm: Re-export `%current-target-system'.

	build-system/gnu: Make sure build input variables contain pairs.
	* guix/build-system/gnu.scm (gnu-cross-build)[builder]: Make sure
	  %build-host-inputs and %build-target-inputs always contain pairs, not
	  lists.

	build: `hydra.scm' cross-builds simpler packages.
	* hydra.scm (%packages-to-cross-build): Remove things from
	  make-bootstrap for now.

2013-05-24  Ludovic Courtès  <ludo@gnu.org>

	build-system/trivial: Implement the cross-build protocol.
	* guix/build-system/trivial.scm (guile-for-build): New procedure.
	  (trivial-build): Use it.
	  (trivial-cross-build): New procedure.
	  (trivial-build-system): Use it.

	package: Fix default profile ownership check when it's just been created.
	* guix/scripts/package.scm (guix-package)[ensure-default-profile]: Check
	  whether S is true before checking its owner.  Fixes the case where we
	  built %PROFILE-DIRECTORY just above.

	build: `hydra.scm' adds cross-build jobs.
	* hydra.scm (package->alist): Add `package-derivation' argument.
	  (package-cross-job): New procedure.
	  (%packages-to-cross-build, %cross-targets): New variables.
	  (hydra-jobs): Add cross jobs.

	build: Add `--target' option.
	* guix/scripts/build.scm (derivations-from-package-expressions): Add
	  `package-derivation' parameter.
	  (show-help, %options): Add `--target'.
	  (guix-build): Use `package-cross-derivation' when `--target' is
	  passed.
	* tests/guix-build.sh: Add dry-run test with `--target'.
	* doc/guix.texi (Invoking guix build): Document `--target'.

	build-system/gnu: Implement cross build.
	* guix/build-system/gnu.scm (inputs-search-paths): New procedure.
	  (standard-search-paths): Use it.
	  (expand-inputs): New procedure.
	  (standard-inputs): Use it.
	  (standard-cross-packages, standard-cross-inputs,
	  standard-cross-search-paths, gnu-cross-build): New procedures.
	  (gnu-build-system): Set `cross-build' field to `gnu-cross-build'.
	* gnu/packages/cross-base.scm: Export `cross-gcc', `cross-binutils', and
	  `cross-libc'.
	* guix/build/gnu-cross-build.scm: New file.
	* Makefile.am (MODULES): Add it.

	packages: Implement `package-cross-derivation'.
	* guix/packages.scm (package-transitive-target-inputs,
	  package-transitive-native-inputs): New procedures.
	  (package-derivation): Parametrize `%current-target-system'.
	  (package-cross-derivation): Implement.
	* guix/utils.scm (%current-target-system): New variable.
	* tests/packages.scm ("package-cross-derivation"): New test.
	* doc/guix.texi (Defining Packages): Document
	  `package-cross-derivation'.

	gnu: cross-gcc: Set the right search paths.
	* gnu/packages/cross-base.scm (cross-gcc): Override `search-paths' and
	  `native-search-paths'.

	gnu: cross-gcc: Change patch so that `CROSS_LIBRARY_PATH' is honored.
	* gnu/packages/patches/gcc-cross-environment-variables.patch: Add two
	  hunks, most notably one that changes GCC to honor LIBRARY_PATH_ENV
	  when cross-compiling.

	packages: Factorize things common to `package-{,cross-}derivation'.
	* guix/packages.scm (expand-input): New procedure, moved out of...
	  (package-derivation): ... here.  Adjust accordingly.
	  (package-cross-derivation): Add `cross-system' and `system'
	  parameters.

	nls: Add Esperanto translation.
	* po/eo.po, po/LINGUAS: New files.

	gnu: Add UnRTF.
	* gnu/packages/unrtf.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-05-23  Ludovic Courtès  <ludo@gnu.org>

	gnu: libgc: Add 7.2d.
	* gnu/packages/bdw-gc.scm (libgc-7.2): New variable.

2013-05-22  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add GNU Plotutils.
	* gnu/packages/plotutils.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-05-20  Ludovic Courtès  <ludo@gnu.org>

	Update `NEWS'.

	gnu: Add CVS.
	* gnu/packages/version-control.scm (cvs): New variable.

	Add `--max-silent-time' to `guix build' and `guix package'.
	* guix/scripts/build.scm (%default-options): Add default
	  `max-silent-time' value.
	  (show-help, %options):  Add `--max-silent-time'.
	  (guix-build): Pass `max-silent-time' to `set-build-options'.
	* guix/scripts/package.scm (%default-options): Add default
	  `max-silent-time' value.
	  (show-help, %options):  Add `--max-silent-time'.
	  (guix-package): Pass `max-silent-time' to `set-build-options'.
	* guix/ui.scm (string->number*): New procedure.
	* tests/derivations.scm ("build-expression->derivation and
	  max-silent-time"): New test.
	* doc/guix.texi (Invoking guix package, Invoking guix build): Document
	  `--max-silent-time'.

2013-05-18  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add strace.
	* gnu/packages/linux.scm (strace): New variable.

	gnu: Improve synopses for Linux-related packages.
	* gnu/packages/linux.scm (util-linux, procps, e2fsprogs): Clarify and
	  shrink synopses.

	build: Switch to 0.3.
	* configure.ac: Bump to 0.3.  Use the full URL.

2013-05-17  Ludovic Courtès  <ludo@gnu.org>

	Update `TODO'.

	gnu: automake: Update to 1.13.2.
	* gnu/packages/autotools.scm (autoconf-wrapper): Wrap `configure' files
	  regardless of the exit code of `autoconf'.  Triggered by Automake's
	  `t/am-prog-cc-stdc.sh'.
	  (automake): Update to 1.13.2.

2013-05-16  Ludovic Courtès  <ludo@gnu.org>

	package: Make sure the profile directory is owned by the user.
	* guix/scripts/package.scm (guix-package)[ensure-default-profile]: Check
	  the owner of %PROFILE-DIRECTORY.  Report an error when the owner is
	  not the current user.  Add `rtfm' procedure.
	* doc/guix.texi (Invoking guix package): Mention the ownership test.

2013-05-15  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Pass `filtered-port' an unbuffered port.
	This fixes a bug whereby `read-response' would read more than just the
	response, with the extra data going into the port's buffer; the
	"bzip2 -dc" process spawned by `filtered-port' would not see the those
	buffered data, which are definitely lost, and would bail out with
	"bzip2: (stdin) is not a bzip2 file."

	* guix/utils.scm (filtered-port): Document that INPUT must be
	  unbuffered.
	* guix/web.scm (http-fetch): Add `buffered?' parameter.  Call
	  `open-socket-for-uri' explicitly, and call `setvbuf' when BUFFERED? is
	  false.  Pass the port to `http-get'.  Close it upon 301/302.
	* guix/scripts/substitute-binary.scm (fetch): Add `buffered?'
	  parameter.  Pass it to `http-fetch'; honor it for `file' URIs.
	  (guix-substitute-binary): Call `fetch' with #:buffered? #f for port RAW.
	* tests/utils.scm ("filtered-port, file"): Open FILE as unbuffered.

2013-05-15  Ludovic Courtès  <ludo@gnu.org>

	gnu: texinfo: Don't propagate Perl.
	* gnu/packages/texinfo.scm (texinfo): Don't propagate Perl.

2013-05-14  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Work around thread-unsafe `regexp-exec'.
	* guix/scripts/substitute-binary.scm (%regexp-exec-mutex): New variable.
	  (string->uri): New procedure.
	  (fields->alist): Wrap `regexp-exec' call in `with-mutex'.

	package: Always clear the SIGINT handler.
	* guix/scripts/package.scm (call-with-sigint-handler): Wrap THUNK in
	  `dynamic-wind' so that the SIGINT handler is always cleared.

	ftp-client: Let callers handle `ftp-open' exceptions.
	* guix/ftp-client.scm (ftp-open): Let exceptions through.
	* guix/scripts/package.scm (waiting): Wrap EXP in a `dynamic-wind', so
	  the line is always cleared.

	Sort commands alphabetically in "guix --help".
	* guix/ui.scm (show-guix-help): Sort commands.

2013-05-14  Ludovic Courtès  <ludo@gnu.org>

	Fix "guix --help" on Guile 2.0.5.
	Reported at <http://linuxfr.org/news/sortie-de-gnu-guix-0-2>.

	* guix/ui.scm (command-files): Filter the result of `scandir' to make
	  sure only `.scm' files are present.

2013-05-12  Ludovic Courtès  <ludo@gnu.org>

	build: Use separate `AC_CONFIG_FILES' invocations for executable files.
	* configure.ac: Use separate AC_CONFIG_FILES invocations for files that
	  need to be made executable.
	* config-daemon.ac: Likewise.

	build: Add `gitlog-to-changelog'.
	* build-aux/gitlog-to-changelog: New file, from Gnulib.

	Update `NEWS'.

	build: Make sure the distribution doesn't embed store file names.
	* Makefile.am (assert-no-store-file-names): New target.
	  (dist-hook): Depend on it.

	build: Generate a ChangeLog file upon "make dist".
	* Makefile.am (sync-synopses): New rule, formerly `dist-hook.
	  (gen-ChangeLog): New rule.
	  (dist-hook): Depend on these two targets.

	Move record utilities to (guix records).
	* guix/utils.scm (define-record-type*): Move to...
	* guix/records.scm: ... here.  New file.
	* guix/build-system.scm, guix/packages.scm: Use it.
	* guix/gnu-maintenance.scm: Likewise.
	  (official-gnu-packages)[alist->record]: Remove.
	* guix/scripts/substitute-binary.scm: Likewise.
	  (alist->record, object->fields): Remove.
	* tests/utils.scm ("define-record-type*", "define-record-type* with
	  letrec* behavior", "define-record-type* & inherit",
	  "define-record-type* & inherit & letrec* behavior",
	  "define-record-type* & thunked", "define-record-type* & thunked &
	  default", "define-record-type* & thunked & inherited"): Move to...
	* tests/records.scm: ... here.  New file.

	release.nix: Revert back to before unchroot experiments.
	* release.nix: Revert to commit 4050e5d6cfe8f7af29f10b2f1b3c7febdc10946a.

	gnu: guile-reader: Install modules in the right place.
	* gnu/packages/guile.scm (guile-reader): Add `arguments' field.

2013-05-11  Ludovic Courtès  <ludo@gnu.org>

	Update `NEWS'.

	gnu: Add GNU RCS.
	* gnu/packages/bazaar.scm: Rename to...
	* gnu/packages/version-control.scm: ... this.
	  (rcs): New variable.
	* Makefile.am (MODULES): Adjust accordingly.

	build: Really clean .log files from SRFI-64.
	* Makefile.am (CLEANFILES): Really catch .log files from SRFI-64.

	build: Run `tests/guix-gc.sh' last to avoid test failures.
	* Makefile.am (tests/guix-gc.log): New target.  This should fix failures
	  that occurred with "make check -j" the first time.

	gnu: Add Scheme48.
	* gnu/packages/scheme.scm (scheme48): New variable.
	* gnu/packages/patches/scheme48-tests.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

	gnu: gnupg: Update to 2.0.20.
	* gnu/packages/gnupg.scm (gnupg): Update to 2.0.20.

	gnu: chicken: Clear description.
	* gnu/packages/scheme.scm (chicken): Remove unneeded part of the
	  description.

	doc: Document "guix download".
	* doc/guix.texi (Defining Packages): Linke to "Invoking guix download".
	  (Utilities): Add an overview paragraph.
	  (Invoking guix download): New node.

	gnu: Sync synopses with the Womb.
	* gnu/packages/bazaar.scm (bazaar): Use synopsis from the Womb.
	* gnu/packages/gv.scm (gv): Likewise.

	tests: Fix out-of-source builds.
	* tests/nar.scm (%test-dir): Compute relative to `pre-inst-env', which
	  is in $top_builddir.

	tests: Add `guix hash' test.
	* guix/scripts/hash.scm (guix-hash)[eof->null]: New procedure.
	  Use it to convert the EOF object to the empty bytevector.
	* tests/guix-hash.sh: New file.
	* Makefile.am (SH_TESTS): Add it.

	Update Nix sub-module.
	* nix-upstream: Update to 3a0cc43ac89ae8f778764c9f5e27b361e4986913
	  (Nix ~1.5.2).

	refresh: Add `--key-server' and `--gpg'.
	* guix/scripts/refresh.scm (%options): Add `--key-server' and `--gpg'.
	  (show-help): Update accordingly.
	  (update-package): New procedure, formerly in `guix-refresh'.
	  (guix-refresh): Use it.  Parameterize `%openpgp-key-server' and
	  `%gpg-command'.

	gnupg: Turn the GPG command name and keyserver into parameters.
	* guix/gnupg.scm (%gpg-command): Turn into a SRFI-39 parameter.
	  (%openpgp-key-server): Likewise.  Default to pgp.mit.edu, as
	  keys.gnupg.net is unreliable.
	  Update users.

	gnu: Add CHICKEN.
	* gnu/packages/scheme.scm (chicken): New variable.

2013-05-10  Ludovic Courtès  <ludo@gnu.org>

	ui: Invite users to try `--help' in the error message.
	* guix/ui.scm (show-guix-usage): Mention `guix --help'.
	  Suggested by Mark H. Weaver.
	  (run-guix-command): Invoke it when a command is not found.
	  (guix-main): Adjust accordingly.

	Update `NEWS'.

	package: Store the output path of packages installed with `-e'.
	* guix/scripts/package.scm (guix-package)[process-actions](package->tuple):
	  Put the output path in the tuple, not the derivation path.
	* tests/guix-package.sh: Add test.

2013-05-10  Ludovic Courtès  <ludo@gnu.org>

	package: Make sure the dependencies get built along with the manifest.
	Before this, something like "guix package -i glibc" could fail because
	glibc lists linux-libre-headers as a propagated input (which would be
	added as a dependency in the manifest) but the linux-libre-headers
	output could be unavailable, leading to an error like this:

	  path `/nix/store/4v2bk8sx5cm166gks3fi3q7d9zchibnk-linux-libre-headers-3.3.8' is not valid

	This patch adds such dependencies as inputs of the profile derivation.

	* guix/scripts/package.scm (profile-derivation): Accept package objects
	  in the `deps' field of an element of PACKAGES.  Convert them to their
	  output path for BUILDER, and add them to the inputs of the
	  `build-expression->derivation' call.
	  (input->name+path): When INPUT doesn't contain a package object,
	  return it as is.
	  (guix-package)[process-actions](canonicalize-deps): Expect DEPS to
	  contain package objects, and leave them as is.

2013-05-10  Ludovic Courtès  <ludo@gnu.org>

	Update `TODO'.

	refresh: Gracefully handle failure to download a tarball.
	* guix/scripts/refresh.scm (guix-refresh): When updating a source file,
	  gracefully handle the case where TARBALL is #f.
	  Reported by Nikita Karetnikov <nikita@karetnikov.org>.

	ui: Implement `guix --help'.
	* guix/ui.scm (command-files, commands, show-guix-help): New procedures.
	  (guix-main): Invoke `show-guix-help' when passed `--help'.

	ui: Gracefully report "command not found" errors.
	* guix/ui.scm (run-guix-command): Can `resolve-interface' errors and
	  report them with `leave'.  Parameterize `program-name' from here.
	  (guix-main): Remove parameterization of `program-name'.

	gnu-maintenance: Add GnuTLS FTP server.
	* guix/gnu-maintenance.scm (ftp-server/directory)[quirks]: Add GnuTLS.

2013-05-10  Ludovic Courtès  <ludo@gnu.org>

	download: Fix premature socket close on TLS connections.
	This would manifest when downloading a large file such as the Bazaar
	tarball, leading to an "Error in the pull function" GnuTLS exception.

	* guix/build/download.scm (add-weak-reference): New procedure.
	  (tls-wrap): Add (add-weak-reference record port).

2013-05-10  Ludovic Courtès  <ludo@gnu.org>

	package: Use ~/.guix-profile as the default for --search-paths.
	* guix/scripts/package.scm (search-path-environment-variables): Prefer
	  %USER-ENVIRONMENT-DIRECTORY when it points to PROFILE.
	  (display-search-paths): Use 3 spaces for indentation.

	build: Make sure the user's Guile has all the required features.
	* m4/guix.m4 (GUIX_ASSERT_GUILE_FEATURES): New macro.
	* configure.ac: Use it.

	gnu: geiser: Update to 0.4.
	* gnu/packages/emacs.scm (geiser): Update to 0.4.

2013-05-09  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add GNU Bazaar.
	* gnu/packages/bazaar.scm: New file.
	* Makefile.am (MODULES): Add it.

	Add 'python-build-system'.
	* guix/build-system/python.scm, guix/build/python-build-system.scm: New files.
	* Makefile.am (MODULES): Add them.

2013-05-08  Ludovic Courtès  <ludo@gnu.org>

	Add (guix build rpath).
	* guix/build/rpath.scm: New file.
	* Makefile.am (MODULES): Add it.
	* gnu/packages/python.scm (python): Use it; remove local copy of
	  the *rpath* procedures.
	* gnu/packages/samba.scm (samba): Likewise.

	gnu: Add tzdata.
	* gnu/packages/base.scm (tzdata): New variable.

2013-05-08  Andreas Enge  <andreas@enge.fr>

	gnu: Add cryptsetup.
	* gnu/packages/cryptsetup.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add lvm2.
	* gnu/packages/lvm.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-05-08  Ludovic Courtès  <ludo@gnu.org>

	doc: Update `NEWS'.
	* NEWS: Update.

	doc: Document `guix refresh'.
	* doc/guix.texi (Defining Packages): Add cross-reference to "Invoking
	  guix refresh".
	  (Invoking guix refresh): New node.

	package: Display the output of packages to be installed/removed.
	* guix/scripts/package.scm (guix-package)[show-what-to-remove/install]:
	  Display the output name.

	package: Preserve the installed package output when upgrading.
	* guix/scripts/package.scm (guix-package)[find-package]: Add optional
	  parameter `output'.  Use it.
	  [process-actions]: When computing UPGRADE, pass OUTPUT to
	  `find-package'.

	gnu: python: Build the shared library.
	* gnu/packages/python.scm (python): Add `--enable-shared'.  Add
	  #:modules and #:phases.  Add PatchELF as an input.

	gnu: gsasl: Propagate GnuTLS.
	* gnu/packages/gsasl.scm (gsasl): Move GnuTLS to `propagated-inputs'.

2013-05-07  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add Hugs.
	* gnu/packages/hugs.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-05-07  Ludovic Courtès  <ludo@gnu.org>

	ui: Capitalize informative messages.
	* guix/ui.scm (show-what-to-build): Capitalize user messages, as per the
	  GCS (info "(standards) Errors").

	package: Fix spacing in user messages.
	* guix/scripts/package.scm (guix-package)[process-actions]: Fix spacing.

	gnu: help2man: Update to 1.41.2.
	* gnu/packages/help2man.scm (help2man): Update to 1.41.2.

	gnu: guile-ncurses: Update to 1.4.
	* gnu/packages/guile.scm (guile-ncurses): Update to 1.4.

	gnu: Add GNU FreeIPMI.
	* gnu/packages/freeipmi.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-05-06  Ludovic Courtès  <ludo@gnu.org>

	gnu: gv: Move to a separate file.
	* gnu/packages/ghostscript.scm (ghostscript): Remove libxext and libxt
	  as inputs.
	  (gv): Move to...
	* gnu/packages/gv.scm (gv): ... here.  New file.
	  (ghostscript/x): Variant of GHOSTSCRIPT with libxt and libxext as
	  inputs.

	gnu: freetype: Use mirror:// URL.
	* gnu/packages/fontutils.scm (freetype): Use mirror://savannah URL.

	refresh: Change default to not update source files.
	* guix/scripts/refresh.scm (%options): Change `--dry-run' to `--update'.
	  (show-help): Adjust accordingly.
	  (guix-refresh): Likewise.

2013-05-05  Andreas Enge  <andreas@enge.fr>

	gnu: Add GNU gv.
	* gnu/packages/ghostscript.scm (gv): New variable.

	gnu: ghostscript: Add X support.
	* gnu/packages/ghostscript.scm (ghostscript): Add X related inputs.

	gnu: Add libxaw3d.
	* gnu/packages/xorg.scm (libxaw3d): New variable.

	gnu: Add atk.
	* gnu/packages/gtk.scm: New module.
	* Makefile.am (MODULES): Add it.

2013-05-04  Andreas Enge  <andreas@enge.fr>

	gnu: Add id3lib.
	* gnu/packages/mp3.scm (id3lib): New variable.

2013-05-01  Andreas Enge  <andreas@enge.fr>

	gnu: Have python paths set automatically..
	* gnu/packages/xorg.scm (meas): Drop special handling of python paths.
	* gnu/packages/xml.scm (libxslt): Drop special handling of python paths.

	gnu: xorg: Have perl paths set automatically.
	* gnu/packages/xorg.scm (xkeyboard-config): Drop special handling of perl paths.

2013-04-30  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'core-updates'

2013-04-30  Nikita Karetnikov  <nikita@karetnikov.org>

	utils: Adjust 'wrap-program'.
	* guix/build/utils.scm (wrap-program): Fix computation of PROG-REAL and
	  PROG-TMP when PROG is an absolute file name.  Add "$@" in the
	  generated script, and quote PROG-REAL.

2013-04-29  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Support decompression from non-file ports.
	* guix/scripts/substitute-binary.scm (filtered-port): Move to utils.scm.
	  (decompressed-port): Upon "none", return '() as the second value.
	  (guix-substitute-binary): Expect `decompressed-port' to return a list
	  of PIDs as its second value.
	* guix/utils.scm (filtered-port): New procedure.  Add case for when
	  INPUT is not `file-port?'.
	* tests/utils.scm ("filtered-port, file", "filtered-port, non-file"):
	  New tests.

	build: Add silent-rules machinery for `guild compile'.
	* Makefile.am (AM_V_GUILEC, AM_V_GUILEC_, AM_V_GUILEC_0): New
	  variables.
	  (.scm.go): Use $(AM_V_GUILEC).

	build: Replace *.log in `CLEANFILES' by the exact list of files.
	* Makefile.am (SCM_TESTS, SH_TESTS): New variables.
	  (TESTS): Use them.
	  (CLEANFILES): Replace *.log by $(SCM_TESTS:%.scm=%.log).

	gnu: make-bootstrap: Fix %glibc-stripped.
	* gnu/packages/make-bootstrap.scm (%glibc-stripped): Add `outputs' field.

2013-04-28  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Fix default name for the "doc" output directory.
	* guix/build/gnu-build-system.scm (configure)[package-name]: Drop the
	  prefix corresponding to the hash part of OUT.

	guix package: Add `--search-paths' & co.
	* guix/scripts/package.scm (search-path-environment-variables,
	  display-search-paths): New procedures.
	  (show-help, %options): Add `--search-paths'.
	  (guix-package)[process-actions]: Call `display-search-paths' once the
	  profile is ready.
	  [process-query]: Honor `search-paths'.

	utils: Add `string-tokenize*'.
	* guix/utils.scm (string-tokenize*): New procedure.
	* tests/utils.scm ("string-tokenize*"): New test.

2013-04-28  Andreas Enge  <andreas@enge.fr>

	gnu: xpdf: Use gs-fonts to provide standard postscript fonts.
	* gnu/packages/pdf (xpdf): Add path to gs-fonts in xpdfrc.

	gnu: Add gs-fonts.
	* gnu/packages/ghostscript.scm (gs-fonts): New variable.

2013-04-27  Ludovic Courtès  <ludo@gnu.org>

	packages: Work around compiler bug in Guile 2.0.5.
	* guix/packages.scm (package-field-location): Work around compiler bug
	  in 2.0.5.  Reported by Andreas Enge <andreas@enge.fr>.

	web: Add workaround for <http://bugs.gnu.org/13095>.
	* guix/web.scm: Add workaround for <http://bugs.gnu.org/13095>.

	web: Add 2.0.5 workaround for responses without content-length.
	* guix/web.scm (read-response-body*)[when-guile<=2.0.5]: Support
	  responses without content-length.
	  Reported by Andreas Enge <andreas@enge.fr>.

	gnu-maintenance: Fix error message of `update-package-source'.
	* guix/gnu-maintenance.scm (update-package-source): In the (not loc)
	  case, pass the location first and convert it to a string.

	doc: Update `NEWS'.
	* NEWS: Populate.

	ui: Add `args-fold*' and use it.
	* guix/ui.scm (args-fold*): New procedure.
	* guix/scripts/build.scm, guix/scripts/download.scm,
	  guix/scripts/gc.scm, guix/scripts/hash.scm, guix/scripts/import.scm,
	  guix/scripts/package.scm, guix/scripts/pull.scm,
	  guix/scripts/refresh.scm: Use `args-fold*' instead of `args-fold'.

	ui: Use consistent spacing in `show-what-to-build' messages.
	* guix/ui.scm (show-what-to-build): Use consistent spacing in "the
	  following..." messages.

	gnu: Update libgpg-error and libassuan.
	* gnu/packages/gnupg.scm (libgpg-error): Update to 1.11.
	  (libassuan): Update to 2.1.0.

	gnu-maintenance: Fix `latest-release' for GnuPG.
	* guix/gnu-maintenance.scm (latest-release): Filter out directories
	  whose name does not contain digits early in the process.  This fixes
	  (latest-release "gnupg").

	ftp-client: `ftp-chdir' changes one step at a time.
	* guix/ftp-client.scm (%char-set:not-slash): New variable.
	  (ftp-chdir): Add docstring.  Change to DIR one step at a time.
	  (ftp-retr): Fix indentation.

	gnu: bison: Update to 2.7.1.
	* gnu/packages/bison.scm (bison): Update to 2.7.1.

	gnu: gprolog: Update to 1.4.4.
	* gnu/packages/gprolog.scm (gprolog): Update to 1.4.4.

	gnu: gdb: Update to 7.6.
	* gnu/packages/gdb.scm (gdb): Update to 7.6.

	pull: Use `download-to-store'.
	* guix/scripts/pull.scm (download-and-store): Remove.
	  (unpack): Use `download-to-store' instead.

	web: Backport chunked encoding support for Guile <= 2.0.5.
	* guix/web.scm (when-guile<=2.0.5): New macro.
	  (read-chunk-header, read-chunk, read-chunk-body,
	  make-chunked-input-port, read-response-body*)[when-guile<=2.0.5]: New
	  procedures.
	  (http-fetch): Clarify message when (not data).

	build: Explicitly require Guile >= 2.0.5.
	* configure.ac: Require guile-2.0 >= 2.0.5.

	gnu: gawk: Update to 4.0.2.
	* gnu/packages/gawk.scm (gawk): Update to 4.0.2.

	gnu: patch: Update to 2.7.1.
	* gnu/packages/base.scm (patch): Update to 2.7.1.

2013-04-26  Ludovic Courtès  <ludo@gnu.org>

	gnu: Binutils 2.23.2 and GCC 4.7.3.
	* gnu/packages/base.scm (binutils): Update to 2.23.2.
	  (binutils-2.23, ld-wrapper-2.23): Remove.
	  (gcc-4.8): Move to...
	* gnu/packages/gcc.scm (gcc-4.8): ... here.
	  (gcc-4.7): Update to 4.7.3.  Add dependencies on ISL, CLooG, libelf,
	  and zlib.

	gnu: guile: Default to 2.0.9.
	* gnu/packages/guile.scm (guile-2.0/fixed): Switch to `guile-2.0'.

	gnu: diffutils: Update to 3.3.
	* gnu/packages/base.scm (diffutils): Update to 3.3.

	Merge branch 'master' into core-updates
	Conflicts:
		Makefile.am
		gnu/packages/autotools.scm
		gnu/packages/guile.scm
		gnu/packages/python.scm
		gnu/packages/shishi.scm
		guix/gnu-maintenance.scm
		guix/scripts/build.scm
		guix/scripts/gc.scm
		guix/scripts/package.scm
		guix/scripts/substitute-binary.scm
		guix/ui.scm
		nix/nix-daemon/guix-daemon.cc
		test-env.in
		tests/nar.scm
		tests/store.scm

2013-04-25  Ludovic Courtès  <ludo@gnu.org>

	gnu: libgcrypt: Update to 1.5.2.
	* gnu/packages/gnupg.scm (libgcrypt): Update to 1.5.2.

	gnu: dejagnu: Update to 1.5.1.
	* gnu/packages/dejagnu.scm (dejagnu): Update to 1.5.1.

	gnu: nano: Update to 2.3.2.
	* gnu/packages/nano.scm (nano): Update to 2.3.2.

	gnu: ed: Update to 1.8.
	* gnu/packages/ed.scm (ed): Update to 1.8.

	gnu-maintenance: Add newline in warning messages.
	* guix/gnu-maintenance.scm (download-tarball): Add newline in warning
	  messages.

	doc: Add note on installing Guix from Guix.
	* README (Installing Guix from Guix): New section.
	  Suggested by Alex Sassmannshausen <alex.sassmannshausen@gmail.com>.

	refresh: Add `--select'.
	* guix/scripts/refresh.scm (%options): Add `--select'.
	  (show-help): Likewise.  Augment initial help text.
	  (guix-refresh)[core-package?]: New procedure.
	  Use it when selecting packages.

2013-04-25  Ludovic Courtès  <ludo@gnu.org>

	web: Factorize `http-get' hackery.
	This should fix `substitute-binary --query' on Guile 2.0.5.

	* guix/web.scm: New file.
	* Makefile.am (MODULES): Add it.
	* po/POTFILES.in: Add it.
	* guix/gnu-maintenance.scm (http-fetch): Remove.
	  (%package-list-url): Turn into a URI.
	  (official-gnu-packages): Add #:text? #t to `http-fetch' call.
	* guix/scripts/substitute-binary.scm (fetch): Remove `http' case, and
	  use `http-fetch' instead.

2013-04-25  Ludovic Courtès  <ludo@gnu.org>

	gnu: wdiff: Update to 1.2.1.
	* gnu/packages/wdiff.scm (wdiff): Update to 1.2.1.  Add Texinfo as an input.

	gnu: nettle: Update to 2.7.
	* gnu/packages/nettle.scm (nettle): Update to 2.7.

	gnu: libtasn1: Update to 3.3.
	* gnu/packages/gnutls.scm (libtasn1): Update to 3.3.

	gnu-maintenance: Optimize `gnu-package?'.
	* guix/gnu-maintenance.scm (gnu-package?): Capture a memoizing version
	  of `gnu-package?'.

	gnu-maintenance: Optimize `release-file'.
	* guix/gnu-maintenance.scm (tarball-regexp): Remove.
	  (%tarball-rx): New variable.
	  (release-file): Adjust to use %TARBALL-RX.

	gnu-maintenance: Optimize `latest-release'.
	* guix/gnu-maintenance.scm (tarball-regexp, sans-extension,
	  release-file): New procedures.
	  (%alpha-tarball-rx): New variable.
	  (releases): Use them instead of local copies.
	  (latest-release): Rewrite to not do a recursive search of all
	  versions and instead jump directly to the latest.

	Add `guix refresh' and related auto-update tools.
	* guix/gnu-maintenance.scm (ftp-server/directory)[quirks]: Add glib.
	  (package-update-path, download-tarball, package-update,
	  update-package-source): New procedures.
	* guix/gnupg.scm, guix/scripts/refresh.scm: New files.
	* Makefile.am (MODULES): Add them.
	* guix/utils.scm (file-extension): New procedure.

	packages: Use `read' and source properties for `package-field-location'.
	* guix/packages.scm (package-field-location): Rewrite using `read' and
	  source properties.  Change to return #f upon failure.
	* tests/packages.scm ("package-field-location"): Check for #f upon failure.
	* build-aux/sync-synopses.scm: Adjust accordingly.

	utils: Fix column number returned by `source-properties->location'.
	* guix/utils.scm (source-properties->location): Use COL, not COL + 1.

2013-04-24  Mark H Weaver  <mhw@netris.org>

	gnu: hop: Update hash to match hop-2.4.0.tar.gz, which was modified in place.
	* gnu/packages/scheme.scm (hop): Update the hash.

2013-04-22  Ludovic Courtès  <ludo@gnu.org>

	packages: Add `package-field-location'.
	* guix/packages.scm (package-field-location): New procedure.
	* build-aux/sync-synopses.scm: Use it instead of `package-location'.
	* tests/packages.scm ("package-field-location"): New test.

	ui: Move macro definitions before any use.
	* guix/ui.scm (define-diagnostic, warning, report-error, leave): Move
	  definitions before any use.  Reported by Nikita Karetnikov.
	  (install-locale): Move back close to `initialize-guix'.

2013-04-22  Mark H Weaver  <mhw@netris.org>

	gnu: xorriso: Update to 1.2.8.
	* gnu/packages/cdrom.scm (xorriso): Update to 1.2.8.

	gnu: smalltalk: Update to 3.2.5.
	* gnu/packages/smalltalk.scm (smalltalk): Update to 3.2.5.

	gnu: groff: Update to 1.22.2.
	* gnu/packages/groff.scm (groff): Update to 1.22.2.

2013-04-21  Mark H Weaver  <mhw@netris.org>

	gnu: gprolog: Update to 1.4.3 and download from GNU mirrors
	* gnu/packages/gprolog.scm (gprolog): Update to 1.4.3.
	  Download from GNU mirrors.

2013-04-21  Ludovic Courtès  <ludo@gnu.org>

	Factorize `download-and-store'.
	* guix/download.scm (download-to-store): New procedure.
	* guix/scripts/download.scm (fetch-and-store): Remove.
	  (guix-download): Use `download-to-store' instead.
	* guix/ui.scm (call-with-temporary-output-file): Move to...
	* guix/utils.scm (call-with-temporary-output-file): ... here.

2013-04-21  Nikita Karetnikov  <nikita@karetnikov.org>

	Add 'guix hash'.
	* guix/scripts/hash.scm: New file.
	* Makefile.am (MODULES): Add it.
	* po/POTFILES.in: Add it.
	* doc/guix.texi (Invoking guix hash): New node.
	  (Defining Packages): Add a cross-reference to the 'Invoking guix
	  hash' node.

2013-04-21  Ludovic Courtès  <ludo@gnu.org>

	gnu: intltool: Fix typo.
	* gnu/packages/glib.scm (intltool): Fix typo.

2013-04-21  Nikita Karetnikov  <nikita@karetnikov.org>

	guix download: Add supported formats to '--help'.
	* guix/scripts/download.scm (show-help): Add supported formats.

2013-04-21  Ludovic Courtès  <ludo@gnu.org>

	ui: Move definition of `install-locale' after that of the `warning' macro.
	* guix/ui.scm (install-locale): Move definition after that of `warning'.

	gnu: guile: Update to 2.0.9.
	* gnu/packages/guile.scm (guile-2.0): Update to 2.0.9.
	  (guile-2.0/fixed): Keep at 2.0.7.

	gnu: intltool: Propagate gettext.
	* gnu/packages/glib.scm (intltool): Propagate gettext.

2013-04-21  Nikita Karetnikov  <nikita@karetnikov.org>

	ui: Add a 'define-diagnostic' macro.
	* guix/ui.scm (define-diagnostic): New macro, which is based on the
	  previous version of 'warning'.
	  (warning, leave): Redefine using 'define-diagnostic'.
	  (report-error): New macro.
	  (install-locale): Use 'warning' instead of 'format'.
	  (call-with-error-handling): Adjust 'leave'.
	* gnu/packages.scm (package-files): Use 'warning' instead of 'format'.
	* guix/gnu-maintenance.scm (http-fetch): Use 'warning' and 'leave'.
	* guix/scripts/build.scm (derivations-from-package-expressions, guix-build):
	  Adjust 'leave'.
	* guix/scripts/download.scm (guix-download): Adjust 'leave'.
	* guix/scripts/gc.scm (size->number, %options): Adjust 'leave'.
	* guix/scripts/package.scm (roll-back, guix-package): Adjust 'leave'.
	* po/POTFILES.in: Add 'guix/gnu-maintenance.scm'.

2013-04-20  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add GCC 4.8.0 and Binutils 2.23.2.
	* gnu/packages/base.scm (binutils-2.23, ld-wrapper-2.23, gcc-4.8): New
	  variables.

	substitute-binary: Remove expired cache entries once in a while.
	* guix/scripts/substitute-binary.scm (%narinfo-expired-cache-entry-removal-delay):
	  New variable.
	  (obsolete?): New procedure, formerly in `lookup-narinfo'.
	  (lookup-narinfo): Adjust accordingly.
	  (remove-expired-cached-narinfos, maybe-remove-expired-cached-narinfo):
	  New procedures.
	  (guix-substitute-binary): Call `maybe-remove-expired-cached-narinfo'.

	snix: Prefer synopses from the Womb rather than from Nixpkgs.
	* guix/snix.scm (snix-derivation->guix-package): When NAME is
	  in (official-gnu-packages), use this synopsis instead of the one from
	  Nixpkgs.

	gnu: gdbm, nano: Synchronize synopses.
	* gnu/packages/gdbm.scm, gnu/packages/nano.scm: Synchronize synopses
	  with the Womb.

	daemon: Gracefully handle cases where the daemon does not return a status code.
	* guix/store.scm (process-stderr): Check for EOF before doing (read-int p).

2013-04-19  Andreas Enge  <andreas@enge.fr>

	gnu: Unify the two intltool packages.
	* gnu/packages/xml.scm (intltool): Delete variable.
	* gnu/packages/glib.scm (intltool): Update to version 0.50.2.

2013-04-18  Ludovic Courtès  <ludo@gnu.org>

	daemon: Add `--no-substitutes'.
	Suggested by Mark H. Weaver.

	* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_NO_SUBSTITUTES): New macro.
	  (options): Add `--no-substitutes'.
	  (parse_opt): Add `GUIX_OPT_NO_SUBSTITUTES' case.
	  (main): Leave `settings.substituters' empty when
	  `settings.useSubstitutes' is false.

2013-04-18  Ludovic Courtès  <ludo@gnu.org>

	daemon: Really enable the substituter by default.
	* nix/nix-daemon/guix-daemon.cc (main): Really enable the substituter by
	  default.  Reported by Mark H. Weaver.

	doc: Mention the home page.
	* doc/guix.texi (Installation): Add a sentence pointing to the home
	  page.  Suggested by Arne Babenhauserheide.

2013-04-18  Nikita Karetnikov  <nikita@karetnikov.org>

	tests: Use a new synopsis of GNU Hello.
	* tests/guix-package.sh: Use a new synopsis of GNU Hello, which was
	  added in f50d2669e3e624365221cc81918ba55fdce94107.

2013-04-17  Ludovic Courtès  <ludo@gnu.org>

	doc: Transparent binary deployment is implemented.
	* doc/guix.texi (Features): Remove footnote saying that transparent
	  binary deployment is not implemented.

	guix package: Allow the search of the latest release to be interrupted.
	* guix/scripts/package.scm (%sigint-prompt): New variable.
	  (call-with-sigint-handler): New procedure.
	  (waiting): Use it.

	build: Add `sync-synopses.scm'.
	* build-aux/sync-synopses.scm: New file.
	* Makefile.am (EXTRA_DIST): Add it.
	  (dist-hook): New target.

2013-04-17  Ludovic Courtès  <ludo@gnu.org>

	gnu: Use synopses from the Womb.
	* gnu/packages/algebra.scm,
	  gnu/packages/aspell.scm,
	  gnu/packages/autotools.scm,
	  gnu/packages/base.scm,
	  gnu/packages/bash.scm,
	  gnu/packages/bison.scm,
	  gnu/packages/cdrom.scm,
	  gnu/packages/cflow.scm,
	  gnu/packages/compression.scm,
	  gnu/packages/cpio.scm,
	  gnu/packages/cppi.scm,
	  gnu/packages/ddrescue.scm,
	  gnu/packages/dejagnu.scm,
	  gnu/packages/ed.scm,
	  gnu/packages/emacs.scm,
	  gnu/packages/fdisk.scm,
	  gnu/packages/gawk.scm,
	  gnu/packages/gcc.scm,
	packages/gcc.scm, b/gnu/packages/gcc.scm,
	4b982 100644
	s/gcc.scm,
	s/gcc.scm,
	@@
	         %standard-phases)))))

	 `((gcc-libc . ,(assoc-ref inputs "libc"))))
	The GNU Compiler Collection")
	GNU Compiler Collection")
	n
	ompiler Collection includes compiler front ends for C, C++,
	tran, OpenMP for C/C++/Fortran, Java, and Ada, as well as
	  gnu/packages/gdb.scm,
	  gnu/packages/gettext.scm,
	  gnu/packages/ghostscript.scm,
	  gnu/packages/glib.scm,
	  gnu/packages/global.scm,
	  gnu/packages/gnupg.scm,
	  gnu/packages/gnutls.scm,
	  gnu/packages/gperf.scm,
	  gnu/packages/gprolog.scm,
	  gnu/packages/groff.scm,
	  gnu/packages/grub.scm,
	  gnu/packages/gsasl.scm,
	  gnu/packages/guile.scm,
	  gnu/packages/help2man.scm,
	  gnu/packages/idutils.scm,
	  gnu/packages/indent.scm,
	  gnu/packages/less.scm,
	  gnu/packages/libidn.scm,
	  gnu/packages/libsigsegv.scm,
	  gnu/packages/libunistring.scm,
	  gnu/packages/linux.scm,
	  gnu/packages/lsh.scm,
	  gnu/packages/m4.scm,
	  gnu/packages/mailutils.scm,
	  gnu/packages/multiprecision.scm,
	  gnu/packages/nano.scm,
	  gnu/packages/ncurses.scm,
	  gnu/packages/nettle.scm,
	  gnu/packages/oggvorbis.scm,
	  gnu/packages/parted.scm,
	  gnu/packages/pth.scm,
	  gnu/packages/readline.scm,
	  gnu/packages/recutils.scm,
	  gnu/packages/scheme.scm,
	  gnu/packages/screen.scm,
	  gnu/packages/shishi.scm,
	  gnu/packages/smalltalk.scm,
	  gnu/packages/system.scm,
	  gnu/packages/texinfo.scm,
	  gnu/packages/time.scm,
	  gnu/packages/wdiff.scm,
	  gnu/packages/wget.scm,
	  gnu/packages/which.scm: Use synopses from the Womb.

2013-04-17  Ludovic Courtès  <ludo@gnu.org>

	ui: Fix format string in `warning'.
	* guix/ui.scm (warning)[augmented-format-string]: Add missing ~*.

	gnu: Add missing import in (gnu packages cross-base).
	* gnu/packages/cross-base.scm: Use (gnu packages gcc).
	  Reported by Nikita Karetnikov <nikita@karetnikov.org>.

	scripts: Report what will be substituted.
	* guix/derivations.scm (derivation-input-output-paths): New procedure.
	  (derivation-prerequisites-to-build): New `use-substitutes?' keyword
	  argument.  Change two return the list of substitutable paths as a
	  second argument.
	* guix/ui.scm (show-what-to-build): Turn `dry-run?' into a keyword
	  argument.  New `use-substitutes?' keyword argument.  Use `fold2' and
	  adjust to use both return values of
	  `derivation-prerequisites-to-build'.  Display what will/would be
	  downloaded.
	* guix/scripts/build.scm (guix-build): Adjust accordingly.
	* guix/scripts/package.scm (guix-package): Likewise.
	* tests/derivations.scm ("derivation-prerequisites-to-build and
	  substitutes"): New test.

2013-04-16  Cyril Roelandt  <tipecaml@gmail.com>

	package: allow users to upgrade the whole system by not providing a regexp.
	* guix/scripts/packages.scm (guix-package) [process-actions]: When upgrading,
	use "" when REGEXP is #f.
	* doc/guix.texi: update the documentation accordingly.

	gnu: Python: bump to version 2.7.4.
	* gnu/packages/python.scm: bump to version 2.7.4, remove references to
	python-fix-dbm.patch.
	* Makefile.am: remove references to python-fix-dbm.patch
	* gnu/packages/patches/python-fix-dbm.patch: remove it.

2013-04-16  Ludovic Courtès  <ludo@gnu.org>

	build-system/{perl,cmake}: Keep the standard search paths of gnu-build-system.
	Reported by Andreas Enge <andreas@enge.fr>.

	* guix/build-system/gnu.scm (standard-search-paths): New procedure.
	  (gnu-build): Use it.
	* guix/build-system/perl.scm (perl-build):
	  Append (standard-search-paths) to the search paths of PERL.
	* guix/build-system/cmake.scm (cmake-build):
	  Append (standard-search-paths) to SEARCH-PATHS.

2013-04-15  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Skip servers that use a different store prefix.
	* guix/scripts/substitute-binary.scm (fetch-narinfo): Return #f when
	  CACHE uses a store directory different from (%store-prefix).

	substitute-binary: Call `open-cache' only when needed.
	* guix/scripts/substitute-binary.scm (lookup-narinfo): Force CACHE when
	  passing it to `fetch-narinfo'.
	  (guix-substitute-binary): Delay calls to `open-cache'.

	substitute-binary: Add a local cache.
	* guix/scripts/substitute-binary.scm (%narinfo-cache-directory,
	  %narinfo-ttl, %narinfo-negative-ttl): New variables.
	  (with-atomic-file-output, object->fields, read-narinfo,
	  write-narinfo, narinfo->string, string->narinfo, lookup-narinfo): New
	  procedures.
	  (fetch-narinfo): Adjust to use `read-narinfo'.
	  (guix-substitute-binary): Ensure the existence of
	  %NARINFO-CACHE-DIRECTORY.  Use `lookup-narinfo' instead of
	  `fetch-narinfo'.

2013-04-14  Ludovic Courtès  <ludo@gnu.org>

	gnu: automake: Restore shebangs on files that end up in user tarballs.
	* gnu/packages/autotools.scm (automake): Add `unpatch-shebangs' phase.

	utils: Add `fold2'.
	* gnu/packages.scm (fold2): Remove.
	* guix/utils.scm (fold2): New procedure.  Generalization of the above to
	  one and two lists.
	* tests/utils.scm ("fold2, 1 list", "fold2, 2 lists"): New tests.

2013-04-13  Ludovic Courtès  <ludo@gnu.org>

	gnu: emacs: Build the GUI with libXaw.
	* gnu/packages/emacs.scm (emacs): Add inputs: libX11, libXaw, libXt,
	  libtiff, libjpeg, libpng, zlib, libXpm, libxml2, and D-Bus.

	gnu: libXaw: Propagate libXt.
	* gnu/packages/xorg.scm (libxaw): Propagate libXt.

2013-04-12  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Ratpoison.
	* gnu/packages/ratpoison.scm: New file.
	* Makefile.am (MODULES): Add it.

	store: Remove unneeded and conflicting import.
	* guix/store.scm: Remove unneeded (ice-9 rdelim) import.  In Guile 2.0.9
	  that module exports `read-string', which conflicts with that of (guix
	  serialization).

	package: Being at the empty profile is not an error.
	* guix/scripts/package.scm (roll-back): Use `format', not `leave' when
	  indicating "already at the empty profile".  Fixes a regression
	  introduced in a2011be5dfaf2b94a1d0e3dfbcf4b512389b4711.  Reported by
	  Nikita Karetnikov <nikita@karetnikov.org>.

	Update `TODO'.

	guix package: Add `--no-substitutes'.
	* guix/scripts/package.scm (%default-options): Add `substitutes?'.
	  (show-help, %options): Add and document `--no-substitutes'.
	  (guix-package): Call `set-build-options' to honor `substitutes?'.

2013-04-12  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Implement `--substitute'.
	This allows build outputs to be transparently downloaded from
	http://hydra.gnu.org, for example.

	* config-daemon.ac: Check for `gzip', `bzip2', and `xz'.
	* guix/config.scm.in (%gzip, %bzip2, %xz): New variable.
	* guix/scripts/substitute-binary.scm (fetch): Return SIZE as a second value.
	  (<narinfo>): Change `url' to `uri'.
	  (make-narinfo): Rename to...
	  (narinfo-maker): ... this.  Handle relative URLs.
	  (fetch-narinfo): Adjust accordingly.
	  (filtered-port, decompressed-port): New procedures.
	  (guix-substitute-binary): Implement the `--substitute' case.
	* tests/store.scm ("substitute query"): Use (%store-prefix) instead
	  of (getenv "NIX_STORE_DIR").
	  ("substitute"): New test.

2013-04-12  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Correctly handle missing narinfos in `--query' mode.
	* guix/scripts/substitute-binary.scm (guix-substitute-binary)["--query"]("have",
	  "info"): Filter SUBSTITUTABLE through `narinfo?'.

	nar: Add support for symlinks.
	* guix/nar.scm (write-file): Add case for type `symlink'.
	  (restore-file): Likewise.
	* tests/nar.scm (random-file-size, make-file-tree, delete-file-tree,
	  with-file-tree, file-tree-equal?, make-random-bytevector,
	  populate-file): New procedures.
	  (%test-dir): New variable.
	  ("write-file + restore-file"): Use `%test-dir' and `file-tree-equal?'.
	  ("write-file + restore-file with symlinks"): New test.

	ui: Add a `warning' macro.
	* guix/ui.scm (program-name, guix-warning-port): New variables.
	  (warning): New macro.
	  (guix-main): Parametrize PROGRAM-NAME.
	* guix/scripts/build.scm, guix/scripts/download.scm,
	  guix/scripts/gc.scm, guix/scripts/package.scm: Adjust to use `leave'
	  and `warning' consistently.

	nar: Implement restoration from Nar.
	* guix/nar.scm (&nar-error, &nar-read-error): New condition types.
	  (dump): New procedure.
	  (write-contents)[dump]: Remove.  Use the one above instead.
	  (read-contents, write-file, restore-file): New procedures.
	  (%archive-version-1): New variable.

2013-04-12  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: shishi: Update to 1.0.2.
	* gnu/packages/shishi.scm (shishi): Update to 1.0.2.
	* gnu/packages/patches/shishi-gets-undeclared.patch: Remove it.
	* Makefile.am (dist_patch_DATA): Adjust accordingly.

2013-04-12  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Python: fix the compilation of some modules from the standard library.
	This commit enables the bz2, dbm, readline, ssl and zlib modules.

	* gnu/packages/gdbm.scm: Enable the compatibility mode.
	* gnu/packages/python.scm: Enable a few modules from the standard library.
	* gnu/packages/patches/python-fix-dbm.patch: New file.
	* Makefile.am: Add it.

2013-04-12  Ludovic Courtès  <ludo@gnu.org>

	Add (guix nar) and (guix serialization).
	* guix/store.scm (write-int, read-int, write-long-long, read-long-long,
	  write-padding, write-string, read-string, read-latin1-string,
	  write-string-list, read-string-list, write-store-path,
	  read-store-path, write-store-path-list, read-store-path-list): Move to
	  serialization.scm.
	  (write-contents, write-file): Move to nar.scm.
	* guix/nar.scm, guix/serialization.scm: New files.
	* Makefile.am (MODULES): Add them.

	substitute-binary: Fix communication of several store paths to the daemon.
	* guix/scripts/substitute-binary.scm (guix-substitute-binary)["--query"]:
	  Emit blank lines only after the complete list of store paths has been
	  returned.

	Add preliminary binary substituter.
	* guix/scripts/substitute-binary.scm: New file.
	* Makefile.am (MODULES): Add it.
	* nix/scripts/substitute-binary.in: New file.
	* config-daemon.ac: Produce nix/scripts/substitute-binary.
	* daemon.am (nodist_pkglibexec_SCRIPTS): Add
	  nix/scripts/substitute-binary.
	* guix/store.scm (substitutable-path-info): Use the
	  `query-substitutable-path-infos' RPC.
	* nix/nix-daemon/guix-daemon.cc (main): Honor `NIX_SUBSTITUTERS'.
	* pre-inst-env.in: Set `NIX_SUBSTITUTERS'.
	* test-env.in: Leave `NIX_SUBSTITUTERS' unchanged.  Set
	  `GUIX_BINARY_SUBSTITUTE_URL, and create
	  $NIX_STATE_DIR/substituter-data.
	  Run `guix-daemon' within `./pre-inst-env'.
	* tests/store.scm ("substitute query"): New test.

	gnu: bigloo: Add dependencies on Avahi and libphidget.
	* gnu/packages/scheme.scm (bigloo): Add Avahi and libphidget as inputs,
	  and pkg-config as a native input.

	gnu: Add libphidget.
	* gnu/packages/libphidget.scm: New file.
	* Makefile.am (MODULES): Add it.

	store: Add `store-path-hash-part'.
	* guix/store.scm (store-path-hash-part): New procedure.
	* tests/store.scm ("store-path-hash-part", "store-path-hash-part #f"):
	  New tests.

	gnu-maintenance: Adjust `http-fetch' to the various Guile versions.
	* guix/gnu-maintenance.scm (http-fetch): Try #:streaming? #t, or
	  'http-get*', or 'http-get' as a last resort.  Check whether DATA is
	  #f, a string, or an input port.

	pull: Switch to the cgit URL.
	* guix/scripts/pull.scm (%snapshot-url): Switch to the cgit URL, given
	  that the Hydra one is not currently available.

	tests: Remove temporary directory created by nar.scm.
	* tests/nar.scm ("write-file + restore-file with symlinks"): Add (rm-rf
	  output).

	store: Remove unneeded and conflicting import.
	* guix/store.scm: Remove unneeded (ice-9 rdelim) import.  In Guile 2.0.9
	  that module exports `read-string', which conflicts with that of (guix
	  serialization).

	package: Being at the empty profile is not an error.
	* guix/scripts/package.scm (roll-back): Use `format', not `leave' when
	  indicating "already at the empty profile".  Fixes a regression
	  introduced in a2011be5dfaf2b94a1d0e3dfbcf4b512389b4711.  Reported by
	  Nikita Karetnikov <nikita@karetnikov.org>.

	Update `TODO'.

	guix package: Add `--no-substitutes'.
	* guix/scripts/package.scm (%default-options): Add `substitutes?'.
	  (show-help, %options): Add and document `--no-substitutes'.
	  (guix-package): Call `set-build-options' to honor `substitutes?'.

2013-04-12  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Implement `--substitute'.
	This allows build outputs to be transparently downloaded from
	http://hydra.gnu.org, for example.

	* config-daemon.ac: Check for `gzip', `bzip2', and `xz'.
	* guix/config.scm.in (%gzip, %bzip2, %xz): New variable.
	* guix/scripts/substitute-binary.scm (fetch): Return SIZE as a second value.
	  (<narinfo>): Change `url' to `uri'.
	  (make-narinfo): Rename to...
	  (narinfo-maker): ... this.  Handle relative URLs.
	  (fetch-narinfo): Adjust accordingly.
	  (filtered-port, decompressed-port): New procedures.
	  (guix-substitute-binary): Implement the `--substitute' case.
	* tests/store.scm ("substitute query"): Use (%store-prefix) instead
	  of (getenv "NIX_STORE_DIR").
	  ("substitute"): New test.

2013-04-12  Ludovic Courtès  <ludo@gnu.org>

	substitute-binary: Correctly handle missing narinfos in `--query' mode.
	* guix/scripts/substitute-binary.scm (guix-substitute-binary)["--query"]("have",
	  "info"): Filter SUBSTITUTABLE through `narinfo?'.

	nar: Add support for symlinks.
	* guix/nar.scm (write-file): Add case for type `symlink'.
	  (restore-file): Likewise.
	* tests/nar.scm (random-file-size, make-file-tree, delete-file-tree,
	  with-file-tree, file-tree-equal?, make-random-bytevector,
	  populate-file): New procedures.
	  (%test-dir): New variable.
	  ("write-file + restore-file"): Use `%test-dir' and `file-tree-equal?'.
	  ("write-file + restore-file with symlinks"): New test.

2013-04-11  Ludovic Courtès  <ludo@gnu.org>

	tests: Adjust `gnu-build' test to search path mechanism.
	Fixes a regression introduced in a18eda2.
	Reported by Nikita Karetnikov <nikita@karetnikov.org>.

	* tests/builders.scm (%bootstrap-search-paths): New variable.
	  ("gnu-build"): Pass #:search-paths.

2013-04-11  Ludovic Courtès  <ludo@gnu.org>

	ui: Add a `warning' macro.
	* guix/ui.scm (program-name, guix-warning-port): New variables.
	  (warning): New macro.
	  (guix-main): Parametrize PROGRAM-NAME.
	* guix/scripts/build.scm, guix/scripts/download.scm,
	  guix/scripts/gc.scm, guix/scripts/package.scm: Adjust to use `leave'
	  and `warning' consistently.

2013-04-11  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add dwm.
	* gnu/packages/dwm.scm: New file.
	* Makefile.am: Add it.

2013-04-09  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Fix search path computation with implicit inputs.
	Reported by Andreas Enge <andreas@enge.fr>.

	* guix/build-system/gnu.scm (standard-packages): New procedure.
	  (standard-inputs): Use it instead of resolving things locally.
	  (gnu-build)[implicit-search-paths]: Map over (standard-packages), not
	  over STANDARD-INPUTS.

2013-04-08  Ludovic Courtès  <ludo@gnu.org>

	nar: Implement restoration from Nar.
	* guix/nar.scm (&nar-error, &nar-read-error): New condition types.
	  (dump): New procedure.
	  (write-contents)[dump]: Remove.  Use the one above instead.
	  (read-contents, write-file, restore-file): New procedures.
	  (%archive-version-1): New variable.

	build: Pass the appropriate flags when building `libstore.a'.
	* daemon.am (libstore_a_CFLAGS): Rename to...
	  (libstore_a_CXXFLAGS): ... this.

2013-04-08  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: shishi: Update to 1.0.2.
	* gnu/packages/shishi.scm (shishi): Update to 1.0.2.
	* gnu/packages/patches/shishi-gets-undeclared.patch: Remove it.
	* Makefile.am (dist_patch_DATA): Adjust accordingly.

2013-04-07  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Python: fix the compilation of some modules from the standard library.
	This commit enables the bz2, dbm, readline, ssl and zlib modules.

	* gnu/packages/gdbm.scm: Enable the compatibility mode.
	* gnu/packages/python.scm: Enable a few modules from the standard library.
	* gnu/packages/patches/python-fix-dbm.patch: New file.
	* Makefile.am: Add it.

2013-04-04  Ludovic Courtès  <ludo@gnu.org>

	Add (guix nar) and (guix serialization).
	* guix/store.scm (write-int, read-int, write-long-long, read-long-long,
	  write-padding, write-string, read-string, read-latin1-string,
	  write-string-list, read-string-list, write-store-path,
	  read-store-path, write-store-path-list, read-store-path-list): Move to
	  serialization.scm.
	  (write-contents, write-file): Move to nar.scm.
	* guix/nar.scm, guix/serialization.scm: New files.
	* Makefile.am (MODULES): Add them.

	substitute-binary: Fix communication of several store paths to the daemon.
	* guix/scripts/substitute-binary.scm (guix-substitute-binary)["--query"]:
	  Emit blank lines only after the complete list of store paths has been
	  returned.

2013-04-04  Andreas Enge  <andreas@enge.fr>

	Merge branch 'xorg' into core-updates

2013-04-03  Ludovic Courtès  <ludo@gnu.org>

	Add preliminary binary substituter.
	* guix/scripts/substitute-binary.scm: New file.
	* Makefile.am (MODULES): Add it.
	* nix/scripts/substitute-binary.in: New file.
	* config-daemon.ac: Produce nix/scripts/substitute-binary.
	* daemon.am (nodist_pkglibexec_SCRIPTS): Add
	  nix/scripts/substitute-binary.
	* guix/store.scm (substitutable-path-info): Use the
	  `query-substitutable-path-infos' RPC.
	* nix/nix-daemon/guix-daemon.cc (main): Honor `NIX_SUBSTITUTERS'.
	* pre-inst-env.in: Set `NIX_SUBSTITUTERS'.
	* test-env.in: Leave `NIX_SUBSTITUTERS' unchanged.  Set
	  `GUIX_BINARY_SUBSTITUTE_URL, and create
	  $NIX_STATE_DIR/substituter-data.
	  Run `guix-daemon' within `./pre-inst-env'.
	* tests/store.scm ("substitute query"): New test.

	gnu: bigloo: Add dependencies on Avahi and libphidget.
	* gnu/packages/scheme.scm (bigloo): Add Avahi and libphidget as inputs,
	  and pkg-config as a native input.

2013-04-02  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Re-enable tests for xorg-server.
	* gnu/packages/xorg.scm (xorg-server): Re-enable (failing) tests.

2013-04-02  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add libphidget.
	* gnu/packages/libphidget.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-04-01  Ludovic Courtès  <ludo@gnu.org>

	store: Add `store-path-hash-part'.
	* guix/store.scm (store-path-hash-part): New procedure.
	* tests/store.scm ("store-path-hash-part", "store-path-hash-part #f"):
	  New tests.

	gnu-maintenance: Adjust `http-fetch' to the various Guile versions.
	* guix/gnu-maintenance.scm (http-fetch): Try #:streaming? #t, or
	  'http-get*', or 'http-get' as a last resort.  Check whether DATA is
	  #f, a string, or an input port.

2013-03-31  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Remove inputs already available through propagation.
	* gnu/packages/xorg.scm: Remove inputs that are available through propagation.

	gnu: Add xpdf.
	* gnu/packages/pdf.scm (xpdf): New variable.
	* gnu/packages/patches/xpdf-constchar.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

	gnu: lesstif: Make package usable by adding propagated input.
	* gnu/packages/lesstif.scm (lesstif): Add propagated input printproto;
	     include/Xm/Print.h from lesstif includes X11/extensions/Print.h from
	     printproto.

	gnu: freetype: Make include file ft2build.h work without changing the CPATH      of dependent packages.
	* gnu/packages/fontutils.scm (freetype): Add link include/freetype to
	     include/freetype2/freetype.

	gnu: xorg: Add libxp and printproto, not included in X11R7.7.
	* gnu/packages/xorg.scm (libxp, printproto): New variables.

2013-03-31  Ludovic Courtès  <ludo@gnu.org>

	pull: Switch to the cgit URL.
	* guix/scripts/pull.scm (%snapshot-url): Switch to the cgit URL, given
	  that the Hydra one is not currently available.

	gnu: perl-xml-parser: Fix URL.
	* gnu/packages/xml.scm (perl-xml-parser): Fix URL.

2013-03-30  Ludovic Courtès  <ludo@gnu.org>

	gnu: Define `native-search-paths' for Automake, Guile, and Python.
	* gnu/packages/autotools.scm (automake)[native-search-paths]: New field.
	* gnu/packages/guile.scm (guile-1.8)[native-search-paths]: New field.
	  (guile-2.0)[native-search-paths]: New field.
	* gnu/packages/python.scm (python)[native-search-paths]: New field.

	packages: Add `native-search-paths' field and honor it.
	* guix/packages.scm (<search-path-specification>): New record type.
	  (search-path-specification->sexp): New procedure.
	  (<package>)[native-search-paths]: New field.
	  (package-derivation): Accumulate the search paths, and pass them
	  as #:search-paths toe BUILDER.
	* guix/build-system/gnu.scm (gnu-build): Add #:search-paths.  Compute
	  `implicit-search-paths'.  Pass #:search-paths in BUILDER.
	* guix/build-system/perl.scm (perl-build): Add #:search-paths, pass it
	  to BUILDER with the search paths of PERL.
	* guix/build-system/cmake.scm (cmake-build): Add #:search-paths, pass it
	  to BUILDER.
	* guix/build-system/trivial.scm (trivial-build): Add #:search-paths,
	  ignore it.
	* guix/build/gnu-build-system.scm (set-paths): Add #:search-paths.
	  Remove explicit settings of CPATH, LIBRARY_PATH, and PKG_CONFIG_PATH.
	  Instead, walk SEARCH-PATHS and call `set-path-environment-variable'
	  for them.
	* guix/build/perl-build-system.scm (perl-build): Remove PERL5LIB setting.
	* tests/packages.scm ("search paths"): New test.
	* gnu/packages/bootstrap.scm (%bootstrap-guile)[raw]: Add
	  #:search-paths.
	  (%bootstrap-gcc): Add `native-search-paths' field.
	* gnu/packages/perl.scm (perl): Likewise.
	* gnu/packages/pkg-config.scm (pkg-config): Likewise.
	* gnu/packages/glib.scm (intltool): Remove `arguments'.
	* gnu/packages/avahi.scm (avahi): Remove #:phases.

	build: Pass the appropriate flags when building `libstore.a'.
	* daemon.am (libstore_a_CFLAGS): Rename to...
	  (libstore_a_CXXFLAGS): ... this.

	build-system/gnu: Remove #:path-exclusions parameter.
	* guix/build/gnu-build-system.scm (set-paths): Remove `path-exclusions'
	  parameter.  Replace `relevant-input-directories' by
	  `input-directories'.
	* guix/build-system/gnu.scm (gnu-build): Remove `path-exclusions'
	  parameter; don't pass it in BUILDER.
	* guix/build-system/cmake.scm (cmake-build): Likewise.

2013-03-30  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Make font-adobe75dpi and font-adobe100dpi compile (not install).
	* gnu/packages/xorg/scm (font-adobe75dpi, font-adobe100dpi): Add inputs
	     bdftopcf, font-util and mkfontdir.

	gnu: xorg: Add mtdev and make xf86-input-synaptics compile (not install).
	* gnu/packages/xorg.scm (mtdev): New variable.
	* gnu/packages/xorg.scm (xf86-input-synaptics): Add inputs libx11, libxi
	     and mtdev.
	* gnu/packages/xorg.scm (libxi): Propagate input libxext.

	gnu: xorg: Disable not compiling xf86-video-geode.
	* gnu/packages/xorg.scm (xf86-video-geode): Comment out since not compiling
	     (assembler errors).

	gnu: xorg: Fix compilation of xorg-server.
	* gnu/packages/xorg.scm (mesa): Propagate input libxxf86vm.

	gnu: xorg: Disable xf86-video-glide.
	* gnu/packages/xorg.scm (xf86-video-glide): Comment variable; driver for
	     obsolete graphics cards, depends on libglide, last updated in 2003,
	     and which does not compile out of the box any more.

	gnu: xorg: Disable xf86-video-wsfb.
	* gnu/packages/xorg.scm (xf86-video-wsfb): Comment variable, only relevant
	     for the frame buffer on BSD systems.

	gnu: xorg: Make xgamma compile.
	* gnu/packages/xorg.scm (libxxf86vm): Propagate inputs libxext and
	     xf86vidmodeproto.

	gnu: xorg: Make xvinfo compile.
	* gnu/packages/xorg.scm (libxv): Propagate input videoproto.

2013-03-29  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'master' into core-updates
	Conflicts:
		Makefile.am
		gnu/packages/base.scm

2013-03-29  Andreas Enge  <andreas@enge.fr>

	gnu: Really add lesstif.
	* Makefile.am (MODULES): Commit the module addition.

	gnu: Add lesstif.
	* gnu/packages/lesstif.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-03-29  Ludovic Courtès  <ludo@gnu.org>

	snix: Adjust import to current Nixpkgs input attribute names.
	* guix/snix.scm (snix-derivation->guix-package): Use the new names
	  `nativeBuildInputs' and `propagatedNativeBuildInputs'.

2013-03-28  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Make most xserver related packages compile.
	* gnu/packages/xorg.scm (xf86-*): Add input xorg-server.
	* gnu/packages/xorg.scm (xf86-video-glint, xf86-video-neomagic,
	     xf86-video-tga, xf86-video-trident, xf86-video-voodoo):
	     Add input xf86dgaproto.
	* gnu/packages/xorg.scm (xf86-video-ati, xf86-video-mach64,
	     xf86-video-mga, xf86-video-r128, xf86-video-savage, xf86-video-tdfx):
	     Add inputs mesa and xf86driproto.
	* gnu/packages/xorg.scm (xf86-video-i128): Add inputs libdrm and libx11.
	* gnu/packages/xorg.scm (xf86-video-openchrome): Add inputs libx11, libxext,
	     libxvmc, mesa and xf86driproto.
	* gnu/packages/xorg.scm (xf86-video-siliconmotion): Add inputs mesa,
	     xf86dgaproto and xf86driproto.
	* gnu/packages/xorg.scm (xf86-video-vmware): Add inputs libx11 and libxext.
	* gnu/packages/xorg.scm (libxvmc): Propagate input libxv.
	* gnu/packages/xorg.scm (mesa): Propagate input glproto.
	* gnu/packages/xorg.scm (xf86-video-geode): Correct source hash.

2013-03-28  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu-maintenance: Improve 'official-gnu-packages'; add related procedures.
	* guix/gnu-maintenance.scm (http-fetch): Return an input port.
	  (<gnu-package-descriptor>): Add it.
	  (official-gnu-packages): Use <gnu-package-descriptor>.
	  (find-packages): Add it.
	  (gnu-package?): Adjust accordingly.

2013-03-28  Cyril Roelandt  <tipecaml@gmail.com>

	Add (guix build-system cmake).
	* guix/build/cmake-build-system.scm, guix/build-system/cmake.scm: New files.
	* Makefile.am (MODULES): Add them.

2013-03-28  Ludovic Courtès  <ludo@gnu.org>

	build: Set `%fresh-auto-compile' in `hydra.scm'.
	* hydra.scm: Set `%fresh-auto-compile' to #t.

2013-03-27  Ludovic Courtès  <ludo@gnu.org>

	gnu: make-bootstrap: Import (gnu packages gcc).
	* gnu/packages/make-bootstrap.scm: Import (gnu packages gcc).

	download: Remove unreliable GNU mirror.
	* guix/download.scm (%mirrors)[gnu]: Remove ftp.chg.ru.

	gnu: Add libelf.
	* gnu/packages/gcc.scm (libelf): New variable.

	gnu: Add ISL and CLooG.
	* gnu/packages/gcc.scm (%gcc-infrastructure, isl, cloog): New variables.

	gnu: Move GCC to its own module.
	* gnu/packages/base.scm (gcc-4.7): Move to...
	* gnu/packages/gcc.scm: ... here.  New file.
	* Makefile.am (MODULES): Add it.

	glib: Patch around prlimit(2) failure.
	* gnu/packages/glib.scm (glib)[source]: Switch to mirror://gnome.
	  [inputs]: Add `patch/tests-prlimit'.
	  [arguments]: Add it.
	* gnu/packages/patches/glib-tests-prlimit.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

	build: `hydra.scm' changes %load-path to refer to itself.
	* hydra.scm: Add `eval-when' clause.

	Update `TODO'.

2013-03-26  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add GNU cflow.
	* gnu/packages/cflow.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add GNU cppi.
	* gnu/packages/cppi.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-03-24  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: add dependencies to poppler.
	Add libpng and zlib to the inputs.

2013-03-22  Ludovic Courtès  <ludo@gnu.org>

	store: Really disable file name canonicalization for derivation inputs.
	* guix/store.scm (write-contents)[call-with-binary-input-file]: Set
	  %FILE-PORT-NAME-CANONICALIZATION to #f.
	* gnu/packages.scm (search-patch, search-bootstrap-binary): Leave
	  %FILE-PORT-NAME-CANONICALIZATION unchanged.  This reverts 9776ebb.

	store: Use `sendfile' when available.
	* guix/store.scm (write-contents)[call-with-binary-input-file]: New
	  procedure.
	  Use `sendfile' instead of `dump' when available.  Add `size'
	  parameter.
	  (write-file): Update caller.

2013-03-22  Andreas Enge  <andreas@enge.fr>

	gnu: Update mpfr to 3.1.2.
	* gnu/packages/multiprecision.scm (mpfr): Update to 3.1.2.

2013-03-21  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add cmake.
	* gnu/packages/cmake.scm: New file.
	* gnu/packages/patches/cmake-fix-tests.patch: New file.
	* Makefile.am: Add them.

2013-03-21  Ludovic Courtès  <ludo@gnu.org>

	gnu: Disable file name canonicalization in `search-*'.
	* gnu/packages.scm (search-patch, search-bootstrap-binary): Make sure no
	  canonicalization occurs.  This reduces the number of 'stat' system
	  calls.

2013-03-19  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add lua.
	* gnu/packages/lua.scm: New file.
	* Makefile.am: add it.

2013-03-19  Ludovic Courtès  <ludo@gnu.org>

	gnu: libgcrypt: Upgrade to 1.5.1.
	* gnu/packages/gnupg.scm (libgcrypt): Upgrade to 1.5.1.

	Work around <http://bugs.gnu.org/13095> in build-aux/download.scm.
	* build-aux/download.scm: Annihilate `shutdown' in (web client).
	  Reported by Aljosha Papsch.

2013-03-18  Ludovic Courtès  <ludo@gnu.org>

	release.nix: Hack to unchroot more stuff.
	* release.nix (unchrootedNixpkgs): New function.
	  (jobs)[tarball, build, build_disable_daemon, distro): Use it.
	  Should fix <http://hydra.gnu.org:3000/build/7279>.

	release.nix: Adjust to current Nixpkgs.
	* release.nix: s/buildNativeInputs/nativeBuildInputs/.

	guix package: Report packages to be removed/installed.
	* guix/scripts/package.scm (guix-package)[process-actions](show-what-to-remove/install):
	  New procedure.
	  Call it before `show-what-to-build'.

2013-03-17  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Enable xdriinfo.
	* gnu/packages/xorg.scm (xdriinfo): Enable input mesa.

	gnu: xorg: Arrange more inputs for x server related packages.
	* gnu/packages/xorg.scm (xf86-input-evdev): Add input xorg-server.
	* gnu/packages/xorg.scm (xorg-server): Propagate inputs and add normal and
	     propagated inputs.

	gnu: Add X.org as input to Texlive.
	* gnu/packages/texlive.scm (texlive): Add x.org inputs.

2013-03-16  Andreas Enge  <andreas@enge.fr>

	gnu: Add openconnect.
	* gnu/packages/vpn.scm (openconnect): New variable.

2013-03-16  Ludovic Courtès  <ludo@gnu.org>

	derivations: Optimize `build-expression->derivation'.
	This reduces the execution time of
	"guix build -e '(@ (gnu packages emacs) emacs)' -d" by 6%, from
	1.15s to 1.08s.

	* guix/derivations.scm (build-expression->derivation): Write the builder
	  as UTF-8.

2013-03-16  Ludovic Courtès  <ludo@gnu.org>

	derivations: Optimize `write-derivation'.
	This reduces the execution time of
	"guix build -e '(@ (gnu packages emacs) emacs)' -d" by 25%, from
	1.54 s. to 1.15s.

	* guix/derivations.scm (write-sequence, write-list, write-tuple): New
	  procedures.
	  (write-derivation)[list->string, write-list]: Remove.
	  [write-string-list, write-output, write-input, write-env-var]: New helpers.
	  Rewrite in terms of these new helpers.

2013-03-16  Ludovic Courtès  <ludo@gnu.org>

	guix package: Gracefully handle `official-gnu-packages' failure.
	* guix/gnu-maintenance.scm (http-fetch): Error out when DATA is #f.
	* guix/scripts/package.scm (check-package-freshness): Wrap
	  `gnu-package?' call in `false-if-exception'.
	  Reported by Cyril Roelandt <tipecaml@gmail.com>.

2013-03-15  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Change download location for xcb related packages.
	* gnu/packages/xorg.sm (libpthread-stubs, libxcb, xcb-proto): Replace broken
	     xorg mirrors by url of the xcb project.

2013-03-15  Ludovic Courtès  <ludo@gnu.org>

	gnu: coreutils, sed: Update.
	* gnu/packages/base.scm (sed): Update to 4.2.2.
	  (coreutils): Update to 8.21.

	gnu: binutils: Update to 2.23.1.
	* gnu/packages/base.scm (binutils): Update to 2.23.1.  Add
	  `--disable-werror'.
	  (binutils-boot0): Augment BINUTILS's configure flags.

2013-03-14  Ludovic Courtès  <ludo@gnu.org>

	gnu: emacs: Update to 24.3.
	* gnu/packages/emacs.scm (emacs): Update to 24.3.  Use the .xz tarball.
	* gnu/packages/patches/emacs-configure-sh.patch: Adjust.

	gnu: texinfo: Update to 5.1.
	* gnu/packages/texinfo.scm (texinfo): Update to 5.1.

2013-03-10  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Add xeyes (for testing purposes).
	* gnu/packages/xorg.scm (xeyes): New variable.

	gnu: xorg: Make xorg-server compilable (tests still fail).
	* gnu/packages/xorg.scm (mesa): Propagate inputs libdrm and libxdamage.
	* gnu/packages/xorg.scm (xorg-server): Add input videoproto.

	gnu: xorg: Make xkeyboard-config compile.
	* gnu/packages/xorg.scm (xkeyboard-config): Add inputs gettext, intltool,
	     perl-xml-parser.

	gnu: Add intltool.
	* gnu/packages/xml.scm (intltool): New variable.
	* gnu/packages/xml.scm (perl-xml-parser): Fix download location.

2013-03-09  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Add old versions of mesa and libdrm.
	* gnu/packages/xorg.scm (mesa): New variable, only version 8.0.5 compiles.
	* gnu/packages/xorg.scm (libdrm-2.4.33): New variable, required by mesa 8.0.5.

	gnu: xorg: Propagate input.
	* gnu/packages/xorg.scm (libxdamage): Propagate input damageproto.

2013-03-08  Andreas Enge  <andreas@enge.fr>

	gnu: libxslt: Add zlib and libxml2 python module to inputs.
	* gnu/packages/xml.scm (libxslt): Add input zlib and add libxml2 to PYTHONPATH.

	gnu: libxml2: Add python support.
	* gnu/packages/xml.scm (libxml2): Compile and install python module.

2013-03-07  Ludovic Courtès  <ludo@gnu.org>

	ui: Gracefully report failures to connect to the daemon.
	* guix/store.scm (&nix-connection-error): New condition type.
	  (open-connection): Translate `system-error' during the `connect' call
	  into `&nix-connection-error'.
	* guix/ui.scm (call-with-error-handling): Add case for `nix-connection-error?'.
	* guix/scripts/package.scm (guix-package): Move `open-connection' call
	  within `with-error-handling'.
	* guix/scripts/pull.scm (guix-pull): Likewise.
	* guix/scripts/download.scm (guix-download): Move body within
	  `with-error-handling'.

2013-03-07  Nikita Karetnikov  <nikita@karetnikov.org>

	utils: Add 'wrap-program'.
	* guix/build/utils.scm (wrap-program): New procedure.

2013-03-07  Ludovic Courtès  <ludo@gnu.org>

	packages: Remove the default value for `license'.
	* guix/packages.scm (<package>): Remove the default value for `license'.
	* gnu/packages/bootstrap.scm (package-from-tarball,
	  %bootstrap-glibc, %bootstrap-gcc): Initialize `license'.
	* tests/packages.scm (dummy-package): Likewise.

	Revert "utils: Add 'wrap-program'."
	This reverts commit 02065130de33e990969fe9b7cc19b9b1c24f3ff7.

2013-03-06  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Add libdrm.
	* gnu/packages/xorg.scm (libdrm): New variable.

	gnu: xorg: Add pixman.
	* gnu/packages/xorg.scm (pixman): New variable.
	* gnu/packages/xorg.scm (xorg-server): Enable input pixman.

	gnu: xorg: Comment applewmproto and libapplewm, compile only on macos.
	* gnu/packages/xorg.scm (applewmproto,libapplewm): Remove variables.

	gnu: xorg: Add inputs and propagated-inputs, propagate some inputs.            Rename two packages to avoid clashes between package names and versions.
	* gnu/packages/xorg.scm (font-adobe-100dpi): Rename to font-adobe100dpi.
	* gnu/packages/xorg.scm (font-adobe-75dpi): Rename to font-adobe75dpi.
	* gnu/packages/xorg.scm: Add pkg-xonfig as input to several packages.
	* gnu/packages/xorg.scm (encodings): Add input mkfontscale.
	* gnu/packages/xorg.scm (libx11): Add inputs inputprotoi, xextproto, xtrans.
	* gnu/packages/xorg.scm (libxpm): Add input gettext.
	* gnu/packages/xorg.scm (libxxf86dga): Add inputs libx11, libxext, xf86dgaproto.
	* gnu/packages/xorg.scm (libxxf86vm): Add inputs libx11i, libxext, xf86vidmodeproto.
	* gnu/packages/xorg.scm (x11perf): Add inputs libx11i, libxfti, libxmu, libxrender.
	* gnu/packages/xorg.scm (xcursor-themes): Add input xcursorgen.
	* gnu/packages/xorg.scm (xdpyinfo): Add input inputproto.
	* gnu/packages/xorg.scm (font-xfree86-type1): Add input mkfontdir.
	* gnu/packages/xorg.scm (libx11): Add propagated inputs kbproto, libxcb.
	* gnu/packages/xorg.scm (mkfontdir): Add propagated input mkfontscale.
	* gnu/packages/xorg.scm (fixesproto): Propagate input xextproto.
	* gnu/packages/xorg.scm (libice): Propagate input xproto.
	* gnu/packages/xorg.scm (libxau): Propagate input xproto.
	* gnu/packages/xorg.scm (libxaw): Propagate inputs libxext, libxmu, libxpm.
	* gnu/packages/xorg.scm (libxcb): Propagate inputs libpthread-stubs, libxaui, libxdmcp.
	* gnu/packages/xorg.scm (libxcursor): Propagate inputs libx11, libxfixes, libxrender, xproto.
	* gnu/packages/xorg.scm (libxext): Propagate input xextproto.
	* gnu/packages/xorg.scm (libxfixes): Propagate input fixesproto.
	* gnu/packages/xorg.scm (libxfont): Propagate inputs fontsproto, freetype, libfontenc, xproto.
	* gnu/packages/xorg.scm (libxinerama): Propagate input xineramaproto.
	* gnu/packages/xorg.scm (libxrandr): Propagate inputs libxext, randrproto.
	* gnu/packages/xorg.scm (libxrender): Propagate input renderproto.
	* gnu/packages/xorg.scm (libxt): Propagate inputs libx11, libice, libsm.
	* gnu/packages/xorg.scm (libxtst): Propagate input recordproto.
	* gnu/packages/xorg.scm (xbacklight): Propagate inputs libx11, libxrandr.
	* gnu/packages/xorg.scm (xkeyboard-config): Propagate inputs libx11, xkbcomp.
	* gnu/packages/xorg.scm (xproto): Propagate input util-macros.

2013-03-06  Nikita Karetnikov  <nikita@karetnikov.org>

	utils: Add 'wrap-program'.
	* guix/build/utils.scm (wrap-program): New procedure.

	gnu: Add GNU Fdisk.
	* gnu/packages/fdisk.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add w3m.
	* gnu/packages/w3m.scm,
	  gnu/packages/patches/w3m-fix-compile.patch: New files.
	* Makefile.am (MODULES): Add 'w3m.scm'.
	  (dist_patch_DATA): Add 'w3m-fix-compile.patch'.

	licenses: Add 'x11-style'.
	* guix/licenses.scm (x11-style): New variable.

2013-03-06  Andreas Enge  <andreas@enge.fr>

	gnu: xorg: Correct typo in download location.
	* gnu/packages/xorg.scm (xf86-video-glide): Correct typo.

	gnu: xorg: Uncomment dependencies on libxcb.
	* gnu/packages/xorg.scm (xbacklight, xdpyinfo, xlsatoms, xlsclients,
	     xwininfo): Uncomment dependency on libxcb.

	gnu: xorg: Add home-page, synopsis and description.
	* gnu/packages/xorg.scm: Add home-page and (generic) synopsis and description.

	gnu: xorg: Fix http mirror and uncomment xcb packages.
	* guix/download.scm (%mirrors): Fix main http mirror address.
	* gnu/packages/xorg.scm (libpthread-stubs, libxcb, xcb-proto): Uncomment
	     and add licenses.

	gnu: xorg: Downgrade package versions to those present in X11R7.7
	* gnu/packages/xorg.scm (dri2proto, libxcb, libxrandr, randrproto,
	     xbacklight, xcb-proto, xorg-server):
	     Use the versions present in X11R7.7.

	gnu: xorg: Add licenses.    Comment out packages with non-free license, without license, or    not available on the ftp servers.    Remove package not present in the distribution.
	* gnu/packages/xorg.scm (*): Add licenses.
	* gnu/packages/xorg.scm (libxp): Remove variable of package that is not
	     present in the R7.7 distribution.
	* gnu/packages/xorg.scm (libpthread, libxcb): Comment out variables, which
	     are referenced, but not present on the ftp servers.
	* gnu/packages/xorg.scm (font-adobe-utopia-100dpi, font-adobe-utopia-75dpi,
	     font-adobe-utopia-type1, font-bh-100dpi, font-bh-75dpi,
	     font-bh-lucidatypewriter-100dpi, font-bh-lucidatypewriter-75dpi,
	     font-bh-type1, font-bitstream-100dpi, font-bitstream-75dpi,
	     font-daewoo-misc, font-ibm-type1, font-jis-misc, font-misc-meltho,
	     xf86-video-dummy):
	     Comment out variables, packages have non-free licenses.
	* gnu/packages/xorg.scm (font-cursor-misc, xf86-video-v4l, xorg-docs):
	     Comment out variables, packages have no license.

	gnu: xorg: Add missing hashes.
	* gnu/packages/xorg.scm: Add hashes to all packages.

	gnu: xorg: Transform propagated into normal inputs.
	* gnu/packages/xorg.scm: Transform propagated into normal inputs;
	     allows to keep packages in alphabetical order.

	gnu: xorg: Add and remove packages to mirror X11R7.7/src/everything
	* gnu/packages/xorg.scm: Remove packages not from
	     ftp://ftp.freedesktop.org/pub/xorg/X11R7.7/src/everything/ .
	     Add missing packages, for the time being with a 0 hash and
	     without dependencies.
	     Correct spelling (all lower case for package names).

	gnu: xorg: Initial import from nix.
	* gnu/packages/xorg.scm: New module.
	* Makefile.am: Add it.

2013-03-05  Ludovic Courtès  <ludo@gnu.org>

	gnu-maintenance: Clarify `releases'.
	* guix/gnu-maintenance.scm (releases): Change to use `match' and
	  `match-lambda'.  Add `release-file' auxiliary function.

	gnu-maintenance: Fix `gnu-package?' for packages lacking a `source'.
	* guix/gnu-maintenance.scm (gnu-package?): Support PACKAGE when its
	  source is #f.

	guix package: Recover from freshness check transient errors.
	* guix/scripts/package.scm (check-package-freshness): Ignore
	  `getaddrinfo-error' and `ftp-error' exceptions.

	guix package: Inform about new upstream versions of GNU packages.
	* guix/gnu-maintenance.scm (gnu-package?): New procedure.
	* guix/scripts/package.scm (waiting): New macro.
	  (check-package-freshness): New procedure.
	  (guix-package)[process-actions]: Use it.
	* doc/guix.texi (Invoking guix package): Mention the feature.

	gnu: Add Avahi.
	* gnu/packages/avahi.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Update GnuTLS to 3.1.9.1.
	* gnu/packages/gnutls.scm (gnutls): Update to 3.1.9.1.

	gnu: Add intltool.
	* guix/download.scm (%mirrors): Add `gnome' mirrors.
	* gnu/packages/glib.scm (intltool): New variable.

	Update TODO.

	utils: Add a #:follow-symlinks? parameter to `copy-recursively'.
	* guix/build/utils.scm (copy-recursively): Turn `log' into a keyword
	  parameter.  Add the `follow-symlinks?' parameter and honor it.

	utils: Add `delete-file-recursively'.
	* guix/build/utils.scm (delete-file-recursively): New procedure.

	gnu: glibc: Install locale data.
	* gnu/packages/base.scm (glibc): Add `outputs' field.  Pass
	  `--localedir' and set `libc_cv_localedir'.  Add `install-locales'
	  phase.

2013-03-05  Andreas Enge  <andreas@enge.fr>

	gnu: Add lsof.
	* gnu/packages/lsof.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-03-04  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'master' into core-updates
	Conflicts:
		Makefile.am
		guix/scripts/gc.scm
		guix/scripts/package.scm
		guix/ui.scm
		tests/guix-package.sh

2013-03-04  Andreas Enge  <andreas@enge.fr>

	guix: build: Add "share/pkgconfig" to PKG_CONFIG_PATH, as used by xorg.
	* guix/build/gnu-build-system.scm (set-paths): Add "share/pkgconfig"
	     to PKG_CONFIG_PATH.

2013-03-04  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Perl XML::Parser.
	* gnu/packages/xml.scm (perl-xml-parser): New variable.

	Add (guix build-system perl).
	* guix/build-system/perl.scm, guix/build/perl-build-system.scm: New files.
	* Makefile.am (MODULES): Add them.
	* guix/build-system/gnu.scm (standard-inputs): Make public.

	download: Add CPAN mirrors.
	* guix/download.scm (%mirrors)[cpan]: New URLs.

2013-03-03  Andreas Enge  <andreas@enge.fr>

	gnu: Add vpnc.
	* gnu/packages/vpn.scm: New file.
	* Makefile.am (MODULES): Add it.
	* gnu/packages/patches/vpnc-script.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

2013-03-02  Ludovic Courtès  <ludo@gnu.org>

	release.nix: Reduce the number of dependencies.
	* release.nix (tarball): Use a minimal Git.

	gnu: Add libdaemon.
	* gnu/packages/libdaemon.scm: New file.
	* Makefile.am (MODULES): Add it.

	release.nix: Unchroot recursively.
	* release.nix (unchroot): Operate recursively on build inputs.

	release.nix: Build outside of a chroot.
	* release.nix (unchroot): New function.
	  (jobs)[tarball, build, build_disable_daemon]: Use it.

2013-03-01  Ludovic Courtès  <ludo@gnu.org>

	ui: Factorize `read/eval-package-expression'.
	* guix/scripts/package.scm (read/eval-package-expression): Move to...
	* guix/ui.scm (read/eval-package-expression): ... here.
	* guix/scripts/build.scm (derivations-from-package-expressions): Use it.

	guix package: Add `--install-from-expression'.
	* guix/scripts/package.scm (read/eval-package-expression): New
	  procedure.
	  (show-help): Add `-e'.
	  (%options): Likewise.
	  (guix-package)[process-actions]: Handle ('install . p) pairs, where P
	  is a package.
	* tests/guix-package.sh: Add `boot_make_drv'.  Use `-i $boot_make_drv'
	  once, and then use `-e $boot_make'.
	* doc/guix.texi (Invoking guix package): Document `-e'.

	gnu: global: Update to 6.2.8.
	* gnu/packages/global.scm (global): Update to 6.2.8.

2013-02-27  Ludovic Courtès  <ludo@gnu.org>

	guix gc: Add `--references' and `--referrers'.
	* guix/scripts/gc.scm (show-help): Update.
	  (%options): Add `--references' and `--referrers'.
	  (guix-gc)[symlink-target, store-directory]: New procedures.
	  Handle the `list-references' and `list-referrers' actions.
	* tests/guix-gc.sh: Add tests for `--references'.
	* doc/guix.texi (Invoking guix gc): Document `--references' and
	  `--referrers'.

	store: Add queries for references & co.
	* guix/store.scm (operation-id)[query-valid-derivers]: New value.
	  (references, referrers, valid-derivers, query-derivation-outputs): New
	  procedures.
	* tests/store.scm ("references", "derivers"): New tests.

	gnu: Add cross tool chain.
	* gnu/packages/cross-base.scm: New file.
	* gnu/packages/patches/gcc-cross-environment-variables.patch: New file.
	* Makefile.am (MODULES): Add cross-base.scm.
	  (dist_patch_DATA): Add gcc-cross-environment-variables.patch.
	* gnu/packages/base.scm (gcc-4.7): Use `LDFLAGS_FOR_TARGET' instead of
	  `LDFLAGS_FOR_BUILD', and use `-B' instead of `-L'.
	* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add case for
	  "mips64el-linux".

	gnu: linux: Make `system->linux-architecture' public, and add ARM.
	* gnu/packages/linux.scm (system->linux-architecture): Make public.  Add
	  "arm".

2013-02-27  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: linux-libre-headers: Set 'ARCH' to 'mips'.
	* gnu/packages/linux.scm (system->linux-architecture): New procedure.
	  (linux-libre-headers): Adjust accordingly.

	gnu: gcc: Remove extraneous newline in 'LIB_SPEC'.
	* gnu/packages/base.scm (gcc-4.7): Remove trailing newline when patching
	  'LIB_SPEC'.

2013-02-27  Ludovic Courtès  <ludo@gnu.org>

	pull: Distinguish "already up to date" from "updated".
	* guix/ui.scm (show-what-to-build): Return (length req*).
	* guix/scripts/pull.scm (guix-pull): Print an "already up to date"
	  message when there's nothing to build.

	pull: Build (guix build download) first, because of the (gnutls) autoload.
	* guix/scripts/pull.scm (unpack): Build (guix build download) first, as
	  done in 855a8ad71def2ebc594ed32c57bda0ca4e13d91c.
	  Reported by Andreas Enge <andreas@enge.fr>.

	guix: Make sure UPDATES-DIR is valid.
	* scripts/guix.in: Make sure UPDATES-DIR is not #f.

	Add "guix pull".
	* guix/scripts/pull.scm: New file.
	* Makefile.am (MODULES): Add it.
	* doc/guix.texi (Invoking guix pull): New node.
	  (Invoking guix package): Add cross-ref to it.
	* guix/ui.scm (config-directory): New procedure.
	* scripts/guix.in: When `GUIX_UNINSTALLED' is undefined, add
	  $XDG_CONFIG_HOME/guix/latest to the search path.
	* po/POTFILES.in: Add guix/scripts/pull.scm.

	ui: Factorize `show-what-to-build'.
	* guix/scripts/package.scm (guix-package)[show-what-to-build]: Move to..
	* guix/ui.scm (show-what-to-build): ... here.  Add a `store'
	  parameter'.  Adjust callers.
	* guix/scripts/build.scm (guix-build): Use it.  Remove `req' and `req*'
	  variables.

	build: Adjust guix.texi to Texinfo 5.0.
	* doc/guix.texi: Change @title and @subtitle syntax to please Texinfo 5.0.

	ui: Add temporary file handling and atomic symlink switch.
	* guix/scripts/download.scm (call-with-temporary-output-file): Move to
	  ui.scm.
	* guix/scripts/package.scm (switch-symlinks): Likewise.
	* guix/ui.scm (call-with-temporary-output-file, switch-symlinks): New
	  procedures.

	download: Adjust to `http-get*' deprecation.
	* guix/build/download.scm (http-fetch): Adjust to use #:streaming? when
	  using Guile 2.0.8+.

	derivations: Add a search path parameter for module derivations.
	* guix/derivations.scm (imported-modules, compiled-modules): Add a
	  `module-path' parameter.  Use it instead of %LOAD-PATH.

	gnu: texinfo: Make Perl a propagated input.
	* gnu/packages/texinfo.scm (texinfo): Make PERL a propagated input.

	build: Add missing -I flag for the daemon.
	* daemon.am (libstore_a_CPPFLAGS): Add missing -I, for schema.sql.hh.

	daemon: Add `--listen'.
	* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_LISTEN): New macro.
	  (options): Add `--listen'.
	  (parse_opt): Handle it.
	* doc/guix.texi (Invoking guix-daemon): Mention it.

	Update from upstream Nix.

	store: Add the `%daemon-socket-file' parameter.
	* guix/store.scm (%daemon-socket-file): New variable.
	  (open-connection): Use it as the default value for FILE.

	Add Mark to `AUTHORS'.

	build: Build guix/scripts/download.go after guix/build/download.go.
	* Makefile.am (guix/scripts/download.go): Add dependency on
	  `guix/build/download.go'.
	  Reported by Nikita Karetnikov <nikita@karetnikov.org>.

	scripts: Remove hyphen in the command name shown by `--version'.
	* guix/scripts/build.scm (%options): Remove hyphen from the name passed
	  to `show-version-and-exit'.
	* guix/scripts/download.scm (%options): Likewise.
	* guix/scripts/gc.scm (%options): Likewise.
	* guix/scripts/import.scm (%options): Likewise.
	* guix/scripts/package.scm (%options): Likewise.

2013-02-27  Mark H Weaver  <mhw@netris.org>

	gnu: guile-reader: Rename packages to avoid version number confusion.
	* gnu/packages/guile.scm (guile-reader): Change the character preceding the
	  guile version number from '-' to '_' so that it will not be misinterpreted
	  as the package version number.

	Update `TODO'.

2013-02-27  Ludovic Courtès  <ludo@gnu.org>

	scripts: Remove initialization now redundant with `initialize-guix'.
	* guix/scripts/build.scm (guix-build): Remove calls to `install-locale',
	  `textdomain', etc., now redundant with `initialize-guix'.
	* guix/scripts/download.scm (guix-download): Likewise.
	* guix/scripts/import.scm (guix-import): Likewise.
	* guix/scripts/package.scm (guix-package): Likewise.
	* guix/ui.scm: Remove export of `install-locale' and `initialize-guix'.
	  (initialize-guix): Add docstring.

	gnu: texinfo: Update to 5.0.
	* gnu/packages/texinfo.scm (texinfo): Update to 5.0.

2013-02-27  Mark H Weaver  <mhw@netris.org>

	Replace individual scripts with master 'guix' script.
	* scripts/guix.in: New script.

	* Makefile.am (bin_SCRIPTS): Add 'scripts/guix'.  Remove 'guix-build',
	  'guix-download', 'guix-import', 'guix-package', and 'guix-gc'.

	  (MODULES): Add 'guix/scripts/build.scm', 'guix/scripts/download.scm',
	  'guix/scripts/import.scm', 'guix/scripts/package.scm', and
	  'guix/scripts/gc.scm'.

	* configure.ac (AC_CONFIG_FILES): Add 'scripts/guix'.  Remove 'guix-build',
	  'guix-download', 'guix-import', 'guix-package', and 'guix-gc'.

	* guix-build.in, guix-download.in, guix-gc.in, guix-import.in,
	  guix-package.in: Remove shell script boilerplate.  Move to guix-COMMAND.in
	  to guix/scripts/COMMAND.scm.  Rename module from (guix-COMMAND) to
	  (guix scripts COMMAND).  Change "guix-COMMAND" to "guix COMMAND" in
	  usage help string.

	* pre-inst-env.in: Add "@abs_top_builddir@/scripts" to the front of $PATH.
	  Export $GUIX_UNINSTALLED.

	* tests/guix-build.sh, tests/guix-daemon.sh, tests/guix-download.sh,
	  tests/guix-gc.sh, tests/guix-package.sh: Use "guix COMMAND" instead of
	  "guix-COMMAND".

	* doc/guix.texi: Replace all occurrences of "guix-COMMAND" with
	  "guix COMMAND".

	* po/POTFILES.in: Update.

2013-02-27  Ludovic Courtès  <ludo@gnu.org>

	Add (gnu system vm).
	* gnu/system/vm.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add support for Guile in Linux initrd.
	* gnu/packages/linux-initrd.scm: New file.

	gnu: qemu-kvm: Add patch to have multiple SMB shares.
	* gnu/packages/qemu.scm (qemu-kvm/smb-shares): New variable.
	* gnu/packages/patches/qemu-multiple-smb-shares.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

	packages: Add `package-output'.
	* guix/packages.scm (package-output): New procedure.
	* tests/packages.scm ("package-output"): New test.

	gnu: guile-static: Change `name' field.
	* gnu/packages/make-bootstrap.scm (%guile-static): Add `name' field with
	  `-static' suffix.

	gnu: guile-static: Add bindings for `reboot'.
	* gnu/packages/patches/guile-linux-syscalls.patch: Add `scm_reboot'.

	gnu: qemu: Add dependency on Samba.
	* gnu/packages/qemu.scm (qemu-kvm): Add dependency on Samba; pass
	  `--smbd' to ./configure.

	gnu: samba: Augment the RUNPATH of executables to point to $out/lib.
	* gnu/packages/samba.scm (samba): Add `add-lib-to-runpath' phase, and
	  PatchELF as an input.

2013-02-27  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add GNU Parted.
	* gnu/packages/parted.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-27  Ludovic Courtès  <ludo@gnu.org>

	gnu: guile-static: Add bindings for low-level Linux syscalls.
	* gnu/packages/make-bootstrap.scm (%guile-static): Add
	  `guile-linux-syscalls.patch' as an input, and use it.
	* gnu/packages/patches/guile-linux-syscalls.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

	gnu: linux-libre: Choose a config without debugging features.
	* gnu/packages/linux.scm (linux-libre): Choose "defconfig" instead of
	  "allmodconfig" since the latter enables all debugging features.  Add
	  `CONFIG_CIFS=m'.

2013-02-27  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add vim.
	* gnu/packages/vim.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-27  Mark H Weaver  <mhw@netris.org>

	Build newest versions unless specified, and implement upgrades.
	* gnu/packages.scm (find-newest-available-packages):
	  New exported procedure.

	* guix-build.in (newest-available-packages, find-best-packages-by-name):
	  New procedures.
	  (find-package): Use find-best-packages-by-name, to guarantee that
	  if a version number is not specified, only the newest versions will
	  be considered.

	* guix-package.in (%options): Add --upgrade/-u option.
	  (newest-available-packages, find-best-packages-by-name, upgradeable?):
	  New procedures.
	  (find-package): Use find-best-packages-by-name, to guarantee that
	  if a version number is not specified, only the newest versions will
	  be considered.
	  (process-actions): Implement upgrade option.

	* doc/guix.texi (Invoking guix-package): In the description of --install,
	  mention that if no version number is specified, the newest available
	  version will be selected.

2013-02-27  Mark H Weaver  <mhw@netris.org>

	Inhibit duplicates in fold-packages.
	* gnu/packages.scm (fold2): New procedure.
	  (fold-packages): Rework to suppress duplicates.

2013-02-27  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Make the strip behavior of `static-package' configurable.
	* guix/build-system/gnu.scm (static-package): Add #:strip-all? keyword
	  parameter.

	gnu: guile-static: Use libgc build with `USE_LIBC_PRIVATES'.
	* gnu/packages/make-bootstrap.scm (%guile-static): Use libgc build with
	  CPPFLAGS=-DUSE_LIBC_PRIVATES.
	* gnu/packages/bdw-gc.scm (libgc): Add TODO to always do it.

	gnu: Add missing patch for mcron.
	* gnu/packages/patches/mcron-install.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

2013-02-27  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add GNU Wdiff.
	* gnu/packages/wdiff.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-27  Mark H Weaver  <mhw@netris.org>

	Add version-compare and version>? to utils.scm.
	* guix/utils.scm (version-compare, version>?): New exported procedures,
	  based on version-string>?, which was formerly in gnu-maintenance.scm.

	* guix/gnu-maintenance.scm (version-string>?): Removed procedure.
	  (latest-release): Use 'version>?' instead of 'version-string>?'.

2013-02-27  Andreas Enge  <andreas@enge.fr>

	gnu: Add signing-party.
	* gnu/packages/gnupg.scm (signing-party): New variable.

2013-02-24  Andreas Enge  <andreas@enge.fr>

	gnu: wget: Drop manual handling of /usr/bin/env.
	* gnu/packages/wget.scm (wget): Drop patch-/usr/bin/env phase.

	gnu: curl: Let patch-shebang handle /usr/bin/env.
	* gnu/packages/curl.scm (curl): Drop manual rewriting of #!/usr/bin/env.

	gnu: openldap: Disable tests, they fail too randomly probably due to    timeouts in the server.
	* gnu/packages/openldap.scm (openldap): Drop all tests.

2013-02-23  Andreas Enge  <andreas@enge.fr>

	Patch-shebang: Do not add space after interpreter without argument.
	* guix/build/utils.scm (patch-shebang): Do not add a space after a command
	  interpreter not followed by an argument; this made two tests of
	  coreutils fail.

	Patch-shebang: Handle "#!/usr/bin/env command"
	* guix/build/utils.scm (patch-shebang): Handle replacement of
	   "#!.*/env CMD ARGS" by "#!/nix/store/path/.../to/CMD ARGS".

	download: Add X.org mirrors.
	* guix/download.scm (%mirrors): Add `xorg'.

	gnu: screen: Use GNU mirror.
	* gnu/packages/screen.scm (screen): Use GNU mirror.

	gnu: Update libpng to 1.5.14.
	* gnu/packages/libpng.scm (libpng): Switch to version 1.5.14.

2013-02-22  Ludovic Courtès  <ludo@gnu.org>

	pull: Distinguish "already up to date" from "updated".
	* guix/ui.scm (show-what-to-build): Return (length req*).
	* guix/scripts/pull.scm (guix-pull): Print an "already up to date"
	  message when there's nothing to build.

	pull: Build (guix build download) first, because of the (gnutls) autoload.
	* guix/scripts/pull.scm (unpack): Build (guix build download) first, as
	  done in 855a8ad71def2ebc594ed32c57bda0ca4e13d91c.
	  Reported by Andreas Enge <andreas@enge.fr>.

2013-02-21  Ludovic Courtès  <ludo@gnu.org>

	guix: Make sure UPDATES-DIR is valid.
	* scripts/guix.in: Make sure UPDATES-DIR is not #f.

2013-02-20  Ludovic Courtès  <ludo@gnu.org>

	Add "guix pull".
	* guix/scripts/pull.scm: New file.
	* Makefile.am (MODULES): Add it.
	* doc/guix.texi (Invoking guix pull): New node.
	  (Invoking guix package): Add cross-ref to it.
	* guix/ui.scm (config-directory): New procedure.
	* scripts/guix.in: When `GUIX_UNINSTALLED' is undefined, add
	  $XDG_CONFIG_HOME/guix/latest to the search path.
	* po/POTFILES.in: Add guix/scripts/pull.scm.

	ui: Factorize `show-what-to-build'.
	* guix/scripts/package.scm (guix-package)[show-what-to-build]: Move to..
	* guix/ui.scm (show-what-to-build): ... here.  Add a `store'
	  parameter'.  Adjust callers.
	* guix/scripts/build.scm (guix-build): Use it.  Remove `req' and `req*'
	  variables.

	build: Adjust guix.texi to Texinfo 5.0.
	* doc/guix.texi: Change @title and @subtitle syntax to please Texinfo 5.0.

	ui: Add temporary file handling and atomic symlink switch.
	* guix/scripts/download.scm (call-with-temporary-output-file): Move to
	  ui.scm.
	* guix/scripts/package.scm (switch-symlinks): Likewise.
	* guix/ui.scm (call-with-temporary-output-file, switch-symlinks): New
	  procedures.

	download: Adjust to `http-get*' deprecation.
	* guix/build/download.scm (http-fetch): Adjust to use #:streaming? when
	  using Guile 2.0.8+.

	derivations: Add a search path parameter for module derivations.
	* guix/derivations.scm (imported-modules, compiled-modules): Add a
	  `module-path' parameter.  Use it instead of %LOAD-PATH.

	gnu: texinfo: Make Perl a propagated input.
	* gnu/packages/texinfo.scm (texinfo): Make PERL a propagated input.

2013-02-19  Ludovic Courtès  <ludo@gnu.org>

	build: Add missing -I flag for the daemon.
	* daemon.am (libstore_a_CPPFLAGS): Add missing -I, for schema.sql.hh.

	daemon: Add `--listen'.
	* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_LISTEN): New macro.
	  (options): Add `--listen'.
	  (parse_opt): Handle it.
	* doc/guix.texi (Invoking guix-daemon): Mention it.

	Update from upstream Nix.

2013-02-18  Ludovic Courtès  <ludo@gnu.org>

	store: Add the `%daemon-socket-file' parameter.
	* guix/store.scm (%daemon-socket-file): New variable.
	  (open-connection): Use it as the default value for FILE.

2013-02-17  Ludovic Courtès  <ludo@gnu.org>

	Add Mark to `AUTHORS'.

	build: Build guix/scripts/download.go after guix/build/download.go.
	* Makefile.am (guix/scripts/download.go): Add dependency on
	  `guix/build/download.go'.
	  Reported by Nikita Karetnikov <nikita@karetnikov.org>.

	scripts: Remove hyphen in the command name shown by `--version'.
	* guix/scripts/build.scm (%options): Remove hyphen from the name passed
	  to `show-version-and-exit'.
	* guix/scripts/download.scm (%options): Likewise.
	* guix/scripts/gc.scm (%options): Likewise.
	* guix/scripts/import.scm (%options): Likewise.
	* guix/scripts/package.scm (%options): Likewise.

2013-02-17  Mark H Weaver  <mhw@netris.org>

	gnu: guile-reader: Rename packages to avoid version number confusion.
	* gnu/packages/guile.scm (guile-reader): Change the character preceding the
	  guile version number from '-' to '_' so that it will not be misinterpreted
	  as the package version number.

	Update `TODO'.

2013-02-17  Ludovic Courtès  <ludo@gnu.org>

	scripts: Remove initialization now redundant with `initialize-guix'.
	* guix/scripts/build.scm (guix-build): Remove calls to `install-locale',
	  `textdomain', etc., now redundant with `initialize-guix'.
	* guix/scripts/download.scm (guix-download): Likewise.
	* guix/scripts/import.scm (guix-import): Likewise.
	* guix/scripts/package.scm (guix-package): Likewise.
	* guix/ui.scm: Remove export of `install-locale' and `initialize-guix'.
	  (initialize-guix): Add docstring.

	gnu: texinfo: Update to 5.0.
	* gnu/packages/texinfo.scm (texinfo): Update to 5.0.

2013-02-17  Mark H Weaver  <mhw@netris.org>

	Replace individual scripts with master 'guix' script.
	* scripts/guix.in: New script.

	* Makefile.am (bin_SCRIPTS): Add 'scripts/guix'.  Remove 'guix-build',
	  'guix-download', 'guix-import', 'guix-package', and 'guix-gc'.

	  (MODULES): Add 'guix/scripts/build.scm', 'guix/scripts/download.scm',
	  'guix/scripts/import.scm', 'guix/scripts/package.scm', and
	  'guix/scripts/gc.scm'.

	* configure.ac (AC_CONFIG_FILES): Add 'scripts/guix'.  Remove 'guix-build',
	  'guix-download', 'guix-import', 'guix-package', and 'guix-gc'.

	* guix-build.in, guix-download.in, guix-gc.in, guix-import.in,
	  guix-package.in: Remove shell script boilerplate.  Move to guix-COMMAND.in
	  to guix/scripts/COMMAND.scm.  Rename module from (guix-COMMAND) to
	  (guix scripts COMMAND).  Change "guix-COMMAND" to "guix COMMAND" in
	  usage help string.

	* pre-inst-env.in: Add "@abs_top_builddir@/scripts" to the front of $PATH.
	  Export $GUIX_UNINSTALLED.

	* tests/guix-build.sh, tests/guix-daemon.sh, tests/guix-download.sh,
	  tests/guix-gc.sh, tests/guix-package.sh: Use "guix COMMAND" instead of
	  "guix-COMMAND".

	* doc/guix.texi: Replace all occurrences of "guix-COMMAND" with
	  "guix COMMAND".

	* po/POTFILES.in: Update.

2013-02-16  Ludovic Courtès  <ludo@gnu.org>

	Add (gnu system vm).
	* gnu/system/vm.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add support for Guile in Linux initrd.
	* gnu/packages/linux-initrd.scm: New file.

	gnu: qemu-kvm: Add patch to have multiple SMB shares.
	* gnu/packages/qemu.scm (qemu-kvm/smb-shares): New variable.
	* gnu/packages/patches/qemu-multiple-smb-shares.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

	packages: Add `package-output'.
	* guix/packages.scm (package-output): New procedure.
	* tests/packages.scm ("package-output"): New test.

	gnu: guile-static: Change `name' field.
	* gnu/packages/make-bootstrap.scm (%guile-static): Add `name' field with
	  `-static' suffix.

	gnu: guile-static: Add bindings for `reboot'.
	* gnu/packages/patches/guile-linux-syscalls.patch: Add `scm_reboot'.

2013-02-15  Ludovic Courtès  <ludo@gnu.org>

	gnu: qemu: Add dependency on Samba.
	* gnu/packages/qemu.scm (qemu-kvm): Add dependency on Samba; pass
	  `--smbd' to ./configure.

	gnu: samba: Augment the RUNPATH of executables to point to $out/lib.
	* gnu/packages/samba.scm (samba): Add `add-lib-to-runpath' phase, and
	  PatchELF as an input.

2013-02-15  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add GNU Parted.
	* gnu/packages/parted.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-15  Ludovic Courtès  <ludo@gnu.org>

	gnu: guile-static: Add bindings for low-level Linux syscalls.
	* gnu/packages/make-bootstrap.scm (%guile-static): Add
	  `guile-linux-syscalls.patch' as an input, and use it.
	* gnu/packages/patches/guile-linux-syscalls.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

	gnu: linux-libre: Choose a config without debugging features.
	* gnu/packages/linux.scm (linux-libre): Choose "defconfig" instead of
	  "allmodconfig" since the latter enables all debugging features.  Add
	  `CONFIG_CIFS=m'.

2013-02-14  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add vim.
	* gnu/packages/vim.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-14  Mark H Weaver  <mhw@netris.org>

	Build newest versions unless specified, and implement upgrades.
	* gnu/packages.scm (find-newest-available-packages):
	  New exported procedure.

	* guix-build.in (newest-available-packages, find-best-packages-by-name):
	  New procedures.
	  (find-package): Use find-best-packages-by-name, to guarantee that
	  if a version number is not specified, only the newest versions will
	  be considered.

	* guix-package.in (%options): Add --upgrade/-u option.
	  (newest-available-packages, find-best-packages-by-name, upgradeable?):
	  New procedures.
	  (find-package): Use find-best-packages-by-name, to guarantee that
	  if a version number is not specified, only the newest versions will
	  be considered.
	  (process-actions): Implement upgrade option.

	* doc/guix.texi (Invoking guix-package): In the description of --install,
	  mention that if no version number is specified, the newest available
	  version will be selected.

2013-02-14  Mark H Weaver  <mhw@netris.org>

	Inhibit duplicates in fold-packages.
	* gnu/packages.scm (fold2): New procedure.
	  (fold-packages): Rework to suppress duplicates.

2013-02-14  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Make the strip behavior of `static-package' configurable.
	* guix/build-system/gnu.scm (static-package): Add #:strip-all? keyword
	  parameter.

	gnu: guile-static: Use libgc build with `USE_LIBC_PRIVATES'.
	* gnu/packages/make-bootstrap.scm (%guile-static): Use libgc build with
	  CPPFLAGS=-DUSE_LIBC_PRIVATES.
	* gnu/packages/bdw-gc.scm (libgc): Add TODO to always do it.

	gnu: Add missing patch for mcron.
	* gnu/packages/patches/mcron-install.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

2013-02-13  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add GNU Wdiff.
	* gnu/packages/wdiff.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-13  Mark H Weaver  <mhw@netris.org>

	Add version-compare and version>? to utils.scm.
	* guix/utils.scm (version-compare, version>?): New exported procedures,
	  based on version-string>?, which was formerly in gnu-maintenance.scm.

	* guix/gnu-maintenance.scm (version-string>?): Removed procedure.
	  (latest-release): Use 'version>?' instead of 'version-string>?'.

2013-02-13  Andreas Enge  <andreas@enge.fr>

	gnu: Add signing-party.
	* gnu/packages/gnupg.scm (signing-party): New variable.

2013-02-12  Andreas Enge  <andreas@enge.fr>

	gnu: gmp: Update to version 5.1.1.
	* gnu/packages/multiprecision.scm (gmp): Update to version 5.1.1.

2013-02-12  Mark H Weaver  <mhw@netris.org>

	Add pre-inst-env and test-env to nodist_noinst_SCRIPTS in Makefile.am.
	* Makefile.am: Add nodist_noinst_SCRIPTS = pre-inst-env test-env.

2013-02-12  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Samba and iniparser.
	* gnu/packages/samba.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: bigloo: Install Emacs modes.
	* gnu/packages/scheme.scm (bigloo): Add `install-emacs-modes' phase.

2013-02-12  Andreas Enge  <andreas@enge.fr>

	gnu: gnupg: Add optional inputs curl and openldap.
	* gnu/packages/gnupg.scm (gnupg): Add inputs.

	gnu: gnupg: Patch out /bin/sh in generated file.
	* gnu/packages/gnupg.scm (gnupg): Modify configure phase.

	gnu: Rename module 'freetype' to the more general 'fontutils'.
	* gnu/packages/freetype.scm: Rename file to...
	* gnu/packages/fontutils.scm: ...this.
	* Makefile.am (MODULES): Rename module.
	* gnu/packages/{ghostscript,grub,pdf,texlive}.scm: Rename dependency.

2013-02-12  Ludovic Courtès  <ludo@gnu.org>

	doc: Add the commit policy to HACKING.
	* HACKING (Commit Access): New section.

	build: Export `NIX_ROOT_FINDER' and `NIX_SETUID_HELPER' from `pre-inst-env'.
	* pre-inst-env.in (NIX_ROOT_FINDER, NIX_SETUID_HELPER): New variables.
	  Reported by Cyril Roelandt <tipecaml@gmail.com>.

	gnu: Add popt.
	* gnu/packages/popt.scm (popt): New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add Linux-Libre.
	* gnu/packages/linux.scm (linux-libre): New variable.

	gnu: Add libunwind.
	* gnu/packages/libunwind.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add Linux module-init-tools.
	* gnu/packages/linux.scm (module-init-tools): New variable.

2013-02-11  Andreas Enge  <andreas@enge.fr>

	gnu: Add pius.
	* gnu/packages/gnupg.scm (pius): New variable.

2013-02-11  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add tmux.  licenses: add ISC.
	* gnu/packages/tmux.scm: New file.
	* Makefile.am (MODULES): Use it.
	* guix/licenses.scm: add ISC.

2013-02-11  Andreas Enge  <andreas@enge.fr>

	gnu: texlive: Add input (t)csh.
	* gnu/packages/texlive.scm (texlive): Add input tcsh.

2013-02-10  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add tcsh.
	* gnu/packages/tcsh.scm: New file.
	* gnu/packages/patches/tcsh-fix-autotest.patch: New file
	* Makefile.am: Add them.

2013-02-10  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add e2fsprogs.
	* gnu/packages/linux.scm (e2fsprogs): New variable.

	gnu: Add GNU GRUB.
	* gnu/packages/grub.scm,
	  gnu/packages/patches/grub-gets-undeclared.patch: New files.
	* Makefile.am (MODULES): Add grub.scm.
	  (dist_patch_DATA): Add grub-gets-undeclared.patch.

	gnu: Add QEMU.
	* gnu/packages/autotools.scm (autoconf-wrapper): Make public.
	* gnu/packages/qemu.scm (qemu): New variable.

	Re-export `%current-system' from (guix packages).
	* guix/packages.scm: Re-export `%current-system'.
	* gnu/packages/bdw-gc.scm, gnu/packages/gawk.scm,
	  gnu/packages/gperf.scm, gnu/packages/libffi.scm,
	  gnu/packages/libsigsegv.scm, gnu/packages/libunistring.scm,
	  gnu/packages/lout.scm, gnu/packages/m4.scm,
	  gnu/packages/multiprecision.scm, gnu/packages/ncurses.scm,
	  gnu/packages/perl.scm, gnu/packages/pkg-config.scm,
	  gnu/packages/readline.scm, gnu/packages/recutils.scm,
	  gnu/packages/scheme.scm: Remove (guix utils) import.

	gnu: Add description and license for QEMU-KVM.
	* gnu/packages/qemu.scm (qemu-kvm): Add description and license.

	gnu: Add libcddb, GNU libcdio, and GNU xorriso.
	* gnu/packages/cdrom.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-09  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add QEMU-KVM.
	* gnu/packages/qemu.scm: New file.
	* Makefile.am (MODULES): Add it.

	build: Run `guild compile' under the C locale.
	* Makefile.am (.scm.go): Set LC_ALL=C.

2013-02-09  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add GNU Smalltalk.
	* gnu/packages/smalltalk.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-08  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Clarify docstring of `package-with-extra-configure-variable'.
	* guix/build-system/gnu.scm (package-with-extra-configure-variable): Add
	  "recursively" in the docstring.

	gnu: hop: Add `patch-rpath' phase.
	* gnu/packages/scheme.scm (hop): Add `patch-rpath' phase.

	gnu: Add PatchELF.
	* gnu/packages/patchelf.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-08  Ludovic Courtès  <ludovic.courtes@inria.fr>

	gnu: Add Hop.
	* gnu/packages/scheme.scm (hop): New variable.

2013-02-08  Ludovic Courtès  <ludo@gnu.org>

	gnu: bigloo: Propagate GMP.
	* gnu/packages/scheme.scm (bigloo): Propagate GMP.

	gnu: Add GNU mcron.
	* gnu/packages/guile.scm (mcron): New variable.

	gnu: guile-1.8: Patch `ice-9/popen.scm'.
	* gnu/packages/guile.scm (guile-1.8): Rename `patch-loader-search-path'
	  to `patch-stuff'; patch `ice-9/popen.scm'.

2013-02-07  Ludovic Courtès  <ludo@gnu.org>

	doc: Document installation of propagated inputs.
	* doc/guix.texi (Invoking guix-package): Document installation behavior
	  with propagated inputs.

	gnu: ed: Update to 1.6.
	* gnu/packages/ed.scm (ed): Update to 1.6.

	gnu: ed: Patch /bin/sh in the test suite.
	* gnu/packages/ed.scm (ed): Add `patch-test-suite' phase.

2013-02-06  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Install propagated inputs.
	* guix-package.in (profile-manifest): Return "version 1" manifests.
	  (manifest-packages): Likewise.  When MANIFEST is "version 0", add
	  '() as the list of "propagated inputs" of each package.
	  (profile-derivation): Produce "version 1" manifests.  Pass each
	  PACKAGES item's propagated inputs as an input for BUILDER.
	  (input->name+path): New procedure.
	  (guix-package)[find-package]: Add the transitive propagated inputs of
	  each selected package as the last item of the tuple.
	  [canonicalize-deps]: New procedure.
	  [process-actions]: Adjust to support propagated inputs as the last item.
	  [process-query]: Likewise.

	union: Don't warn when colliding leaves point to the same file.
	* guix/build/union.scm (union-build)[resolve-collision]: Pass LEAVES
	  through `delete-duplicates'; warn iff the result contains more than
	  one item.

	union: Delete duplicates when passed the same input several times.
	* guix/build/union.scm (union-build): Prepend "." to the result of
	  `union-tree', to match the expectations of `delete-duplicate-leaves'.
	  Don't do mkdir when SUBDIR is ".".
	* tests/union.scm ("union-build"): Keep duplicates in %BOOTSTRAP-INPUTS.

	guix-package: Test installation of packages by name.
	* tests/guix-package.sh: Remove `boot_guile'.  Replace occurrences of
	  $boot_guile by the `guile-bootstrap' package name.

	build: `chmod +x' scripts as they are generated.
	* configure.ac: Add the `chmod +x' as a second argument to
	  `AC_CONFIG_FILES'.  Remove `AC_CONFIG_COMMANDS' invocation.

2013-02-06  Andreas Enge  <andreas@enge.fr>

	gnu: Add libmp3splt and mp3splt.
	* gnu/packages/mp3.scm (libmp3split, mp3splt): New variables.

2013-02-06  Ludovic Courtès  <ludo@gnu.org>

	gnu: make-bootstrap: Fix `%binutils-static-stripped'.
	* gnu/packages/make-bootstrap.scm (%binutils-static-stripped): Add
	  distinguishing `name' field.  Add `output' field to have a single
	  "out" output (followup to 4873f8e).  Reported by Nikita.

2013-02-06  Andreas Enge  <andreas@enge.fr>

	gnu: Add TeXLive.
	* gnu/packages/texlive.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-05  Andreas Enge  <andreas@enge.fr>

	licenses: Add new meta-license fsf-free.
	* guix/licenses.scm (fsf-free): New record with constructor.

2013-02-05  Ludovic Courtès  <ludo@gnu.org>

	gnu: Have MPFR and MPC propagate their input.
	* gnu/packages/multiprecision.scm (mpfr): Change GMP to a propagated input.
	  (mpc): Likewise for GMP and MPFR.
	  Reported by Andreas Enge <andreas@enge.fr>.

2013-02-05  Andreas Enge  <andreas@enge.fr>

	gnu: Add PCRE (Perl Compatible Regular Expression).
	* gnu/packages/pcre.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-05  Ludovic Courtès  <ludo@gnu.org>

	Thank Lluís and Daniel.

	gnu: Add GNU Guile-Ncurses.
	* gnu/packages/guile.scm (guile-ncurses): New variable.

2013-02-04  Andreas Enge  <andreas@enge.fr>

	gnu: Add libid3tag.
	* gnu/packages/mp3 (libid3tag): New variable.

	gnu: Add libmad.
	* gnu/packages/mp3.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-04  Ludovic Courtès  <ludo@gnu.org>

	store: Add substitute-related procedures.
	* guix/store.scm (has-substitutes?, substitutable-paths,
	  read-substitutable-path-list, substitutable-path-info): New
	  procedures.
	  (<substitutable>): New record type.
	  (read-arg): Add `substitutable-path-info'.  Change `hash' pattern
	  variable to `base16' literal.
	* tests/store.scm ("no substitutes"): New test.

	store: Update to protocol 1.12.
	* guix/store.scm (%protocol-version): Bump.
	  (operation-id): Comment out `query-substitutable-path-info'.
	  Rename `query-valid-paths' to `query-all-valid-paths'.  Add
	  `query-path-from-hash-part', `query-substitutable-path-infos',
	  `query-valid-paths', and `query-substitutable-paths'.
	  (set-build-options): Add `binary-caches' keyword parameter.  When
	  using a server >= 1.12, send the list of binary caches.
	  (query-path-hash): Use the `store-path' type, for clarity.

	SRFI-64: Make the log file's port line-buffered.
	* srfi/srfi-64.upstream.scm (test-on-group-begin-simple): Make LOG-FILE
	  line-buffered.

	tests: Fix thinko in `derivation' test.
	* tests/derivations.scm ("derivation with local file as input"): Return
	  a Boolean instead of a bytevector.  Don't attempt to compare the
	  content of the result with that of the input.

	store: Write string length as a 32-bit integer.
	* guix/store.scm (write-string): Write L as a 32-bit integer.  Bug
	  introduced in 82c38fe64c84fc3febcc5c5aa7fe86454ccaf456 ("store:
	  Micro-optimize `write-string'.")

2013-02-02  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: Add GNU Prolog.
	* gnu/packages/gprolog.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-02-01  Andreas Enge  <andreas@enge.fr>

	gnu: Add libxslt.
	* gnu/packages/xml.scm (libxslt): New variable.

2013-02-01  Ludovic Courtès  <ludo@gnu.org>

	gnu: Fix invalid `license' fields.
	* gnu/packages/acl.scm (acl): Change `license' field to refer to the
	  `license' objects.
	* gnu/packages/attr.scm (attr): Likewise.
	* gnu/packages/compression.scm (xz): Likewise.
	* gnu/packages/global.scm (global): Likewise.
	* gnu/packages/linux.scm (linux-libre-headers): Likewise.

	guix-package: Make `--search' queries case-insensitive.
	* guix-package.in (guix-package)[process-query]: Use `regexp/icase' for
	  the `search' regexp.

	Augment `.dir-locals.el'.
	* .dir-locals.el: Add more Scheme settings.
	* guix-build.in, tests/base32.scm, tests/build-utils.scm,
	  tests/builders.scm, tests/derivations.scm, tests/packages.scm,
	  tests/snix.scm, tests/store.scm, tests/union.scm, tests/utils.scm:
	  Remove redundant Emacs local variable settings.

	guix-package: Report `--search' matches in recutils format.
	* guix/ui.scm (fill-paragraph, string->recutils, package->recutils): New
	  procedures.
	* guix-package.in (guix-package)[process-query]: Use `package->recutils'
	  to display package meta-data.
	* tests/guix-package.sh: Adjust test.
	* tests/ui.scm: New file.
	* Makefile.am (TESTS): Add it.
	* doc/guix.texi (Invoking guix-package): Adjust `--search'
	  documentation, and give an example.

	guix-package: Gracefully report non-existing outputs.
	* guix-package.in (guix-package)[find-package](ensure-output): New
	  procedure. Use it to validate SUB-DRV.

2013-01-31  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Reduce start-up time for queries.
	* guix-package.in (guix-package): Call `open-connection' and
	  `package-derivation' only after `process-query' has returned.

2013-01-31  Andreas Enge  <andreas@enge.fr>

	gnu: Add libkate.
	* gnu/packages/oggvorbis.scm (libkate): New variable.
	* gnu/packages/oggvorbis.scm (vorbis-tools): Add input libkate.

	gnu: Add flac.
	* gnu/packages/oggvorbis.scm (flac): New variable.
	* gnu/packages/oggvorbis.scm (vorbis-tools): Add flac input.
	* gnu/packages/patches/flac-fix-memcmp-not-declared.patch: New file.

2013-01-31  Ludovic Courtès  <ludo@gnu.org>

	gnu: bigloo: Update tarball's hash.
	* gnu/packages/scheme.scm (bigloo): Change hash.  The tarball was
	  recently modified in-place (!).

	store: Don't expect build logs to be UTF-8-encoded.
	* guix/store.scm (read-latin1-string): New procedure.
	  (process-stderr): Use it instead of `read-string'.
	  Reported by Andreas Enge <andreas@enge.fr>.

2013-01-30  Andreas Enge  <andreas@enge.fr>

	gnu: vorbis-tools: Enable ogg123.
	* gnu/packages/oggvorbis.scm (vorbis-tools): Add inputs ao and curl.

	gnu: Add libao.
	* gnu/packages/oggvorbis.scm (ao): New variable.

	gnu: Add curl.
	* gnu/packages/curl.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add openssh.
	* gnu/packages/ssh.cm (openssh): New variable.

2013-01-30  Ludovic Courtès  <ludo@gnu.org>

	.dir-locals.el: Fill at 78 columns.

	derivations: Memoize `read-derivation'.
	* guix/derivations.scm (read-derivation): Rename to...
	  (%read-derivation): ... this.
	  (read-derivation): New procedure.
	  This reduces the execution of "guix-build gdb" from 2.5s to 1.7s.

	store: Slightly improve memoization hashing.
	* guix/store.scm (open-connection): Call `make-hash-table' with 100.
	  (add-text-to-store): Move TEXT first in ARGS, for better `hash'
	  results.
	  (add-to-store): Likewise, move ST first.

	store: Remove the `fixed?' parameter from `add-to-store'.
	* guix/store.scm (add-to-store): Remove the `fixed?' parameter from the
	  public interface.
	* gnu/packages/bootstrap.scm, guix-download.in, guix/derivations.scm,
	  guix/packages.scm, tests/derivations.scm: Update all callers
	  accordingly.

	store: Avoid use of `set!'.
	* guix/store.scm (operation): New macro.
	  (define-operation): Define in terms of `operation'.
	  (add-text-to-store): Define using `operation', and remove now
	  unnecessary `set!'.
	  (add-to-store): Likewise.
	  (add-text-to-store/cached, add-to-store/cached): Remove.

	store: Micro-optimize `write-string'.
	* guix/store.scm (write-string): Optimize to write the length, contents,
	  and padding all at once.  This yields a 2% improvement on the
	  execution time of "guix-build gdb".

	Gracefully handle failure to install the current locale.
	* guix/ui.scm (install-locale): New procedure.
	* guix-build.in, guix-download.in, guix-gc.in, guix-import.in,
	  guix-package.in: Use it instead of (setlocale LC_ALL "").

	store: Cache `add-text-to-store' results.
	* guix/store.scm (<nix-server>)[atts-cache]: New field.
	  (add-text-to-store/cached): New procedure.  Use it as a wrapper around
	  `add-text-to-store'.
	  When running "guix-build gdb", this reduces the number of RPCs from
	  3048 to 289, and execution time from 4.7s to 2.6s.

	store: Make the `add-to-store' cache per-connection.
	* guix/store.scm (<nix-server>)[ats-cache]: New field.
	  (open-connection): Update accordingly.
	  (add-to-store/cached): Use (nix-server-add-to-store-cache SERVER)
	  instead of a weak hash table.

2013-01-29  Andreas Enge  <andreas@enge.fr>

	gnu: Add libssh2.
	* gnu/packages/ssh.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add openldap.
	* gnu/packages/openldap.scm: New file.
	* Makefile.am (MODULE): Add it.

2013-01-29  Ludovic Courtès  <ludo@gnu.org>

	store: Make `add-to-store' memoizing.
	* guix/store.scm (add-to-store/cached): New variable.
	  Use it as the new `add-to-store'.
	  This reduces the number of RPCs when doing "guix-build gdb" from 5009
	  to 3053, and the execution time from 7s to 3.9s.

2013-01-28  Ludovic Courtès  <ludo@gnu.org>

	gnu: gdb: Update to 7.5.1.
	* gnu/packages/gdb.scm (gdb): Update to 7.5.1.

	build: Require Automake 1.12 or later.
	* configure.ac: Require Automake 1.12 or later.

2013-01-28  Nikita Karetnikov  <nikita@karetnikov.org>

	Update 'TODO'.

	guix-package: Add '--search'.
	* guix-package.in (find-packages-by-description): New procedure.
	  (show-help, %options): Add '--search'.
	  (guix-package)[process-query]: Add support for '--search'.
	* doc/guix.texi (Invoking guix-package): Document it.
	* tests/guix-package.sh: Add tests.

2013-01-27  Ludovic Courtès  <ludo@gnu.org>

	gnu: automake: Update to 1.13.1.
	* gnu/packages/autotools.scm (automake): Update to 1.13.1.

	gnu: autoconf-wrapper: Fix "guile" input.
	* gnu/packages/autotools.scm (autoconf-wrapper): Remove `lambda' for
	  "guile" input..

2013-01-27  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Always use the next number for new generations.
	Suggested by Andreas Enge <andreas@enge.fr> at
	<http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00325.html>.

	* guix-package.in (latest-profile-number): Remove.
	  (switch-symlinks): New procedure.
	  (roll-back)[switch-link]: Use it.
	  (guix-package)[process-actions]: Always choose NUMBER + 1 for the new
	  profile.  Use `switch-symlinks' instead of `symlink'.  Remove code to
	  delete PROFILE when it exists since `switch-symlinks' has the same
	  effect.
	* tests/guix-package.sh: Adjust existing `--roll-back' tests.
	* doc/guix.texi (Invoking guix-package): Document this `--roll-back'
	  behavior.

2013-01-27  Ludovic Courtès  <ludo@gnu.org>

	guix-package: When rolling back to nothingness, point to the empty profile.
	Suggested by Andreas Enge <andreas@enge.fr> at
	<http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00316.html>.

	* guix-package.in (roll-back): Check whether PROFILE is valid using
	  `file-exists?'.  When NUMBER is zero, just emit a notice.  When
	  PREVIOUS-NUMBER is zero and PREVIOUS-PROFILE does not exist, build the
	  empty profile, and link to it.
	* tests/guix-package.sh: Add tests.
	* doc/guix.texi (Invoking guix-package): Document the new behavior.

2013-01-27  Ludovic Courtès  <ludo@gnu.org>

	Update `TODO'.

	Update `AUTHORS' and `THANKS'.

	gnu: python: Remove unnecessary module import.
	* gnu/packages/python.scm: Remove use of (gnu packages base).

2013-01-26  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add irssi.
	* gnu/packages/irssi.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-01-26  Andreas Enge  <andreas@enge.fr>

	gnu: Add zip, unzip and zziplib.
	* gnu/packages/zip.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add TECkit.
	* gnu/packages/freetype.scm (teckit): New variable.
	* gnu/packages/patches/teckit-cstdio.patch: New file.
	* Makefile.am (dist_patch_DATA): Add patch.

2013-01-25  Ludovic Courtès  <ludo@gnu.org>

	gnu: Use `mirror://apache' where applicable.
	* gnu/packages/libapr.scm (libapr, libaprutil): Use `mirror://apache'.
	* gnu/packages/subversion.scm (subversion): Likewise.

	download: Add Apache mirrors.
	* guix/download.scm (%mirrors): Add `apache'.

2013-01-25  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add Subversion.
	* gnu/packages/subversion.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-01-25  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add SQLite.
	* gnu/packages/sqlite.scm: New file.
	* Makefile.am (MODULES): Add it.

	download: Follow HTTP redirection upon 301 "moved permanently".
	* guix/build/download.scm (http-fetch): Follow redirections upon 301.
	  This is what `downloads.sourceforge.net' returns, for instance.

2013-01-25  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add libaprutil.
	* gnu/packages/libapr: new variable.

	gnu: Add libapr.
	* gnu/packages/libapr.scm: New file.
	* gnu/packages/patches/libapr-skip-getservbyname-test.patch: New file
	* Makefile.am: Add them

2013-01-25  Andreas Enge  <andreas@enge.fr>

	gnu: fplll: Update to version 4.0.2.
	* gnu/packages/algebra.scm (fplll): Update to version 4.0.2.

2013-01-24  Andreas Enge  <andreas@enge.fr>

	gnu: Add poppler.
	* gnu/packages/pdf.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-01-24  Ludovic Courtès  <ludo@gnu.org>

	packages: Mark the `inputs' field of <package> as thunked.
	* guix/packages.scm (<package>)[inputs]: Mark as thunked.
	  (package-derivation)[expand-input]: Remove case where the input is a
	  procedure.
	* tests/packages.scm ("trivial with system-dependent input"): Remove
	  `lambda', and use (%current-system).
	* gnu/packages/bootstrap.scm (package-from-tarball): Likewise for `inputs'.
	  (%bootstrap-glibc, %bootstrap-gcc): Likewise.
	* gnu/packages/scheme.scm (mit-scheme): Likewise.

	guix-package: Error out when passed a non-option argument.
	* guix-package.in (guix-package)[parse-options]: Call `leave' when
	  passed a non-option argument.
	  Reported by Andreas Enge <andreas@enge.fr>.
	* tests/guix-package.sh: Add test.

2013-01-24  Andreas Enge  <andreas@enge.fr>

	gnu: Add t1lib.
	* gnu/packages/freetype.scm (t1lib): New variable.

2013-01-24  Cyril Roelandt  <tipecaml@gmail.com>

	gnu: Add OCaml. licenses: Add QPL.
	* gnu/packages/ocaml.scm: New file.
	* Makefile.am (MODULES): Add it.
	* guix/licenses.scm: New variable.

2013-01-23  Ludovic Courtès  <ludo@gnu.org>

	packages: Mark the `arguments' field of <package> as thunked.
	* guix/packages.scm (<package>): Mark `arguments' as thunked.
	  (package-derivation): Adjust accordingly.  Parameterize
	  %CURRENT-SYSTEM to SYSTEM, so that arguments can refer to it.

	* guix/build-system/gnu.scm (package-with-explicit-inputs): Expect
	  `package-arguments' to always return a list, and return a list.
	  (package-with-extra-configure-variable): Likewise.
	  (static-package): Likewise.
	* gnu/packages/base.scm (patch, findutils, gcc-4.7, binutils-boot0,
	  gcc-boot0, glibc-final-with-bootstrap-bash, cross-gcc-wrapper,
	  static-bash-for-glibc, binutils-final, gcc-final): Change `arguments'
	  from a lambda to a list, and use (%current-system) as needed.
	  (nix-system->gnu-triplet, boot-triplet): Have the first argument
	  default to (%current-system).
	* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Have `system'
	  default to (%current-system).
	  (%bootstrap-gcc): Change `arguments' to a list.
	* gnu/packages/gawk.scm (gawk): Likewise.
	* gnu/packages/m4.scm (m4): Likewise.
	* gnu/packages/make-bootstrap.scm (%glibc-for-bootstrap): Likewise, and
	  expect `package-arguments' to return a list.
	  (%static-inputs, %gcc-static, tarball-package): Likewise.
	* gnu/packages/ncurses.scm (ncurses): Likewise.

2013-01-23  Ludovic Courtès  <ludo@gnu.org>

	guix-build: Fix typo.
	* guix-build.in (guix-build)[find-package]: Use `x', not `_', to avoid
	  confusion with `gettext'.

	gnu: Remove unnecessary closures around `arguments' value.
	* gnu/packages/algebra.scm (pari-gp): Remove closure around the value of
	  `arguments'.
	* gnu/packages/bdb.scm (bdb): Likewise.
	* gnu/packages/mit-krb5.scm (mit-krb5): Likewise.
	* gnu/packages/openssl.scm (openssl): Likewise.
	* gnu/packages/perl.scm (perl): Likewise.

	define-record-type*: Add the `thunked' field definition keyword.
	* guix/utils.scm (define-record-type*)[make-syntactic-constructor]: Add
	  a `thunked' parameter.
	  (thunked-field?, field-bindings): New procedures.  Use the latter when
	  generating `letrec*' bindings.
	  [thunked-field?, thunked-field-accessor-name, field-spec->srfi-9,
	  thunked-field-accessor-name]: New procedures.
	  Use them when generating the `define-record-type' form, and to
	  generated thunk field accessors, along call to
	  `make-syntactic-constructor' with the new argument.
	* tests/utils.scm ("define-record-type* & thunked",
	  "define-record-type* & thunked & default",
	  "define-record-type* & thunked & inherited"): New tests.

	doc: Clarify that `guix-build' really is for developers.
	* doc/guix.texi (Invoking guix-build): Make it clear that `guix-build'
	  doesn't access the user's profile, and add cross-ref to `guix-package'.
	  Suggested by Nikita Karetnikov <nikita@karetnikov.org>.

2013-01-23  Andreas Enge  <andreas@enge.fr>

	gnu: Add fontconfig.
	* gnu/packages/freetype.scm (fontconfig): New variable.

	gnu: libjpeg: Correct name of libjpeg-8 package to allow installation.
	* gnu/packages/libjpeg (libjpeg-8): Switch name field to "libjpeg".

2013-01-23  Ludovic Courtès  <ludo@gnu.org>

	Update `THANKS'.

	doc: Improve wording and fix typos in "Features".
	* doc/guix.texi (Features): Fix typos, and rephrase according to the
	  suggestions of Alex Sassmannshausen <alex.sassmannshausen@gmail.com>.

2013-01-22  Andreas Enge  <andreas@enge.fr>

	gnu: ghostscript: Build and install shared library and header files.
	* gnu/packages/ghostscript (ghostscript): Extend build and install phases.

2013-01-22  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Fix `--roll-back' when `--profile' is not passed.
	* guix-package.in (roll-back): Fix file name of PREVIOUS-PROFILE, which
	  could end up containing the dirname twice.
	  Reported by Nikita and Andreas.
	* tests/guix-package.sh: Add test.

	guix-build: Allow version-qualified package names.
	* guix-build.in (guix-build)[find-package]: New procedure.
	  Use it instead of using `find-packages-by-name' directly.
	  Suggested by Andreas Enge <andreas@enge.fr>.
	* tests/guix-build.sh: Add tests.
	* doc/guix.texi (Invoking guix-build): Add `coreutils-8.20' as an
	  example.  Fix guile-1.8 example.

	Update `ROADMAP'.

	gnu: automake: Adjust test suite to lack of /bin/sh.
	* gnu/packages/autotools.scm (autoconf-wrapper): New variable.
	  (automake): Use AUTOCONF-WRAPPER instead of AUTOCONF.
	  Add `automake-skip-amhello-tests.patch' as an input.
	  Add #:patches and #:phases arguments.
	* gnu/packages/patches/automake-skip-amhello-tests.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

	packages: Remove redundant test for inputs-as-procedures.
	* guix/packages.scm (package-derivation)[expand-input]: Remove redundant
	  test when the input is a procedure.

	doc: Add "The Perfect Setup" in 'HACKING'.
	* HACKING (The Perfect Setup): New section.

	gnu: Add Geiser.
	* gnu/packages/emacs.scm (geiser): New variable.

	gnu: gnutls: Remove unneeded import.
	* gnu/packages/gnutls.scm: Remove import of (gnu packages base).

2013-01-21  Andreas Enge  <andreas@enge.fr>

	gnu: Add groff.
	* gnu/packages/groff.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add psutils.
	* gnu/packages/ghostscript.scm (psutils): New variable.

	gnu: Add netpbm.
	* gnu/packages/netpbm.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-01-21  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add missing libevent patch.
	* gnu/packages/patches/libevent-dns-tests.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

2013-01-21  Nikita Karetnikov  <nikita@karetnikov.org>

	Update 'HACKING'.
	* HACKING (When the platform is supported by Nixpkgs): Update the example.

2013-01-20  Ludovic Courtès  <ludo@gnu.org>

	gnu: Add Tor.
	* gnu/packages/tor.scm: New file.
	* Makefile.am (MODULES): Add it.

	Augment `.gitignore'.

	Update `NEWS'.
	* NEWS: Update.

	gnu: Add libevent.
	* gnu/packages/libevent.scm: New file.
	* Makefile.am (MODULES): Add it.

	download: Add HTTPS support.
	* guix/build/download.scm: Autoload (gnutls).
	  (tls-wrap): New procedure.
	  (open-connection-for-uri): Add support for `https'.  Wrap the socket
	  with `tls-wrap' in that case.
	  (url-fetch): Add `https'.
	* guix/download.scm (gnutls-derivation): New procedure.
	  (url-fetch)[need-gnutls?]: New variable.
	  Call `gnutls-derivation' when NEED-GNUTLS? is true, and add its output
	  to the `GUILE_LOAD_PATH' env. var. in that case.

	packages: Have `package-derivation' return a <derivation> as a second value.
	* guix/packages.scm (cache): Change the `drv' argument to `thunk'.
	  Memoize all the return values of THUNK.
	  (cached-derivation): Remove.
	  (cached): New macro.
	  (package-derivation): Use `cached' instead of `(or (cached-derivation) …)'.
	* doc/guix.texi (Defining Packages): Update accordingly.

2013-01-20  Andreas Enge  <andreas@enge.fr>

	gnu: mit-krb5: Patch and enable tests.
	* gnu/packages/mit-krb5.scm (mit-krb5): Enable patched tests.

2013-01-20  Ludovic Courtès  <ludo@gnu.org>

	Update `THANKS'.

	doc: Run `useradd -g guix-builder -G guix-builder'.
	* doc/guix.texi (Setting Up the Daemon): Add `-G guix-builder' when
	  invoking `useradd'.
	  Suggested by Aleix Conchillo Flaqué <aconchillo@gmail.com>.

2013-01-20  Andreas Enge  <andreas@enge.fr>

	gnu: screen: correct license to gpl2+
	* gnu/packages/screen.scm (screen): correct license field

2013-01-20  Cyril Roelandt  <tipecaml@gmail.com>

	Add GNU Screen.
	* gnu/packages/screen.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-01-19  Ludovic Courtès  <ludo@gnu.org>

	build: Use "nix-instantiate" as the default name for that program.
	* configure.ac: Have `NIX_INSTANTIATE' default to `nix-instantiate'.

	gnu: lout: Add missing dependency on Ghostscript.
	* gnu/packages/lout.scm (lout): Add GHOSTSCRIPT as an input.  Use a
	  mirror:// URL.

	gnu: freetype: Avoid license/package name clash.
	* gnu/packages/freetype.scm: Use a renamer for (guix licenses), to avoid
	  a name clash.

	distro: glib: Run the test suite; add DBus.
	* distro/packages/glib.scm: Rename to...
	* gnu/packages/glib.scm: ... this.  Update module declaration
	  accordingly.
	  (dbus): New variable.
	  (glib): Change version number to 2.34.3, and adjust URL accordingly.
	  Add a "doc" output.  Add #:configure-flags, #:patches, and #:phases
	  arguments. Add DBUS as an input, as well a three patches.
	* Makefile.am (MODULES): Adjust to file renaming.
	  (dist_patch_DATA): Add `glib-tests-timezone.patch',
	  `glib-tests-homedir.patch', and `glib-tests-desktop.patch'.

2013-01-19  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add GLib.
	* distro/packages/glib.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-01-19  Andreas Enge  <andreas@enge.fr>

	gnu: libtiff: Add zlib support.
	* gnu/packages/libtiff.scm (libtiff): Add input zlib.

	gnu: Add libxml2.
	* gnu/packages/xml.scm (libxml2): New variable.

	gnu: Add GNU Ghostscript and its dependencies libpaper and lcms.
	* gnu/packages/ghostscrip.scm: New file.
	* Makefile.am (MODULES): Add it.

	gnu: Add Freetype. licenses: Add freetype license.
	* gnu/packages/freetype.scm: New file.
	* guix/licenses.scm (freetype): New variable.
	* Makefile.am (MODULES): Add freetype.scm.

2013-01-19  Nikita Karetnikov  <nikita@karetnikov.org>

	gnu: ddrescue: Fix 'synopsis' and 'description'.
	* gnu/packages/ddrescue.scm (ddrescue): Fix 'synopsis' and 'description'.

	gnu: Add GNU Speex.
	* gnu/packages/oggvorbis.scm (speex): Add it.
	(vorbis-tools): Add 'speex' to 'inputs'.

2013-01-18  Andreas Enge  <andreas@enge.fr>

	gnu: Amended previous patch.
	* Makefile.am (MODULES): Add libpng.scm.

	gnu: Add libpng.
	* gnu/packages/libpng.scm: New file.
	* Makefile.am (MODULES): Add it.

	licenses: Add 'vim'.
	* guix/licenses.scm (vim): New variable.

	gnu: Add libogg, libvorbis and vorbis-tools.
	* gnu/packages/oggvorbis.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-01-18  Ludovic Courtès  <ludo@gnu.org>

	distro: tcl: Make a `tclsh' symlink.
	* gnu/packages/tcl.scm (tcl): Add a `tclsh' symlink.

	build: Bump to version 0.2.
	* configure.ac: Bump version number.

	distro: bigloo: Update to 4.0a.
	* gnu/packages/scheme.scm (bigloo): Update to 4.0a.

	distro: gnutls: Adjust to the latest version.
	* gnu/packages/gnutls.scm (gnutls): Remove the #:parallel-build?
	  argument, which is no longer needed.  Remove the commented-out LZO
	  input, since GnuTLS no longer supports it since 3.0.0.

	distro: gnutls: Use the GnuPG mirrors.
	* gnu/packages/gnutls.scm (gnutls): Use the gnutls.org/GnuPG URL.

	doc: Add a "GNU Distribution" node.
	* doc/guix.texi (Introduction): Add cross-reference to "GNU
	  Distribution".
	  (Features): Mention reproducibility.
	  (Invoking guix-package): Add cross-reference to "GNU Distribution".
	  (GNU Distribution): New node.

	distro: Rename (distro) to (gnu packages).
	* distro.scm: Rename to...
	* gnu/packages.scm: ... this.  Update all users accordingly.
	* Makefile.am (MODULES): Adjust accordingly.
	* po/POTFILES.in: Likewise.

	distro: Change the module name space to (gnu ...).
	* distro: Rename to...
	* gnu: ... this.  Update module names accordingly.
	* Makefile.am: Adjust accordingly.
	* po/POTFILES.in: Likewise.
	* distro.scm: Search for files under /gnu/packages instead of
	  /distro/packages.
	* gnu/packages/base.scm (ld-wrapper-boot3): Likewise.

	Update `HACKING'.
	* HACKING: Capitalize the title.
	  (Running Guix before it is installed): New section.
	  (Adding new packages): Update example.

	Move Andreas to `AUTHORS'.

	doc: Mark binary deployment as not implemented yet.
	* doc/guix.texi (Features): Add a footnote saying that binary deployment
	  is missing.

2013-01-18  Andreas Enge  <andreas@enge.fr>

	distro: Add libtiff.
	* distro/packages/libtiff.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add Libjpeg 8.
	* distro/packages/libjpeg.scm (libjpeg-8): New variable.

2013-01-17  Andreas Enge  <andreas@enge.fr>

	distro: Add file.
	* distro/packages/file.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add Libjpeg.
	* distro/packages/libjpeg.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: flex: Add dependency on Indent.
	* distro/packages/flex.scm (flex): Add Indent as input.

	distro: Add Indent.
	* distro/packages/indent.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-01-17  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Allow `--roll-back' to skip missing generations.
	* guix-package.in (profile-numbers): New procedure.
	  (latest-profile-number): Use it.
	  (previous-profile-number): New procedure.
	  (roll-back): Use it lieu of `1-'.  Check whether PREVIOUS-NUMBER is
	  zero, and raise an error when it is.
	* tests/guix-package.sh: Test whether we can roll back over a "hole".

2013-01-17  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Add `--roll-back'.
	Based on a patch by Nikita Karetnikov <nikita@karetnikov.org>.

	* guix-package.in (profile-regexp): New procedure.
	  (latest-profile-number): Remove `%profile-rx', and use
	  `profile-regexp' instead.
	  (profile-number, roll-back): New procedure.
	  (show-help): Add `--roll-back'.
	  (%options): Likewise.
	  (guix-package)[process-actions]: First check whether `roll-back?' is
	  among OPTS, and call `roll-back' if it is, followed by a recursive
	  call to `process-actions'.  Emit the "nothing to be done" message only
	  when INSTALL or REMOVE is non-empty.
	* tests/guix-package.sh (readlink_base): New function.
	  Add tests for `--roll-back'.
	* doc/guix.texi (Invoking guix-package): Document `--roll-back'.

2013-01-17  Andreas Enge  <andreas@enge.fr>

	distro: gnutls: Update to 3.1.6.
	* distro/packages/gnutls.scm (gnutls): Update to 3.1.6.

2013-01-17  Ludovic Courtès  <ludo@gnu.org>

	packages: Change `base32' to allow non-literal strings.
	* guix/packages.scm (base32): Allow arguments that are not literal strings.

	distro: nettle: Update to 2.6.
	* distro/packages/nettle.scm (nettle): Update to 2.6.

2013-01-16  Ludovic Courtès  <ludo@gnu.org>

	distro: gdb: Add dependency on Expat and Python.
	* distro/packages/gdb.scm (gdb): Add Expat and Python as inputs.

	distro: Add Expat.
	* distro/packages/xml.scm: New file.
	* Makefile.am (MODULES): Add it.

	doc: Start documenting derivations.
	* doc/guix.texi (Defining Packages): Add cross-reference to
	  "Derivations".
	  (The Store): Add `build-derivations'.
	  (Derivations): Populate.

	doc: Fix typos, and improve daemon documentation.
	* doc/guix.texi: Fix typos.
	  (Invoking guix-daemon): Add details about `--disable-log-compression'
	  and `--disable-store-optimization'.
	  Reported by Nikita Karetnikov <nikita@karetnikov.org>.

	doc: Remove @documentlanguage.
	* doc/guix.texi: Remove @documentlanguage, which confuses TeX.

2013-01-16  Andreas Enge  <andreas@enge.fr>

	distro: Add icu4c (International Components for Unicode).
	* distro/packages/icu4c.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-01-16  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add Python 2.7.3.
	* distro/packages/python.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-01-15  Ludovic Courtès  <ludo@gnu.org>

	doc: Start documenting (guix store).
	* doc/guix.texi (The Store): Populate.
	  (Introduction): Add cross-reference.  Change "package store" to "the
	  store".

	distro: recutils: Add 3 optional dependencies.
	* distro/packages/recutils.scm (recutils): Add Emacs, Check, and bc as
	  dependencies.

	distro: check: Fix source URL.
	* distro/packages/check.scm (check): Fix source URI.

	distro: Add patches forgotten in previous commits.
	* distro/packages/patches/bigloo-gc-shebangs.patch,
	  distro/packages/patches/emacs-configure-sh.patch,
	  distro/packages/patches/procps-make-3.82.patch: New files.
	* Makefile.am (dist_patch_DATA): Add them.

	distro: Add GNU bc.
	* distro/packages/algebra.scm (bc): New variable.

	guix-package: Connect to the daemon only after arguments have been processed.
	* guix-package.in (%store): Change to a SRFI-39 parameter.  Update all users.
	  (guix-package): Parametrize %STORE to an open connection after
	  `parse-options' has been called.

2013-01-15  Andreas Enge  <andreas@enge.fr>

	distro: Add Cyrus SASL.
	* distro/packages/cyrus-sasl.scm: New file.
	* Makefile.am (MODULES): Add it.

	Test commit.
	* Makefile.am: alphabetical ordering

2013-01-15  Ludovic Courtès  <ludo@gnu.org>

	Augment `TODO'.

	distro: Fetch bootstrap binaries from alpha.gnu.org.
	* build-aux/download.scm (%url-base): Change to alpha.gnu.org.
	* distro/packages/bootstrap.scm (%bootstrap-base-url): Rename to...
	  (%bootstrap-base-urls): ... this.  Add alpha.gnu.org as the first
	  URL.  Update users.

2013-01-15  Nikita Karetnikov  <nikita@karetnikov.org>

	licenses: Add 'psfl'.
	* guix/licenses.scm (psfl): New variable.

2013-01-15  Ludovic Courtès  <ludo@gnu.org>

	distro: Add MIT/GNU Scheme and Bigloo.
	* distro/packages/scheme.scm: New file.
	* Makefile.am (MODULES): Add it.

	build-system/gnu: Allow the `source' argument to be #f.
	* guix/build-system/gnu.scm (gnu-build): Allow SOURCE to be #f.

	daemon: Remove reference to immutable.{cc,hh}, which no longer exist.
	* daemon.am (libutil_a_SOURCES): Remove nix/libutil/immutable.cc.
	  (libutil_headers): Remove nix/libutil/immutable.hh.  These files were
	  removed in Nix commit def5160 (post 1.2).
	  Reported by Nikita Karetnikov <nikita@karetnikov.org>.

2013-01-14  Ludovic Courtès  <ludo@gnu.org>

	snix: When unable to determine the version number, leave the URI unchanged.
	* guix/snix.scm (snix-derivation->guix-package)[pretty-uri]: When
	  VERSION is #f, return URI.

2013-01-14  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Create or diagnose missing profile directory.
	Reported by Andreas Enge.

	* guix-package.in (%profile-directory): Honor $NIX_STATE_DIR.
	  (guix-package)[ensure-default-profile]: Use it.
	  [process-actions]: Call it when the `profile' option is
	  %CURRENT-PROFILE.
	* tests/guix-package.sh: Add installation test with $HOME set, using the
	  default profile.

2013-01-14  Ludovic Courtès  <ludo@gnu.org>

	tests: Use "binutils:lib" as the `guix-package' example.
	* tests/guix-package.sh: Use "binutils:lib" instead of "libsigsegv:lib",
	  since the latter no longer exists.

2013-01-13  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Fix check for ~/.guix-profile existence.
	* guix-package.in (guix-package): When testing whether
	  %USER-ENVIRONMENT-DIRECTORY exists, use `lstat' instead of
	  `file-exists?'.  Reported by Andreas Enge.

2013-01-13  Andreas Enge  <andreas@enge.fr>

	licenses: Add 'openldap2.8'.
	* guix/licenses.scm (openldap2.8): New variable.

	distro: Add PARI/GP
	* distro/packages/algebra.scm (pari-gp): New variable.

2013-01-13  Ludovic Courtès  <ludo@gnu.org>

	Update to Nix 1.3.

	store: In `open-connection', process all the server's stderr.
	* guix/store.scm (open-connection): Loop until `process-stderr' returns #t.

	distro: openssl: Fix the `license' field.
	* distro/packages/openssl.scm: Add renamer for (guix licenses).  Adjust
	  accordingly.

	distro: Add GNU Emacs.
	* distro/packages/emacs.scm: New file.
	* Makefile.am (MODULES): Add it.

	doc: Fix typos.
	* doc/guix.texi (Setting Up the Daemon): Use "useradd -c" for comments.
	  Reported by Andreas Enge.
	  (Invoking guix-gc): Fix typo.

	distro: Add GNU Mailutils.
	* distro/packages/mailutils.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: expect: Provide the right path to `stty'.
	* distro/packages/tcl.scm (expect): Add #:phases argument.

2013-01-12  Ludovic Courtès  <ludo@gnu.org>

	distro: gnutls: Add dependency on Which.
	* distro/packages/gnutls.scm (gnutls): Add dependency on Which.

	distro: Add GDB.
	* distro/packages/gdb.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: dejagnu: Add `expect' in the search path of `runtest'.
	* distro/packages/dejagnu.scm (dejagnu): In `check' phase, change `PATH'
	  in `runtest', to avoid "expect not found in PATH" error.

	distro: Add MySQL.
	* distro/packages/mysql.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: util-linux: Fix `license' field.
	* distro/packages/linux.scm (util-linux): Change `license' field to
	  refer to the actual license objects.

	distro: Add procps.
	* distro/packages/linux.scm (procps): New variable.

	distro: tcl, expect: Enable tests.
	* distro/packages/tcl.scm (tcl, expect): Remove #:tests? argument; add
	  #:test-target.

2013-01-11  Ludovic Courtès  <ludo@gnu.org>

	doc: Mention store sharing with Nix; update `package' example.
	* doc/guix.texi: Set @documentlanguage.
	  (Installation): Add reference to `INSTALL' and `README'.
	  (Requirements): Mention store sharing with Nix.
	  (Defining Packages): Update example to include `use-modules' clauses
	  and to use (guix licenses).

	Merge branch 'core-updates'
	Conflicts:
		guix/build/union.scm

	download: Abbreviate URLs when displaying the progress report.
	* guix/build/download.scm (uri-abbreviation): New procedure.
	  (ftp-fetch, http-fetch): Use it instead of `uri->string' when calling
	  `progress-proc'.  Reported by Andreas Enge.

2013-01-10  Ludovic Courtès  <ludo@gnu.org>

	distro: gawk: Adjust to the libsigsegv output change.
	* distro/packages/gawk.scm (gawk): Adjust the libsigsegv with a single
	  output.

	distro: libsigsegv: Use a single output.
	* distro/packages/libsigsegv.scm (libsigsegv): Use just a single output,
	  otherwise nothing ends up in `out' as a consequence of commit a06a99f.
	  Reported by Andreas Enge <andreas@enge.fr>.

	build: Print the Guix system type.
	* m4/guix.m4 (GUIX_SYSTEM_TYPE): Print the system type.

	distro: gmp: Update to 5.0.1.
	* distro/packages/multiprecision.scm (gmp): Update to 5.0.1.

	distro: binutils: Add a "lib" output.
	* distro/packages/base.scm (binutils): Add `outputs' field.

	build-system/gnu: Improve support for "lib" outputs; support "doc" outputs.
	* guix/build/gnu-build-system.scm (configure)[package-name]: New
	  procedure.
	  When LIBDIR is true and INCLUDEDIR is false, add
	  --includedir=LIBDIR/include.
	  Add support for --docdir when a "doc" output exists.

2013-01-09  Ludovic Courtès  <ludo@gnu.org>

	doc: Clarify package version specification example.
	* doc/guix.texi (Invoking guix-package): Use "guile-1.8.8" as the
	  example, not "guile-1.8" since there is no such version.

	Augment `TODO'.

	union: Detect collisions, and delete duplicate leaves.
	* guix/build/union.scm (delete-duplicate-leaves): New procedure.
	  (union-build)[leaf=?, resolve-collision]: New procedures.
	  Use `delete-duplicate-leaves' on the result of `tree-union'.
	* tests/union.scm ("delete-duplicate-leaves, default",
	  "delete-duplicate-leaves, file names"): New tests.

	guix-package: Create ~/.guix-profile when it doesn't exist.
	* guix-package.in (guix-package): Create the %USER-ENVIRONMENT-DIRECTORY
	  symlink if it doesn't exist yet.
	* doc/guix.texi (Invoking guix-package): Document it.

	guix-package: Show package outputs in `--list-available'.
	* guix-package.in (guix-package)[process-query]: For `list-available',
	  show the outputs of each package.
	* doc/guix.texi (Invoking guix-package): Update accordingly.

	doc: Update copyright years; add visible copyright statement.
	* doc/guix.texi (YEARS): New variable.
	  Use it for all copyright statements.
	  (Top): Add a copyright statement and license header here.

	doc: Documentation installation and the daemon.
	* doc/guix.texi (Installation): New node.

	daemon: Fix warning message when running as root without a build user group.
	* nix/nix-daemon/guix-daemon.cc (main): Fix warning message when running
	  as root without `--build-users-group'.

	guix-daemon: Rename `--build-cores' for consistency with `guix-build'.
	* nix/nix-daemon/guix-daemon.cc (options): Change `--build-cores' to
	  `--cores', and `-C' to `-c'.
	  (parse_opt): Adjust accordingly.

2013-01-09  Ludovic Courtès  <ludo@gnu.org>

	derivations: Fix `derivation-prerequisites-to-build' when outputs are there.
	Before it would list inputs not built, even if the outputs of the given
	derivation were already available.

	* guix/derivations.scm (derivation-prerequisites-to-build): Add
	  `outputs' keyword parameter.
	  [built?, derivation-built?]: New procedures.
	  [loop]: Add `sub-drvs' parameter.  Use `derivation-built?' to check if
	  the SUB-DRVS of DRV are built before checking its inputs.

2013-01-08  Ludovic Courtès  <ludo@gnu.org>

	doc: Update porting instructions in `HACKING'.
	* HACKING (When the platform is supported by Nixpkgs): Update
	  instructions.

	gnu-maintenance: Add `latest-release' and related tools.
	* guix/gnu-maintenance.scm (ftp-server/directory, releases,
	  version-string>?, latest-release, gnu-package-name->name+version): New
	  procedures.
	  (%package-name-rx): New variable.

	guix-package: Use `guile-final', not `guile-2.0' to build the environment.
	* guix-package.in (guix-package): Use either %BOOTSTRAP-GUILE or
	  GUILE-FINAL.

	guix-package: Be verbose when Guile itself needs to be built.
	* guix-package.in (guix-package)[guile-missing?]: New procedure.
	  (guix-package): Always redirect `current-build-output-port' to
	  `current-error-port' when (guile-missing?).

2013-01-07  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Remove `-b' shorthand for `--bootstrap'.
	* guix-package.in (%options): Remove #\b as an alternate for
	  "bootstrap".
	  (show-help): Adjust accordingly.
	* tests/guix-package.sh: Use `--bootstrap' instead of `-b'.

	snix: Update `license' check in unit test.
	* tests/snix.scm ("nixpkgs->guix-package"): Expect `license' to be a
	  symbol.  This is a follow-up to commit e7aa73e.

	snix: Use (guix licenses) variables.
	* guix/snix.scm (snix-derivation->guix-package)[license-variable]: New
	  procedure.
	  Use it to determine the variable name for the license.

	snix: Gracefully handle `null' in Nix build inputs.
	* guix/snix.scm (snix-derivation->guix-package)[convert-inputs]:
	  Gracefully handle `null' as an input.

	distro: Add GNU Aspell.
	* distro/packages/aspell.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add GSL.
	* distro/packages/algebra.scm (gsl): New variable.

	distro: Add GNU GLOBAL.
	* distro/packages/global.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add Tcl, Expect, and DejaGNU.
	* distro/packages/dejagnu.scm, distro/packages/tcl.scm: New files.
	* Makefile.am (MODULES): Add them.

2013-01-06  Ludovic Courtès  <ludo@gnu.org>

	distro: bdb: Adjust to lack of /bin/sh.
	* distro/packages/bdb.scm (bdb): Pass `CONFIG_SHELL' and `SHELL' to the
	  `configure' script.

	Update a few more license headers.
	* distro/packages/openssl.scm, m4/guix.m4, nix/sync-with-upstream:
	  Update headers.

	download: Report the progress of HTTP downloads.
	* guix/build/download.scm (http-fetch): Rename `bv' to `bv-or-port'.
	  Use `http-get*' followed by `dump-port' when the former is available,
	  and pass a progress procedure to `dump-port'.

	download: Report the progress of FTP downloads.
	* guix/build/download.scm (progress-proc): New procedure.
	  (ftp-fetch): Call `ftp-size' on URI.  Use `progress-proc', and pass
	  the result to `dump-port', along with #:buffer-size.

	ftp-client: Add `ftp-size'.
	* guix/ftp-client.scm (ftp-size): New procedure.

	distro: time: Adjust `configure' phase to old `configure' script.
	* distro/packages/time.scm (time): Add `arguments'.

	Merge branch 'master' into core-updates
	Conflicts:
		build-aux/download.scm
		distro/packages/autotools.scm
		distro/packages/base.scm
		distro/packages/bootstrap.scm
		distro/packages/lsh.scm
		distro/packages/make-bootstrap.scm
		distro/packages/ncurses.scm
		distro/packages/perl.scm
		tests/derivations.scm
		tests/union.scm

2013-01-06  Ludovic Courtès  <ludo@gnu.org>

	distro: Update bootstrap binaries to an nscd-less libc.
	Update bootstrap binaries following changes in commit d3b5972 ("Build
	glibc without nscd, and with static NSS modules.")

	* Makefile.am (distro/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz,
	  distro/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz): Update hashes.
	* build-aux/download.scm (file-name->uri): Update URL.
	* distro/packages/bootstrap.scm (%bootstrap-coreutils&co,
	  %bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc): Update URLs
	  and hashes.

2013-01-06  Ludovic Courtès  <ludo@gnu.org>

	Update license headers.
	Change all license headers, except guix/build/* and ld-wrapper.scm, with
	this code:

	  (use-modules (guix build utils)
		       (srfi srfi-1))

	  (fluid-set! %default-port-encoding "UTF-8")

	  (substitute* (remove (lambda (f)
				 (or (string-contains f ".tar.")
				     (string-contains f ".git/")
				     (string-contains f ".so")
				     (string-suffix? ".o" f)
				     (string-suffix? ".a" f)
				     (string-suffix? ".go" f)
				     (string-suffix? ".pdf" f)
				     (string-suffix? ".png" f)
				     (string-suffix? ".info" f)
				     (equal? (basename f) "guix-daemon")
				     (equal? (basename f) "nix-setuid-helper")
				     (string-contains f "nix-upstream/")
				     (string-contains f "distro/packages/bootstrap/")))
			       (find-files "." "\\.[a-z]+$"))
	    (("^([[:graph:]]+) This file is part of Guix." _ comment-start)
	     (string-append comment-start " This file is part of GNU Guix."))
	    (("^([[:graph:]]+) Guix --- Nix package management.*" _ comment-start)
	     (string-append comment-start
			    " GNU Guix --- Functional package management for GNU\n"))
	    (("^([[:graph:]]+) Guix is " _ comment-start)
	     (string-append comment-start " GNU Guix is "))
	    (("^([[:graph:]]+) along with Guix." _ comment-start)
	     (string-append comment-start " along with GNU Guix."))
	    (("^([[:graph:]]+) Copyright \\(C\\)" _ comment-start)
	     (string-append comment-start " Copyright ©")))

	Change headers using C-style comments manually.

2013-01-06  Ludovic Courtès  <ludo@gnu.org>

	Add `guix-gc'.
	* guix-gc.in, tests/guix-gc.sh: New files.
	* configure.ac: Output `guix-gc', and make it executable.
	* Makefile.am (bin_SCRIPTS): Add `guix-gc'.
	  (TESTS): Add `tests/guix-gc.sh'.
	* doc/guix.texi (Features): Add xref to "Invoking guix-gc".
	  (Invoking guix-gc): New node.
	* po/POTFILES.in: Add `guix-gc.in'.

	guix-build: Make `--root' effective for .drv files too.
	* guix-build.in (guix-build)[register-root]: Change first argument to
	  `paths', which should be a list of store paths.  Update caller to call
	  `derivation-path->output-paths' on DRV.  When `derivations-only?',
	  also register root for .drv files.

2013-01-05  Ludovic Courtès  <ludo@gnu.org>

	derivations: Add `derivation-path->output-paths'.
	* guix/derivations.scm (derivation-path->output-paths): New procedure.
	* tests/derivations.scm ("multiple-output derivation"): Test it.

2013-01-05  Ludovic Courtès  <ludo@gnu.org>

	Update license headers of builder-side code.
	Change license headers with this script:

	  (use-modules (guix build utils))

	  (fluid-set! %default-port-encoding "UTF-8")

	  (substitute* (cons "distro/packages/ld-wrapper.scm"
			     (find-files "guix/build" "\\.scm$"))
	    (("^([[:graph:]]+) This file is part of Guix." _ comment-start)
	     (string-append comment-start " This file is part of GNU Guix."))
	    (("^([[:graph:]]+) Guix --- Nix package management.*" _ comment-start)
	     (string-append comment-start
			    " GNU Guix --- Functional package management for GNU\n"))
	    (("^([[:graph:]]+) Guix is " _ comment-start)
	     (string-append comment-start " GNU Guix is "))
	    (("^([[:graph:]]+) along with Guix." _ comment-start)
	     (string-append comment-start " along with GNU Guix."))
	    (("^([[:graph:]]+) Copyright \\(C\\)" _ comment-start)
	     (string-append comment-start " Copyright ©")))

	* distro/packages/ld-wrapper.scm, guix/build/download.scm,
	  guix/build/gnu-build-system.scm, guix/build/union.scm,
	  guix/build/utils.scm: Update license headers.

2013-01-05  Ludovic Courtès  <ludo@gnu.org>

	utils: Add `which'.
	* guix/build/utils.scm (which): New procedure.

	* distro/packages/lsh.scm (lsh): Use `which' instead of `search-path'.
	* distro/packages/perl.scm (perl): Likewise.
	* distro/packages/attr.scm (attr): Likewise.

2013-01-05  Ludovic Courtès  <ludo@gnu.org>

	ui: Factorize bug-report information in `--help'.
	* guix/config.scm.in (%guix-home-page-url): New variable.
	* guix/ui.scm (show-bug-report-information): New procedure.
	* guix-build.in (show-help): Use it.
	* guix-download.in (show-help): Likewise.
	* guix-import.in (show-help): Likewise.
	* guix-package.in (show-help): Likewise.

	distro: make-bootstrap: Add `%bootstrap-tarballs' package.
	* distro/packages/make-bootstrap.scm (%bootstrap-tarballs): New
	  variable.

	distro: make-bootstrap: Build glibc without nscd, and with static NSS modules.
	* distro/packages/make-bootstrap.scm (%glibc-with-relocatable-system):
	  Rename to...
	  (%glibc-for-bootstrap): ... this.  Add new configure flags.

2013-01-04  Ludovic Courtès  <ludo@gnu.org>

	distro: make-bootstrap: Make the Coreutils smaller.
	* distro/packages/make-bootstrap.scm (%static-inputs)[coreutils]: Remove
	  optional dependencies, except Perl; build with "-Os -g0"; disable
	  tests.

	distro: make-bootstrap: Fix arguments to gawk.
	* distro/packages/make-bootstrap.scm (%static-inputs)[gawk]: Use
	  `substitute-keyword-arguments' to preserve the #:phases argument of
	  GAWK.

2013-01-02  Ludovic Courtès  <ludo@gnu.org>

	distro: libtool: Add a "bin" output.
	* distro/packages/autotools.scm (libtool): Add a "bin" output.
	* distro/packages/base.scm (guile-final): Remove comment about retained
	  dependency.

	distro: ncurses: Don't retain a reference to the bootstrap Bash.
	* distro/packages/ncurses.scm (ncurses): Remove #:patch-shebangs?
	  argument since it now has no effect.  Simplify PATCH-MAKEFILE-PHASE.
	  Add `configure-phase', and use it.

	distro: coreutils: Enable tests; add dependency on ACL and GMP.
	* distro/packages/base.scm (coreutils): Set #:parallel-build? #f.  Add
	  `patch-shell-references' phase.  Add 'acl', 'gmp', and 'perl' as
	  inputs, as suggested by Nikita Karetnikov.

	distro: acl: Patch references to /bin/sh.
	* distro/packages/acl.scm (acl): Add `patch-makefile-SHELL' phase.

	distro: gettext: Fix references to /bin/sh.
	* distro/packages/gettext.scm (gettext): Add `patch-tests' phase.

	daemon: Show the chroot contents upon `--debug'.
	* nix/nix-daemon/guix-daemon.cc (main)[HAVE_CHROOT]: Display the
	  contents of `settings.dirsInChroot' at `lvlDebug'.

2013-01-02  Andreas Enge  <andreas@enge.fr>

	distro: Add Berkeley DB.
	* distro/packages/bdb.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-01-02  Ludovic Courtès  <ludo@gnu.org>

	distro: openssl: Build shared libraries.
	* distro/packages/openssl.scm (openssl): `configure' phase: pass
	  "shared --libdir=lib".

2013-01-02  Andreas Enge  <andreas@enge.fr>

	distro: Add OpenSSL.
	* distro/packages/openssl.scm: New file.  `patch-tests' phase added by
	  Ludovic Courtès.
	* Makefile.am (MODULES): Add it.

2013-01-02  Ludovic Courtès  <ludo@gnu.org>

	release.nix: Update to new bootstrap Guile tarball.
	* release.nix (bootstrap_guile): Update URLs and SHA256.
	  (build)[preBuild]: Adjust tarball name.

2013-01-02  Andreas Enge  <andreas@enge.fr>

	distro: Add MIT Kerberos 5.
	* distro/packages/mit-krb5.scm: New file.
	* Makefile.am (MODULES): Add it.

2013-01-02  Ludovic Courtès  <ludo@gnu.org>

	daemon: Properly initialize libgcrypt.
	* nix/nix-daemon/guix-daemon.cc (main): Call `gcry_check_version'.

	tests: Adjust to not rely on /bin/sh.
	* tests/derivations.scm (%bash): New variable.
	  Replace occurrences of "/bin/sh" by %BASH.
	* tests/union.scm ("union-build"): Delete duplicates from
	  %BOOTSTRAP-INPUTS.

	distro: sed: Patch references to /bin/sh in the test suite.
	* distro/packages/base.scm (sed): Add `patch-test-suite' phase.

2013-01-01  Ludovic Courtès  <ludo@gnu.org>

	distro: glibc: Build the statically-linked Bash embedded in glibc.
	* distro/packages/base.scm (glibc): Expect "static-bash" to be a
	  directory, not a single file.  Call `remove-store-references' on the
	  "bash" binary that is copied.  Add an `sh' -> `bash' symlink.  Change
	  the "static-bash" input to (static-package bash-light).
	  (glibc-final): Rename to...
	  (glibc-final-with-bootstrap-bash): ... this.  Change `name' to
	  "glibc-intermediate".  Remove #:patch-shebangs? setting.
	  (cross-gcc-wrapper): New procedure, with code formerly in
	  GCC-BOOT0-WRAPPED.
	  (gcc-boot0-wrapped): Use it.
	  (static-bash-for-glibc): New variable.
	  (glibc-final): Inherit from GLIBC-FINAL-WITH-BOOTSTRAP-BASH, and use
	  STATIC-BASH-FOR-GLIBC as the "static-bash" input.

	distro: glibc: Fix contradicting settings of `BASH_SHELL'.
	* distro/packages/base.scm (glibc-final): Remove `ac_cv_path_BASH_SHELL'
	  setting.
	  (glibc): Set `BASH_SHELL' instead of `ac_cv_path_BASH_SHELL'.

	utils: Use binary I/O primitives for `remove-store-references'.
	* guix/build/utils.scm (fold-port-matches)[get-char]: New procedure.
	  (remove-store-references): Use `put-u8' and `put-bytevector'.

	build-system/gnu: Add `static-package'.
	* distro/packages/make-bootstrap.scm (static-package): Move to...
	* guix/build-system/gnu.scm (static-package): ... here.  New procedure.

	distro: Move lightweight Bash to (distro packages bash).
	* distro/packages/make-bootstrap.scm (%bash-static): Move BASH-LIGHT to...
	* distro/packages/bash.scm (bash-light): ... here.  New variable.

	build-system/gnu: Add support for the "bin" output.
	* guix/build/gnu-build-system.scm (configure): Add support for "bin"
	  output.

2012-12-31  Ludovic Courtès  <ludo@gnu.org>

	build: Avoid error message during `make clean' when `test-tmp' doesn't exist.
	* daemon.am (clean-local): Check whether $(GUIX_TEST_ROOT) exists before
	  running `find'.

	utils: Restore the mtime/atime of patched files.
	* guix/build/utils.scm (set-file-time): New procedure.
	  (patch-shebang): New `keep-mtime?' parameter; call `set-file-time'
	  when it's true.
	  (patch-makefile-SHELL): Likewise.

	distro: bzip2: Patch `SHELL' in `Makefile-libbz2_so'.
	* distro/packages/compression.scm (bzip2): Call `patch-makefile-SHELL'
	  in BUILD-SHARED-LIB.

	distro: libc: Update to 2.17.
	* distro/packages/base.scm (glibc): Update to 2.17.

2012-12-30  Andreas Enge  <andreas@enge.fr>

	build-system/gnu: enable test-target during the check phase
	* guix/build-system/gnu.scm: add variable test-target

	distro: Add Libntlm, GNU GSS and GNU SASL.
	* distro/packages/gsasl.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: automake: Update to 1.12.6.
	* distro/packages/autotools.scm (automake): Update to 1.12.6.

	distro: Add GNU Libidn.
	* distro/packages/libidn.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Update libtasn1 and gnutls.
	* distro/packages/gnutls.scm: Update libtasn1 and gnutls.

2012-12-21  Ludovic Courtès  <ludo@gnu.org>

	distro: attr: Fix references to /bin/sh.
	* distro/packages/attr.scm (attr): Add `patch-makefile-SHELL'.  Patch
	  `test/run' in `check' phase.

	distro: Add GNU idutils.
	* distro/packages/idutils.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-12-21  Andreas Enge  <andreas@enge.fr>

	distro: Add rsync.
	* distro/packages/rsync.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-12-21  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Patch shebangs in all the source; patch SHELL in makefiles.
	* guix/build/utils.scm (call-with-ascii-input-file): New procedure.
	  (patch-shebang): Use it.
	  (patch-makefile-SHELL): New procedure.
	* guix/build/gnu-build-system.scm (patch-source-shebangs): Patch all the
	  files, not just executables; remove `po/Makefile.in.in' patching.
	  (patch-generated-files): Rename to...
	  (patch-generated-file-shebangs): ... this.  Patch executables and
	  makefiles.
	  (%standard-phases): Adjust accordingly.

	* distro/packages/autotools.scm (libtool): Remove call to `patch-shebang'.
	* distro/packages/base.scm (gcc-4.7): Likewise.
	  (guile-final): Remove hack to skip `test-command-line-encoding2'.
	* distro/packages/bash.scm (bash): Remove `pre-configure-phase'.
	* distro/packages/readline.scm (readline): Likewise.
	* distro/packages/ncurses.scm (ncurses): Remove `pre-install-phase'.

2012-12-21  Ludovic Courtès  <ludo@gnu.org>

	distro: coreutils: Update to 8.20.
	* distro/packages/base.scm (coreutils): Update to 8.20.

2012-12-20  Ludovic Courtès  <ludo@gnu.org>

	distro: guile: Patch (ice-9 popen) to use the right shell.
	* distro/packages/guile.scm (guile-2.0): Add `pre-configure'.
	* distro/packages/base.scm (guile-final): Adjust to preserve the
	  `pre-configure' phase.

	build-system/gnu: Patch shebangs after `configure'.
	* guix/build/gnu-build-system.scm (patch-generated-files): New
	  procedure.
	  (%standard-phases): Add it after `configure'.

	build-system/gnu: Report the execution time of each phase.
	* guix/build/gnu-build-system.scm (gnu-build): Report the success or
	  failure of each phase and its execution time.

	distro: m4: Patch references to /bin/sh.
	* distro/packages/m4.scm (m4): Add `pre-check' phase.

	distro: libtool: Run test suite in parallel; patch references to /bin/sh.
	* distro/packages/autotools.scm (libtool): Add `pre-check' phase.

	distro: bash, readline: Patch so that `make' uses the right shell.
	* distro/packages/readline.scm (readline): Add `pre-configure-phase' to
	  patch `MAKE_SHELL' in `configure.  Move `post-install-phase' body to
	  a variable.
	* distro/packages/bash.scm (bash): Likewise.

	distro: gawk: Use the right shell instead of /bin/sh.
	* distro/packages/gawk.scm (gawk): Patch shell file name in io.c.

2012-12-20  Andreas Enge  <andreas@enge.fr>

	distro: Add mpfrcx and fplll.
	* distro/packages/algebra.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-12-20  Ludovic Courtès  <ludo@gnu.org>

	distro: Update `guile-final' to not fail during `patch-source-shebangs' phase.
	* distro/packages/base.scm (guile-final): Add workaround on top of
	  GUILE-2.0/FIXED to avoid `patch-source-shebangs' failure on one of the
	  source files.

	distro: ncurses: Patch references to /bin/sh.
	* distro/packages/ncurses.scm (ncurses): Add `patch-makefile-phase' and
	  `pre-install-phase'.

	utils: Add a `progress' parameter to `dump-port'.
	* guix/build/utils.scm (dump-port): Add a `progress' keyword parameter.
	  Call it after each transfer.

2012-12-20  Ludovic Courtès  <ludo@gnu.org>

	distro: Update bootstrap binaries.
	Use bootstrap binaries that were generated with the `make-bootstrap'
	changes introduced in previous commit.

	* Makefile.am (nodist_bootstrap_x86_64_linux_DATA,
	  nodist_bootstrap_i686_linux_DATA): Change Guile tarball name.
	  (distro/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz,
	  distro/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz): New targets.
	  (distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz,
	  distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
	  Remove.
	* build-aux/download.scm (file-name->uri): Use "20121219" directory.
	* distro/packages/bootstrap.scm (%bootstrap-guile): Update file name.
	  (%bootstrap-coreutils&co, %bootstrap-binutils, %bootstrap-glibc,
	  %bootstrap-gcc): Update directory name and hashes.

2012-12-20  Ludovic Courtès  <ludo@gnu.org>

	distro: make-bootstrap: Have libc's functions search for `sh' in $PATH.
	* distro/packages/make-bootstrap.scm (%glibc-with-relocatable-system,
	  %standard-inputs-with-relocatable-glibc): New variables.
	  (%static-inputs)[gawk]: Apply `gawk-shell.patch'.
	  [finalize]: New procedure.
	  Build all the packages against %STANDARD-INPUTS-WITH-RELOCATABLE-GLIBC.
	  (%glibc-stripped): Inherit from %GLIBC-WITH-RELOCATABLE-SYSTEM.
	  (%gcc-static, %guile-static): Build against
	  %STANDARD-INPUTS-WITH-RELOCATABLE-GLIBC.
	* distro/packages/patches/gawk-shell.patch,
	  distro/packages/patches/glibc-bootstrap-system.patch: New files.
	* Makefile.am (dist_patch_DATA): Add them.

	distro: glibc: Add a statically-linked Bash to $out/bin.
	* distro/packages/base.scm (glibc): Pass `ac_cv_path_BASH_SHELL' in the
	  configure flags.  During the `pre-configure' phase, copy the
	  "static-bash" input to $out/bin, and change `system' and `popen' to
	  use it instead of /bin/sh.  Add the "static-bash" input.
	  Suggested by Shea Levy <shea@shealevy.com> and
	  Lluís Batlle i Rossell <viric@viric.name>.

	distro: gcc: Patch to allow builds without /bin/sh.
	* distro/packages/base.scm (gcc-4.7): In `pre-configure' phase, patch
	  shebang in `gcc/exec-tool.in'.

	distro: ld-wrapper: Use the current Bash instead of /bin/sh.
	* distro/packages/ld-wrapper.scm: Use @BASH@ in shebang.  Change module
	  name to (gnu build-support ld-wrapper).
	* distro/packages/base.scm (ld-wrapper-boot3): Substitute @BASH@.
	  (ld-wrapper): Use BASH-FINAL.

2012-12-19  Ludovic Courtès  <ludo@gnu.org>

	distro: make: Change default shell from /bin/sh to the actual shell.
	* distro/packages/base.scm (gnu-make): Add `set-default-shell' phase.
	  (gnu-make-boot0): Adjust phases accordingly.

	build-system/gnu: Change the order of `patch-source-shebangs' and `patch'.
	* guix/build/gnu-build-system.scm (patch-source-shebangs): Add a newline
	  after the "SHELL =" line in po/Makefile.in.in.
	  (%standard-phases): Move `patch-source-shebangs' after `patch'.

	distro: Linux-Libre: Set $ARCH based on the actual system type.
	* distro/packages/linux.scm (linux-libre-headers): Set $ARCH based on
	  the `system' keyword argument.

2012-12-19  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add Usbutils.
	* distro/packages/linux.scm (usbutils): New variable.

2012-12-18  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add Libusb.
	* distro/packages/libusb.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-12-18  Ludovic Courtès  <ludo@gnu.org>

	distro: guile: Switch to 2.0.7.
	* distro/packages/guile.scm (guile-2.0/fixed): Alias GUILE-2.0.

2012-12-17  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add Check.
	* distro/packages/check.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-12-17  Ludovic Courtès  <ludo@gnu.org>

	download: Remove unreachable SourceForge mirror.
	* guix/download.scm (%mirrors)[sourceforge]: Remove kent.dl.*, which is
	  unreachable.

	download: Correctly detect "No route to host" conditions.
	* guix/build/download.scm (open-connection-for-uri): Delete addrinfos
	  with the same address.  Always open SOCK_STREAM/IPPROTO_IP sockets.
	  Fix the error handler's condition to determine what to do.
	  Reported by Nikita Karetnikov <nikita.karetnikov@gmail.com> at
	  <http://lists.gnu.org/archive/html/bug-guix/2012-12/msg00150.html>.

2012-12-16  Ludovic Courtès  <ludo@gnu.org>

	daemon: Gracefully handle Nix errors.
	* nix/nix-daemon/guix-daemon.cc (main): Run Nix code in an exception
	  handler; gracefully print error messages, and exit with EXIT_FAILURE.

	daemon: Warn against running as root without `--build-users-group'.
	* nix/nix-daemon/guix-daemon.cc (main): Recommend using
	  `--build-users-group' when running  as root without a build users
	  group.

	daemon: Add `--chroot-directory'.
	* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_CHROOT_DIR): New macro.
	  (options): Add `--chroot-directory'.
	  (parse_opt): Handle it.

2012-12-15  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Patch shebangs in executable source files.
	This allows many packages to build in a chroot that lacks /bin and
	thus /bin/sh.

	* guix/build/gnu-build-system.scm (patch-source-shebangs): New
	  procedure.
	  (%standard-phases): Add it.
	* guix/build/utils.scm (executable-file?): New procedure.
	* distro/packages/perl.scm (perl): Don't use /bin/sh to run `Configure'.

2012-12-15  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Make the error port line-buffered.
	* guix/build/gnu-build-system.scm (gnu-build): Make the error port
	  line-buffered.

	utils: Make the buffer size of `dump-port' a parameter.
	* guix/build/utils.scm (dump-port): Make `buffer-size' a keyword
	  parameter.

	Merge branch 'master' into core-updates
	Conflicts:
		distro/packages/multiprecision.scm

	guix-build: Add `--verbosity'.
	* guix-build.in (%default-options): Add `verbosity'.
	  (%options): Add `--verbosity'.
	  (guix-build): Pass it to `set-build-options'.
	  (show-help): Update accordingly.
	* doc/guix.texi (Invoking guix-build): Document `--verbosity'.

	daemon: Add `--debug' option.
	* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_DEBUG): New macro.
	  (options): Add `--debug'.
	  (parse_opt): Set `verbosity' upon GUIX_OPT_DEBUG.

2012-12-14  Ludovic Courtès  <ludo@gnu.org>

	daemon: Disable use of substitutes for now.
	* nix/nix-daemon/guix-daemon.cc (main): Set `settings.useSubstitutes' to
	  false, and `settings.substituters' to the empty list.

2012-12-14  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Use (guix licenses) instead of strings.
	* distro/packages/acl.scm, distro/packages/attr.scm,
	  distro/packages/autotools.scm, distro/packages/base.scm,
	  distro/packages/bash.scm, distro/packages/bdw-gc.scm,
	  distro/packages/bison.scm, distro/packages/bootstrap.scm,
	  distro/packages/compression.scm, distro/packages/cpio.scm,
	  distro/packages/ddrescue.scm, distro/packages/ed.scm,
	  distro/packages/flex.scm, distro/packages/gawk.scm,
	  distro/packages/gdbm.scm, distro/packages/gettext.scm,
	  distro/packages/gnupg.scm, distro/packages/gnutls.scm,
	  distro/packages/gperf.scm, distro/packages/guile.scm,
	  distro/packages/help2man.scm, distro/packages/less.scm,
	  distro/packages/libffi.scm, distro/packages/libsigsegv.scm,
	  distro/packages/libunistring.scm, distro/packages/linux.scm,
	  distro/packages/lout.scm, distro/packages/lsh.scm,
	  distro/packages/m4.scm, distro/packages/multiprecision.scm,
	  distro/packages/nano.scm, distro/packages/ncurses.scm,
	  distro/packages/nettle.scm, distro/packages/perl.scm,
	  distro/packages/pkg-config.scm, distro/packages/pth.scm,
	  distro/packages/readline.scm, distro/packages/recutils.scm,
	  distro/packages/shishi.scm, distro/packages/system.scm,
	  distro/packages/texinfo.scm, distro/packages/time.scm,
	  distro/packages/wget.scm, distro/packages/which.scm,
	  distro/packages/zile.scm: Use (guix licenses).

2012-12-14  Andreas Enge  <andreas@enge.fr>

	build: Avoid brace expansion in `nix/sync-with-upstream'.
	* nix/sync-with-upstream: Avoid brace expansion, for the sake of Dash.

2012-12-14  Ludovic Courtès  <ludo@gnu.org>

	daemon: Build `nix-setuid-helper'.
	* daemon.am (libexec_PROGRAMS, nix_setuid_helper_SOURCES,
	  nix_setuid_helper_CPPFLAGS, nix_setuid_helper_LDADD): New variables.
	* test-env.in: Set and export `NIX_SETUID_HELPER'.
	* README (Installing Guix as non-root): New section.

	download: Work around (web client) bug <http://bugs.gnu.org/13095>.
	* guix/build/download.scm: Annihilate `shutdown' in (web client).

	distro: Fix incorrect "bash" input for gcc-boot0-wrapped.
	* distro/packages/base.scm (gcc-boot0-wrapped): Fix incorrect "bash" input.

	release.nix: Remove trailing "/nix" from localstatedir.
	* release.nix (tarball, build): Use /nix/var as localstatedir, as a
	  follow-up to 7f4f065.

2012-12-13  Ludovic Courtès  <ludo@gnu.org>

	build: Fix default value of `%state-directory'.
	* guix/config.scm.in (%state-directory): Append `/nix'.
	  Reported by Andreas Enge <andreas@enge.fr>.

	build: Have `bootstrap' run all the necessary steps.
	* bootstrap: Always run "git submodule init".  Run
	  `nix/sync-with-upstream'.
	  Reported by Nikita Karetnikov and Andreas Enge.

	build-system/gnu: Avoid using /bin/sh.
	* guix/build/gnu-build-system.scm (configure): Add `inputs' keyword
	  parameter.  Take Bash from there, falling back to /bin/sh.  Set
	  `CONFIG_SHELL' and `SHELL' to that Bash.  Run "bash ./configure"
	  instead of just "./configure".
	* distro/packages/bootstrap.scm (%bootstrap-inputs): Add "bash".
	* distro/packages/base.scm (gcc-boot0-wrapped): Use "bash" from
	  %BOOT1-INPUTS instead of /bin/sh.

	guix-package: Avoid use of the `guix' sub-directory for profiles.
	* guix-package.in (%current-profile): Change to `guix-profile'.

	release.nix: tarball: Fix typo.
	* release.nix (tarball): Replace "gnulib" by "nix".

	guix-package: Use directory names from (guix config).
	* guix-package.in (%profile-directory): Use %STATE-DIRECTORY instead of
	  a hard-coded directory.

	release.nix: tarball: Fix typo.
	* release.nix (tarball): Replace "gnulib" by "nix".

	guix-package: Use directory names from (guix config).
	* guix-package.in (%profile-directory): Use %STATE-DIRECTORY instead of
	  a hard-coded directory.

2012-12-13  Andreas Enge  <andreas@enge.fr>

	distro: mpc: Update to 1.0.1.
	* distro/packages/multiprecision.scm (mpc): Update to 1.0.1.

2012-12-13  Ludovic Courtès  <ludo@gnu.org>

	distro: lout: Comment out dependency on Ghostscript.
	* distro/packages/lout.scm (lout): Temporarily comment out dependency on
	  Ghostscript as this was causing evaluation errors on Hydra.

	Merge branch 'nix-integration'
	Conflicts:
		tests/guix-package.sh

	release.nix: Add `build_disable_daemon'.
	* release.nix (build_disable_daemon): New job.

	release.nix: build: Allow builds within a chroot.
	* release.nix (build): Remove `__noChroot' and `preConfigure'.

	tests: Skip network-dependent tests when the network is unreachable.
	* tests/builders.scm (network-reachable?): New variable.
	  ("url-fetch", "gnu-build"): Skip unless NETWORK-REACHABLE?.
	* tests/derivations.scm (%coreutils): Check for network access.
	  ("build-expression->derivation with one input"): Skip when %COREUTILS
	  is #f.
	* tests/guix-package.sh: Skip installation of GNU Make when the network
	  is unreachable.
	* tests/packages.scm ("GNU Make, bootstrap"): Likewise.
	* tests/union.scm ("union-build"): Likewise.

	release.nix: Build the daemon.
	* release.nix (tarball): Add `preAutoconf'.  Augment `buildInputs' and
	  `configureFlags' to allow daemon builds.
	  (build): Likewise.

	build: Make `--enable-daemon' the default.
	* configure.ac: Have $guix_build_daemon default to "yes".

	build: When `--enable-daemon', don't error out when Nix programs are missing.
	* config-daemon.ac: Move AC_ARG_ENABLE([daemon]...)...
	* configure.ac: ... here.
	  When Nix programs are not found, error out only when
	  $guix_build_daemon is no.

	tests: Arrange to have the socket file name fit in `sun_path'.
	* test-env.in (NIX_STATE_DIR): Choose a slightly smaller directory name.

	tests: base32: Work around `system*' bug.
	* tests/base32.scm (%nix-hash): When `getenv' returns the empty string,
	  ignore it.
	  (%have-nix-hash?): New variable.  Update `test-skip' clause to use it.

2012-12-12  Ludovic Courtès  <ludo@gnu.org>

	daemon: Use `openssl' from $PATH.
	* daemon.am (-DOPENSSL_PATH): Default to "openssl".
	* TODO: Mention removal of OpenSSL dependency.

	guix-package: Add `--verbose'; silence the environment's build by default.
	* guix-package.in (%options): Add `--verbose'.
	  (show-help): Update accordingly.
	  (guix-package): Parameterize `current-build-output-port' according to
	  VERBOSE?.  By default, silence the environment build's output.

	doc: Fix typos.
	* doc/guix.texi: Fix typos.  Reported by Andreas Enge <andreas@enge.fr>.

2012-12-12  Nikita Karetnikov  <nikita@karetnikov.org>

	licenses: Add 'bsd-style', 'expat', 'gpl1', 'gpl1+', 'lgpl2.0', and 'lgpl2.0+'.
	* guix/licenses.scm (bsd-style, expat, gpl1, gpl1+)
	  (lgpl2.0, lgpl2.0+): New variables.

2012-12-12  Ludovic Courtès  <ludo@gnu.org>

	tests: Remove `t-profile' files on exit.
	* tests/guix-package.sh: Use a trap on EXIT to remove profile-related
	  files.  Reported by Andreas Enge <andreas@enge.fr>.

	guix-package: Gracefully handle multiple installs of the same path.
	* guix-package.in (guix-package)[process-actions]: Compute PACKAGES such
	  that packages listed in INSTALL* are first removed from the remainder
	  of the list.  When PROF is equal to the previous profile's store path,
	  do nothing.  Reported by Andreas Enge <andreas@enge.fr>.
	* tests/guix-package.sh: Test the behavior of installing the same store
	  path twice.  When removing a package, omit its version number.

2012-12-10  Ludovic Courtès  <ludo@gnu.org>

	Have `%nixpkgs-directory' default to #f when $NIXPKGS is the empty string.
	* guix/utils.scm (%nixpkgs-directory): Set to #f when the `NIXPKGS'
	  environment variable is set but empty.  Reported by
	  Andreas Enge <andreas@enge.fr>.

	distro: lout: Delay use of of `nixpkgs-derivation'.
	* distro/packages/lout.scm (lout): Don't fork with `nixpkgs-derivation',
	  to avoid any issues in the absence of `nix-instantiate'.

	derivations: Distinguish direct store paths from files within a store path.
	* guix/derivations.scm (derivation)[direct-store-path?]: New procedure.
	  Use it to determine which inputs must be added to the store.

2012-12-09  Ludovic Courtès  <ludo@gnu.org>

	Merge branch 'master' into nix-integration
	Conflicts:
		guix/store.scm

	store: Add GC-related operations.
	* guix/store.scm (gc-action): New enumerate type.
	  (read-long-long, read-string-list, write-store-path,
	  write-store-path-list, read-store-path-list): New procedures.
	  (write-arg): Add support for `store-path' and `store-path-list'.
	  (read-arg): Add support for `store-path-list'.
	  (define-operation): Add support for multiple-value returns.
	  (run-gc, live-paths, dead-paths, collect-garbage, delete-paths): New
	  procedures.
	  (%long-long-max): New macro.
	* tests/store.scm: New file.
	* Makefile.am (TESTS): Add it.

	store: Add `add-temp-root'.
	* guix/store.scm (add-temp-root): New procedure.

	Update `THANKS'.

	doc: Correct short name of `--install' option of `guix-package'.
	* doc/guix.texi (Invoking guix-package): Fix short form of `--install'.
	  Reported by Andreas Enge <andreas@enge.fr>.

	daemon: Update to Nix 1.2-1-ge087bfe.

	Update `TODO'.

	Change email address in `AUTHORS'.

2012-12-08  Ludovic Courtès  <ludo@gnu.org>

	Update `AUTHORS'.

2012-12-08  Nikita Karetnikov  <nikita@karetnikov.org>

	Add (guix licenses).
	* guix/licenses.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-12-07  Ludovic Courtès  <ludo@gnu.org>

	download: Fix the primary Savannah URL.
	* guix/download.scm (%mirrors)[savannah]: Use
	  "http://download.savannah.gnu.org/releases/" as the primary URL.

2012-12-07  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add ACL.
	* distro/packages/acl.scm: New file.  Dependency on Perl added by
	  Ludovic.
	* Makefile.am (MODULES): Add it.

	distro: Add Attr.
	* distro/packages/attr.scm: New file.  Dependency on Perl and
	  `patch-shebang' added by Ludovic.
	* Makefile.am (MODULES): Add it.

2012-12-06  Ludovic Courtès  <ludo@gnu.org>

	doc: Add new dependencies in `README'.
	* README (Hacking): Rename to...
	  (Requirements): ... this.  Add the daemon's dependencies.

	daemon: Add more options.
	* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_BUILD_USERS_GROUP,
	  GUIX_OPT_CACHE_FAILURES, GUIX_OPT_LOSE_LOGS,
	  GUIX_OPT_DISABLE_STORE_OPTIMIZATION, GUIX_OPT_IMPERSONATE_LINUX_26):
	  New macros.
	  (options)["build-users-group", "cache-failures", "lose-logs",
	  "disable-store-optimization", "impersonate-linux-2.6"]: New options.
	  (parse_opt): Handle them.

	build: Update skip count in `tests/derivations.scm'.
	* tests/derivations.scm: When %STORE if #f, skip 11 tests.

	build: Run `distcheck' with `--enable-daemon'.
	* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Add `--enable-daemon'.

	build: Add missing daemon header to the distribution.
	* daemon.am (guix_daemon_headers): New variable.
	  (noinst_HEADERS): Add it.

	build: Capture configure-time settings in (guix config).
	* configure.ac: Compute and substitute `guix_localstatedir'.
	* m4/guix.m4: Substitute `guix_system'.
	* guix/config.scm.in (%store-directory, %store-directory, %system): New
	  variables.
	* guix/store.scm (%nix-state-dir): Remove.
	  (%default-socket-path): Use %STATE-DIRECTORY as the default.
	  (%store-prefix): Use %STORE-DIRECTORY as the default.
	* guix/utils.scm (%current-system): Default to %SYSTEM.

	build: Run all the tests against the just-built daemon.
	* test-env.in: New file.
	* configure.ac: Add it to `AC_CONFIG_FILES' and `commands-exec'.
	* config-daemon.ac: Set and substitute `GUIX_TEST_ROOT'.
	* Makefile.am (SCM_LOG_COMPILER, SH_LOG_COMPILER): Use it in lieu of
	  `pre-inst-env'.
	* daemon.am (test_root): Remove
	  (AM_TESTS_ENVIRONMENT): Remove `TEST_ROOT'.
	  (clean-local): Use $(GUIX_TEST_ROOT); make files writable before
	  removing them.guix_test_root
	* tests/guix-daemon.sh: Remove `NIX_' variable settings; don't launch
	  `guix-daemon'.

2012-12-05  Ludovic Courtès  <ludo@gnu.org>

	tests: Remove hard-coded /nix/store.
	* tests/utils.scm ("store-path-package-name"): Use (%store-prefix)
	  instead of a hard-coded "/nix/store".

	daemon: Add `list-runtime-roots' script.
	* nix/scripts/list-runtime-roots.in: New file.
	* config-daemon.ac: Add `AC_CONFIG_FILES' invocation for it.
	* daemon.am (nodist_pkglibexec_SCRIPTS): New variable.
	  (AM_TESTS_ENVIRONMENT): Define `top_builddir'.
	* tests/guix-daemon.sh: Export `NIX_ROOT_FINDER'.
	* nix/sync-with-upstream: Substitute the path to the root finder in
	  libstore/gc.cc.

	daemon: Disable use of chroots when support is lacking.
	* nix/nix-daemon/guix-daemon.cc (options)[!HAVE_CHROOT]: Mention that
	  `--disable-chroot' has no effect.
	  (main)[!HAVE_CHROOT]: Set `useChroot' to false.

2012-12-05  Nikita Karetnikov  <nikita@karetnikov.org>

	Add (guix gnu-maintenance).
	* guix/gnu-maintenance.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-12-04  Ludovic Courtès  <ludo@gnu.org>

	daemon: Add test.
	* daemon.am (test_root, AM_TESTS_ENVIRONMENT): New variables.
	  (clean-local): New target.
	* tests/guix-daemon.sh: New file.

	build: daemon: Add missing feature tests.
	* config-daemon.ac: Add feature tests needed for the daemon code.  Taken
	  from Nix's `configure.ac'.

	build: daemon: Remove extraneous quotes in CPP macro `SYSTEM'.
	* config-daemon.ac: Remove extraneous quotes in definition of `SYSTEM'.

	daemon: Fix typo in libgcrypt bindings.
	* nix/libutil/md5.h (MD5_Final): Pass RESBUF as the first argument to
	  `guix_hash_final'.
	* nix/libutil/sha1.h (SHA1_Final): Likewise.
	* nix/libutil/sha256.h (SHA256_Final): Likewise.

	Merge branch 'master' into nix-integration

	guix-build: Don't connect to the daemon when run with `--version' or `--help'.
	* guix-build.in (%store): Turn into a SRFI-39 parameter.  Update users.
	  (guix-build): Set %STORE and call `open-connection' only after
	  `parse-options' has been called.

	store: Honor $NIX_STORE_DIR and $NIX_STATE_DIR.
	* guix/store.scm (%nix-state-dir): Honor $NIX_STATE_DIR.
	  (%store-prefix): Honor $NIX_STORE_DIR.

	derivations: Fix erroneous call to `add-to-store' for local files as input.
	* guix/derivations.scm (derivation)[inputs]: Fix typo in call to
	  `add-to-store'.
	* tests/derivations.scm ("derivation with local file as input"): New test.
	* tests/packages.scm ("trivial with local file as input"): New test.

	Augment `TODO'.

	distro: Add GNU lsh.
	* distro/packages/lsh.scm,
	  distro/packages/patches/lsh-guile-compat.patch:
	  distro/packages/patches/lsh-no-root-login.patch:
	  distro/packages/patches/lsh-pam-service-name.patch: New files.
	* Makefile.am (MODULES): Add lsh.scm.
	  (dist_patch_DATA): Add the above patches.

2012-12-04  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add util-linux.
	* distro/packages/linux.scm (util-linux): New variable.

2012-12-04  Ludovic Courtès  <ludo@gnu.org>

	distro: Add psmisc.
	* distro/packages/linux.scm (psmisc): New variable.

2012-12-03  Ludovic Courtès  <ludo@gnu.org>

	build: Add `bootstrap' and `sync-with-upstream' scripts.
	* bootstrap, nix/sync-with-upstream: New files.
	* Makefile.am (EXTRA_DIST): Add `bootstrap'.
	* daemon.am (EXTRA_DIST): Add `nix/sync-with-upstream'.

	build: Add Nix as a sub-module.
	* .gitmodules, nix-upstream: New files.

2012-12-03  Ludovic Courtès  <ludo@gnu.org>

	build: Include a copy of Nix's libstore and daemon; build it.
	* configure.ac: Call `AC_USE_SYSTEM_EXTENSIONS', and
	  `GUIX_SYSTEM_TYPE'.  Add `--with-store-dir' option, and substitute
	  `storedir'.  Include `config-daemon.ac'.
	* config-daemon.ac: New file.
	* Makefile.am [BUILD_DAEMON]: Include `daemon.am'.
	* daemon.am: New file.
	* m4/guix.m4 (GUIX_SYSTEM_TYPE): New macro.

	* nix/libutil/gcrypt-hash.cc, nix/libutil/gcrypt-hash.hh,
	  nix/libutil/md5.h, nix/libutil/sha1.h, nix/libutil/sha256.h,
	  nix/nix-daemon/guix-daemon.cc, nix/nix-daemon/shared.hh: New files.

2012-12-02  Ludovic Courtès  <ludo@gnu.org>

	distro: make-bootstrap: Use `linux' module.
	* distro/packages/make-bootstrap.scm: Use (distro packages linux).  This
	  is a followup to 80fe5c6.

2012-12-01  Ludovic Courtès  <ludo@gnu.org>

	distro: gnutls: Build sequentially.
	* distro/packages/gnutls.scm (gnutls)[arguments]: New field.

2012-11-30  Ludovic Courtès  <ludo@gnu.org>

	distro: guile-2.0: Update to 2.0.7.
	* distro/packages/guile.scm (guile-2.0): Switch to 2.0.7.
	  (guile-2.0/fixed): Stay at 2.0.6.

	distro: Add `guile-2.0/fixed', which should rarely change.
	* distro/packages/guile.scm (guile-2.0/fixed): New variable.
	* distro/packages/base.scm (guile-final): Use it.

2012-11-28  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Import 'gettext' under a different name.
	* distro/packages/nano.scm, distro/packages/wget.scm: Import 'gettext'
	  from (distro packages gettext) under 'guix:gettext'.

2012-11-27  Ludovic Courtès  <ludo@gnu.org>

	distro: linux-libre-headers: Move to (distro packages linux).
	* distro/packages/base.scm (linux-libre-headers): Move to...
	* distro/packages/linux.scm (linux-libre-headers): ... here.

	distro: Add Linux-PAM.
	* distro/packages/linux.scm: New file.
	* Makefile.am (MODULES): Add it.

	download: Add kernel.org mirrors.
	* guix/download.scm (%mirrors): Add `kernel.org' mirrors.

	download: Keep only one slash when concatenating URIs.
	* guix/build/download.scm (url-fetch)[uri-vicinity]: New procedure.
	  [maybe-expand-mirrors]: Use it.

	distro: flex: Fix module name.
	* distro/packages/flex.scm: Change the module name to (distro packages
	  flex).

2012-11-25  Nikita Karetnikov  <nikita.karetnikov@gmail.com>

	distro: Add GNU Cpio.
	* distro/packages/cpio.scm,
	  distro/packages/patches/cpio-gets-undeclared.patch: New files.
	* Makefile.am (MODULES): Add 'cpio.scm'.
	  (dist_patch_DATA): Add 'cpio-gets-undeclared.patch'.

2012-11-25  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add GNU Time.
	* distro/packages/time.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add GNU Which.
	* distro/packages/which.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-11-25  Ludovic Courtès  <ludo@gnu.org>

	build: Have `hydra.scm' return one job per package.
	* hydra.scm (hydra-jobs): Return one job for each non-bootstrap package.

	packages: Add missing export.
	* guix/packages.scm: Export `package-home-page'.

	distro: Search bootstrap binaries and patches in %LOAD-PATH.
	* Makefile.am (patchdir, bootstrapdir): Change to be sub-directories of
	  $(guilemoduledir).
	  (.scm.go): Remove `DISTRO_' environment variables.
	* distro.scm (not-colon): Remove.
	  (%patch-path, %bootstrap-binaries-path): Default to sub-directories of
	  the entries in %LOAD-PATH.
	* pre-inst-env.in: Remove definition of `DISTRO_' environment variables.

2012-11-25  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add GNU Less.
	* distro/packages/less.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add GNU Nano.
	* distro/packages/nano.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-11-25  Ludovic Courtès  <ludo@gnu.org>

	doc: Mention the pronunciation of "Guix".
	* README: Mention pronunciation of "Guix".
	* doc/guix.texi (Introduction): Likewise.

2012-11-25  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add GNU Wget.
	* distro/packages/wget.scm: New file; patch-shebang phase added by
	  Ludovic Courtès.
	* Makefile.am (MODULES): Add it.

2012-11-24  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add GNU Ddrescue.
	* distro/packages/ddrescue.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-11-24  Ludovic Courtès  <ludo@gnu.org>

	doc: Update `README'.
	* README: Update introductory summary.  Point to Savannah instead of
	  Gitorious.  Mention <bug-guix@gnu.org>.
	  (Guix & Nix): New section.

2012-11-24  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add GNU Gettext.
	* distro/packages/gettext.scm,
	  distro/packages/patches/gettext-gets-undeclared.patch: New files.
	* Makefile.am (MODULES): Add 'gettext.scm'.
	  (dist_patch_DATA): Add 'gettext-gets-undeclared.patch'.

2012-11-24  Ludovic Courtès  <ludo@gnu.org>

	build: Change bug-report address; add URL.
	* configure.ac: Change bug-report address in `AC_INIT'; add URL.

2012-11-24  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add GNU Shishi.
	* distro/packages/shishi.scm,
	  distro/packages/patches/shishi-gets-undeclared.patch: New files.
	* Makefile.am (MODULES): Add 'shishi.scm'.
	  (dist_patch_DATA): Add 'shishi-gets-undeclared.patch'.

2012-11-22  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Move (distro packages libtool) to (distro packages autotools).
	* distro/packages/autotools.scm (libtool): Add it.
	* distro/packages/libtool.scm: Remove it.
	* distro/packages/guile.scm (distro packages guile): Adjust accordingly.
	* Makefile.am (MODULES): Adjust accordingly.

	distro: Add GNU Autoconf and GNU Automake.
	* distro/packages/autotools.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-11-22  Ludovic Courtès  <ludo@gnu.org>

	distro: Add Flex.
	* distro/packages/flex.scm,
	  distro/packages/patches/flex-bison-tests.patch: New files.
	* Makefile.am (MODULES): Add `flex.scm'.
	  (dist_patch_DATA): Add `flex-bison-tests.patch'.

	distro: Add GNU Bison.
	* distro/packages/bison.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add GDBM.
	* distro/packages/gdbm.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-11-21  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add GNU Ed.
	* distro/packages/ed.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-11-21  Ludovic Courtès  <ludo@gnu.org>

	doc: Document basic package definitions.
	* doc/guix.texi (Programming Interface): Add introduction.
	  (Defining Packages): Populate.

	build: Fix `hydra.scm' recipe.
	* hydra.scm: Redirect the output port to the error port.
	  (package-job): Return a name/thunk pair.
	  (hydra-jobs)[system]: Use either the `system' key (a symbol) in
	  ARGUMENTS, or (%current-system)'.

2012-11-19  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Extract version strings when installing a direct store path.
	* guix-package.in (guix-package)[process-actions]: Extract the version
	  string from store paths.
	* tests/guix-package.sh: Adjust accordingly.

	guix-build: Use `location->string'.
	* guix-build.in (derivations-from-package-expressions): Use
	  `location->string'.

	guix-package: Record the correct version string in manifests.
	* guix-package.in (guix-package)[find-package]: Return (package-version p),
	  not VERSION.

2012-11-19  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Add `--list-available'.
	* guix-package.in (show-help, %options): Add `--list-available'.
	  (guix-package)[process-query]: Add support for `--list-available'.
	* doc/guix.texi (Invoking guix-package): Document it.
	* tests/guix-package.sh: Add test.

	* guix/ui.scm (location->string): New procedure.
	* guix/utils.scm: Export <location>.

2012-11-19  Ludovic Courtès  <ludo@gnu.org>

	distro: Add `fold-packages'.
	* distro.scm (fold-packages): New procedure.
	  (find-packages-by-name): Use it instead of hand-written traversal;
	  remove `package?' checks from `right-package?'.
	* tests/packages.scm ("fold-packages"): New test.

	guix-package: Add `--list-installed'.
	* guix-package.in (show-help, %options): Add `--list-installed'.
	  (guix-package): Move main body to...
	  [process-actions]: ... here.  New internal procedure.
	  [process-query]: New procedure.
	* tests/guix-package.sh: Add tests for `--list-installed'.
	* doc/guix.texi (Invoking guix-package): Document it.

	guix-package: Fix typo.
	* guix-package.in (guix-package)[find-package]: Don't use `_' as the
	  wildcard, to avoid collision with `gettext'.

	distro: Add GNU Zile.
	* distro/packages/zile.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add GNU help2man.
	* distro/packages/help2man.scm: New file.
	* Makefile.am (MODULES): Add it.

2012-11-18  Ludovic Courtès  <ludo@gnu.org>

	distro: Add GNU Pies and GNU Inetutils.
	* distro/packages/system.scm: New file.
	* Makefile.am (MODULES): Add it.

	build: Add `hydra.scm'.
	* hydra.scm: New file.
	* Makefile.am (EXTRA_DIST): Add it.

	doc: Add `ROADMAP'.
	* ROADMAP: New file.
	* Makefile.am (EXTRA_DIST): Add it.

	doc: Add `TODO'.
	* TODO: New file.
	* Makefile.am (EXTRA_DIST): Add it.

	doc: Add a "Related software" section to `README'.
	* README (Related software): New section.

	Turn Guix into "GNU Guix".
	* configure.ac: Change package name to "GNU Guix", and bug-report
	  address to `gnu-system-discuss@gnu.org'.
	* doc/guix.texi: Replace "Guix" by "GNU Guix" in some places.
	  (Top, Introduction): Mention "for the GNU system".
	* HACKING, README: Use "GNU Guix" instead of "Guix" in some places.

2012-11-16  Ludovic Courtès  <ludo@gnu.org>

	distro: Rebuild bootstrap Binutils and GCC.
	These new binaries are built with the `--with-lib-path' and
	`--with-local-prefix' flags, respectively, as introduced in commit
	01d4540.

	* distro/packages/bootstrap.scm (%bootstrap-coreutils&co,
	  %bootstrap-glibc): Update URL.
	  (%bootstrap-binutils, %bootstrap-gcc): Update URL and hashes.
	* build-aux/download.scm (file-name->uri): Update URL.

2012-11-16  Ludovic Courtès  <ludo@gnu.org>

	distro: Configure ld and GCC to not look under /usr & co.
	This fixes impurities with non-chroot builds on LFS-style distros.

	* distro/packages/base.scm (binutils): Pass `--with-lib-path'.
	  (gcc-4.7): Pass `--with-local-prefix'.
	* distro/packages/make-bootstrap.scm (%binutils-static): Pass
	  `--with-lib-path'.

2012-11-13  Ludovic Courtès  <ludo@gnu.org>

	guix-download: Use code from (guix build download).
	* guix-download.in (http-fetch, ftp-fetch): Remove.
	  (fetch-and-store): Replace `uri' parameter with `name', for the output
	  file name.  Redirect the output of `fetch' to the error port.
	  (guix-download): Call `url-fetch' for all URI schemes except `file'.
	  Handle PATH equal to #f.
	* guix/download.scm: Export `%mirrors'.
	* tests/guix-download.sh: Change erroneous URL, because URLs at
	  example.com are all valid redirections.

	guix-download: Add support for file:// URIs.
	* guix-download.in (fetch-and-store): New procedure.
	  (guix-download): Use it to compute PATH.  Call `add-to-store' when
	  a `file' URI scheme is used.
	* Makefile.am (AM_TESTS_ENVIRONMENT): New variable.
	* tests/guix-download.sh: Add test.

	guix-download: Gracefully handle invalid URIs.
	* guix-download.in (guix-download): Error out when `string->uri'
	  returns #f.  Use `leave' when the scheme is unknown.
	* tests/guix-download.sh: Add tests.

	distro: Add GNU Texinfo.
	* distro/packages/texinfo.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add GNU Libtasn1 and GnuTLS.
	* distro/packages/gnutls.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add GNU Nettle.
	* distro/packages/nettle.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add LZO.
	* distro/packages/compression.scm (lzo): New variable.

	tests: Make sure to use the bootstrap Guile.
	* tests/builders.scm ("url-fetch", "gnu-build"): Pass `url-fetch'
	  #:guile %BOOTSTRAP-GUILE.

	tests: Remove extraneous test.
	* tests/derivations.scm ("build-expression->derivation for fixed-output
	  derivation"): Remove test.  It is redundant with that in builders.scm,
	  and doesn't work out of the box with the statically-linked
	  %BOOTSTRAP-GUILE.

	build: Add $(top_builddir) to the load path.
	* Makefile.am (DOWNLOAD_FILE): Add $(top_builddir) to the search path,
	  since that's where guix/config.scm is.
	  (.scm.go): Likewise.

	distro: Patch libc to avoid accessing /etc/ld.so.cache and friends.
	* distro/packages/base.scm (glibc): Apply `glibc-no-ld-so-cache.patch'.
	  (glibc-final): Inherit GLIBC's inputs.
	* distro/packages/patches/glibc-no-ld-so-cache.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

	distro: Use `mirror://' URLs.
	* distro/packages/base.scm, distro/packages/bash.scm,
	  distro/packages/compression.scm, distro/packages/gawk.scm,
	  distro/packages/gperf.scm, distro/packages/guile.scm,
	  distro/packages/libsigsegv.scm, distro/packages/libtool.scm,
	  distro/packages/libunistring.scm, distro/packages/m4.scm,
	  distro/packages/multiprecision.scm, distro/packages/ncurses.scm,
	  distro/packages/pth.scm, distro/packages/readline.scm,
	  distro/packages/recutils.scm: Use `mirror://gnu' URLs.
	* distro/packages/gnupg.scm: Use `mirror://gnupg' URLs.

2012-11-13  Ludovic Courtès  <ludo@gnu.org>

	download: Add support for mirror:// URLs.
	* guix/download.scm (%mirrors): New variable.  Mirror lists taken from
	  Nixpkgs.
	  (url-fetch): New `mirrors' keyword parameter.
	  [builder]: Pass it.

	* guix/build/download.scm (url-fetch): New `mirrors' keyword parameter.
	  [maybe-expand-mirrors]: New procedure.
	  [uri]: Use it.

2012-11-13  Ludovic Courtès  <ludo@gnu.org>

	download: Follow HTTP redirections.
	* guix/build/download.scm (http-fetch): Follow the redirection when CODE
	  is 302.

	Remove (guix http) and (guix ftp).
	* guix/ftp.scm, guix/http.scm, guix/build/ftp.scm, guix/build/http.scm:
	  Remove.
	* Makefile.am (MODULES): Likewise.
	* tests/builders.scm, distro/packages/base.scm,
	  distro/packages/bash.scm, distro/packages/bdw-gc.scm,
	  distro/packages/compression.scm, distro/packages/gawk.scm,
	  distro/packages/gnupg.scm, distro/packages/gperf.scm,
	  distro/packages/guile.scm, distro/packages/libffi.scm,
	  distro/packages/libsigsegv.scm, distro/packages/libtool.scm,
	  distro/packages/libunistring.scm, distro/packages/lout.scm,
	  distro/packages/m4.scm, distro/packages/multiprecision.scm,
	  distro/packages/ncurses.scm, distro/packages/perl.scm,
	  distro/packages/pkg-config.scm, distro/packages/pth.scm,
	  distro/packages/readline.scm, distro/packages/recutils.scm: Use
	  `url-fetch' instead of `http-fetch' and `ftp-fetch'.
	* distro/packages/bootstrap.scm: Likewise
	  (bootstrap-origin): Remove references to `http-fetch' and
	  `ftp-fetch'.
	* guix.scm (%public-modules): Remove `http' and `ftp'; add `download'.

2012-11-12  Ludovic Courtès  <ludo@gnu.org>

	Add (guix download) and (guix build download).
	* guix/download.scm, guix/build/download.scm: New files.
	* Makefile.am (MODULES): Add them.
	* tests/builders.scm ("url-fetch"): New test.
	* distro/packages/bootstrap.scm (bootstrap-origin): Support
	  `url-fetch'.
	* guix/snix.scm (snix-derivation->guix-package): Use `url-fetch' instead
	  of `http-fetch'.

2012-11-11  Ludovic Courtès  <ludo@gnu.org>

	Move base32 code to (guix base32).
	* guix/utils.scm (bytevector-quintet-ref, bytevector-quintet-ref-right,
	  bytevector-quintet-length, bytevector-quintet-fold,
	  bytevector-quintet-fold-right, make-bytevector->base32-string,
	  %nix-base32-chars, %rfc4648-base32-chars, bytevector->base32-string,
	  bytevector->nix-base32-string, bytevector-quintet-set!,
	  bytevector-quintet-set-right!, base32-string-unfold,
	  base32-string-unfold-right, make-base32-string->bytevector,
	  base32-string->bytevector, nix-base32-string->bytevector): Move to...
	* guix/base32.scm: ... here.  New file.

	* tests/utils.scm (%nix-hash, "bytevector->base32-string",
	  "base32-string->bytevector", "nix-base32-string->bytevector", "sha256
	  & bytevector->base32-string"): Move to...
	* tests/base32.scm: ... here.  New file

	* guix-download.in, guix/derivations.scm, guix/packages.scm,
	  guix/snix.scm, tests/builders.scm, tests/derivations.scm: Adjust
	  accordingly.
	* guix.scm (%public-modules): Add `base32'.

2012-11-09  Ludovic Courtès  <ludo@gnu.org>

	tests: Choose a less expensive test for packages.
	* tests/packages.scm (%bootstrap-inputs): Remove.
	  ("GNU Hello"): Rename to...
	  ("GNU Make, bootstrap"): ... this.  Build GNU-MAKE-BOOT0 instead of
	  HELLO.

	http: Add informative output.
	* guix/build/http.scm (http-fetch): Emit message indicating the
	  download.

	http: Check the HTTP response code, and bail if not 200.
	* guix/build/http.scm (http-fetch): Check RESP's code; error out when
	  it's not 200.

	derivations: build-expression->derivation: Builder only refers to sources.
	* guix/derivations.scm (build-expression->derivation)[source-path]: New
	  procedure.
	  [builder]: Pass only sources as references.  This fixes a bug whereby
	  changing a fixed-output drv referred to by a builder would cause the
	  builder's hash to change, thereby leading to a full rebuild.
	* tests/derivations.scm ("build-expression->derivation with a
	  fixed-output input"): New test.

2012-11-08  Ludovic Courtès  <ludo@gnu.org>

	derivations: Add tests relative to fixed-output derivations.
	* tests/derivations.scm ("fixed-output derivation"): Add comment that
	  the reference to BUILDER is optional.
	  ("fixed-output derivation: output paths are equal",
	  "derivation with a fixed-output input",
	  "build-expression->derivation: same fixed-output path"): New tests.

	store: Document `add-to-store' hack for `fixed?'.
	* guix/store.scm (add-to-store): Document that `fixed?' must be #t.

	guix-download: Print the hash of the file's contents, no that of the path.
	* guix-download.in (guix-download): Display the hash of the contents of
	  PATH, not the path hash.  Also, call `add-to-store' with FIXED? = #t.

2012-11-08  Ludovic Courtès  <ludo@gnu.org>

	guix-download: Error out when the HTTP response code is not 200.
	* guix-download.in (http-fetch): Leave with an error message when
	  RESPONSE's code is not 200.

	* tests/guix-download.sh: New file.
	* Makefile.am (TESTS): Add it.

2012-11-07  Ludovic Courtès  <ludo@gnu.org>

	guix-build: Error out when `-S' used for source-less package.
	* guix-build.in (derivations-from-package-expressions): Leave with an
	  error message when SOURCE? is #t and P has no source.

	* tests/guix-build.sh: Add test.

2012-11-07  Ludovic Courtès  <ludo@gnu.org>

	doc: Document the features and `guix-package'.
	* doc/guix.texi: Change the category to "Package management".  Add an
	  @direntry for "Invoking guix-package".
	  (Package Management): New chapter.

2012-11-07  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Fix handling of the PACKAGE:OUTPUT syntax.
	* guix-package.in (guix-package)[find-package]: Return the correct NAME
	  and SUB-DRV when NAME contains #\:.

	* tests/guix-package.sh (profile): Add test.

2012-11-07  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Fix invalid module use.
	* guix-package.in: Use (distro packages guile), not (... base).

	build: Remove now unnecessary dependency of downloads on guix/utils.go.
	* Makefile.am (distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz,
	  distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
	  Remove dependency on guix/utils.go.

	doc: Document `guix-build'.
	* doc/guix.texi (Invoking guix-build): Populate.

	doc: Remove unnecessary @ifinfo.
	* doc/guix.texi: Remove @ifinfo around @dir{category,entry}.  Suggested
	  by Karl Berry <karl@freefriends.org>.

2012-11-06  Ludovic Courtès  <ludo@gnu.org>

	distro: Move bootstrap tarball packages to (distro packages make-bootstrap).
	* distro/packages/base.scm (binutils-final): Make public.
	  (static-package, %bash-static, %static-inputs, %static-binaries,
	  %binutils-static, %binutils-static-stripped, %glibc-stripped,
	  %gcc-static, %gcc-stripped, %guile-static, %guile-static-stripped,
	  tarball-package, %bootstrap-binaries-tarball,
	  %binutils-bootstrap-tarball, %glibc-bootstrap-tarball,
	  %guile-bootstrap-tarball): Move to...
	* distro/packages/make-bootstrap.scm: ... here.  New file.
	* Makefile.am (MODULES): Add it.

2012-11-05  Ludovic Courtès  <ludo@gnu.org>

	distro: bash-final: Link with `-static-libgcc'.
	* distro/packages/base.scm (bash-final): Pass through
	  `static-libgcc-package'.

	build-system/gnu: Add `static-libgcc-package' & supporting procedure.
	* guix/build-system/gnu.scm (package-with-extra-configure-variable,
	  static-libgcc-package): New procedures.

	distro: gcc: Don't add a RUNPATH to GCC when using `-static-libgcc'.
	* distro/packages/base.scm (gcc-4.7)[LIB_SPEC]: Add a `-rpath' to GCC
	  only when !static and !static-libgcc.

	distro: readline: Allow stripping of the libraires.
	* distro/packages/readline.scm (readline)[arguments]: Add `post-install'
	  phase to make libraries writable.

	utils: Add `default-keyword-arguments' and `substitute-keyword-arguments'.
	* distro/packages/base.scm (default-keyword-arguments,
	  substitute-keyword-arguments): Move to...
	* guix/utils.scm: ... here.

	distro: Add missing `package-with-bootstrap-guile'.
	* distro/packages/base.scm (binutils-final): Add missing
	  `package-with-bootstrap-guile'.

	distro: recutils: Comment out optional dependencies.
	* distro/packages/recutils.scm (recutils): Comment out optional
	  dependencies not packaged here.

	distro: Add GnuPG and companion libraries.
	* distro/packages/gnupg.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add zlib.
	* distro/packages/compression.scm (zlib): New variable.

2012-11-04  Ludovic Courtès  <ludo@gnu.org>

	distro: Add (distro packages compression).
	* distro/packages/base.scm (gzip, bzip2, xz): Move to...
	* distro/packages/compression.scm: ... here.  New file.
	* Makefile.am (MODULES): Add it.

	distro: Add GNU Pth.
	* distro/packages/pth.scm: New file.
	* Makefile.am (MODULES): Add it.

	distro: Add GNU gperf.
	* distro/packages/gperf.scm: New file.
	* Makefile.am (MODULES): Add it.
	* distro/packages/guile.scm (guile-reader): Use it.

2012-11-04  Ludovic Courtès  <ludo@gnu.org>

	distro: Split (distro packages base) into several files.
	* distro/packages/base.scm (libsigsegv, gawk, perl, m4, gmp, mpfr, mpc,
	  ncurses, readline, bash, libtool, libunistring, libffi, pkg-config,
	  libgc): Move to modules of their own.
	  (guile-1.8, guile-2.0): Move to...
	* distro/packages/guile.scm: ... here.

	* distro/packages/bash.scm, distro/packages/bdw-gc.scm,
	  distro/packages/gawk.scm, distro/packages/libffi.scm,
	  distro/packages/libsigsegv.scm, distro/packages/libtool.scm,
	  distro/packages/libunistring.scm, distro/packages/m4.scm,
	  distro/packages/multiprecision.scm, distro/packages/ncurses.scm,
	  distro/packages/perl.scm, distro/packages/pkg-config.scm,
	  distro/packages/readline.scm: New files.

2012-11-04  Ludovic Courtès  <ludo@gnu.org>

	distro: Move bootstrap packages to (distro packages bootstrap).
	* distro/packages/base.scm (glibc-dynamic-linker, %bootstrap-guile,
	  bootstrap-origin, package-from-tarball, %bootstrap-base-url,
	  %bootstrap-coreutils&co, %bootstrap-binutils, %bootstrap-glibc,
	  %bootstrap-gcc, %bootstrap-inputs, package-with-bootstrap-guile): Move
	  to ...
	* distro/packages/bootstrap.scm: ... here.  New file.
	* Makefile.am (MODULES): Add it.
	* tests/builders.scm: Use (distro packages bootstrap).
	  (%bootstrap-guile): Remove.
	* tests/packages.scm: Likewise.
	* tests/union.scm: Likewise, and remove @@ to access %bootstrap-inputs.
	* tests/derivations.scm: Use (distro packages bootstrap) and remove @@
	  to access %bootstrap-coreutils&co.
	* HACKING (When the platform is supported by Nixpkgs): Update
	  accordingly.

2012-11-04  Ludovic Courtès  <ludo@gnu.org>

	distro: Go for one module per package.
	The alternative, which was to use one module per category, would
	probably not scale well.  First, because many packages could fall into
	several categories (does GnuTLS go into "networking", "security", or
	"libraries"?).  Second, because that could easily lead to circular
	dependencies among modules ("security" and "networking" depend on each
	other, etc.)

	* distro/packages/databases.scm: Rename to...
	* distro/packages/recutils.scm: ... this.
	* distro/packages/typesetting.scm: Rename to...
	* distro/packages/lout.scm: ... this.
	* Makefile.am (MODULES): Adjust accordingly.
	* po/POTFILES.in: Likewise.

2012-11-04  Ludovic Courtès  <ludo@gnu.org>

	doc: Add "Adding new packages" in `HACKING'.
	* HACKING (Adding new packages): New section.

	Add (guix snix) and the `guix-import' command.
	* guix/snix.scm, tests/snix.scm, guix-import.in: New files.
	* configure.ac: Output `guix-import' and make it executable.
	* Makefile.am (bin_SCRIPTS): Add `guix-import'.
	  (MODULES): Add `guix/snix.scm'.
	  (TESTS): Add `tests/snix.scm'.

	guix-package: Remove extraneous procedures.
	* guix-package.in (_, N_): Remove.

	packages: `description' → `synopsis', `long-description' → `description'.
	* guix/packages.scm (<package>): Rename `description' to `synopsis', and
	  `long-description' to `description'.
	* tests/packages.scm, distro/packages/base.scm,
	  distro/packages/databases.scm, distro/packages/guile.scm,
	  distro/packages/typesetting.scm:  Update accordingly.
	* po/Makevars (XGETTEXT_OPTIONS): Update `--keyword' flags accordingly.

	release.nix: Pass `--with-libgcrypt-prefix' in the `tarball' job.
	* release.nix (jobs.tarball)[configureFlags]: Pass
	  `--with-libgcrypt-prefix'.

	utils: Add `package-name->name+version'.
	* guix/utils.scm (package-name->name+version): New procedure.
	* guix-package.in (guix-package)[find-package]: Use it.
	* tests/utils.scm ("package-name->name+version"): New test.

2012-11-03  Ludovic Courtès  <ludo@gnu.org>

	build: Require GNU libgcrypt.
	* guix/utils.scm (sha256): Remove Coreutils- and libchop-based
	  implementations.
	* README: Update accordingly.

	* m4/guix.m4: New file.
	* configure.ac: Use `GUIX_ASSERT_LIBGCRYPT_USABLE'.  Set and substitute
	  `LIBGCRYPT_PREFIX'.
	* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Pass
	  `--with-libgcrypt-prefix=$(LIBGCRYPT_PREFIX)'.

2012-11-03  Ludovic Courtès  <ludo@gnu.org>

	guix-package: Use more (guix ui) features.
	* guix-package.in (leave): Remove.
	  (guix-package): Wrap body in `with-error-handling'.

	ui: Factorize `--version'.
	* guix/ui.scm (show-version-and-exit): New procedure.
	* guix-build.in (show-version): Remove.
	  (%options)["version"]: Use `show-version-and-exit'.
	* guix-download.in: Likewise.
	* guix-package.in: Likewise.

2012-11-03  Ludovic Courtès  <ludo@gnu.org>

	build: Produce (guix config) instead of using compile-time tricks.
	* guix/config.scm.in: New file.
	* guix/utils.scm: Use it.
	  (%libgcrypt): Remove.
	  (%nixpkgs-directory): Don't capture the compile-time $NIXPKGS; use
	  %NIXPKGS instead.
	  (nixpkgs-derivation): Use %NIX-INSTANTIATE.
	* pre-inst-env.in (NIX_INSTANTIATE, NIXPKGS, LIBGCRYPT): Remove.

	* configure.ac: Emit `guix/config.scm'.
	* Makefile.am (GOBJECTS): Add `guix/config.go'.
	  (nobase_nodist_guilemodule_DATA): Add `guix/config.scm'.

2012-11-03  Ludovic Courtès  <ludo@gnu.org>

	build: Clearly mark Nixpkgs as optional.
	* configure.ac: Always show the result of checking for Nixpkgs.  Don't
	  warn when Nixpkgs is not found.
	* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Remove `--with-nixpkgs'
	  flag.
	* guix/utils.scm (%nixpkgs-directory): Use either the compile-time or
	  the run-time `NIXPKGS' environment variable.
	* release.nix (jobs.tarball, jobs.build): Remove `--with-nixpkgs'
	  configure flag.
	* README: Mark Nixpkgs as optional.

	* distro/packages/databases.scm, distro/packages/guile.scm,
	  distro/packages/typesetting.scm: Change uses of `nixpkgs-derivation*'
	  to `nixpkgs-derivation', to avoid failing at compile-time.

2012-11-02  Ludovic Courtès  <ludo@gnu.org>

	tests: Run without substitutes.
	* tests/builders.scm, tests/derivations.scm, tests/packages.scm: Set
	  #:use-substitutes? #f for %STORE.

2012-11-01  Ludovic Courtès  <ludo@gnu.org>

	Add a preliminary `guix-package' command-line tool.
	* guix-package.in, tests/guix-package.sh: New files.
	* configure.ac: Output `guix-package'.
	* Makefile.am (TESTS): Add `tests/guix-package.sh'.
	  (bin_SCRIPTS): Add `guix-package'.

	store: Add `store-path-package-name'.
	* guix/store.scm (store-path-package-name): New procedure.
	* tests/utils.scm ("store-path-package-name"): New test.

2012-11-01  Ludovic Courtès  <ludo@gnu.org>

	utils: Remove stuff committed by error.
	This was wrongfully committed in df1fab58.

	* guix/utils.scm (hash-set-proc, hash-ref*, memoizing-lambda): Remove.

2012-11-01  Ludovic Courtès  <ludo@gnu.org>

	build: Add unit test for the `guix-build' command.
	* tests/guix-build.sh: New file.
	* Makefile.am (TESTS): Add it.
	  (LOG_COMPILER): Rename to...
	  (SCM_LOG_COMPILER): ... this.  Move flags to...
	  (AM_SCM_LOG_FLAGS): ... this.
	  (TEST_EXTENSIONS, SH_LOG_COMPILER, AM_SH_LOG_FLAGS): New variables.

2012-11-01  Ludovic Courtès  <ludo@gnu.org>

	Add (guix ui).
	* guix/ui.scm: New file.
	* Makefile.am (MODULES): Add it.
	* po/POTFILES.in: Add it.

	* guix-build.in: Use it.
	  (_, N_, leave): Remove.
	  (guix-build): Use `with-error-handling' instead of the `guard' form.
	* guix-download.in: Use it.
	  (_, N_, leave): Remove.

2012-10-31  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Distinguish between imported modules and used modules.
	* guix/build-system/gnu.scm (gnu-build): Add the `imported-modules'
	  keyword parameter.  Pass it to `build-expression->derivation'.

	release.nix: Use `--no-substitutes' in `distro.hello'.
	* release.nix (distro.hello): Use `guix-build --no-substitutes', to
	  avoid failures due to unavailable stale substitutes on
	  hydra.nixos.org.

2012-10-30  Ludovic Courtès  <ludo@gnu.org>

	guix-build: Add `--root'.
	* guix/store.scm (add-indirect-root): New operation.
	* guix-build.in (show-help): Document `--root'.
	  (%options): Add `--root'.
	  (guix-build)[register-root]: New procedure.  Call it when `--root' is
	  passed.

2012-10-29  Ludovic Courtès  <ludo@gnu.org>

	Add (guix build union).
	* guix/build/union.scm, tests/union.scm: New files.
	* Makefile.am (MODULES): Add `guix/build/union.scm'.
	  (TESTS): Add `tests/union.scm'.

2012-10-28  Ludovic Courtès  <ludo@gnu.org>

	release.nix: Change `distro.hello' to produce something.
	* release.nix (distro.hello)[buildPhase]: Tee the log to $out.  Add a
	  `name' attribute; remove `buildInputs' and instead use the full path
	  to `guix-build'.

	distro: Build Bash sequentially.
	* distro/packages/base.scm (bash): Set `#:parallel-build?' and
	  `#:parallel-tests?' to #f.

	tests: Use our own bootstrap tools.
	* tests/builders.scm (%bootstrap-inputs): Use %BOOT0-INPUTS from the distro.
	* tests/packages.scm (%bootstrap-inputs): Likewise.
	* tests/derivations.scm (%coreutils): Alias for %BOOTSTRAP-COREUTILS&CO.

2012-10-27  Ludovic Courtès  <ludo@gnu.org>

	release.nix: Add a `distro.hello' job.
	* release.nix (distro.hello): New job.

	build: Preserve the executable bit of bootstrap binaries.
	* Makefile.am (install-data-hook): New target.

	build: Make sure scripts know where to find their modules.
	* guix-build.in, guix-download.in: Define `prefix' and `datarootdir', so
	  that `guilemoduledir' expands to something meaningful.

	release.nix: Pre-download the Guile bootstrap tarball.
	* release.nix (bootstrap_guile): New variable.
	  (build)[preBuild]: New attribute.

	build: Fix out-of-source-tree builds.
	* Makefile.am (distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz,
	  distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
	  Make the target's parent directory.
	* pre-inst-env.in (DISTRO_BOOTSTRAP_PATH): Add the builddir-relative
	  directory.

2012-10-27  Ludovic Courtès  <ludo@gnu.org>

	distro: Change $DISTRO_{PATCH,BOOTSTRAP}_DIRECTORY to search paths.
	* distro.scm (not-colon): New variable.
	  (%patch-directory): Rename to...
	  (%patch-path): ... this.  Turn into a list.  Expect $DISTRO_PATCH_PATH
	  to be a colon-separated search path.
	  (%bootstrap-binaries-directory): Rename to...
	  (%bootstrap-binaries-path): ... this.  Likewise.
	  (search-patch, search-bootstrap-binary): Adjust accordingly.

	* pre-inst-env.in: Change to use `DISTRO_PATCH_PATH' and
	  `DISTRO_BOOTSTRAP_PATH'.

2012-10-27  Ludovic Courtès  <ludo@gnu.org>

	release.nix: Set succeed-on-failure and build-out-source-tree.
	* release.nix: Define `succeedOnFailure', `keepBuildDirectory', and
	  `buildOutOfSourceTree'.
	  (build): Inherit them.

	build: Move `distro/patches' to `distro/packages/patches'.
	* distro/patches: Move directory to...
	* distro/packages/patches: ... here.
	* Makefile.am (dist_patch_DATA): Adjust accordingly.
	* pre-inst-env.in (DISTRO_PATCH_DIRECTORY): Likewise.

	build: Use `pre-inst-env' to compile the source.
	* Makefile.am (.scm.go): Use `pre-inst-env' instead of re-defining the
	  environment variables, except for `DISTRO_INSTALLED_PATCH_DIRECTORY'
	  and `DISTRO_INSTALLED_BOOTSTRAP_DIRECTORY'.

	guix-build: Gracefully handle `&package-input-error' conditions.
	* guix/packages.scm: Export `package-error?' and `package-input-error?'.
	* guix-build.in (guix-build): Catch `&package-input-error' conditions,
	  print a human-readable message, and exit.

	location: Start column numbers at 1.
	* guix/utils.scm (source-properties->location): Use COL + 1.

2012-10-26  Ludovic Courtès  <ludo@gnu.org>

	distro: Add i686-linux port.
	* distro/packages/bootstrap/i686-linux/bash,
	  distro/packages/bootstrap/i686-linux/mkdir,
	  distro/packages/bootstrap/i686-linux/tar,
	  distro/packages/bootstrap/i686-linux/xz: New files.

	* distro/packages/base.scm (%bootstrap-coreutils&co,
	  %bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc): Add hashes of
	  the i686-linux tarballs.

	* Makefile.am (bootstrap_i686_linuxdir, dist_bootstrap_i686_linux_DATA,
	  nodist_bootstrap_i686_linux_DATA): New variables
	  (DISTCLEANFILES): Add $(nodist_bootstrap_i686_linux_DATA).
	  (distro/packages/bootstrap/i686-linux/guile-bootstrap-2.0.6.tar.xz):
	  New rule.

2012-10-26  Ludovic Courtès  <ludo@gnu.org>

	distro: gcc: Adjust to support non-x86_64 architectures.
	* distro/packages/base.scm (gcc-4.7)[arguments]: In the `pre-configure'
	  phase, patch all the relevant gcc/config files, not just those for
	  x86_64-linux-gnu.

2012-10-26  Ludovic Courtès  <ludo@gnu.org>

	utils: Remove special `substitute*' syntax for lists of files.
	* guix/build/utils.scm (substitute*): Remove special syntax for
	  list-of-files; instead, check whether FILE is `list?' at run time.

	* distro/packages/base.scm (gcc-4.7, %binutils-static): Adjust
	  accordingly.

2012-10-25  Ludovic Courtès  <ludo@gnu.org>

	doc: Add `HACKING'.
	* HACKING: New file.
	* Makefile.am (EXTRA_DIST): Add it.

	Add a `system' parameter to `nixpkgs-derivation'.
	* guix/utils.scm (nixpkgs-derivation): Add a `system' parameter.  Pass
	  it in the `nix-instantiate' invocation.

2012-10-25  Ludovic Courtès  <ludo@gnu.org>

	packages: Pass `system' around.
	* guix/packages.scm (package-source-derivation): Add `system'
	  parameter.  Pass it to METHOD.
	  (package-derivation)[expand-input]: Pass SYSTEM to
	  `package-derivation' and `package-source-derivation'.

	* distro/packages/base.scm (package-with-bootstrap-guile)[boot]: Pass
	  SYSTEM to FETCH.

2012-10-25  Ludovic Courtès  <ludo@gnu.org>

	derivations: Make sure `build-expression->derivation' & co. pass `system'.
	* guix/derivations.scm (imported-files): Call
	  `build-expression->derivation' with SYSTEM, not (%current-system).
	  (build-expression->derivation): Pass SYSTEM to `imported-modules' and
	  `compiled-modules'.

2012-10-25  Ludovic Courtès  <ludo@gnu.org>

	derivations: Pass the derivation of guile-for-build to `imported-files' & co.
	* guix/derivations.scm (%guile-for-build): Initialize to #f.
	  (imported-files, imported-modules, compiled-modules): Add `guile'
	  keyword parameter.  Pass it down to `build-expression->derivation'.
	  (build-expression->derivation)[guile-drv]: New variable.  Pass it as
	  the #:guile parameter for `imported-modules' and `compiled-modules'.

	* tests/derivations.scm: Set %GUILE-FOR-BUILD to the derivation of
	  %BOOTSTRAP-GUILE.

2012-10-25  Ludovic Courtès  <ludo@gnu.org>

	distro: Build the final inputs against the final Bash, not the bootstrap Bash.
	* distro/packages/base.scm (%boot4-inputs): New variable.
	  (guile-final): Use it.
	  (%final-inputs): Build with %BOOT4-INPUTS, not %BOOT3-INPUTS.

	distro: ncurses: Don't patch shebangs.
	* distro/packages/base.scm (ncurses): Pass #:patch-shebangs? #f.

	distro: Bootstrap using our own binaries instead of those from Nixpkgs.
	* distro/packages/base.scm (%bootstrap-inputs): Switch to using our own
	  bootstrap binaries instead of those from Nixpkgs.

	distro: Build glibc with `--enable-obsolete-rpc'.
	* distro/packages/base.scm (glibc-final): Pass `--enable-obsolete-rpc'.
	  (%bootstrap-glibc): Update hash accordingly.

	distro: Add missing Linux-Libre headers to the bootstrap glibc.
	* distro/packages/base.scm (%glibc-stripped): Copy all of Linux-Libre's
	  `include/asm' directory; copy a few linux/ headers too.
	  (%bootstrap-glibc): Update tarball hash.

	distro: Add a bootstrap GCC that uses binaries from the tarball.
	* distro/packages/base.scm (%bootstrap-gcc): New variable.

	Add `guix-download'.
	* guix-download.in: New file.
	* configure.ac: Emit `guix-download' and make it executable.
	* Makefile.am (bin_SCRIPTS): Add `guix-download'.
	* po/POTFILES.in: Add `guix-download.in'.

2012-10-24  Ludovic Courtès  <ludo@gnu.org>

	store: Add `query-path-hash'.
	* guix/store.scm (write-arg, read-arg): Add `base16' literal and
	  corresponding rule.
	  (query-path-hash): New operation.

	* tests/derivations.scm ("fixed-output derivation"): Check whether
	  `query-path-hash' returns a bytevector.

2012-10-24  Ludovic Courtès  <ludo@gnu.org>

	distro: Add missing commands in the bootstrap binaries.
	* distro/packages/base.scm (%static-inputs): Add an `awk' -> `gawk', and
	  `sh' -> `bash' symlinks.  Add `fgrep' and `egrep'.
	  (%bootstrap-coreutils&co): Use new tarball that contains that
	  symlink.

	* distro/packages/bootstrap/x86_64-linux/bash,
	  distro/packages/bootstrap/x86_64-linux/mkdir,
	  distro/packages/bootstrap/x86_64-linux/tar,
	  distro/packages/bootstrap/x86_64-linux/xz: Use binaries from that
	  tarball (the previous binaries hadn't gone through
	  `remove-store-references', which is fixed now.)

2012-10-24  Ludovic Courtès  <ludo@gnu.org>

	guix-build: Change `--local-build' to `--no-substitutes'.
	* guix-build.in (%default-options): Add `substitutes?'.
	  (show-help): Change `--local-build' to `--no-substitutes'.
	  (guix-build): Adjust accordingly.

	distro: Update file name of initial Binutils tarball.
	* distro/packages/base.scm (%bootstrap-binutils): Update remote file
	  name.

2012-10-24  Ludovic Courtès  <ludo@gnu.org>

	derivations: Compile the #:modules passed to `build-expression->derivation'.
	* guix/derivations.scm (imported-files)[parent-dirs]: Move to...
	  (parent-directories): ... here.  New procedure.
	  (compiled-modules): New procedure.
	  (build-expression->derivation): Use it.

	* tests/derivations.scm ("build-expression->derivation with modules"):
	  New test.

2012-10-24  Ludovic Courtès  <ludo@gnu.org>

	distro: Update bootstrap glibc package.
	* distro/packages/base.scm (%bootstrap-glibc): Update initial regexp to
	  make it less Nixish.  Update hash to new tarball.

	distro: Add required Linux-Libre headers to the glibc tarball.
	* distro/packages/base.scm (%glibc-stripped): Include required headers
	  from Linux-Libre.

2012-10-23  Ludovic Courtès  <ludo@gnu.org>

	distro: gcc: No longer store the absolute path of crt files.
	* distro/packages/base.scm (gcc-4.7): Define
	  STANDARD_STARTFILE_PREFIX_[12] instead of storing the absolute path of
	  crt files.

	distro: Fix GCC tarball to include the `libexec' directory.
	* distro/packages/base.scm (%gcc-stripped): Copy $gcc/libexec to $out.

	distro: Fix glibc tarball to include *.so.*.
	* distro/packages/base.scm (%glibc-stripped): Fix regexp to
	  include *.so.* in the output.

2012-10-22  Ludovic Courtès  <ludo@gnu.org>

	distro: Add a statically-linked GCC for bootstrapping.
	* distro/packages/base.scm (%gcc-static): New variable.
	  (%gcc-stripped): Use it.

2012-10-21  Ludovic Courtès  <ludo@gnu.org>

	distro: Add a package that gets the bootstrap glibc from a tarball.
	* distro/packages/base.scm (%bootstrap-glibc): New variable.

	distro: Add packages that get Coreutils, Binutils & co. from tarballs.
	* distro/packages/base.scm (package-from-tarball): New procedure.
	  (%bootstrap-base-url, %bootstrap-coreutils&co, %bootstrap-binutils):
	  New variables.

2012-10-21  Ludovic Courtès  <ludo@gnu.org>

	packages: Add support for system-dependent inputs.
	* guix/packages.scm (package-derivation)[intern]: New procedure.  Pass
	  #t as the `recursive?' argument, instead of #f.
	  [expand-input]: New procedure, with code formerly in the body.
	  Support inputs where the input is a procedure returning a file name or
	  an <origin>.
	  Use `expand-input' in the body.

	* tests/packages.scm ("trivial with system-dependent input"): New test.

2012-10-21  Ludovic Courtès  <ludo@gnu.org>

	distro: Add a bootstrap GCC tarball.
	* distro/packages/base.scm (%gcc-stripped, %gcc-bootstrap-tarball): New
	  variables.

	distro: Add a bootstrap glibc tarball.
	* distro/packages/base.scm (%glibc-stripped, %glibc-bootstrap-tarball):
	  New variables.

2012-10-20  Ludovic Courtès  <ludo@gnu.org>

	distro: Add tools to build a tarball of statically-linked Binutils programs.
	* distro/packages/base.scm (%binutils-static, %binutils-static-stripped,
	  %binutils-bootstrap-tarball): New variables.

	distro: Add a package to build a tarball of the bootstrap binaries.
	* distro/packages/base.scm (tarball-package): New procedure.
	  (%bootstrap-binaries-tarball): New variable.
	  (%guile-bootstrap-tarball): Define in terms of `tarball-package'.

2012-10-18  Ludovic Courtès  <ludo@gnu.org>

	guix-build: Add `--system'.
	* guix-build.in (derivations-from-package-expressions): New `system'
	  parameter.  Pass it to `package-derivation'.
	  (%default-options): Add `system' pair.
	  (show-help): Describe `--system'.
	  (%options): Add it.
	  (guix-build): Check the `system' pair in OPTS; pass it to
	  `derivations-from-package-expressions' and `package-derivation'.

	distro: Provide a more descriptive report when a bootstrap binary is missing.
	* distro/packages/base.scm (%bootstrap-guile): Error out when
	  `search-bootstrap-binary' returns #f.

2012-10-18  Ludovic Courtès  <ludo@gnu.org>

	distro: Use the bootstrap Guile for the derivation of sources.
	* distro/packages/base.scm (bootstrap-origin,
	  package-with-bootstrap-guile): New procedures.
	  (gnu-make-boot0, diffutils-boot0, findutils-boot0, binutils-boot0,
	  gcc-boot0, linux-libre-headers-boot0, glibc-final, bash-final,
	  guile-final): Use `package-with-bootstrap-guile'.
	  (gcc-boot0-wrapped): Clear `source'.

	* guix/ftp.scm (ftp-fetch): Add a #:guile keyword parameter.  Honor it.
	* guix/http.scm (http-fetch): Likewise.

2012-10-18  Ludovic Courtès  <ludo@gnu.org>

	http/ftp: Tweak to avoid depending on libc's NSS.
	* guix/build/http.scm (open-connection-for-uri): New procedure.
	  (http-fetch): Use it.  Pass the result as a #:port argument to
	  `http-get'.
	  Add hack to modify the `set-port-encoding!' binding in (web response).

	* guix/ftp-client.scm (ftp-open): Add optional `port' parameter,
	  defaulting to 21.  When calling `getaddrinfo', convert PORT to a
	  string and pass AI_NUMERICSERV when PORT is a number.

2012-10-18  Ludovic Courtès  <ludo@gnu.org>

	guix-build: Add `--local-build'.
	* guix-build.in (show-help): Add `--local-build'.
	  (%options): Likewise.
	  (guix-build): Pass `set-build-options' the #:use-substitutes? argument
	  accordingly.

	distro: bzip2: Simplify installation phase with `find-files'.
	* distro/packages/base.scm (bzip2): Use `find-files' instead of rolling
	  our own with `file-system-fold'.

	distro: %static-binaries: Use (guix build utils).
	* distro/packages/base.scm (%static-binaries): Add missing
	  use of (guix build utils).

	distro: Fix bootstrapping regression recently introduced.
	* distro/packages/base.scm (gcc-boot0-wrapped): Fix typo introduced in
	  a52e429f76282080c58444ce2ac82a1968d5f29d ("distro: Add i686 support.")

2012-10-17  Ludovic Courtès  <ludo@gnu.org>

	distro: Clear references to the store in static binaries.
	* distro/packages/base.scm (%static-binaries): Clear references to the
	  store path for files in $out/bin.

	utils: Add `find-files'.
	* guix/build/utils.scm (find-files): New procedure.

2012-10-17  Ludovic Courtès  <ludo@gnu.org>

	utils: Add `copy-recursively'; use it.
	* guix/build/utils.scm (copy-recursively): New procedure.

	* distro/packages/base.scm (%guile-static-stripped): Use it.

2012-10-17  Ludovic Courtès  <ludo@gnu.org>

	utils: Add `mkdir-p'; use it.
	* guix/build/utils.scm (mkdir-p): New procedure.

	* distro/packages/base.scm (gnu-make-boot0, gcc-boot0-wrapped,
	  ld-wrapper-boot3, %static-binaries, %guile-static-stripped): Use it.
	* distro/packages/typesetting.scm (lout): Likewise.

2012-10-17  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Pass the system type to the builder.
	* guix/build-system/gnu.scm (gnu-build)[builder]: Pass SYSTEM to
	  `gnu-build' as a keyword argument.

2012-10-17  Nikita Karetnikov  <nikita@karetnikov.org>

	distro: Add i686 support.
	* distro/packages/base.scm (gcc-4.7): Turn `arguments' into a lambda.
	  Use `glibc-dynamic-linker' instead of the hard-coded linker name.

2012-10-17  Ludovic Courtès  <ludo@gnu.org>

	distro: Switch to Linux-Libre.
	* distro/packages/base.scm (linux-headers): Rename to...
	  (linux-libre-headers): ... this.  Change `name', `source', and
	  `description', and `home-page' accordingly.  Update users.
	  (linux-headers-boot0): Rename to...
	  (linux-libre-headers-boot0): ... this.  Update users.

2012-10-17  Ludovic Courtès  <ludo@gnu.org>

	distro: Use our own pre-built Guile to bootstrap.
	* distro/packages/base.scm (%bootstrap-guile): Build from a tarball
	  containing a pre-built Guile.

	* distro.scm (%bootstrap-binaries-directory): New variable.
	  (search-bootstrap-binary): New procedure.

	* Makefile.am (bootstrapdir, bootstrap_x86_64_linuxdir,
	  dist_bootstrap_x86_64_linux_DATA, DISTCLEANFILES, DOWNLOAD_FILE): New
	  variables.
	  (distro/packages/bootstrap/x86_64-linux/guile-bootstrap-2.0.6.tar.xz):
	  New rule.
	  (EXTRA_DIST): Add `build-aux/download.scm'.
	  (.scm.go): Define the `DISTRO_BOOTSTRAP_DIRECTORY' and
	  `DISTRO_INSTALLED_BOOTSTRAP_DIRECTORY' environment variables.

	* pre-inst-env.in: Define `DISTRO_BOOTSTRAP_DIRECTORY'.

	* build-aux/download.scm: New file.
	* distro/packages/bootstrap/x86_64-linux/{bash, mkdir, tar, xz}: New
	  files.

2012-10-17  Ludovic Courtès  <ludo@gnu.org>

	distro: Add package that builds a tarball of the bootstrap Guile.
	* distro/packages/base.scm (%guile-static-stripped): New variable.

2012-10-17  Ludovic Courtès  <ludo@gnu.org>

	distro: Add patch to allow the bootstrap Guile to work without iconv.
	* distro/patches/guile-default-utf8.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

	* distro/packages/base.scm (%guile-static): Use it.
	  (%guile-static-stripped): Add call to `remove-store-references'.

2012-10-17  Ludovic Courtès  <ludo@gnu.org>

	distro: Change relocatable-Guile patch to work around broken argv[0].
	* distro/patches/guile-relocatable.patch: Change to use /proc/self/exe
	  instead of PROGRAM_INVOCATION_NAME.  Useful because Nix itself passes
	  just the basename of builders that it executes.

	build: Use `pre-inst-env' to run tests.
	* Makefile.am (TESTS_ENVIRONMENT): Remove.
	  (LOG_COMPILER): Use `pre-inst-env'.

	release.nix: Add dependency on GNU Texinfo.
	* release.nix (tarball)[buildNativeInputs]: Add `texinfo'.

2012-10-16  Ludovic Courtès  <ludo@gnu.org>

	utils: Add `fold-port-matches' and `remove-store-references'.
	* guix/build/utils.scm (fold-port-matches, remove-store-references): New
	  procedures.

	* tests/build-utils.scm ("fold-port-matches", "fold-port-matches,
	  trickier", "fold-port-matches, with unmatched chars"): New tests.

2012-10-16  Ludovic Courtès  <ludo@gnu.org>

	utils: Add `with-atomic-file-replacement'.
	* guix/build/utils.scm (with-atomic-file-replacement): New procedure.
	  (substitute): Use it.

2012-10-13  Ludovic Courtès  <ludo@gnu.org>

	distro: Add a statically-linked, relocatable Guile 2.0 package.
	* distro/packages/base.scm (%guile-static, %guile-static-stripped): New
	  variables.

	* distro/patches/guile-relocatable.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

2012-10-13  Ludovic Courtès  <ludo@gnu.org>

	ftp-client: Try all the addresses returned by `getaddrinfo'.
	* guix/ftp-client.scm (ftp-open): Upon connection failure, try the other
	  addresses returned by `getaddrinfo'.

2012-10-13  Ludovic Courtès  <ludo@gnu.org>

	doc: Add the stub of a manual.
	* doc/guix.texi: New file.
	* doc/fdl-1.3.texi: New file, copied from Gnulib.

	* Makefile.am (info_TEXINFOS): New variable.
	  (EXTRA_DIST): Add `doc/fdl-1.3.texi'.

2012-10-11  Ludovic Courtès  <ludo@gnu.org>

	distro: Add missing bits from previous commit.
	* distro/packages/base.scm (default-keyword-arguments): New procedure.

	distro: First stab at building statically-linked bootstrap binaries.
	* distro/packages/base.scm (static-package): New procedure.
	  (%bash-static, %static-inputs, %static-binaries): New variables.

2012-10-08  Ludovic Courtès  <ludo@gnu.org>

	Remove non-existent module from (guix).
	* guix.scm (%public-modules): Remove `snix', since that modules doesn't
	  exist yet.

	packages: Fix and optimize memoization of `package-derivation'.
	* guix/packages.scm (%derivation-cache): Pass an initial size of 100.
	  (cache): Use `hashq-set!', and use a SYSTEM/DRV pair as the value.
	  (cached-derivation): Update accordingly.

	packages: Micro-optimize `package-derivation'.
	* guix/packages.scm (package-derivation): Move `cache' call before the
	  traversal of PACKAGE's inputs.

2012-10-07  Ludovic Courtès  <ludo@gnu.org>

	derivations: Set input port to UTF-8 in `read-derivation'.
	* guix/derivations.scm (read-derivation): Set DRV-PORT's encoding to
	  UTF-8.

	Update the (guix) module.
	* guix.scm (%public-modules): Update list of current second-level
	  modules.

2012-10-07  Ludovic Courtès  <ludo@gnu.org>

	tests: Use bootstrap and Nixpkgs inputs to be less costly.
	* tests/builders.scm (%bootstrap-inputs, %bootstrap-guile): New
	  variables.
	  ("gnu-build"): Use them, by setting `#:implicit-inputs? #f' and `#:guile'.

	* tests/packages.scm (%bootstrap-inputs, %bootstrap-guile): New
	  variables.
	  ("trivial"): Pass `#:guile %bootstrap-guile'.
	  ("GNU Hello"): Use `package-with-explicit-inputs' to use
	  %BOOTSTRAP-GUILE and %BOOTSTRAP-INPUTS.

2012-10-07  Ludovic Courtès  <ludo@gnu.org>

	build-system/{gnu,trivial-build}: Fix handling of #:guile argument.
	* guix/build-system/gnu.scm (gnu-build)[guile-for-build]: Check whether
	  GUILE matches string? before checking whether it matches
	  derivation-path?.
	* guix/build-system/trivial.scm (trivial-build)[guile-for-build]:
	  Likewise.

2012-10-06  Ludovic Courtès  <ludo@gnu.org>

	distro: Specify use of the bootstrap Guile for the initial derivations.
	* distro/packages/base.scm (%bootstrap-guile): New variable.
	  (gnu-make-boot0, diffutils-boot0, findutils-boot0, binutils-boot0,
	  gcc-boot0, linux-headers-boot0, glibc-final, gcc-boot0-wrapped,
	  gcc-final, ld-wrapper-boot3, bash-final, guile-final): Add
	  `#:guile %bootstrap-guile' to the builder's arguments.

2012-10-06  Ludovic Courtès  <ludo@gnu.org>

	build-system/{gnu,trivial}: Add a `#:guile' keyword parameter.
	* guix/build-system/gnu.scm (package-with-explicit-inputs): New `guile'
	  keyword parameter.  Add it to P's arguments, and pass it in recursive
	  calls.
	  (gnu-build): New `guile' keyword parameter; new `guile-for-build'
	  variable.  Pass it as the `#:guile-for-build' parameter of
	  `build-expression->derivation'.

	* guix/build-system/trivial.scm (trivial-build): Likewise.

2012-10-05  Ludovic Courtès  <ludo@gnu.org>

	Support build-cores = 0; change `guix-build' to default to 0.
	* guix/build/gnu-build-system.scm (%parallel-job-count): New variable.
	  (build, check): Use it instead of $NIX_BUILD_CORES.

	* guix-build.in (guix-build): Default to 0 for the #:build-cores option.

2012-10-05  Ludovic Courtès  <ludo@gnu.org>

	Augment `README'.
	* README (Hacking): Mention `--with-nixpkgs'.  List the autotools and
	  Gettext, as suggested by Nikita Karetnikov <nikita.karetnikov@gmail.com>.

2012-10-04  Ludovic Courtès  <ludo@gnu.org>

	distro: Fix typo in warning message.
	* distro.scm (package-files): Add missing newline in warning message.

	Add `pre-inst-env' script.
	* pre-inst-env.in: New file.
	* configure.ac: Add it to `AC_CONFIG_FILES' and `AC_CONFIG_COMMANDS'.

	Fix and update `POTFILES.in'.
	* po/POTFILES.in: Update.

2012-09-26  Ludovic Courtès  <ludo@gnu.org>

	distro: Add libgc.
	* distro/packages/base.scm (libgc): New variable.
	  (guile-2.0): Use it.

	distro: Add pkg-config.
	* distro/packages/base.scm (pkg-config): New variable.
	  (guile-2.0): Use it.
	* distro/packages/guile.scm (guile-reader): Likewise.

2012-09-26  Ludovic Courtès  <ludo@gnu.org>

	distro: Add the `guile', `typesetting', and `databases' package modules.
	* distro.scm (package-files): Adjust PREFIX-LEN to use the top-level
	  directory, not %DISTRO-MODULE-DIRECTORY.
	* distro/packages/base.scm (guile-reader, guile-reader/guile-1.8,
	  guile-reader/guile-2.0, lout, recutils): Move to...
	* distro/packages/guile.scm, distro/packages/typesetting.scm,
	  distro/packages/databases.scm: ... here.  New files.
	* Makefile.am (MODULES): Add them.
	  (EXTRA_DIST): Add `.dir-locals.el'.

	* .dir-locals.el: New file, with settings formerly in `base.scm'.

2012-09-26  Ludovic Courtès  <ludo@gnu.org>

	distro: Rename (distro ...) to (distro packages ...).
	* distro/base.scm, distro/ld-wrapper.scm: Move to `distro/packages'.
	  Adjust LD-WRAPPER-BOOT3 input file name accordingly.
	* Makefile.am (MODULES): Adjust accordingly.
	* distro.scm (%distro-module-directory): Change to "/distro/packages".
	* guix/build-system/gnu.scm (standard-inputs): Change module name
	  to (distro packages base).
	* tests/packages.scm (test-packages): Likewise.

	distro: GCC: Upgrade to 4.7.2.
	* distro/base.scm (gcc-4.7): Upgrade to 4.7.2.

2012-09-26  Ludovic Courtès  <ludo@gnu.org>

	distro: Add an `ld' wrapper, to pass missing `-rpath' flags.
	* distro/ld-wrapper.scm: New file.
	* Makefile.am (MODULES): Add it.

	* distro/base.scm (ld-wrapper-boot3): New variable.
	  (%boot3-inputs): Add LD-WRAPPER-BOOT3.
	  (bash-final, guile-final, ld-wrapper): New final.
	  (%final-inputs): Use BASH-FINAL; add LD-WRAPPER.
	  (gcc-4.7): Remove the `-rpath' trick from the `lib' spec string.

2012-09-14  Ludovic Courtès  <ludo@gnu.org>

	distro: gcc: Patch `lib' spec to add `-rpath' for each `-L'.
	* distro/base.scm (gcc-4.7): Patch `LIB_SPEC' to add `-rpath' for each
	  `-L'.  Spec string suggested by Marc Glisse <marc.glisse@inria.fr>.
	  (libtool): Add `libtool-skip-tests.patch'.

	* distro/patches/libtool-skip-tests.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

2012-09-12  Ludovic Courtès  <ludo@gnu.org>

	Add (guix ftp) and companion modules.
	* guix/ftp-client.scm, guix/ftp.scm, guix/build/ftp.scm: New files.
	* Makefile.am (MODULES): Add them.

	* distro/base.scm (libffi): Use `ftp-fetch'.

2012-09-12  Ludovic Courtès  <ludo@gnu.org>

	distro: Use our own Perl during bootstrap.
	* distro/base.scm (linux-headers-boot0): Use PERL with %BOOT0-INPUTS
	  instead of calling out to `nixpkgs-derivation*'.

	distro: gcc: Add a RUNPATH on libc.
	* distro/base.scm (gcc-4.7): Remove unnecessary "libc" input.
	  Add `-rpath LIBC/lib' to `LIB_SPEC'.

2012-09-11  Ludovic Courtès  <ludo@gnu.org>

	distro: Add Perl.
	* distro/base.scm (perl): New variable.
	* distro/patches/perl-no-sys-dirs.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

2012-09-11  Ludovic Courtès  <ludo@gnu.org>

	distro: Bootstrap via a cross-toolchain.
	This allows the final toolchain to be completely independent of
	%BOOTSTRAP-INPUTS.

	* distro/base.scm (glibc-dynamic-linker): New procedure.
	  (gcc-4.7): Remove #:path-exclusions argument.  Check whether LIBC is
	  #f before using it.
	  (glibc): Remove "libc_cv_as_needed" hack.  Patch `Makeconfig' to
	  remove `-lgcc_s'.
	  (nix-system->gnu-triplet, boot-triplet): New variables.
	  (binutils-boot0): Turn into a cross-Binutils targeting (boot-triplet
	  SYSTEM).
	  (gcc-boot0): Likewise.  Add configure options to make a smaller
	  build.  Remove "binutils-source" from the input, and use
	  BINUTILS-BOOT0 instead.
	  (glibc-final): Cross-build using GCC-BOOT0 and BINUTILS-BOOT0.
	  (gcc-boot0-wrapped): New variable.
	  (%boot2-inputs): Use it.
	  (m4-boot2, gmp-boot2, mpfr-boot2, mpc-boot2): Remove.
	  (binutils-final): New variable.
	  (gcc-final): Turn into a joint build with GMP/MPFR/MPC.  Use
	  BINUTILS-FINAL.
	  (%boot3-inputs): Adjust accordingly.
	  (%boot4-inputs): Remove.
	  (%final-inputs): Use %BOOT3-INPUTS.

2012-09-10  Ludovic Courtès  <ludo@gnu.org>

	Add (guix build-system trivial).
	* guix/build-system/trivial.scm: New file.
	* Makefile.am (MODULES): Add it.
	* tests/packages.scm ("trivial"): New test.

	* guix/packages.scm (package-derivation): Allow SOURCE to be #f.

2012-09-07  Ludovic Courtès  <ludo@gnu.org>

	distro: Reduce the bootstrap set.
	* distro/base.scm (%bootstrap-inputs): Remove `gnumake', `diffutils',
	  and `findutils'.
	  (gnu-make-boot0, diffutils-boot0, findutils-boot0, %boot0-inputs): New
	  variables.
	  (binutils-boot0, gcc-boot0, linux-headers-boot0, %boot1-inputs):
	  Replace %BOOTSTRAP-INPUTS by %BOOT0-INPUTS.

	  (final-inputs): Remove now unneeded call to
	  `source-properties->location'.

2012-09-06  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Fix `#:path-exclusions' handling.
	* guix/build/gnu-build-system.scm (set-paths)[relevant-input-directories]:
	  New procedure.  Use it.  This fixes #:path-exclusions handling.

	utils: Make `set-path-environment-variable' verbose.
	* guix/build/utils.scm (set-path-environment-variable): Print ENV-VAR
	  and its value.

	distro: Bootstrap with a joint GCC/Binutils/GMP/MPFR/MPC build.
	* distro/base.scm (%bootstrap-inputs): Remove GMP, MPFR, and MPC.
	  (substitute-keyword-arguments): New macro.
	  (gcc-boot0): Add dependency on the Binutils, GMP, MPFR, and MPC
	  tarballs.  Add a `unpack-binutils&co' phase to unpack them and symlink
	  them so they get built, and to patch errors in `configure'.
	  (glibc-final): Use `substitute-keyword-arguments' instead of a loop.
	  (gcc-final): Inherit from GCC-4.7 instead of GCC-BOOT0.

	distro: gcc: Avoid retention of reference to `sed'.
	* distro/base.scm (gcc-4.7)[pre-configure]: Patch fixincl.x.

	distro: glibc: Assume a recent Linux kernel.
	* distro/base.scm (glibc): Pass "--enable-kernel=2.6.30".

	packages: Accept <origin> as package inputs.
	* guix/packages.scm (package-derivation): Accept use of an <origin> as
	  an input.

2012-09-05  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Relax location handling in `package-with-explicit-inputs'.
	* guix/build-system/gnu.scm (package-with-explicit-inputs): Convert LOC
	  when it is a source-property list.

	distro: mpc: Upgrade to 1.0.
	* distro/base.scm (mpc): Upgrade to 1.0.

	packages: Add `package-full-name'.
	* guix/packages.scm (package-full-name): New procedure.
	  (package-derivation): Use it.

2012-09-04  Ludovic Courtès  <ludo@gnu.org>

	guix-build: Add `--derivations'.
	* guix-build.in (show-help): Add `--derivations'.
	  (%options): Likewise.
	  (guix-build): Handle it.

	guix-build: Add `--source'.
	* guix-build.in (derivations-from-package-expressions): Add `source?'
	  parameter.  Honor it.
	  (show-help): Add `--source'.
	  (%options): Likewise.
	  (guix-build): Honor `--source'.

2012-09-03  Ludovic Courtès  <ludo@gnu.org>

	Move <location> to (guix utils).
	* guix/packages.scm (<location>, location): Move to...
	* guix/utils.scm: ... here.

	distro: bash, readline: Correctly set RUNPATH to the dependencies.
	* distro/base.scm (readline): Add configure flags to set an rpath on
	  ncurses.
	  (bash): Add configure flags to set an rpath to readline and ncurses.

2012-09-02  Ludovic Courtès  <ludo@gnu.org>

	distro: Add bzip2.
	* distro/base.scm (bzip2): New variable.
	  (%final-inputs): Add bzip2.

2012-09-02  Ludovic Courtès  <ludo@gnu.org>

	distro: Bootstrap standard inputs from Nixpkgs.
	This is a first step towards bootstrapping from a set of pre-built,
	statically-linked binaries.

	* guix/build-system/gnu.scm (package-with-explicit-inputs,
	  standard-inputs): New procedure.
	  (%store): New variable.
	  (%standard-inputs): Remove.
	  (gnu-build): New `implicit-inputs?' keyword parameter.  Use it to
	  choose whether to use `(standard-inputs SYSTEM)' or the empty list.

	* distro/base.scm (guile-2.0): Remove dependency on XZ, which is now
	  implicit.
	  (%bootstrap-inputs, gcc-boot0, binutils-boot0, linux-headers-boot0,
	  %boot1-inputs, glibc-final, %boot2-inputs, m4-boot2, gmp-boot2,
	  mpfr-boot2, mpc-boot2, %boot3-inputs, gcc-final, %boot4-inputs,
	  %final-inputs): New variables.

2012-09-02  Ludovic Courtès  <ludo@gnu.org>

	packages: Add `package-transitive-propagated-inputs'.
	* guix/packages.scm (transitive-inputs): New procedure.
	  (package-transitive-inputs): Rewrite in terms of `transitive-inputs'.
	  (package-transitive-propagated-inputs): New procedure.

	packages: Cache the result of `package-derivation'.
	* guix/packages.scm (%derivation-cache): New variable.
	  (cache, cached-derivation): New procedures.
	  (package-derivation): Use them.

	distro: recutils: Allow builds with glibc 2.16+.
	* distro/base.scm (recutils): Apply. `diffutils-gets-undeclared.patch'.

	distro: glibc: Propagate Linux headers.
	* distro/base.scm (glibc): Move LINUX-HEADERS from `native-inputs' to
	  `propagated-inputs'.  Remove unnecessary `_' in /bin/pwd substitution.

2012-09-02  Ludovic Courtès  <ludo@gnu.org>

	distro: diffutils: Allow builds with glibc 2.16+.
	* distro/patches/diffutils-gets-undeclared.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

	* distro/base.scm (diffutils): Apply. `diffutils-gets-undeclared.patch'.

2012-09-02  Ludovic Courtès  <ludo@gnu.org>

	distro: tar: Allow builds with glibc 2.16+.
	* distro/patches/tar-gets-undeclared.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

	* distro/base.scm (tar): Apply. `tar-gets-undeclared.patch'.

2012-09-02  Ludovic Courtès  <ludo@gnu.org>

	packages: Add a printer for <package>.
	* guix/packages.scm (<package>): Add record printer.

	Optimize `write-derivation' and `derivation-path->output-path'.
	* guix/derivations.scm (write-derivation): Explicitly use
	  `simple-format'.
	  (derivation-path->output-path): Memoize.

2012-09-01  Ludovic Courtès  <ludo@gnu.org>

	Optimize `store-path?'.
	* guix/store.scm (store-path?): Check with `string-prefix?' instead of a
	  regexp.

	build-system/gnu: Really apply patches.
	* guix/build/gnu-build-system.scm (patch): Use `--input FILE', not just
	  `FILE'.

2012-09-01  Ludovic Courtès  <ludo@gnu.org>

	utils: Change `substitute*' to allow iteration over several matches.
	* guix/build/utils.scm (substitute): Do not pass the OUT to PROC; use
	  `list-matches' instead of `regexp-exec' and pass a list of matches to
	  PROC. Expect PROC to return a string, and output that.  Fold over
	  RX+PROC in order.  Use `(read-line p 'concat)' to include the trailing
	  delimiter in LINE.
	  (substitute*): Produce code to iterate over the matches, and return a
	  string, which includes anything from the original line that's in
	  between matches.

	* distro/base.scm (gcc-4.7, glibc): Adjust accordingly: remove use
	  of (ice-9 regex) and `regexp-substitute/global'; return a string.

2012-09-01  Ludovic Courtès  <ludo@gnu.org>

	distro: m4: Add patch to allow builds with glibc 2.16+.
	* distro/base.scm (m4): Use `m4-gets-undeclared.patch'.

	* distro/patches/m4-gets-undeclared.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

2012-09-01  Ludovic Courtès  <ludo@gnu.org>

	Add a `guile-for-build' parameter to `build-expression->derivation'.
	* guix/derivations.scm (%guile-for-build): Use `nixpkgs-derivation*'
	  instead of `nixpkgs-derivation'.
	  (build-expression->derivation): New `guile-for-build' keyword
	  parameter.  Use it.

	Add an `env-vars' keyword parameter to `build-expression->derivation'.
	* guix/derivations.scm (build-expression->derivation): New `env-vars'
	  keyword parameter; default to '().  Use it.

2012-09-01  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Add `path-exclusions' parameter.
	* guix/build/gnu-build-system.scm (set-paths): Add new `path-exclusions'
	  parameter; honor it.
	* guix/build-system/gnu.scm (gnu-build): New `path-exclusions' keyword
	  parameter; pass it to BUILDER.

	* distro/base.scm (gcc-4.7): Exclude "libc" from $LIBRARY_PATH.

2012-09-01  Ludovic Courtès  <ludo@gnu.org>

	distro: gcc: Allow `libstdc++' to be found.
	* distro/base.scm (gcc-4.7): Add `-rpath' arguments to `LIB_SPEC' to
	  allow `libstdc++' to be found by users.

	distro: gcc: Pass #:strip-binaries?.
	* distro/base.scm (gcc-4.7): Pass #:strip-binaries?.

2012-08-31  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Honor the `patch-shebangs?' and `strip-binaries?' parameters.
	* guix/build/gnu-build-system.scm (patch-shebangs): Honor
	  PATCH-SHEBANGS?.
	  (strip): Honor STRIP-BINARIES?.  Display a message from `strip-dir'.

	guix-build: Fix the "unrecognized option" error message.
	* guix-build.in (guix-build): Show the option name when an unrecognized
	  option is passed.

2012-08-31  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Add a `strip' phase.
	* guix/build/gnu-build-system.scm (strip): New procedure.
	  (%standard-phases): Add it.

	* guix/build-system/gnu.scm (gnu-build): New `strip-binaries?',
	  `strip-flags', and `strip-directories' keyword parameters.  Pass them
	  to BUILDER.

2012-08-30  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Always invoke `configure' with a relative path.
	* guix/build/gnu-build-system.scm (configure): Change SRCDIR to always
	  be a relative path.

	distro: gcc: Do not store configure flags in the resulting binaries.
	* distro/base.scm (gcc-4.7): Add a `post-configure' phase to clear
	  `TOPLEVEL_CONFIGURE_ARGUMENTS' in the top-level `Makefile'.

2012-08-30  Ludovic Courtès  <ludo@gnu.org>

	define-record-type*: Add the `inherit' syntactic constructor keyword.
	* guix/utils.scm (define-record-type*)[make-syntactic-constructor]: New
	  `type' parameter.  Add the `inherit' keyword and corresponding support
	  code.

	* tests/utils.scm ("define-record-type* & inherit", "define-record-type*
	  & inherit & letrec* behavior"): New tests.

2012-08-29  Ludovic Courtès  <ludo@gnu.org>

	distro: Add missing Binutils patch.
	* distro/patches/binutils-ld-new-dtags.patch: New file.
	* Makefile.am (dist_patch_DATA): Add it.

2012-08-28  Ludovic Courtès  <ludo@gnu.org>

	distro: Add the GNU C Library.
	* distro/base.scm (glibc): New variable.

	distro: Add Linux headers.
	* distro/base.scm (linux-headers): New variable.

2012-08-27  Cyprien Nicolas (fulax)  <c.nicolas+gitorious@gmail.com>

	configure.ac: Make 'guild' configure check fatal, otherwise one gets 'compile: command not found' during make

2012-08-25  Ludovic Courtès  <ludo@gnu.org>

	distro: Add GNU Binutils.
	* distro/base.scm (binutils): New variable.

	distro: Add GCC.
	* distro/base.scm (gcc-4.7): New variable.

	utils: Change `substitute*' to accept a list of files to patch.
	* guix/build/utils.scm (substitute*): Support a list of files as the
	  first argument.

2012-08-23  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Add `out-of-source?' keyword parameter.
	* guix/build/gnu-build-system.scm (configure): Add an `out-of-source?'
	  keyword parameter; build out-of-source-tree when #t.
	* guix/build-system/gnu.scm (gnu-build): Add `out-of-source?' keyword
	  parameter.  Pass it in BUILDER.

	packages: Raise an error condition upon invalid input.
	* guix/packages.scm (&package-error, &package-input-error): New
	  condition types.
	  (package-derivation): Raise a `&package-input-error' when no match is
	  made.

	distro: coreutils: Remove erroneous hack.
	* distro/base.scm (coreutils)[arguments]: Remove
	  "FORCE_UNSAFE_CONFIGURE" setting, since in fact, this is no problem
	  when using Nix with separate build users.

2012-08-22  Ludovic Courtès  <ludo@gnu.org>

	distro: Add GNU Coreutils.
	* distro/base.scm (coreutils): New variable.

	distro: Add XZ.
	* distro/base.scm (xz): New variable.

	distro: Add GNU gzip.
	* distro/base.scm (gzip): New variable.

	distro: Add GNU Patch.
	* distro/base.scm (patch): New variable.

	distro: Add GNU Diffutils.
	* distro/base.scm (diffutils): New variable.

	build: Bump version number.
	* configure.ac: Switch to version 0.1.

	Add `close-connection'.
	* guix/store.scm (close-connection): New procedure.

2012-08-22  Ludovic Courtès  <ludo@gnu.org>

	distro: Move patches to their own directory.
	* Makefile.am (nobase_dist_guilemodule_DATA): Keep only $(MODULES).
	  (patchdir): New variable.
	  (dist_patch_DATA): New variable.  Patch files formerly
	  in $(nobase_dist_guilemodule_DATA).
	  (.scm.go): Define `DISTRO_PATCH_DIRECTORY' and
	  `DISTRO_INSTALLED_PATCH_DIRECTORY'.
	  (TESTS_ENVIRONMENT): Define `DISTRO_PATCH_DIRECTORY'.

	* distro.scm (%patch-directory): New variable.
	  (search-patch): New procedure.
	* distro/base.scm: Use `search-patch' instead of `(search-path
	  %load-path ...)'.

	* distro/findutils-absolute-paths.patch, distro/guile-1.8-cpp-4.5.patch,
	  distro/m4-readlink-EINVAL.patch, distro/m4-s_isdir.patch,
	  distro/make-impure-dirs.patch: Move to `distro/patches'.

2012-08-22  Ludovic Courtès  <ludo@gnu.org>

	distro: Add GNU Findutils.
	* distro/base.scm (findutils): New variable.
	* distro/findutils-absolute-paths.patch: New file.
	* Makefile.am (nobase_dist_guilemodule_DATA): Add it.

	distro: Add GNU grep.
	* distro/base.scm (grep): New variable.

	distro: Add GNU tar.
	* distro/base.scm (tar): New variable.

	distro: Add GNU sed.
	* distro/base.scm (sed): New variable.

2012-08-21  Ludovic Courtès  <ludo@gnu.org>

	distro: Add GNU Bash.
	* distro/base.scm (bash): New variable.

	distro: Add GNU Make.
	* distro/base.scm (gnu-make): New variable.
	* distro/make-impure-dirs.patch: New file.
	* Makefile.am (nobase_dist_guilemodule_DATA): Add it.

2012-08-19  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Augment $PATH with $out for `patch-shebangs'.
	* guix/build/gnu-build-system.scm (patch-shebangs): Add BINDIRS to
	  $PATH, and pass that to `patch-shebang'.

	utils: Add a `path' argument to `patch-shebang'.
	* guix/build/utils.scm (patch-shebang): Add an optional `path'
	  parameter.  Change SHEBANG-RX to match the whole interpreter file
	  name.  Don't patch when BIN and CMD are the same.  Add docstring.

	distro: gmp: Fix typo in URL.
	* distro/base.scm (gmp): Fix URL.

2012-08-19  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Add a `patch-shebangs' phase.
	* guix/build/gnu-build-system.scm (patch-shebangs): New procedure.
	  (%standard-phases): Add it.

	* guix/build-system/gnu.scm (gnu-build): New `patch-shebangs?' keyword
	  parameter.  Pass it to the builder's `gnu-build'.

2012-08-19  Ludovic Courtès  <ludo@gnu.org>

	utils: Add `patch-shebang'.
	* guix/build/utils.scm (search-path-as-string->list): New procedure.
	  (dump-port, patch-shebang): New procedures.

2012-08-17  Ludovic Courtès  <ludo@gnu.org>

	release.nix: Add dependency on GNU libgcrypt.
	* release.nix (build)[configureFlags]: Add `--with-libgcrypt-prefix'.

2012-08-17  Ludovic Courtès  <ludo@gnu.org>

	build: Add `--with-libgcrypt-prefix'; capture the path to libgcrypt.
	* configure.ac: Add `--with-libgcrypt-prefix'.  Substitute `LIBGCRYPT'.

	* Makefile.am (.scm.go): Pass $(LIBGCRYPT).

	* guix/utils.scm (%libgcrypt): New variable.
	  (sha256): Use it.

2012-08-16  Ludovic Courtès  <ludo@gnu.org>

	packages: Add all non-derivation paths to the store.
	* guix/packages.scm (package-derivation): Add all non-derivation paths
	  to the store.

	packages: Allow store paths as inputs.
	* guix/packages.scm (package-derivation): Allow non-derivation store
	  paths as inputs.

2012-08-14  Ludovic Courtès  <ludo@gnu.org>

	release.nix: Build out of chroot.
	* release.nix: Add `preConfigure' and `__noChroot' attributes.

	build: Pass the right flags for "make distcheck".
	* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): New variable.
	* configure.ac: Define and substitute `NIX_PREFIX'.

	build: Add `test.drv' to the distribution.
	* Makefile.am (EXTRA_DIST): Add `tests/test.drv'.

2012-08-14  Ludovic Courtès  <ludo@gnu.org>

	build: Pass $(NIX_INSTANTIATE) to the build and test environments.
	* Makefile.am (.scm.go): Define $NIX_INSTANTIATE.
	  (TESTS_ENVIRONMENT): Likewise, and define $NIX_HASH.
	* guix/utils.scm (nixpkgs-derivation): Use $NIX_INSTANTIATE when
	  defined.

	* tests/utils.scm (%nix-hash): New variable.
	  ("sha256 & bytevector->nix-base32-string"): Use it.

2012-08-14  Ludovic Courtès  <ludo@gnu.org>

	build: Add SRFI-64 to the distribution.
	* Makefile.am (MODULES): Add `srfi/srfi-64.scm' and
	  `srfi/srfi-64.upstream.scm'.

	build: Add release.nix.
	* release.nix: New file.
	* Makefile.am (EXTRA_DIST): Add it.

2012-07-21  Ludovic Courtès  <ludo@gnu.org>

	distro: Add GNU MPC.
	* distro/base.scm (mpc): New variable.

	distro: Add GNU MPFR.
	* distro/base.scm (mpfr): New variable.

	distro: Add GNU recutils.
	* distro/base.scm (recutils): New variable.

2012-07-13  Ludovic Courtès  <ludo@gnu.org>

	distro: Add libffi.
	* distro/base.scm (libffi): New variable.
	  (guile-2.0): Use it.

2012-07-12  Ludovic Courtès  <ludo@gnu.org>

	distro: Add GNU Ncurses.
	* distro/base.scm (ncurses): New variable.
	  (readline): Use it.

2012-07-12  Ludovic Courtès  <ludo@gnu.org>

	distro: Add GNU Readline.
	* distro/base.scm (readline): New variable.
	  (guile-1.8, guile-2.0): Use it.

	* distro/readline-link-ncurses.patch: New file.
	* Makefile.am (nobase_dist_guilemodule_DATA): Add it.

2012-07-12  Ludovic Courtès  <ludo@gnu.org>

	guix-build: Default the number of build cores to (current-processor-count).
	* guix-build.in (guix-build): Use (current-processor-count) build cores
	  by default.

2012-07-11  Ludovic Courtès  <ludo@gnu.org>

	Add `nixpkgs-derivation*'; use it in the distro.
	* guix/utils.scm (nixpkgs-derivation*): New macro.

	* distro/base.scm: Use it instead of `nixpkgs-derivation'.

2012-07-11  Ludovic Courtès  <ludo@gnu.org>

	distro: Add GNU libunistring.
	* distro/base.scm (libunistring): New variable.
	  (guile-2.0): Use it.

	distro: Add GNU Libtool.
	* distro/base.scm (libtool): New variable.
	  (guile-1.8, guile-2.0): Use it.

	distro: Add GMP.
	* distro/base.scm (gmp): New variable.
	  (guile-1.8, guile-2.0): Use it.

2012-07-11  Ludovic Courtès  <ludo@gnu.org>

	distro: Add GNU M4.
	* distro/base.scm (m4): New variable.

	* distro/m4-readlink-EINVAL.patch, distro/m4-s_isdir.patch: New files.
	* Makefile.am (nobase_dist_guilemodule_DATA): Add them.

2012-07-07  Ludovic Courtès  <ludo@gnu.org>

	build: Use Automake's `gnu' option.
	* configure.ac: Use Automake's `gnu' option.
	* ChangeLog, NEWS: New files.

	build: Adjust tests to Automake 1.12.
	* Makefile.am (TESTS_ENVIRONMENT): Remove `guile' invocation.  Add
	  semicolons, and export the variables as shown in the Automake 1.12
	  manual.
	  (LOG_COMPILER): New variable, with `guile' invocation.

	Add `THANKS'.

	build: Tell xgettext that the source is UTF-8.
	* po/Makevars (XGETTEXT_OPTIONS): Add `--from-code=UTF-8'.

	distro: Add Guile-Reader.
	* distro/base.scm (guile-reader): New procedure.
	  (guile-reader/guile-1.8, guile-reader/guile-2.0): New variables.

	Unset `LD_LIBRARY_PATH' in `build-expression->derivation'.
	* guix/derivations.scm (build-expression->derivation)[prolog]: Unset
	  `LD_LIBRARY_PATH'.

	build-system/gnu: Add dependency on GNU Findutils.
	* guix/build-system/gnu.scm (%standard-inputs): Add "findutils".

	distro: guile-2.0: Propagate libunistring and Libtool.
	* distro/base.scm (guile-2.0): Propagate libunistring and Libtool.

	distro: guile-1.8: Propagate GMP and Libtool.
	* distro/base.scm (guile-1.8): Propagate GMP and Libtool.

2012-07-07  Ludovic Courtès  <ludo@gnu.org>

	Add `package-transitive-inputs'; use it to honor propagated inputs.
	* guix/packages.scm (package-transitive-inputs): New procedure.
	  (package-derivation): Use it to compute INPUTS.

	* tests/packages.scm (dummy-package): New macro.
	  ("package-transitive-inputs"): New test.

2012-07-07  Ludovic Courtès  <ludo@gnu.org>

	distro: Add GNU Guile 2.0, released today!
	* distro/base.scm (guile-2.0): New variable.

	build-system/gnu: Set $PKG_CONFIG_PATH.
	* guix/build/gnu-build-system.scm (set-paths): Add `PKG_CONFIG_PATH'.

	distro: Add Lout.
	* distro/base.scm (lout): New variable.

	build-system/gnu: Add `tests?' parameter.
	* guix/build-system/gnu.scm (gnu-build): Add `tests?' parameter.
	  [builder]: Inherit it.

	utils: Have `substitute' restore the file's permission bits.
	* guix/build/utils.scm (substitute): Restore FILE's mode before renaming
	  TEMPLATE.

2012-07-07  Ludovic Courtès  <ludo@gnu.org>

	utils: Change `substitute' and `substitute*' to work with several regexps.
	* guix/build/utils.scm (substitute): Change to accept a `pattern+procs'
	  parameter.  Iterate over it.
	  (substitute*): Adjust accordingly.

	* distro/base.scm (guile-1.8): Adjust accordingly.

2012-07-07  Ludovic Courtès  <ludo@gnu.org>

	distro: gawk: Disable parallel tests.
	* distro/base.scm (gawk): Explicitly disable parallel tests.

	guix-build: Add `--cores'.
	* guix-build.in (leave): New macro, formerly in `guix-build'.
	  (show-help): Document `--cores'.
	  (%options): Add `--cores'.
	  (guix-build): Remove `leave' macro from here.  Pass the `cores' option
	  value to `set-build-options'.

2012-07-07  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Support parallel builds and tests.
	* guix/build/gnu-build-system.scm (build): Add `parallel-build?'
	  parameter; honor it and $NIX_BUILD_CORES.
	  (check): Add `parallel-tests?' parameter; likewise.

	* guix/build-system/gnu.scm (gnu-build): Add `parallel-build?' and
	  `parallel-tests?' parameters.
	  [builder]: Inherit them.

2012-07-07  Ludovic Courtès  <ludo@gnu.org>

	utils: Introduce `substitute*', for easier sed-like syntax.
	* guix/build/utils.scm (let-matches, substitute*): New macros.

	* distro/base.scm (guile-1.8): Use `substitute*' instead of
	  `substitute'.  Remove the #:modules argument.

2012-07-06  Ludovic Courtès  <ludo@gnu.org>

	distro: Add GNU Guile 1.8.
	* distro/base.scm (guile-1.8): New variable.

	* distro/guile-1.8-cpp-4.5.patch: New file.
	* Makefile.am (nobase_dist_guilemodule_DATA): Add it.

2012-07-06  Ludovic Courtès  <ludo@gnu.org>

	utils: Make sure `substitute' writes all its output.
	* guix/build/utils.scm (substitute): Close OUT before renaming it.

	gnu-build-system: Dump the values of environment variables.
	* guix/build/gnu-build-system.scm (set-paths): Dump the value of
	  environment variables in the `environment-variables' files, similar to
	  what Nixpkgs does.

2012-07-05  Ludovic Courtès  <ludo@gnu.org>

	packages: Allow inputs that are local files.
	* guix/packages.scm (package-derivation): Add to the store inputs that
	  are local files.

2012-07-05  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Add a `patch' phase.
	* guix/build/gnu-build-system.scm (patch): New procedure.
	  (%standard-phases): Add `patch'.

	* guix/build-system/gnu.scm (gnu-build): Add `patches' and `patch-flags'
	  parameters.  Pass them on.

2012-07-05  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Make the builder's module list a parameter.
	* guix/build-system/gnu.scm (gnu-build): Add a `modules' keyword
	  parameter; use it.

2012-07-05  Ludovic Courtès  <ludo@gnu.org>

	Add builder-side utilities for phases, stream editing, & co.
	* guix/build/utils.scm (with-directory-excursion): New macro.
	  (alist-cons-before, alist-cons-after, alist-replace): New procedures.
	  (substitute): New procedure.

	* tests/build-utils.scm: New file.

	* Makefile.am (TESTS): Add `tests/build-utils.scm'.

2012-07-05  Ludovic Courtès  <ludo@gnu.org>

	packages: Add a `self-native-input?' field.
	* guix/packages.scm (<package>)[self-native-input?]: New field.
	  (package-derivation): Update/fix pattern.

2012-07-03  Ludovic Courtès  <ludo@gnu.org>

	Rename <package-source> to <origin>; use the `letrec*' behavior in packages.
	* guix/packages.scm (<package-source>): Rename to...
	  (<origin>): ... this.  Update users.

	* distro/base.scm (libsigsegv, gawk, hello): Adjust to renaming; refer
	  to VERSION to build the URL.

2012-07-03  Ludovic Courtès  <ludo@gnu.org>

	define-record-type*: Add `letrec*' behavior.
	* guix/utils.scm (define-record-type*)[make-syntactic-constructor]: Bind
	  all the ((FIELD VALUE) ...) in a `letrec*'.  Adjust `field-value'
	  accordingly.

	* tests/utils.scm ("define-record-type* with letrec* behavior"): New
	  test.

2012-07-02  Ludovic Courtès  <ludo@gnu.org>

	Add a `base32' macro, for convenience.
	* guix/packages.scm (base32): New macro.

	* distro/base.scm (libsigsegv, gawk, hello): Use it.

2012-07-02  Ludovic Courtès  <ludo@gnu.org>

	packages: Allow the `arguments' field to be a procedure.
	* guix/packages.scm (package-derivation): When ARGS is a procedure, call
	  (ARGS SYSTEM).

	* distro/base.scm (gawk)[arguments]: Turn into a procedure, to disable
	  tests on Cygwin.

2012-07-02  Ludovic Courtès  <ludo@gnu.org>

	gnu-build-system: Improve the `configure' and `check' phases.
	* guix/build/gnu-build-system.scm (configure): Print the final list of
	  flags.
	  (check): Add `tests?' keyword parameter.

	gnu-build-system: Print the `configure' flags.
	* guix/build/gnu-build-system.scm (configure): Print CONFIGURE-FLAGS.

	Make `define-record-type*' error messages more informative.
	* guix/utils.scm (define-record-type*): In case of missing or extra
	  field initializers, raise a descriptive `syntax-error'.

	distro: libsigsegv: Use multiple outputs.
	* distro/base.scm (libsigsegv)[outputs]: New field
	  (gawk)[arguments]: Clear.
	  [inputs]: Add the "lib" output of LIBSIGSEGV.

	guix-build: Display multiple outputs when needed.
	* guix-build.in (guix-build): Display multiple outputs when there's more
	  than one.

2012-07-02  Ludovic Courtès  <ludo@gnu.org>

	derivation: Coalesce multiple occurrences of the same input.
	* guix/derivations.scm (write-derivation)[coalesce-duplicate-inputs]:
	  New procedure.
	  Use it to process INPUTS.

	* tests/derivations.scm ("user of multiple-output derivation"): New
	  test.

2012-07-02  Ludovic Courtès  <ludo@gnu.org>

	build: Don't auto-compile tests.
	* Makefile.am (TESTS_ENVIRONMENT): Add `--no-auto-compile'.

	gnu-build-system: Fix "libdir" and "includedir" for multiple-output drvs.
	* guix/build/gnu-build-system.scm (configure): Change `--libdir' and
	  `--includedir' to LIBDIR + "/lib" and INCLUDEDIR + "/include",
	  respectively.

2012-07-02  Ludovic Courtès  <ludo@gnu.org>

	Upgrade Nix worker protocol.
	We were already relying on the new version in `set-build-options', so
	this patch fixes that.

	* guix/store.scm (%protocol-version): Increase.
	  (open-connection)[reserve-space?]: New argument.  Pass it to the
	  server when it's recent enough.

2012-07-02  Ludovic Courtès  <ludo@gnu.org>

	derivation: Move sorting code to `write-derivation'.
	* guix/derivations.scm (write-derivation): Sorte OUTPUTS, INPUTS,
	  SOURCES, and ENV-VARS alphabetically.
	  (derivation-hash): Leave INPUTS, SOURCES, and OUTPUTS unsorted.
	  (derivation)[env-vars-with-empty-outputs]: Leave ENV-VARS unsorted.

	build: Use `AM_GNU_GETTEXT_VERSION'.
	* configure.ac: Add `AM_GNU_GETTEXT_VERSION'.  Suggested by
	  Antono Vasiljev.

	Fix `derivation-hash' for outputs not sorted alphabetically.
	* guix/derivations.scm (derivation-hash): Reorder OUTPUTS.
	* tests/derivations.scm ("multiple-output derivation, non-alphabetic
	  order"): New test.

	Add `propagated-inputs' and `properties' to <package>.
	* guix/packages.scm (<package>)[propagated-inputs, properties]: New
	  fields.
	  (package-derivation): Update `match' clause.

2012-07-01  Ludovic Courtès  <ludo@gnu.org>

	Update list of dependencies.
	* README: Require libgcrypt or libchop.

	build: Build (guix utils) first.
	* Makefile.am (MODULES): Move `guix/utils.scm' first.

	build: Capitalize the package name.
	* configure.ac: Use "Guix", not "guix", as the package name.

2012-07-01  Ludovic Courtès  <ludo@gnu.org>

	Add `guix-build'.
	* guix-build.in: New file.

	* configure.ac: Emit `guix-build'.  Add `commands-exec'.
	* Makefile.am (bin_SCRIPTS): New variable.
	* po/POTFILES.in: Add `guix-build.in'.

2012-07-01  Ludovic Courtès  <ludo@gnu.org>

	Add `derivation-prerequisites' and `derivation-prerequisites-to-build'.
	* guix/derivations.scm (derivation-prerequisites,
	  derivation-prerequisites-to-build): New procedures.

	* tests/derivations.scm ("build-expression->derivation and
	  derivation-prerequisites", "build-expression->derivation and
	  derivation-prerequisites-to-build"): New tests.

2012-07-01  Ludovic Courtès  <ludo@gnu.org>

	Add the `valid-path?' RPC.
	* guix/store.scm (valid-path?): New procedure.

	* tests/builders.scm ("http-fetch", "gnu-build"): Use it.
	* tests/derivations.scm ("add-to-store, flat", "add-to-store,
	  recursive", "derivation with no inputs", "build derivation with 1
	  source", "build derivation with coreutils",
	  "build-expression->derivation with expression returning #f"):
	  Likewise.

2012-07-01  Ludovic Courtès  <ludo@gnu.org>

	Add missing `set-build-options' parameters.
	* guix/store.scm (set-build-options)[build-cores, use-substitutes?]: New
	  keyword parameters.
	  [send]: Change to expect a type, and use `write-arg'.
	  Send settings for BUILD-CORES and USE-SUBSTITUTES? when the server
	  supports it.

2012-06-30  Ludovic Courtès  <ludo@gnu.org>

	Add (distro) with a package searching facility.
	* Makefile.am (MODULES): Add `distro.scm'.

	* distro.scm: New file.
	* po/POTFILES.in: Add it.

	* tests/packages.scm ("find-packages-by-name", "find-packages-by-name
	  with version"): New tests.

2012-06-29  Ludovic Courtès  <ludo@gnu.org>

	Add a libgcrypt-based implementation of `sha256'.
	* guix/utils.scm (sha256): Add a libgcrypt-based implementation using
	  the FFI.

2012-06-29  Ludovic Courtès  <ludo@gnu.org>

	Gettextize, with GNU Gettext 0.18.1.
	* Makefile.am (EXTRA_DIST): Add `build-aux/config.rpath'.
	  (SUBDIRS, ACLOCAL_AMFLAGS): New variables.

	* configure.ac: Use `AM_GNU_GETTEXT'.  Emit `po/Makefile.in'.

	* po/Makevars, po/POTFILES.in: New files.

2012-06-29  Ludovic Courtès  <ludo@gnu.org>

	distro: Add libsigsegv and GNU Awk.
	* guix/packages.scm (<package>)[arguments]: Default to '().

	* distro/base.scm (libsigsegv, gawk): New packages.
	  (hello): Use GAWK instead of (nixpkgs-derivation "gawk").

2012-06-29  Ludovic Courtès  <ludo@gnu.org>

	derivation: Remove duplicate inputs.
	* guix/derivations.scm (derivation): Remove duplicates from INPUT.

2012-06-28  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Add GNU Awk to the standard inputs.
	* guix/build-system/gnu.scm (%standard-inputs): Add GNU Awk.

2012-06-28  Ludovic Courtès  <ludo@gnu.org>

	packages: Add a `home-page' field.
	* guix/packages.scm (<package>)[home-page]: New field.

	* distro/base.scm (hello)[home-page]: Initialize.

2012-06-28  Ludovic Courtès  <ludo@gnu.org>

	Track the source location of packages.
	* guix/packages.scm (<location>): New record type.
	  (location, source-properties->location): New procedures.
	  (<package>)[location]: New field.

	* tests/packages.scm ("GNU Hello"): Test `package-location'.

2012-06-28  Ludovic Courtès  <ludo@gnu.org>

	Add a sha256 fallback that uses Coreutils instead of libchop.
	* guix/utils.scm (compile-time-value): Move to the top.
	  (sha256): Add an implementation that uses Coreutils, for when libchop
	  is unavailable.

2012-06-28  Ludovic Courtès  <ludo@gnu.org>

	Introduce `compile-time-value' and use it.
	* guix/utils.scm (compile-time-value): New macro.
	  (%nixpkgs-directory): Use it.

	* guix/build-system/gnu.scm (%standard-inputs): Likewise.

2012-06-28  Ludovic Courtès  <ludo@gnu.org>

	Add a declarative packaging layer.
	* Makefile.am (MODULES): Add `guix/packages.scm' and `distro/base.scm'.
	  (TESTS): Add `tests/packages.scm'.
	  (EXTRA_DIST): New variable.

	* guix/packages.scm, distro/base.scm, tests/packages.scm: New files.

	* guix/http.scm (http-fetch): Make `name' an optional argument, to match
	  the expectations of `package-source-derivation'.

2012-06-28  Ludovic Courtès  <ludo@gnu.org>

	build-system/gnu: Have `configure-flags' and `make-flags' evaluated.
	* guix/build-system/gnu.scm (gnu-build): Double-quote the default value
	  of MAKE-FLAGS and CONFIGURE-FLAGS.  Don't quote them in BUILDER.

	build: Define $NIXPKGS when compiling.
	* Makefile.am (.scm.go): Define $NIXPKGS.

2012-06-27  Ludovic Courtès  <ludo@gnu.org>

	Abstract build systems.
	* Makefile.am (MODULES): Add `guix/build-system.scm' and
	  `guix/build-system/gnu.scm'.  Remove `guix/gnu-build-system.scm'.

	* guix/build-system.scm: New file.
	* guix/gnu-build-system.scm: Rename to...
	* guix/build-system/gnu.scm: ... this.
	  (gnu-build-system): New variable.

	* tests/builders.scm: Adjust `use-module' clauses.
	  ("gnu-build-system"): New test.

2012-06-27  Ludovic Courtès  <ludo@gnu.org>

	Add `define-record-type*'.
	* guix/utils.scm (define-record-type*): New macro.

	* tests/utils.scm ("define-record-type*"): New test.

2012-06-17  Ludovic Courtès  <ludo@gnu.org>

	build-expression->derivation: Move module forms at the top-level.
	* guix/derivations.scm (build-expression->derivation)[module-form?]: New
	  procedure.
	  [prologue]: Add any form of EXP that matches MODULE-FORM?.
	  [builder]: Remove any MODULE-FORM? from EXP.

2012-06-16  Ludovic Courtès  <ludo@gnu.org>

	gnu-build-system: Structure as a customizable sequence of phases.
	* guix/build/gnu-build-system.scm (set-paths, build, check, install):
	  New procedures.
	  (unpack): Make `source' a keyword arg; add `#:allow-other-keys'.
	  (configure): Likewise.
	  (%standard-phases): New variable.
	  (gnu-build): Make `source', `outputs', and `inputs' keyword arguments;
	  add `phases' keyword argument; #:allow-other-keys; add rest arguments
	  `args'.  Invoke each of PHASES in order within `every'.

	* guix/gnu-build-system.scm (gnu-build): Add `make-flags' and `phases'
	  keyword arguments.  Update builder's `gnu-build' call to match the new
	  convention.

2012-06-16  Ludovic Courtès  <ludo@gnu.org>

	gnu-build-system: Add GNU Diffutils and GNU Path to the standard inputs.
	* guix/gnu-build-system.scm (%standard-inputs): Add Diffutils and Patch.

2012-06-16  Ludovic Courtès  <ludo@gnu.org>

	build-expression->derivation: Have the build fail when EXP returns #f.
	* guix/derivations.scm (build-expression->derivation)[builder]: Pass the
	  result of EXP to `exit'.

	* tests/derivations.scm ("build-expression->derivation with expression
	  returning #f"): New test.

2012-06-16  Ludovic Courtès  <ludo@gnu.org>

	Remove leftover debugging expressions.
	* guix/build/utils.scm (directory-exists?): Remove leftover debugging
	  expressions.

	store: Wait for the server to be done sending output.
	* guix/store.scm (current-build-output-port): New variable.
	  (process-stderr): Add docstring.  Always return #f, except upon
	  %STDERR-LAST.  Upon %STDERR-NEXT, write to
	  `current-build-output-port', not `current-error-port'.
	  (set-build-options): Loop until `process-stderr' returns true.
	  (define-operation): Likewise.
	  (build-derivations): Update docstring to mention that it's
	  synchronous.

2012-06-15  Ludovic Courtès  <ludo@gnu.org>

	build: Be cross-compilation-ready.
	* Makefile.am (.scm.go): Pass `--target=$(host)'.

	* configure.ac: Use `AC_CANONICAL_HOST'.

2012-06-15  Ludovic Courtès  <ludo@gnu.org>

	build: Provide the right include path when building modules.
	* Makefile.am (.scm.go): Add missing `-L $(top_srcdir)'.

	Build (guix) last.
	* Makefile.am (MODULES): Move `guix.scm' last.

2012-06-13  Ludovic Courtès  <ludo@gnu.org>

	Add a build system.
	* configure.ac, Makefile.am: New files.

2012-06-13  Ludovic Courtès  <ludo@gnu.org>

	Change `build-expression->derivation' to support sub-derivation inputs.
	* guix/derivations.scm (build-expression->derivation): Change to expect
	  INPUTS to have the form (NAME DRV-PATH SUB-DRV) or (NAME DRV-PATH),
	  instead of (NAME . DRV-PATH).  Update callers accordingly.

	* guix/gnu-build-system.scm, tests/builders.scm, tests/derivations.scm:
	  Update accordingly.

2012-06-13  Ludovic Courtès  <ludo@gnu.org>

	Add supporting tools for the GNU Build System.
	* guix/derivations.scm (build-expression->derivation): Add all of INPUTS
	  as inputs to the final derivation.

	* guix/build/gnu-build-system.scm, guix/build/utils.scm,
	  guix/gnu-build-system.scm: New files.

	* tests/builders.scm ("gnu-build"): New test.

2012-06-13  Ludovic Courtès  <ludo@gnu.org>

	Fix the order of the derivation's sources in `derivation-hash'.
	* guix/derivations.scm (derivation-hash): Sort SOURCES alphabetically as
	  well.

2012-06-12  Ludovic Courtès  <ludo@gnu.org>

	Fix `imported-files' for files with a common prefix.
	* guix/derivations.scm (imported-files)[builder]: For TAIL, check
	  whether it exists before (mkdir TAIL).

	* tests/derivations.scm ("imported-files"): Add file with a common
	  prefix.

2012-06-12  Ludovic Courtès  <ludo@gnu.org>

	Add `add-to-store' test for flat files.
	* tests/derivations.scm ("add-to-store, flat"): New test.

2012-06-12  Ludovic Courtès  <ludo@gnu.org>

	Augment `build-expression->derivation' with #:modules; add `http-fetch'.
	* guix/derivations.scm (imported-modules): New procedure.
	  (build-expression->derivation): New keyword argument `modules'.
	  Use `imported-modules' when MODULES is non-empty, and pass it with
	  `-L' to GUILE.

	* guix/build/http.scm, guix/http.scm, tests/builders.scm: New files.

2012-06-11  Ludovic Courtès  <ludo@gnu.org>

	Add `imported-files'.
	* guix/derivations.scm (imported-files): New procedure.
	  (build-expression->derivation): Correctly handle inputs that are
	  sources and not derivation paths.

	* tests/derivations.scm ("imported-files"): New test.

2012-06-11  Ludovic Courtès  <ludo@gnu.org>

	Fix the `build-expression->derivation' fixed-output test.
	* tests/derivations.scm ("build-expression->derivation"): Fix the
	  builder to actually pass a bytevector to `put-bytevector'.

2012-06-11  Ludovic Courtès  <ludo@gnu.org>

	Add a `%current-system' fluid.
	* guix/utils.scm (gnu-triplet->nix-system): New procedure.
	  (%current-system): New variable.

	* tests/utils.scm ("gnu-triplet->nix-system"): New test.

	* tests/derivations.scm (%current-system): Remove.  Update users to
	  use (%current-system) instead.

2012-06-10  Ludovic Courtès  <ludo@gnu.org>

	Add `add-to-store' with recursive directory storage.
	* guix/store.scm (write-file): Implement directory recursive dump.
	  (add-to-store): Fix the parameter list.

	* tests/derivations.scm (directory-contents): New procedure.
	  ("add-to-store, recursive"): New test.

2012-06-10  Ludovic Courtès  <ludo@gnu.org>

	tests: Don't hard-code the system type.
	* tests/derivations.scm (%current-system): New variable.  Replace
	  occurrences of "x86_64-linux" by %CURRENT-SYSTEM.

2012-06-09  Ludovic Courtès  <ludo@gnu.org>

	Add multiple-output support to `build-expression->derivation'.
	* guix/derivations.scm (build-expression->derivation): Add `outputs'
	  keyword parameter; pass it to `derivation'.  Define `%outputs' in the
	  prologue.

	* tests/derivations.scm ("build-expression->derivation with two
	  outputs"): New test.

2012-06-09  Ludovic Courtès  <ludo@gnu.org>

	Add `derivation' test for multiple-output derivations.
	* tests/derivations.scm ("multiple-output derivation"): New test.

2012-06-09  Ludovic Courtès  <ludo@gnu.org>

	Sort environment variables alphabetically in `derivation'.
	* guix/derivations.scm (derivation)[env-vars-with-empty-outputs]: Sort
	  the result alphabetically.

	* tests/derivations.scm ("build derivation with 1 source"): Add
	  environment variables.

2012-06-09  Ludovic Courtès  <ludo@gnu.org>

	Add support for fixed-output derivations in `build-expression->derivation'.
	* guix/derivations.scm (build-expression->derivation): Pass HASH and
	  HASH-ALGO to `derivation'.

	* tests/derivations.scm ("build-expression->derivation for fixed-output
	  derivation"): New test.

2012-06-09  Ludovic Courtès  <ludo@gnu.org>

	Add support for fixed-output derivations.
	* guix/derivations.scm (read-derivation)[outputs->alist]: For
	  fixed-outputs, convert HASH with `base16-string->bytevector'.
	  (write-derivation): Likewise, convert HASH-ALGO to a string and HASH
	  to a base16 string.
	  (derivation-hash): Expect HASH to be a bytevector, not a string;
	  convert HASH with `bytevector->base16-string'.

	* tests/derivations.scm ("fixed-output derivation"): New test.

2012-06-09  Ludovic Courtès  <ludo@gnu.org>

	Add `base16-string->bytevector'.
	* guix/utils.scm (base16-string->bytevector): New procedure.

	* tests/utils.scm ("bytevector->base16-string->bytevector"): New test.

2012-06-09  Ludovic Courtès  <ludo@gnu.org>

	Add `base32-string->bytevector' and `nix-base32-string->bytevector'.
	* guix/utils.scm (bytevector-quintet-set!,
	  bytevector-quintet-set-right!, base32-string-unfold,
	  base32-string-unfold-right, make-base32-string->bytevector,
	  base32-string->bytevector, nix-base32-string->bytevector): New
	  procedures.

	* tests/utils.scm ("base32-string->bytevector",
	  "nix-base32-string->bytevector"): New tests.

2012-06-08  Ludovic Courtès  <ludo@gnu.org>

	Augment `README'.

2012-06-08  Ludovic Courtès  <ludo@gnu.org>

	Add `build-expression->derivation'.
	* guix/derivations.scm (%guile-for-build): New parameter.
	  (build-expression->derivation): New procedure.

	* tests/derivations.scm ("build-expression->derivation without inputs",
	  "build-expression->derivation with one input"): New tests.

2012-06-07  Ludovic Courtès  <ludo@gnu.org>

	Allow derivations with input derivations.
	* guix/derivations.scm (derivation-path->output-path): New procedure.
	  (derivation-hash): Call `memoize'.  In the fixed-output case, convert
	  HASH-ALGO to a string.  In the other case, sort inputs in the
	  alphabetical order of their hex hash.  For inputs with no sub-drvs,
	  add "out" as the sub-drv.

	* guix/utils.scm (%nixpkgs-directory): New parameter.
	  (nixpkgs-derivation, memoize): New procedures.

	* tests/derivations.scm ("build derivation with 1 source"): Remove
	  useless shebang.
	  (%coreutils): New variable.
	  ("build derivation with coreutils"): New test.

2012-06-07  Ludovic Courtès  <ludo@gnu.org>

	Fix the order of environment variables in `derivation'.
	* guix/derivations.scm (derivation)[env-vars-with-empty-outputs]:
	  Prepend new environment variables (as expected by Nix), and add them
	  to E.

2012-06-05  Ludovic Courtès  <ludo@gnu.org>

	SRFI-64: Remove use of (ice-9 syntax-case).
	* srfi/srfi-64.upstream.scm [guile]: Remove use of (ice-9 syntax-case).

	tests: Look up `test.drv' using `search-path'.
	* tests/derivations.scm ("parse & export"): Use `search-path' to find
	  `test.drv'.

	Test the `build-derivations' operation.
	* guix/derivations.scm (derivation): Return DRV as a second value.
	* tests/derivations.scm ("build derivation with 1 source"): New test.

2012-06-03  Ludovic Courtès  <ludo@gnu.org>

	Add the usual top-level files.

2012-06-03  Ludovic Courtès  <ludo@gnu.org>

	First stab at the `derivation' primitive.
	* guix/store.scm (%store-prefix): New parameter.
	  (store-path?, derivation-path?): New procedures.

	* guix/derivations.scm (write-derivation): Pass SOURCES through
	  `object->string'.
	  (compressed-hash, store-path, output-path, derivation): New
	  procedures.

	* tests/derivations.scm (%store): New global variable.
	  ("derivation with no inputs"): New test.

2012-06-03  Ludovic Courtès  <ludo@gnu.org>

	Add `bytevector->base16-string'.
	* guix/utils.scm (bytevector->base16-string): New procedure.

2012-06-03  Ludovic Courtès  <ludo@gnu.org>

	Fix `bytevector->nix-base32-string'.
	* guix/utils.scm (bytevector-quintet-ref-right,
	  bytevector-quintet-fold): New procedures.
	  (bytevector-quintet-fold-right): Add `quintet-fold' parameter; use it
	  instead of `bytevector-quintet-fold'.
	  (bytevector->base32-string): Pass BYTEVECTOR-QUINTET-FOLD as the
	  first parameter.
	  (bytevector->nix-base32-string): Pass BYTEVECTOR-QUINTET-FOLD-RIGHT as
	  the first parameter.

	* tests/utils.scm ("sha256 & bytevector->nix-base32-string"): New test.

2012-06-03  Ludovic Courtès  <ludo@gnu.org>

	Move `sha256' to (guix utils).
	* guix/derivations.scm (sha256): Move to...
	* guix/utils.scm (sha256): ... here.

2012-06-02  Ludovic Courtès  <ludo@gnu.org>

	store: Raise error conditions upon protocol errors.
	* guix/store.scm (&nix-error, &nix-protocol-error): New SRFI-35
	  condition types.
	  (process-stderr): Raise an error condition upon protocol errors
	  instead of returning to the caller.  This allows the connection to be
	  reused for further interactions.

2012-06-01  Ludovic Courtès  <ludo@gnu.org>

	Add (guix utils), with `bytevector->base32-string'.
	* guix/utils.scm, tests/utils.scm: New files.

	Use libchop for cryptographic hashes and related.
	* guix/derivations.scm (sha256): Rewrite using libchop's
	  `bytevector-hash'.
	  (derivation-hash): Add docstring.

2012-04-19  Ludovic Courtès  <ludo@gnu.org>

	Add unit test for derivation parsing and output.
	* guix/derivations.scm: Export `read-derivation' and `write-derivation'.

	* srfi/srfi-64.scm, srfi/srfi-64.upstream.scm: New files, from libchop.
	* tests/derivations.scm, tests/test.drv: New files.

2012-04-18  Ludovic Courtès  <ludo@gnu.org>

	Add `.gitignore'.

	Split (guix) in (guix store) and (guix derivations).
	* guix.scm: Move contents to other files.  Just aggregate these.
	* guix/derivations.scm, guix/store.scm: New files.

	Initial commit.
