diff options
author | David Craven <david@craven.ch> | 2016-07-22 19:50:54 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-07-24 19:54:15 +0200 |
commit | 99fe215cc1c511a82e326727c6a0d193d246a387 (patch) | |
tree | 63adf0c588578a736396de4b1a5d0b2a5dc0d4c9 | |
parent | 0f53b886e27ac6ea340d19f3627c273c7f82016e (diff) | |
download | guix-99fe215cc1c511a82e326727c6a0d193d246a387.tar guix-99fe215cc1c511a82e326727c6a0d193d246a387.tar.gz |
lint: 'inputs-should-be-native' checks for intltool, itstool and glib:bin.
* guix/scripts/lint.scm (check-inputs-should-be-native): Warn when intltool,
itstool or glib:bin isn't a native-input.
* tests/lint.scm (inputs: glib:bin is probably a native input): Add test.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r-- | guix/scripts/lint.scm | 25 | ||||
-rw-r--r-- | tests/lint.scm | 12 |
2 files changed, 29 insertions, 8 deletions
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index d5e9197cc9..8aab1febb2 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -203,14 +203,25 @@ by two spaces; possible infraction~p at ~{~a~^, ~}") (define (check-inputs-should-be-native package) ;; Emit a warning if some inputs of PACKAGE are likely to belong to its ;; native inputs. - (let ((inputs (package-inputs package))) + (let ((linted package) + (inputs (package-inputs package)) + (native-inputs '("pkg-config" "glib:bin" "intltool" "itstool"))) (match inputs - (((labels packages . _) ...) - (when (member "pkg-config" - (map package-name (filter package? packages))) - (emit-warning package - (_ "pkg-config should probably be a native input") - 'inputs)))))) + (((labels packages . outputs) ...) + (for-each (lambda (package output) + (when (package? package) + (let ((input (string-append + (package-name package) + (if (> (length output) 0) + (string-append ":" (car output)) + "")))) + (when (member input native-inputs) + (emit-warning linted + (format #f (_ "'~a' should probably \ +be a native input") + input) + 'inputs))))) + packages outputs))))) (define (package-name-regexp package) "Return a regexp that matches PACKAGE's name as a word at the beginning of a diff --git a/tests/lint.scm b/tests/lint.scm index ce751c42c9..770f43e57f 100644 --- a/tests/lint.scm +++ b/tests/lint.scm @@ -31,6 +31,7 @@ #:use-module (guix scripts lint) #:use-module (guix ui) #:use-module (gnu packages) + #:use-module (gnu packages glib) #:use-module (gnu packages pkg-config) #:use-module (web server) #:use-module (web server http) @@ -319,7 +320,16 @@ string) on HTTP requests." (let ((pkg (dummy-package "x" (inputs `(("pkg-config" ,pkg-config)))))) (check-inputs-should-be-native pkg))) - "pkg-config should probably be a native input"))) + "'pkg-config' should probably be a native input"))) + +(test-assert "inputs: glib:bin is probably a native input" + (->bool + (string-contains + (with-warnings + (let ((pkg (dummy-package "x" + (inputs `(("glib" ,glib "bin")))))) + (check-inputs-should-be-native pkg))) + "'glib:bin' should probably be a native input"))) (test-assert "patches: file names" (->bool |