Ludovic Courtès
40749fb6eb
distro: Fix GCC tarball to include the `libexec' directory.
...
* distro/packages/base.scm (%gcc-stripped): Copy $gcc/libexec to $out.
2012-10-23 22:00:06 +02:00
Ludovic Courtès
131edf67a0
distro: Fix glibc tarball to include *.so.*.
...
* distro/packages/base.scm (%glibc-stripped): Fix regexp to
include *.so.* in the output.
2012-10-23 21:59:09 +02:00
Ludovic Courtès
5155fb89b2
distro: Add a statically-linked GCC for bootstrapping.
...
* distro/packages/base.scm (%gcc-static): New variable.
(%gcc-stripped): Use it.
2012-10-22 22:22:37 +02:00
Ludovic Courtès
83ce0cf1f1
distro: Add a package that gets the bootstrap glibc from a tarball.
...
* distro/packages/base.scm (%bootstrap-glibc): New variable.
2012-10-21 22:01:49 +02:00
Ludovic Courtès
80d09f7452
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 22:00:38 +02:00
Ludovic Courtès
592ef6c88f
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 17:52:16 +02:00
Ludovic Courtès
095c7a2683
distro: Add a bootstrap GCC tarball.
...
* distro/packages/base.scm (%gcc-stripped, %gcc-bootstrap-tarball): New
variables.
2012-10-21 15:57:04 +02:00
Ludovic Courtès
58a7891ccf
distro: Add a bootstrap glibc tarball.
...
* distro/packages/base.scm (%glibc-stripped, %glibc-bootstrap-tarball):
New variables.
2012-10-21 15:26:46 +02:00
Ludovic Courtès
17ff4ccdf5
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.
2012-10-20 16:12:26 +02:00
Ludovic Courtès
5cbb559046
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-20 11:51:07 +02:00
Ludovic Courtès
5cc3061673
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'.
2012-10-18 23:46:10 +02:00
Ludovic Courtès
a5a349f302
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 23:36:29 +02:00
Ludovic Courtès
d6e8777688
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 23:18:38 +02:00
Ludovic Courtès
d14ecda913
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 22:32:23 +02:00
Ludovic Courtès
1c3972daa8
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.
2012-10-18 22:32:21 +02:00
Ludovic Courtès
e3dadc6818
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'.
2012-10-18 21:43:35 +02:00
Ludovic Courtès
207ad6b2e9
distro: %static-binaries: Use (guix build utils).
...
* distro/packages/base.scm (%static-binaries): Add missing
use of (guix build utils).
2012-10-18 21:42:19 +02:00
Ludovic Courtès
683d57f420
distro: Fix bootstrapping regression recently introduced.
...
* distro/packages/base.scm (gcc-boot0-wrapped): Fix typo introduced in
a52e429f76
("distro: Add i686 support.")
2012-10-18 11:41:12 +02:00
Ludovic Courtès
f76a51add0
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.
2012-10-17 23:34:05 +02:00
Ludovic Courtès
4c261f4169
utils: Add `find-files'.
...
* guix/build/utils.scm (find-files): New procedure.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
c0746cc9db
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 23:25:25 +02:00
Ludovic Courtès
7da95264f1
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 23:25:25 +02:00
Ludovic Courtès
7172116ca5
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 23:25:25 +02:00
Nikita Karetnikov
a52e429f76
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 23:25:25 +02:00
Ludovic Courtès
124b17673b
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 23:25:25 +02:00
Ludovic Courtès
ac5aa28889
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 23:25:25 +02:00
Ludovic Courtès
9735a7b6ea
distro: Add package that builds a tarball of the bootstrap Guile.
...
* distro/packages/base.scm (%guile-static-stripped): New variable.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
eb1db76e34
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 23:25:25 +02:00
Ludovic Courtès
b7f280ee3e
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.
2012-10-17 23:25:25 +02:00
Ludovic Courtès
9b9b6f3d51
build: Use `pre-inst-env' to run tests.
...
* Makefile.am (TESTS_ENVIRONMENT): Remove.
(LOG_COMPILER): Use `pre-inst-env'.
2012-10-17 23:25:23 +02:00
Ludovic Courtès
8587b54268
release.nix: Add dependency on GNU Texinfo.
...
* release.nix (tarball)[buildNativeInputs]: Add `texinfo'.
2012-10-17 16:16:45 +02:00
Ludovic Courtès
91133c2d71
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 23:01:01 +02:00
Ludovic Courtès
dcd7290654
utils: Add `with-atomic-file-replacement'.
...
* guix/build/utils.scm (with-atomic-file-replacement): New procedure.
(substitute): Use it.
2012-10-16 17:31:16 +02:00
Ludovic Courtès
df1fab5837
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 22:36:39 +02:00
Ludovic Courtès
4004f95379
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 21:18:16 +02:00
Ludovic Courtès
568717fd90
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-13 16:05:01 +02:00
Ludovic Courtès
e300a0f8d2
distro: Add missing bits from previous commit.
...
* distro/packages/base.scm (default-keyword-arguments): New procedure.
2012-10-11 00:32:17 +02:00
Ludovic Courtès
a3f75312ec
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-11 00:25:55 +02:00
Ludovic Courtès
ad8526466c
Remove non-existent module from (guix).
...
* guix.scm (%public-modules): Remove `snix', since that modules doesn't
exist yet.
2012-10-08 23:13:51 +02:00
Ludovic Courtès
e4588af969
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.
2012-10-08 22:07:19 +02:00
Ludovic Courtès
ead1f1086d
packages: Micro-optimize `package-derivation'.
...
* guix/packages.scm (package-derivation): Move `cache' call before the
traversal of PACKAGE's inputs.
2012-10-08 21:57:14 +02:00
Ludovic Courtès
df7bbd3813
derivations: Set input port to UTF-8 in `read-derivation'.
...
* guix/derivations.scm (read-derivation): Set DRV-PORT's encoding to
UTF-8.
2012-10-07 22:28:07 +02:00
Ludovic Courtès
58ddf10ea3
Update the (guix) module.
...
* guix.scm (%public-modules): Update list of current second-level
modules.
2012-10-07 22:26:55 +02:00
Ludovic Courtès
14da91e2f0
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 22:24:59 +02:00
Ludovic Courtès
81c7948d9a
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-07 22:22:27 +02:00
Ludovic Courtès
2143cf7a50
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 01:25:19 +02:00
Ludovic Courtès
12d5aa0f5a
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-06 01:25:17 +02:00
Ludovic Courtès
db1a15314d
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 23:21:09 +02:00
Ludovic Courtès
7da7ae937e
Augment `README'.
...
* README (Hacking): Mention `--with-nixpkgs'. List the autotools and
Gettext, as suggested by Nikita Karetnikov <nikita.karetnikov@gmail.com>.
2012-10-05 00:19:29 +02:00
Ludovic Courtès
49feac7a54
distro: Fix typo in warning message.
...
* distro.scm (package-files): Add missing newline in warning message.
2012-10-04 23:12:41 +02:00