diff --git a/guix/lint.scm b/guix/lint.scm index 1d097b1682..7a2bf5a347 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -740,11 +740,18 @@ (define (check-source package) "Emit a warning if PACKAGE has an invalid 'source' field, or if that 'source' is not reachable." (define (warnings-for-uris uris) - (filter-map (lambda (uri) - (match (validate-uri uri package 'source) - (#t #f) - ((? lint-warning? warning) warning))) - uris)) + (let loop ((uris uris) + (warnings '())) + (match uris + (() + (reverse warnings)) + ((uri rest ...) + (match (validate-uri uri package 'source) + (#t + ;; We found a working URL, so stop right away. + '()) + ((? lint-warning? warning) + (loop rest (cons warning warnings)))))))) (let ((origin (package-source package))) (if (and origin