diff options
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 ffd3f7007e..d76a2f5e03 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 @@ -503,6 +504,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." @@ -1752,6 +1784,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)) | 
