guix-commits
[Top][All Lists]
Advanced

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

02/03: gnu-maintenance: Really find the latest GNOME releases.


From: Ludovic Courtès
Subject: 02/03: gnu-maintenance: Really find the latest GNOME releases.
Date: Wed, 09 Dec 2015 21:18:55 +0000

civodul pushed a commit to branch master
in repository guix.

commit 873d0ff2cddfbd260e8ae3a76cb2731a6139eb6b
Author: Ludovic Courtès <address@hidden>
Date:   Wed Dec 9 21:59:32 2015 +0100

    gnu-maintenance: Really find the latest GNOME releases.
    
    Reported by Efraim Flashner <address@hidden>
    at <https://lists.gnu.org/archive/html/guix-devel/2015-12/msg00202.html>.
    
    * guix/gnu-maintenance.scm (latest-ftp-release): Call KEEP-FILE? on
    directories too.
    (latest-gnome-release)[even-minor-version?]: Protect again MINOR being
    false; change pattern to match VERSION with two or more numbers.  Remove
    use of 'version-major+minor'.
    [even-numbered-tarball?]: Rename to...
    [even-numbered?]: ... this.  Use 'package-name->name+version'.  When
    VERSION is #f, check NAME.
---
 guix/gnu-maintenance.scm |   25 +++++++++++++------------
 1 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm
index 910270f..96fbfb7 100644
--- a/guix/gnu-maintenance.scm
+++ b/guix/gnu-maintenance.scm
@@ -328,8 +328,8 @@ pairs.  Example: (\"mit-scheme-9.0.1\" . 
\"/gnu/mit-scheme/stable.pkg/9.0.1\").
 under DIRECTORY, or #f.  Use FTP-OPEN and FTP-CLOSE to open (resp. close) FTP
 connections; this can be useful to reuse connections.
 
-KEEP-FILE? is a predicate to decide whether to consider a given file (source
-tarball) as a valid candidate based on its name.
+KEEP-FILE? is a predicate to decide whether to enter a directory and to
+consider a given file (source tarball) as a valid candidate based on its name.
 
 FILE->SIGNATURE must be a procedure; it is passed a source file URL and must
 return the corresponding signature URL, or #f it signatures are unavailable."
@@ -376,7 +376,7 @@ return the corresponding signature URL, or #f it signatures 
are unavailable."
                                   (("w32" 'directory . _)
                                    #f)
                                   (((? contains-digit? dir) 'directory . _)
-                                   dir)
+                                   (and (keep-file? dir) dir))
                                   (_ #f))
                                 entries))
 
@@ -477,17 +477,18 @@ elpa.gnu.org, and all the GNOME packages."
     (char-set-complement (char-set #\.)))
 
   (define (even-minor-version? version)
-    (match (string-tokenize (version-major+minor version)
-                            %not-dot)
-      (((= string->number major) (= string->number minor))
-       (even? minor))
+    (match (string-tokenize version %not-dot)
+      (((= string->number major) (= string->number minor) . rest)
+       (and minor (even? minor)))
       (_
        #t)))                                      ;cross fingers
 
-  (define (even-numbered-tarball? file)
-    (let-values (((name version) (gnu-package-name->name+version file)))
-      (and version
-           (even-minor-version? version))))
+  (define (even-numbered? file)
+    ;; Return true if FILE somehow denotes an even-numbered file name.  The
+    ;; trick here is that we want this to match both directories such as
+    ;; "3.18.6" and actual file names such as "gtk+-3.18.6.tar.bz2".
+    (let-values (((name version) (package-name->name+version file)))
+      (even-minor-version? (or version name))))
 
   (false-if-ftp-error
    (latest-ftp-release package
@@ -501,7 +502,7 @@ elpa.gnu.org, and all the GNOME packages."
                        ;; <https://www.gnome.org/gnome-3/source/> explains
                        ;; that odd minor version numbers represent development
                        ;; releases, which we are usually not interested in.
-                       #:keep-file? even-numbered-tarball?
+                       #:keep-file? even-numbered?
 
                        ;; ftp.gnome.org provides no signatures, only
                        ;; checksums.



reply via email to

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