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.
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'.
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.
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.
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.
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: 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.
utils: Add `copy-recursively'; use it.
* guix/build/utils.scm (copy-recursively): New procedure.
* distro/packages/base.scm (%guile-static-stripped): Use it.
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.
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.
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.
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.
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.