aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-01-07 22:23:50 +0100
committerLudovic Courtès <ludo@gnu.org>2013-01-07 22:23:50 +0100
commitab8ed44fcee9208ecb8d61a5060aa204a6fb6f06 (patch)
tree37219008a21bf4d374c89ddfa6df62d1745a1110
parent708d0ceb5067f81301d0f584142bfa733fbf0ff1 (diff)
downloadguix-ab8ed44fcee9208ecb8d61a5060aa204a6fb6f06.tar
guix-ab8ed44fcee9208ecb8d61a5060aa204a6fb6f06.tar.gz
snix: Gracefully handle `null' in Nix build inputs.
* guix/snix.scm (snix-derivation->guix-package)[convert-inputs]: Gracefully handle `null' as an input.
-rw-r--r--guix/snix.scm23
1 files changed, 13 insertions, 10 deletions
diff --git a/guix/snix.scm b/guix/snix.scm
index c90893bdfe..0196ce925b 100644
--- a/guix/snix.scm
+++ b/guix/snix.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2010, 2011, 2012 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2010, 2011, 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -366,15 +366,18 @@ location of DERIVATION."
attribute-value)
(#f
'())
- ((('derivation _ _ (attributes ...)) ...)
- (map (lambda (attrs)
- (let* ((full-name (attribute-value
- (find-attribute-by-name "name" attrs)))
- (name (package-name->name+version full-name)))
- (list name
- (list 'unquote
- (string->symbol name)))))
- attributes))))
+ ((inputs ...)
+ ;; Inputs can be either derivations or the null value.
+ (filter-map (match-lambda
+ (('derivation _ _ (attributes ...))
+ (let* ((full-name
+ (attribute-value
+ (find-attribute-by-name "name" attributes)))
+ (name (package-name->name+version full-name)))
+ (list name
+ (list 'unquote (string->symbol name)))))
+ ('null #f))
+ inputs))))
(define (maybe-inputs guix-name inputs)
(match inputs