summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-09-08 12:20:28 +0200
committerLudovic Courtès <ludo@gnu.org>2022-09-08 16:22:21 +0200
commit392e97ed0800ff3ed56bfe8cd54350a8bc2f9817 (patch)
treee807178445fd420c26abd03de99a8735008fc8fd
parent69d72c553feb69a3256266bcf9d49a72c70ed660 (diff)
downloadguix-392e97ed0800ff3ed56bfe8cd54350a8bc2f9817.tar.gz
import: gnome: Reject version strings such as "43.alpha".
Reported by Maxim Cournoyer.
This is a followup to 61b63e7fa73be8828af2b36d196c3676c974e119.

* guix/import/gnome.scm (latest-gnome-release)[even-minor-version?]:
Reject VERSION is the minor or micro part is not an integer.
-rw-r--r--guix/import/gnome.scm14
1 files changed, 8 insertions, 6 deletions
diff --git a/guix/import/gnome.scm b/guix/import/gnome.scm
index 3915f19e84..49ad7169fd 100644
--- a/guix/import/gnome.scm
+++ b/guix/import/gnome.scm
@@ -62,14 +62,16 @@ not be determined."
 
   (define (even-minor-version? version)
     (match (string-tokenize version %not-dot)
-      (((= string->number major) (= string->number minor) micro)
+      (((= string->number major) (= string->number minor) (= string->number micro))
        ;; This is for things like GLib, with version strings like "2.72.3".
-       (and minor (even? minor)))
-      (((= string->number major) . _)
+       (and minor (even? minor) micro))
+      (((= string->number major) (= string->number minor))
        ;; GNOME applications have version strings like "42.1" (only two
-       ;; integers) and are not subject to the odd/even policy.  MAJOR should
-       ;; be a valid number though.
-       major)))
+       ;; integers) and are not subject to the odd/even policy.  MAJOR and
+       ;; MINOR should be valid numbers though; "43.alpha" is rejected.
+       (and major minor))
+      (_
+       #f)))
 
   (define upstream-name
     ;; Some packages like "NetworkManager" have camel-case names.