diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index c7972d13a5..0390df59f1 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -595,7 +595,7 @@ list available from %GNU-FILE-LIST-URI over HTTP(S)." (define %package-name-rx ;; Regexp for a package name, e.g., "foo-X.Y". Since TeXmacs uses ;; "TeXmacs-X.Y-src", the `-src' suffix is allowed. - (make-regexp "^(.*)[-_](([0-9]|\\.)+)(-src)?")) + (make-regexp "^(.*)[-_](([0-9]|\\.)+)(-src|\\.src|\\.orig)?")) (define (gnu-package-name->name+version name+version) "Return the package name and version number extracted from NAME+VERSION." diff --git a/tests/gnu-maintenance.scm b/tests/gnu-maintenance.scm index 59e79905c5..837b80063a 100644 --- a/tests/gnu-maintenance.scm +++ b/tests/gnu-maintenance.scm @@ -19,7 +19,8 @@ (define-module (test-gnu-maintenance) #:use-module (guix gnu-maintenance) #:use-module (srfi srfi-1) - #:use-module (srfi srfi-64)) + #:use-module (srfi srfi-64) + #:use-module (ice-9 match)) (test-begin "gnu-maintenance") @@ -31,7 +32,9 @@ ("icecat" "icecat-38.4.0-gnu1.tar.bz2") ("mit-scheme" "mit-scheme-9.2.tar.gz") ("mediainfo" "mediainfo_20.09.tar.xz") - ("exiv2" "exiv2-0.27.3-Source.tar.gz"))) + ("exiv2" "exiv2-0.27.3-Source.tar.gz") + ("mpg321" "mpg321_0.3.2.orig.tar.gz") + ("bvi" "bvi-1.4.1.src.tar.gz"))) (every (lambda (project+file) (not (apply release-file? project+file))) '(("guile" "guile-www-1.1.1.tar.gz") @@ -40,4 +43,15 @@ ("mit-scheme" "mit-scheme-9.2-doc-pdf.tar.gz") ("gnutls" "gnutls-3.2.18-w32.zip"))))) +(test-assert "tarball->version" + (let ((tarball->version (@@ (guix gnu-maintenance) tarball->version))) + (every (match-lambda + ((file version) + (equal? (tarball->version file) version))) + '(("coreutils-8.32.tar.gz" "8.32") + ("mediainfo_20.09.tar.xz" "20.09") + ("exiv2-0.27.3-Source.tar.gz" "0.27.3") + ("mpg321_0.3.2.orig.tar.gz" "0.3.2") + ("bvi-1.4.1.src.tar.gz" "1.4.1"))))) + (test-end)