[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/05: lint: 'check-derivation' tries all the package's supported system
From: |
Ludovic Courtès |
Subject: |
02/05: lint: 'check-derivation' tries all the package's supported systems. |
Date: |
Tue, 20 Nov 2018 12:40:00 -0500 (EST) |
civodul pushed a commit to branch master
in repository guix.
commit 3b32891b12ee18c57b0fc346ed7dce8b6976066b
Author: Ludovic Courtès <address@hidden>
Date: Tue Nov 20 18:25:13 2018 +0100
lint: 'check-derivation' tries all the package's supported systems.
This allows us to catch architecture-specific evaluation failures.
* guix/scripts/lint.scm (check-derivation): Move body into...
[try]: ... this. New procedure.
Call 'try' for each supported system of PACKAGE.
---
guix/scripts/lint.scm | 54 ++++++++++++++++++++++++++++-----------------------
tests/lint.scm | 4 ++--
2 files changed, 32 insertions(+), 26 deletions(-)
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index e477bf0..e8cf2dc 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -774,30 +774,36 @@ descriptions maintained upstream."
(define (check-derivation package)
"Emit a warning if we fail to compile PACKAGE to a derivation."
- (catch #t
- (lambda ()
- (guard (c ((nix-protocol-error? c)
- (emit-warning package
- (format #f (G_ "failed to create derivation:
~a")
- (nix-protocol-error-message c))))
- ((message-condition? c)
- (emit-warning package
- (format #f (G_ "failed to create derivation:
~a")
- (condition-message c)))))
- (with-store store
- ;; Disable grafts since it can entail rebuilds.
- (package-derivation store package #:graft? #f)
-
- ;; If there's a replacement, make sure we can compute its
- ;; derivation.
- (match (package-replacement package)
- (#f #t)
- (replacement
- (package-derivation store replacement #:graft? #f))))))
- (lambda args
- (emit-warning package
- (format #f (G_ "failed to create derivation: ~s~%")
- args)))))
+ (define (try system)
+ (catch #t
+ (lambda ()
+ (guard (c ((nix-protocol-error? c)
+ (emit-warning package
+ (format #f (G_ "failed to create ~a
derivation: ~a")
+ system
+ (nix-protocol-error-message c))))
+ ((message-condition? c)
+ (emit-warning package
+ (format #f (G_ "failed to create ~a
derivation: ~a")
+ system
+ (condition-message c)))))
+ (with-store store
+ ;; Disable grafts since it can entail rebuilds.
+ (package-derivation store package system #:graft? #f)
+
+ ;; If there's a replacement, make sure we can compute its
+ ;; derivation.
+ (match (package-replacement package)
+ (#f #t)
+ (replacement
+ (package-derivation store replacement system
+ #:graft? #f))))))
+ (lambda args
+ (emit-warning package
+ (format #f (G_ "failed to create ~a derivation: ~s")
+ system args)))))
+
+ (for-each try (package-supported-systems package)))
(define (check-license package)
"Warn about type errors of the 'license' field of PACKAGE."
diff --git a/tests/lint.scm b/tests/lint.scm
index ab0e8b9..300153e 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Cyril Roelandt <address@hidden>
;;; Copyright © 2014, 2015, 2016 Eric Bavier <address@hidden>
-;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <address@hidden>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <address@hidden>
;;; Copyright © 2015, 2016 Mathieu Lirzin <address@hidden>
;;; Copyright © 2016 Hartmut Goebel <address@hidden>
;;; Copyright © 2017 Alex Kost <address@hidden>
@@ -365,7 +365,7 @@
(arguments
'(#:imported-modules (invalid-module))))))
(check-derivation pkg)))
- "failed to create derivation")))
+ "failed to create")))
(test-assert "license: invalid license"
(string-contains