From ce5d658c5c24ccd394818ba892d43ea4c424ec24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 11 Jul 2012 17:26:43 +0200 Subject: [PATCH] Add `nixpkgs-derivation*'; use it in the distro. * guix/utils.scm (nixpkgs-derivation*): New macro. * distro/base.scm: Use it instead of `nixpkgs-derivation'. --- distro/base.scm | 20 ++++++++++---------- guix/utils.scm | 5 +++++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/distro/base.scm b/distro/base.scm index 7b5a2f8b98..935f313da3 100644 --- a/distro/base.scm +++ b/distro/base.scm @@ -211,7 +211,7 @@ faster algorithms.") "0649qfpzkswgcj9vqkkr9rn4nlcx80faxpyqscy2k1x9c94f93dk")))) (build-system gnu-build-system) (native-inputs `(("m4" ,m4) - ("perl" ,(nixpkgs-derivation "perl")))) + ("perl" ,(nixpkgs-derivation* "perl")))) (description "GNU Libtool, a generic library support script") (long-description "GNU libtool is a generic library support script. Libtool hides the @@ -290,7 +290,7 @@ internal in-memory representation.") (inputs `(("patch/snarf" ,(search-path %load-path "distro/guile-1.8-cpp-4.5.patch")) ("gawk" ,gawk) - ("readline" ,(nixpkgs-derivation "readline")))) + ("readline" ,(nixpkgs-derivation* "readline")))) ;; Since `guile-1.8.pc' has "Libs: ... -lgmp -lltdl", these must be ;; propagated. @@ -320,10 +320,10 @@ extensible. It supports many SRFIs.") (base32 "000ng5qsq3cl1k35jvzvhwxj92wx4q87745n2fppkd4irh58vv5l")))) (build-system gnu-build-system) - (native-inputs `(("xz" ,(nixpkgs-derivation "xz")) - ("pkgconfig" ,(nixpkgs-derivation "pkgconfig")))) - (inputs `(("libffi" ,(nixpkgs-derivation "libffi")) - ("readline" ,(nixpkgs-derivation "readline")))) + (native-inputs `(("xz" ,(nixpkgs-derivation* "xz")) + ("pkgconfig" ,(nixpkgs-derivation* "pkgconfig")))) + (inputs `(("libffi" ,(nixpkgs-derivation* "libffi")) + ("readline" ,(nixpkgs-derivation* "readline")))) (propagated-inputs `( ;; These ones aren't normally needed here, but since `libguile-2.0.la' @@ -335,7 +335,7 @@ extensible. It supports many SRFIs.") ;; The headers and/or `guile-2.0.pc' refer to these packages, so they ;; must be propagated. - ("bdw-gc" ,(nixpkgs-derivation "boehmgc")) + ("bdw-gc" ,(nixpkgs-derivation* "boehmgc")) ("gmp" ,gmp))) (self-native-input? #t) @@ -366,8 +366,8 @@ or 2.0." (base32 "1svlyk5pm4fsdp2g7n6qffdl6fdggxnlicj0jn9s4lxd63gzxy1n")))) (build-system gnu-build-system) - (native-inputs `(("pkgconfig" ,(nixpkgs-derivation "pkgconfig")) - ("gperf" ,(nixpkgs-derivation "gperf")))) + (native-inputs `(("pkgconfig" ,(nixpkgs-derivation* "pkgconfig")) + ("gperf" ,(nixpkgs-derivation* "gperf")))) (inputs `(("guile" ,guile))) (description "Guile-Reader, a simple framework for building readers for GNU Guile") @@ -462,7 +462,7 @@ many readers as needed).") "12gkyqrn0kaa8xq7sc7v3wm407pz2fxg9ngc75aybhi5z825b9vq")))) (build-system gnu-build-system) ; actually, just a makefile (outputs '("out" "doc")) - (inputs `(("ghostscript" ,(nixpkgs-derivation "ghostscript")))) + (inputs `(("ghostscript" ,(nixpkgs-derivation* "ghostscript")))) (arguments `(#:modules ((guix build utils) (guix build gnu-build-system) (srfi srfi-1)) ; we need SRFI-1 diff --git a/guix/utils.scm b/guix/utils.scm index 3d92bac9cc..66563c727e 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -43,6 +43,7 @@ %nixpkgs-directory nixpkgs-derivation + nixpkgs-derivation* define-record-type* compile-time-value @@ -457,6 +458,10 @@ starting from the right of S." (not (eof-object? l)) l))) +(define-syntax-rule (nixpkgs-derivation* attribute) + "Evaluate the given Nixpkgs derivation at compile-time." + (compile-time-value (nixpkgs-derivation attribute))) + ;;; ;;; Miscellaneous.