summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-07-20 01:13:46 +0200
committerLudovic Courtès <ludo@gnu.org>2019-07-20 01:32:17 +0200
commit848ae71ea7131e78a7b728863eac1056c33b2679 (patch)
tree9d83022348fec6af1c78f7a7c48d480ea40760d8
parent571f6e7f4f75a01746a0880c99e0cc33fbafbe2a (diff)
downloadguix-848ae71ea7131e78a7b728863eac1056c33b2679.tar.gz
lint: 'source' check no longer complains about unavailable mirrors.
Fixes a regression introduced in
50fc2384feb3bb2677d074f8f0deb5ae3c56b4d8.

Previously, 'guix lint -c source coreutils' would complain if one of the
mirrors was unavailable.  This is no longer the case.

* guix/lint.scm (check-source)[warnings-for-uris]: Use 'filter-map'.
Remove 'append-map' call.
Use 'append-map' here so that we can meaningfull compare the length or
URIS and that of WARNINGS.
Use '=' to compare lengths.
-rw-r--r--guix/lint.scm16
1 files changed, 8 insertions, 8 deletions
diff --git a/guix/lint.scm b/guix/lint.scm
index 2542a81a2d..12031c8c6a 100644
--- a/guix/lint.scm
+++ b/guix/lint.scm
@@ -742,21 +742,21 @@ descriptions maintained upstream."
   "Emit a warning if PACKAGE has an invalid 'source' field, or if that
 'source' is not reachable."
   (define (warnings-for-uris uris)
-    (filter lint-warning?
-            (map
-             (lambda (uri)
-               (validate-uri uri package 'source))
-             (append-map (cut maybe-expand-mirrors <> %mirrors)
-                         uris))))
+    (filter-map (lambda (uri)
+                  (match (validate-uri uri package 'source)
+                    (#t #f)
+                    ((? lint-warning? warning) warning)))
+                uris))
 
   (let ((origin (package-source package)))
     (if (and origin
              (eqv? (origin-method origin) url-fetch))
-        (let* ((uris (map string->uri (origin-uris origin)))
+        (let* ((uris     (append-map (cut maybe-expand-mirrors <> %mirrors)
+                                     (map string->uri (origin-uris origin))))
                (warnings (warnings-for-uris uris)))
 
           ;; Just make sure that at least one of the URIs is valid.
-          (if (eq? (length uris) (length warnings))
+          (if (= (length uris) (length warnings))
               ;; When everything fails, report all of WARNINGS, otherwise don't
               ;; report anything.
               ;;