From 9a35e4c5bd5c4148f32336c3a156d14a895fc5dd Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 11 Nov 2022 12:26:41 +0100 Subject: gnu-maintenance: 'gnu' updater prefers tarball with same compression. Fixes . Previously 'guix build make --with-latest=make' would pick ".tar.lz", rather than "tar.gz", because "tar.lz" happened to come first in the 'urls' field. * guix/gnu-maintenance.scm (latest-gnu-release)[archive-type] [better-tarball?]: New variables. Sort TARBALLS according to BETTER-TARBALL?. --- guix/gnu-maintenance.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'guix') diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 10a6ec05f1..a1b73e6316 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -596,6 +596,12 @@ ftp.gnu.org. This method does not rely on FTP access at all; instead, it browses the file list available from %GNU-FILE-LIST-URI over HTTP(S)." + (define archive-type + (package-archive-type package)) + + (define (better-tarball? tarball1 tarball2) + (string=? (file-extension tarball1) archive-type)) + (let-values (((server directory) (ftp-server/directory package)) ((name) @@ -626,7 +632,9 @@ list available from %GNU-FILE-LIST-URI over HTTP(S)." (string-append "mirror://gnu/" (string-drop file (string-length "/gnu/")))) - tarballs)) + ;; Sort so that the tarball with the same compression + ;; format as currently used in PACKAGE comes first. + (sort tarballs better-tarball?))) (signature-urls (map (cut string-append <> ".sig") urls))))) (() #f))))) -- cgit v1.2.3