summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-07-01 17:32:03 +0200
committerLudovic Courtès <ludo@gnu.org>2012-07-02 15:59:30 +0200
commit03671375b6eda0d47452780d91fd3af7bde791aa (patch)
treeb179e999ab03cc75bbd1b32a7de2f2fa104b0e9e
parenta1232d0cb886c96b721d3f83aefdbc921bd95bc3 (diff)
downloadguix-03671375b6eda0d47452780d91fd3af7bde791aa.tar.gz
packages: Allow the `arguments' field to be a procedure.
* guix/packages.scm (package-derivation): When ARGS is a procedure, call
  (ARGS SYSTEM).

* distro/base.scm (gawk)[arguments]: Turn into a procedure, to disable
  tests on Cygwin.
-rw-r--r--distro/base.scm10
-rw-r--r--guix/packages.scm4
2 files changed, 10 insertions, 4 deletions
diff --git a/distro/base.scm b/distro/base.scm
index c9d2ae8033..9570b6d684 100644
--- a/distro/base.scm
+++ b/distro/base.scm
@@ -62,9 +62,13 @@ handlers, distributed shared memory, and more.")
              (nix-base32-string->bytevector
               "0sss7rhpvizi2a88h6giv0i7w5h07s2fxkw3s6n1hqvcnhrfgbb0"))))
    (build-system gnu-build-system)
-   (arguments '()
-              ;; TODO: disable tests on Cygwin
-              )
+   (arguments (case-lambda
+                ((system)
+                 (if (string=? system "i686-cygwin")
+                     '(#:tests? #f)      ; work around test failure on Cygwin
+                     '()))
+                ((system cross-system)
+                 '())))
    (inputs `(("libsigsegv" ,libsigsegv)             ; headers
              ("libsigsegv/lib" ,libsigsegv "lib"))) ; library
    (home-page "http://www.gnu.org/software/gawk/")
diff --git a/guix/packages.scm b/guix/packages.scm
index 3f8f880b29..0d5823ad5d 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -171,7 +171,9 @@ etc."
               (package-source-derivation store source)
               inputs
               #:outputs outputs #:system system
-              args)))))
+              (if (procedure? args)
+                  (args system)
+                  args))))))
 
 (define* (package-cross-derivation store package)
   ;; TODO