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'.
utils: Add a `progress' parameter to `dump-port'. * guix/build/utils.scm (dump-port): Add a `progress' keyword parameter. Call it after each transfer.
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.
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.
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.
distro: guile: Switch to 2.0.7. * distro/packages/guile.scm (guile-2.0/fixed): Alias GUILE-2.0.
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'.
build-system/gnu: Make the error port line-buffered. * guix/build/gnu-build-system.scm (gnu-build): Make the error port line-buffered.