diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-12-13 16:29:21 -0500 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-12-13 16:29:21 -0500 |
commit | 6dffced09ecda024e0884e352778c221ad066fd6 (patch) | |
tree | 1707e8d8df4d9c47317a39ab6abbfc2ca66a6c29 /guix/lint.scm | |
parent | b603554ed044638dd40b6863d5dada59eefe03b8 (diff) | |
parent | e3196755e60ba7f1ed9d432e73f26a85e0c8893c (diff) |
Merge branch 'core-updates-frozen' into 'master'.
At last!
Diffstat (limited to 'guix/lint.scm')
-rw-r--r-- | guix/lint.scm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/guix/lint.scm b/guix/lint.scm index ac2e7b3841..8bbbe210d6 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -82,6 +82,7 @@ #:export (check-description-style check-inputs-should-be-native check-inputs-should-not-be-an-input-at-all + check-input-labels check-wrapper-inputs check-patch-file-names check-patch-headers @@ -522,6 +523,37 @@ of a package, and INPUT-NAMES, a list of package specifications such as (package-input-intersection (package-direct-inputs package) input-names)))) +(define (check-input-labels package) + "Emit a warning for labels that differ from the corresponding package name." + (define (check input-kind package-inputs) + (define (warning label name) + (make-warning package + (G_ "label '~a' does not match package name '~a'") + (list label name) + #:field input-kind)) + + (append-map (match-lambda + (((? string? label) (? package? dependency)) + (if (string=? label (package-name dependency)) + '() + (list (warning label (package-name dependency))))) + (((? string? label) (? package? dependency) output) + (let ((expected (string-append (package-name dependency) + ":" output))) + (if (string=? label expected) + '() + (list (warning label expected))))) + (_ + '())) + (package-inputs package))) + + (append-map (match-lambda + ((kind proc) + (check kind proc))) + `((native-inputs ,package-native-inputs) + (inputs ,package-inputs) + (propagated-inputs ,package-propagated-inputs)))) + (define (report-wrap-program-error package wrapper-name) "Warn that \"bash-minimal\" is missing from 'inputs', while WRAPPER-NAME requires it." @@ -1775,6 +1807,10 @@ them for PACKAGE." (description "Identify inputs that shouldn't be inputs at all") (check check-inputs-should-not-be-an-input-at-all)) (lint-checker + (name 'input-labels) + (description "Identify input labels that do not match package names") + (check check-input-labels)) + (lint-checker (name 'wrapper-inputs) (description "Make sure 'wrap-program' can finds its interpreter.") (check check-wrapper-inputs)) |