summaryrefslogtreecommitdiff
path: root/guix/scripts/lint.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix/scripts/lint.scm')
-rw-r--r--guix/scripts/lint.scm28
1 files changed, 27 insertions, 1 deletions
diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index 14ac8cba81..2a618c9451 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -24,6 +24,7 @@
#:use-module (guix download)
#:use-module (guix ftp-client)
#:use-module (guix packages)
+ #:use-module (guix licenses)
#:use-module (guix records)
#:use-module (guix ui)
#:use-module (guix utils)
@@ -56,7 +57,15 @@
check-derivation
check-home-page
check-source
- check-formatting))
+ check-license
+ check-formatting
+
+ %checkers
+ lint-checker
+ lint-checker?
+ lint-checker-name
+ lint-checker-description
+ lint-checker-check))
;;;
@@ -511,6 +520,16 @@ descriptions maintained upstream."
(format #f (_ "failed to create derivation: ~s~%")
args)))))
+(define (check-license package)
+ "Warn about type errors of the 'license' field of PACKAGE."
+ (match (package-license package)
+ ((or (? license?)
+ ((? license?) ...))
+ #t)
+ (x
+ (emit-warning package (_ "invalid license field")
+ 'license))))
+
;;;
;;; Source code formatting.
@@ -613,6 +632,13 @@ them for PACKAGE."
(description "Validate home-page URLs")
(check check-home-page))
(lint-checker
+ (name 'license)
+ ;; TRANSLATORS: <license> is the name of a data type and must not be
+ ;; translated.
+ (description "Make sure the 'license' field is a <license> \
+or a list thereof")
+ (check check-license))
+ (lint-checker
(name 'source)
(description "Validate source URLs")
(check check-source))