guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

05/05: lint: 'inputs-should-be-native' checks for intltool, itstool and


From: Ludovic Courtès
Subject: 05/05: lint: 'inputs-should-be-native' checks for intltool, itstool and glib:bin.
Date: Sun, 24 Jul 2016 17:55:53 +0000 (UTC)

civodul pushed a commit to branch master
in repository guix.

commit 99fe215cc1c511a82e326727c6a0d193d246a387
Author: David Craven <address@hidden>
Date:   Fri Jul 22 19:50:54 2016 +0200

    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 <address@hidden>
---
 guix/scripts/lint.scm |   25 ++++++++++++++++++-------
 tests/lint.scm        |   12 +++++++++++-
 2 files changed, 29 insertions(+), 8 deletions(-)

diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index d5e9197..8aab1fe 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 ce751c4..770f43e 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]