Re: [PATCH] lint: 'inputs-should-be-native' checks for intltool, itstool and glib:bin.

2016-07-24 Thread Ludovic Courtès
David Craven  skribis:

> * 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.

Neat!


[...]

> +  (((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)) ""

Identation was misleading, so I’ve fixed that.

> +  (when (member input native-inputs)
> +(emit-warning package
> +  (string-append input " should probably be a native 
> input"))

Here ‘package’ was referring to the input rather than to the package
being linted, so I’ve fixed that; I also switched to ‘format’ and made
sure the string is internationalized.

Pushed as 99fe215cc1c511a82e326727c6a0d193d246a387, thank you!

Ludo’.



[PATCH] lint: 'inputs-should-be-native' checks for intltool, itstool and glib:bin.

2016-07-22 Thread David Craven
* 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.
---
 guix/scripts/lint.scm | 20 +---
 tests/lint.scm| 10 ++
 2 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index d5e9197..586ae88 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -203,14 +203,20 @@ 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 ((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 package
+  (string-append input " should probably be a native 
input"))
+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 ce751c4..136a5a6 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)
@@ -321,6 +322,15 @@ string) on HTTP requests."
  (check-inputs-should-be-native pkg)))
  "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
(string-contains
-- 
2.9.0