diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-09-11 11:45:30 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-09-11 11:51:39 +0200 |
commit | 1b3ebae4f1b1c1f34a825200440752e6ee8c8a7a (patch) | |
tree | 1bbc8ffed964bd2e26df699575985228467892da | |
parent | e9f38113908414792ce2e5c1d3203cc8e5cb938b (diff) | |
download | guix-1b3ebae4f1b1c1f34a825200440752e6ee8c8a7a.tar.gz |
gnu-maintenance: Return all the latest tarballs, not just one.
* guix/gnu-maintenance.scm (latest-gnu-release): Return a list of matching tarballs instead of just the first one. This gives us .tar.gz, .tar.xz, etc.
-rw-r--r-- | guix/gnu-maintenance.scm | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index c903b740ba..62f817347f 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -471,18 +471,30 @@ list available from %GNU-FILE-LIST-URI over HTTP(S)." (package-upstream-name package))) (let* ((files (ftp.gnu.org-files)) (relevant (filter (lambda (file) - (and (string-contains file directory) + (and (string-prefix? "/gnu" file) + (string-contains file directory) (release-file? name (basename file)))) files))) (match (sort relevant (lambda (file1 file2) (version>? (sans-extension (basename file1)) (sans-extension (basename file2))))) - ((tarball _ ...) - (upstream-source - (package name) - (version (tarball->version tarball)) - (urls (list (string-append "mirror://gnu/" tarball))) - (signature-urls (map (cut string-append <> ".sig") urls)))) + ((and tarballs (reference _ ...)) + (let* ((version (tarball->version reference)) + (tarballs (filter (lambda (file) + (string=? (sans-extension + (basename file)) + (sans-extension + (basename reference)))) + tarballs))) + (upstream-source + (package name) + (version version) + (urls (map (lambda (file) + (string-append "mirror://gnu/" + (string-drop file + (string-length "/gnu/")))) + tarballs)) + (signature-urls (map (cut string-append <> ".sig") urls))))) (() #f))))) |