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.
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.
build-system/gnu: enable test-target during the check phase * guix/build-system/gnu.scm: add variable test-target
distro: attr: Fix references to /bin/sh. * distro/packages/attr.scm (attr): Add `patch-makefile-SHELL'. Patch `test/run' in `check' phase.
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'.
distro: coreutils: Update to 8.20. * distro/packages/base.scm (coreutils): Update to 8.20.
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.
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'.