summaryrefslogtreecommitdiff
path: root/guix/build-system/gnu.scm
AgeCommit message (Expand)Author
2013-10-10build-system/{gnu,cmake}: Remove #:patches and #:patch-flags parameters....* guix/build/gnu-build-system.scm (patch): Remove. (%standard-phases): Remove 'patch'. * guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Remove #:patches and #:patch-flags parameters. * guix/build-system/cmake.scm (cmake-build): Likewise. * guix/build-system/python.scm (package-with-explicit-python): Update comment. Ludovic Courtès
2013-09-18derivations: 'derivation' and related procedures return a single value....* guix/derivations.scm (derivation->output-path, derivation->output-paths): New procedures. (derivation-path->output-path): Use 'derivation->output-path'. (derivation-path->output-paths): Use 'derivation->output-paths'. (derivation): Accept 'derivation?' objects as inputs. Return a single value. (build-derivations): New procedure. (compiled-modules): Use 'derivation->output-paths'. (build-expression->derivation)[source-path]: Add case for when the input matches 'derivation?'. [prologue]: Accept 'derivation?' objects in INPUTS. [mod-dir, go-dir]: Use 'derivation->output-path'. * guix/download.scm (url-fetch): Adjust to the single-value return. * guix/packages.scm (package-output): Use 'derivation->output-path'. * guix/scripts/build.scm (guix-build): When the argument is 'derivation-path?', pass it through 'read-derivation'. Use 'derivation-file-name' to print out the .drv file names, and to register them. Use 'derivation->output-path' instead of 'derivation-path->output-path'. * guix/scripts/package.scm (roll-back): Adjust to the single-value return. (guix-package): Use 'derivation->output-path'. * guix/ui.scm (show-what-to-build): Adjust to deal with 'derivation?' objects instead of .drv file names. * gnu/system/grub.scm (grub-configuration-file): Use 'derivation->output-path' instead of 'derivation-path->output-path'. * gnu/system/vm.scm (qemu-image, system-qemu-image): Likewise. * tests/builders.scm, tests/derivations.scm, tests/packages.scm, tests/store.scm, tests/union.scm: Adjust to the new calling convention. * doc/guix.texi (Defining Packages, The Store, Derivations): Adjust accordingly. Ludovic Courtès
2013-08-24build-system/gnu: Add `dist-package'....* guix/build/gnu-dist.scm: New file. * Makefile.am (MODULES): Add it. * guix/build-system/gnu.scm (%default-modules): New variable. (gnu-build): Use it. (dist-package): New procedure. Ludovic Courtès
2013-07-04build-system/gnu: Remove the "debug" output when `strip-binaries?' is #f....* guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Delete "debug" from OUTPUTS when STRIP-BINARIES? is false. * gnu/packages/cross-base.scm (cross-libc): Leave `outputs' unchanged. This reverts commit a4627d4. Ludovic Courtès
2013-06-25build-system/gnu: `package-with-explicit-inputs' skips non-GBS packages....* guix/build-system/gnu.scm (package-with-explicit-inputs)[rewritten-input]: Leave P unchanged if its build system is not GNU-BUILD-SYSTEM. Ludovic Courtès
2013-06-25build-system/gnu: Augment `package-with-explicit-inputs' for cross builds....* guix/build-system/gnu.scm (package-with-explicit-inputs): Add `native-inputs' keyword parameter. Allow INPUTS and NATIVE-INPUTS to be thunks. Ludovic Courtès
2013-06-24build-system/gnu: Disable test suite when cross building....* guix/build-system/gnu.scm (gnu-cross-build): Change #:tests? to default to #f. Ludovic Courtès
2013-06-21build-system/gnu: Unify with (guix build-system gnu-cross-build)....* guix/build/gnu-build-system.scm (set-paths): Add `native-inputs' and `native-search-paths' keyword parameters. Honor them. (configure): Add `target' and `native-inputs' keyword parameters. Look for Bash in NATIVE-INPUTS or INPUTS. Pass `--host' when TARGET is true. (strip): Add `strip-command' keyword parameter. Use it. * guix/build/gnu-cross-build.scm: Remove. * Makefile.am (MODULES): Adjust accordingly. * gnu/packages/acl.scm, gnu/packages/attr.scm, gnu/packages/base.scm, gnu/packages/bash.scm, gnu/packages/gawk.scm, gnu/packages/gettext.scm, gnu/packages/guile.scm, gnu/packages/libffi.scm, gnu/packages/libsigsegv.scm, gnu/packages/linux.scm, gnu/packages/ncurses.scm, gnu/packages/readline.scm, guix/build-system/gnu.scm: Replace `%standard-cross-phases' by `%standard-phases'. Remove references to (guix build gnu-cross-build). Ludovic Courtès
2013-06-05gnu: Fix `static-package' arguments overriding....* guix/build-system/gnu.scm (static-package): Call `package-arguments' from within the `arguments' field, so it see the right (%current-target-system). Ludovic Courtès
2013-05-27build-system/gnu: Fix typo in `gnu-cross-build'....* guix/build-system/gnu.scm (gnu-cross-build)[builder]: When IMPLICIT-TARGET-INPUTS is #f, default to '(). Ludovic Courtès
2013-05-25build-system/gnu: Make sure build input variables contain pairs....* guix/build-system/gnu.scm (gnu-cross-build)[builder]: Make sure %build-host-inputs and %build-target-inputs always contain pairs, not lists. Ludovic Courtès
2013-05-24build-system/gnu: Implement cross build....* guix/build-system/gnu.scm (inputs-search-paths): New procedure. (standard-search-paths): Use it. (expand-inputs): New procedure. (standard-inputs): Use it. (standard-cross-packages, standard-cross-inputs, standard-cross-search-paths, gnu-cross-build): New procedures. (gnu-build-system): Set `cross-build' field to `gnu-cross-build'. * gnu/packages/cross-base.scm: Export `cross-gcc', `cross-binutils', and `cross-libc'. * guix/build/gnu-cross-build.scm: New file. * Makefile.am (MODULES): Add it. Ludovic Courtès
2013-04-16build-system/{perl,cmake}: Keep the standard search paths of gnu-build-system....Reported by Andreas Enge <andreas@enge.fr>. * guix/build-system/gnu.scm (standard-search-paths): New procedure. (gnu-build): Use it. * guix/build-system/perl.scm (perl-build): Append (standard-search-paths) to the search paths of PERL. * guix/build-system/cmake.scm (cmake-build): Append (standard-search-paths) to SEARCH-PATHS. Ludovic Courtès
2013-04-09build-system/gnu: Fix search path computation with implicit inputs....Reported by Andreas Enge <andreas@enge.fr>. * guix/build-system/gnu.scm (standard-packages): New procedure. (standard-inputs): Use it instead of resolving things locally. (gnu-build)[implicit-search-paths]: Map over (standard-packages), not over STANDARD-INPUTS. Ludovic Courtès
2013-03-30packages: Add `native-search-paths' field and honor it....* guix/packages.scm (<search-path-specification>): New record type. (search-path-specification->sexp): New procedure. (<package>)[native-search-paths]: New field. (package-derivation): Accumulate the search paths, and pass them as #:search-paths toe BUILDER. * guix/build-system/gnu.scm (gnu-build): Add #:search-paths. Compute `implicit-search-paths'. Pass #:search-paths in BUILDER. * guix/build-system/perl.scm (perl-build): Add #:search-paths, pass it to BUILDER with the search paths of PERL. * guix/build-system/cmake.scm (cmake-build): Add #:search-paths, pass it to BUILDER. * guix/build-system/trivial.scm (trivial-build): Add #:search-paths, ignore it. * guix/build/gnu-build-system.scm (set-paths): Add #:search-paths. Remove explicit settings of CPATH, LIBRARY_PATH, and PKG_CONFIG_PATH. Instead, walk SEARCH-PATHS and call `set-path-environment-variable' for them. * guix/build/perl-build-system.scm (perl-build): Remove PERL5LIB setting. * tests/packages.scm ("search paths"): New test. * gnu/packages/bootstrap.scm (%bootstrap-guile)[raw]: Add #:search-paths. (%bootstrap-gcc): Add `native-search-paths' field. * gnu/packages/perl.scm (perl): Likewise. * gnu/packages/pkg-config.scm (pkg-config): Likewise. * gnu/packages/glib.scm (intltool): Remove `arguments'. * gnu/packages/avahi.scm (avahi): Remove #:phases. Ludovic Courtès
2013-03-30build-system/gnu: Remove #:path-exclusions parameter....* guix/build/gnu-build-system.scm (set-paths): Remove `path-exclusions' parameter. Replace `relevant-input-directories' by `input-directories'. * guix/build-system/gnu.scm (gnu-build): Remove `path-exclusions' parameter; don't pass it in BUILDER. * guix/build-system/cmake.scm (cmake-build): Likewise. Ludovic Courtès
2013-03-04Add (guix build-system perl)....* guix/build-system/perl.scm, guix/build/perl-build-system.scm: New files. * Makefile.am (MODULES): Add them. * guix/build-system/gnu.scm (standard-inputs): Make public. Ludovic Courtès
2013-02-14build-system/gnu: Make the strip behavior of `static-package' configurable....* guix/build-system/gnu.scm (static-package): Add #:strip-all? keyword parameter. Ludovic Courtès
2013-02-08build-system/gnu: Clarify docstring of `package-with-extra-configure-variable'....* guix/build-system/gnu.scm (package-with-extra-configure-variable): Add "recursively" in the docstring. Ludovic Courtès
2013-01-23packages: Mark the `arguments' field of <package> as thunked....* guix/packages.scm (<package>): Mark `arguments' as thunked. (package-derivation): Adjust accordingly. Parameterize %CURRENT-SYSTEM to SYSTEM, so that arguments can refer to it. * guix/build-system/gnu.scm (package-with-explicit-inputs): Expect `package-arguments' to always return a list, and return a list. (package-with-extra-configure-variable): Likewise. (static-package): Likewise. * gnu/packages/base.scm (patch, findutils, gcc-4.7, binutils-boot0, gcc-boot0, glibc-final-with-bootstrap-bash, cross-gcc-wrapper, static-bash-for-glibc, binutils-final, gcc-final): Change `arguments' from a lambda to a list, and use (%current-system) as needed. (nix-system->gnu-triplet, boot-triplet): Have the first argument default to (%current-system). * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Have `system' default to (%current-system). (%bootstrap-gcc): Change `arguments' to a list. * gnu/packages/gawk.scm (gawk): Likewise. * gnu/packages/m4.scm (m4): Likewise. * gnu/packages/make-bootstrap.scm (%glibc-for-bootstrap): Likewise, and expect `package-arguments' to return a list. (%static-inputs, %gcc-static, tarball-package): Likewise. * gnu/packages/ncurses.scm (ncurses): Likewise. Ludovic Courtès
2013-01-18distro: Change the module name space to (gnu ...)....* distro: Rename to... * gnu: ... this. Update module names accordingly. * Makefile.am: Adjust accordingly. * po/POTFILES.in: Likewise. * distro.scm: Search for files under /gnu/packages instead of /distro/packages. * gnu/packages/base.scm (ld-wrapper-boot3): Likewise. Ludovic Courtès
2013-01-15build-system/gnu: Allow the `source' argument to be #f....* guix/build-system/gnu.scm (gnu-build): Allow SOURCE to be #f. Ludovic Courtès
2013-01-06Merge branch 'master' into core-updates...Conflicts: build-aux/download.scm distro/packages/autotools.scm distro/packages/base.scm distro/packages/bootstrap.scm distro/packages/lsh.scm distro/packages/make-bootstrap.scm distro/packages/ncurses.scm distro/packages/perl.scm tests/derivations.scm tests/union.scm Ludovic Courtès
2013-01-06Update license headers....Change all license headers, except guix/build/* and ld-wrapper.scm, with this code: (use-modules (guix build utils) (srfi srfi-1)) (fluid-set! %default-port-encoding "UTF-8") (substitute* (remove (lambda (f) (or (string-contains f ".tar.") (string-contains f ".git/") (string-contains f ".so") (string-suffix? ".o" f) (string-suffix? ".a" f) (string-suffix? ".go" f) (string-suffix? ".pdf" f) (string-suffix? ".png" f) (string-suffix? ".info" f) (equal? (basename f) "guix-daemon") (equal? (basename f) "nix-setuid-helper") (string-contains f "nix-upstream/") (string-contains f "distro/packages/bootstrap/"))) (find-files "." "\\.[a-z]+$")) (("^([[:graph:]]+) This file is part of Guix." _ comment-start) (string-append comment-start " This file is part of GNU Guix.")) (("^([[:graph:]]+) Guix --- Nix package management.*" _ comment-start) (string-append comment-start " GNU Guix --- Functional package management for GNU\n")) (("^([[:graph:]]+) Guix is " _ comment-start) (string-append comment-start " GNU Guix is ")) (("^([[:graph:]]+) along with Guix." _ comment-start) (string-append comment-start " along with GNU Guix.")) (("^([[:graph:]]+) Copyright \\(C\\)" _ comment-start) (string-append comment-start " Copyright ©"))) Change headers using C-style comments manually. Ludovic Courtès
2013-01-01build-system/gnu: Add `static-package'....* distro/packages/make-bootstrap.scm (static-package): Move to... * guix/build-system/gnu.scm (static-package): ... here. New procedure. Ludovic Courtès
2012-12-30build-system/gnu: enable test-target during the check phase...* guix/build-system/gnu.scm: add variable test-target Andreas Enge
2012-11-05build-system/gnu: Add `static-libgcc-package' & supporting procedure....* guix/build-system/gnu.scm (package-with-extra-configure-variable, static-libgcc-package): New procedures. Ludovic Courtès
2012-10-31build-system/gnu: Distinguish between imported modules and used modules....* guix/build-system/gnu.scm (gnu-build): Add the `imported-modules' keyword parameter. Pass it to `build-expression->derivation'. Ludovic Courtès
2012-10-17build-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. Ludovic Courtès
2012-10-07build-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. Ludovic Courtès
2012-10-06build-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. Ludovic Courtès
2012-09-26distro: Rename (distro ...) to (distro packages ...)....* distro/base.scm, distro/ld-wrapper.scm: Move to `distro/packages'. Adjust LD-WRAPPER-BOOT3 input file name accordingly. * Makefile.am (MODULES): Adjust accordingly. * distro.scm (%distro-module-directory): Change to "/distro/packages". * guix/build-system/gnu.scm (standard-inputs): Change module name to (distro packages base). * tests/packages.scm (test-packages): Likewise. Ludovic Courtès
2012-09-05build-system/gnu: Relax location handling in `package-with-explicit-inputs'....* guix/build-system/gnu.scm (package-with-explicit-inputs): Convert LOC when it is a source-property list. Ludovic Courtès
2012-09-02distro: Bootstrap standard inputs from Nixpkgs....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. Ludovic Courtès
2012-09-01build-system/gnu: Add `path-exclusions' parameter....* 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. Ludovic Courtès
2012-08-31build-system/gnu: Add a `strip' phase....* 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. Ludovic Courtès
2012-08-23build-system/gnu: Add `out-of-source?' keyword parameter....* 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. Ludovic Courtès
2012-08-19build-system/gnu: Add a `patch-shebangs' phase....* guix/build/gnu-build-system.scm (patch-shebangs): New procedure. (%standard-phases): Add it. * guix/build-system/gnu.scm (gnu-build): New `patch-shebangs?' keyword parameter. Pass it to the builder's `gnu-build'. Ludovic Courtès
2012-07-07build-system/gnu: Add dependency on GNU Findutils....* guix/build-system/gnu.scm (%standard-inputs): Add "findutils". Ludovic Courtès
2012-07-07build-system/gnu: Add `tests?' parameter....* guix/build-system/gnu.scm (gnu-build): Add `tests?' parameter. [builder]: Inherit it. Ludovic Courtès
2012-07-07build-system/gnu: Support parallel builds and tests....* guix/build/gnu-build-system.scm (build): Add `parallel-build?' parameter; honor it and $NIX_BUILD_CORES. (check): Add `parallel-tests?' parameter; likewise. * guix/build-system/gnu.scm (gnu-build): Add `parallel-build?' and `parallel-tests?' parameters. [builder]: Inherit them. Ludovic Courtès
2012-07-05build-system/gnu: Add a `patch' phase....* guix/build/gnu-build-system.scm (patch): New procedure. (%standard-phases): Add `patch'. * guix/build-system/gnu.scm (gnu-build): Add `patches' and `patch-flags' parameters. Pass them on. Ludovic Courtès
2012-07-05build-system/gnu: Make the builder's module list a parameter....* guix/build-system/gnu.scm (gnu-build): Add a `modules' keyword parameter; use it. Ludovic Courtès
2012-06-28build-system/gnu: Add GNU Awk to the standard inputs....* guix/build-system/gnu.scm (%standard-inputs): Add GNU Awk. Ludovic Courtès
2012-06-28Introduce `compile-time-value' and use it....* guix/utils.scm (compile-time-value): New macro. (%nixpkgs-directory): Use it. * guix/build-system/gnu.scm (%standard-inputs): Likewise. Ludovic Courtès
2012-06-28build-system/gnu: Have `configure-flags' and `make-flags' evaluated....* guix/build-system/gnu.scm (gnu-build): Double-quote the default value of MAKE-FLAGS and CONFIGURE-FLAGS. Don't quote them in BUILDER. Ludovic Courtès
2012-06-27Abstract build systems....* Makefile.am (MODULES): Add `guix/build-system.scm' and `guix/build-system/gnu.scm'. Remove `guix/gnu-build-system.scm'. * guix/build-system.scm: New file. * guix/gnu-build-system.scm: Rename to... * guix/build-system/gnu.scm: ... this. (gnu-build-system): New variable. * tests/builders.scm: Adjust `use-module' clauses. ("gnu-build-system"): New test. Ludovic Courtès