aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-09-11distro: Add Perl.Ludovic Courtès
* distro/base.scm (perl): New variable. * distro/patches/perl-no-sys-dirs.patch: New file. * Makefile.am (dist_patch_DATA): Add it.
2012-09-11distro: Bootstrap via a cross-toolchain.Ludovic Courtès
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-10Add (guix build-system trivial).Ludovic Courtès
* 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-07distro: Reduce the bootstrap set.Ludovic Courtès
* 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-06build-system/gnu: Fix `#:path-exclusions' handling.Ludovic Courtès
* guix/build/gnu-build-system.scm (set-paths)[relevant-input-directories]: New procedure. Use it. This fixes #:path-exclusions handling.
2012-09-06utils: Make `set-path-environment-variable' verbose.Ludovic Courtès
* guix/build/utils.scm (set-path-environment-variable): Print ENV-VAR and its value.
2012-09-06distro: Bootstrap with a joint GCC/Binutils/GMP/MPFR/MPC build.Ludovic Courtès
* 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.
2012-09-06distro: gcc: Avoid retention of reference to `sed'.Ludovic Courtès
* distro/base.scm (gcc-4.7)[pre-configure]: Patch fixincl.x.
2012-09-06distro: glibc: Assume a recent Linux kernel.Ludovic Courtès
* distro/base.scm (glibc): Pass "--enable-kernel=2.6.30".
2012-09-06packages: Accept <origin> as package inputs.Ludovic Courtès
* guix/packages.scm (package-derivation): Accept use of an <origin> as an input.
2012-09-05build-system/gnu: Relax location handling in `package-with-explicit-inputs'.Ludovic Courtès
* guix/build-system/gnu.scm (package-with-explicit-inputs): Convert LOC when it is a source-property list.
2012-09-05distro: mpc: Upgrade to 1.0.Ludovic Courtès
* distro/base.scm (mpc): Upgrade to 1.0.
2012-09-05packages: Add `package-full-name'.Ludovic Courtès
* guix/packages.scm (package-full-name): New procedure. (package-derivation): Use it.
2012-09-04guix-build: Add `--derivations'.Ludovic Courtès
* guix-build.in (show-help): Add `--derivations'. (%options): Likewise. (guix-build): Handle it.
2012-09-04guix-build: Add `--source'.Ludovic Courtès
* guix-build.in (derivations-from-package-expressions): Add `source?' parameter. Honor it. (show-help): Add `--source'. (%options): Likewise. (guix-build): Honor `--source'.
2012-09-03Move <location> to (guix utils).Ludovic Courtès
* guix/packages.scm (<location>, location): Move to... * guix/utils.scm: ... here.
2012-09-03distro: bash, readline: Correctly set RUNPATH to the dependencies.Ludovic Courtès
* 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-02distro: Add bzip2.Ludovic Courtès
* distro/base.scm (bzip2): New variable. (%final-inputs): Add bzip2.
2012-09-02distro: Bootstrap standard inputs from Nixpkgs.Ludovic Courtès
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-02packages: Add `package-transitive-propagated-inputs'.Ludovic Courtès
* guix/packages.scm (transitive-inputs): New procedure. (package-transitive-inputs): Rewrite in terms of `transitive-inputs'. (package-transitive-propagated-inputs): New procedure.
2012-09-02packages: Cache the result of `package-derivation'.Ludovic Courtès
* guix/packages.scm (%derivation-cache): New variable. (cache, cached-derivation): New procedures. (package-derivation): Use them.
2012-09-02distro: recutils: Allow builds with glibc 2.16+.Ludovic Courtès
* distro/base.scm (recutils): Apply. `diffutils-gets-undeclared.patch'.
2012-09-02distro: glibc: Propagate Linux headers.Ludovic Courtès
* distro/base.scm (glibc): Move LINUX-HEADERS from `native-inputs' to `propagated-inputs'. Remove unnecessary `_' in /bin/pwd substitution.
2012-09-02distro: diffutils: Allow builds with glibc 2.16+.Ludovic Courtès
* 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-02distro: tar: Allow builds with glibc 2.16+.Ludovic Courtès
* 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-02packages: Add a printer for <package>.Ludovic Courtès
* guix/packages.scm (<package>): Add record printer.
2012-09-02Optimize `write-derivation' and `derivation-path->output-path'.Ludovic Courtès
* guix/derivations.scm (write-derivation): Explicitly use `simple-format'. (derivation-path->output-path): Memoize.
2012-09-01Optimize `store-path?'.Ludovic Courtès
* guix/store.scm (store-path?): Check with `string-prefix?' instead of a regexp.
2012-09-01build-system/gnu: Really apply patches.Ludovic Courtès
* guix/build/gnu-build-system.scm (patch): Use `--input FILE', not just `FILE'.
2012-09-01utils: Change `substitute*' to allow iteration over several matches.Ludovic Courtès
* 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-01distro: m4: Add patch to allow builds with glibc 2.16+.Ludovic Courtès
* 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-01Add a `guile-for-build' parameter to `build-expression->derivation'.Ludovic Courtès
* guix/derivations.scm (%guile-for-build): Use `nixpkgs-derivation*' instead of `nixpkgs-derivation'. (build-expression->derivation): New `guile-for-build' keyword parameter. Use it.
2012-09-01Add an `env-vars' keyword parameter to `build-expression->derivation'.Ludovic Courtès
* guix/derivations.scm (build-expression->derivation): New `env-vars' keyword parameter; default to '(). Use it.
2012-09-01build-system/gnu: Add `path-exclusions' parameter.Ludovic Courtès
* 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-01distro: gcc: Allow `libstdc++' to be found.Ludovic Courtès
* distro/base.scm (gcc-4.7): Add `-rpath' arguments to `LIB_SPEC' to allow `libstdc++' to be found by users.
2012-09-01distro: gcc: Pass #:strip-binaries?.Ludovic Courtès
* distro/base.scm (gcc-4.7): Pass #:strip-binaries?.
2012-08-31build-system/gnu: Honor the `patch-shebangs?' and `strip-binaries?' parameters.Ludovic Courtès
* guix/build/gnu-build-system.scm (patch-shebangs): Honor PATCH-SHEBANGS?. (strip): Honor STRIP-BINARIES?. Display a message from `strip-dir'.
2012-08-31guix-build: Fix the "unrecognized option" error message.Ludovic Courtès
* guix-build.in (guix-build): Show the option name when an unrecognized option is passed.
2012-08-31build-system/gnu: Add a `strip' phase.Ludovic Courtès
* 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-30build-system/gnu: Always invoke `configure' with a relative path.Ludovic Courtès
* guix/build/gnu-build-system.scm (configure): Change SRCDIR to always be a relative path.
2012-08-30distro: gcc: Do not store configure flags in the resulting binaries.Ludovic Courtès
* distro/base.scm (gcc-4.7): Add a `post-configure' phase to clear `TOPLEVEL_CONFIGURE_ARGUMENTS' in the top-level `Makefile'.
2012-08-30define-record-type*: Add the `inherit' syntactic constructor keyword.Ludovic Courtès
* 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-29distro: Add missing Binutils patch.Ludovic Courtès
* distro/patches/binutils-ld-new-dtags.patch: New file. * Makefile.am (dist_patch_DATA): Add it.
2012-08-28distro: Add the GNU C Library.Ludovic Courtès
* distro/base.scm (glibc): New variable.
2012-08-28distro: Add Linux headers.Ludovic Courtès
* distro/base.scm (linux-headers): New variable.
2012-08-27configure.ac: Make 'guild' configure check fatal, otherwise one gets ↵Cyprien Nicolas (fulax)
'compile: command not found' during make
2012-08-25distro: Add GNU Binutils.Ludovic Courtès
* distro/base.scm (binutils): New variable.
2012-08-25distro: Add GCC.Ludovic Courtès
* distro/base.scm (gcc-4.7): New variable.
2012-08-25utils: Change `substitute*' to accept a list of files to patch.Ludovic Courtès
* guix/build/utils.scm (substitute*): Support a list of files as the first argument.
2012-08-23build-system/gnu: Add `out-of-source?' keyword parameter.Ludovic Courtès
* 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.