Subject: bug#26802: [PATCH 3/4] guix: lint: Check for version in source file name.

From: Arun Isaac <[email-masked]>
Date: Wed, 17 May 2017 22:22:45 +0530

* guix/scripts/lint.scm (check-source-file-name): Check for version in source
  file name.
---
 guix/scripts/lint.scm | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm
index 1d930d8c0..b6f73d0e6 100644
--- a/guix/scripts/lint.scm
+++ b/guix/scripts/lint.scm
@@ -667,20 +667,22 @@ descriptions maintained upstream."
 (define (check-source-file-name package)
   "Emit a warning if PACKAGE's origin has no meaningful file name."
   (define (origin-file-name-valid? origin)
-    ;; Return #f if the source file name contains only a version or is #f;
-    ;; indicates that the origin needs a 'file-name' field.
+    ;; Return #f if the source file name is #f, contains only a version, or
+    ;; does not contain a version; indicates that the origin needs a
+    ;; 'file-name' field.
     (let ((file-name (origin-actual-file-name origin))
           (version (package-version package)))
       (and file-name
            ;; Common in many projects is for the filename to start
            ;; with a "v" followed by the version,
            ;; e.g. "v3.2.0.tar.gz".
-           (not (string-match (string-append "^v?" version) file-name)))))
+           (not (string-match (string-append "^v?" version) file-name))
+           (string-match version file-name))))
 
   (let ((origin (package-source package)))
     (unless (or (not origin) (origin-file-name-valid? origin))
       (emit-warning package
-                    (G_ "the source file name should contain the package name")
+                    (G_ "the source file name should contain the package name and version")
                     'source))))
 
 (define (check-mirror-url package)
-- 
2.12.2