2013-09-27  Ludovic Courtès  <ludo@gnu.org>

	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.
