aboutsummaryrefslogtreecommitdiff
path: root/guix/gnu-maintenance.scm
diff options
context:
space:
mode:
authorMaxime Devos <maximedevos@telenet.be>2022-09-11 16:23:37 +0200
committerChristopher Baines <mail@cbaines.net>2022-09-17 19:09:45 +0200
commitc967d1153cae419e4acbe0dbed8f558d95ced0e3 (patch)
tree6fcb5746d4352226e0695aa8718c141a433341c8 /guix/gnu-maintenance.scm
parentc00e1c87f219ab9947204af53afff6ccf812fa91 (diff)
downloadguix-c967d1153cae419e4acbe0dbed8f558d95ced0e3.tar
guix-c967d1153cae419e4acbe0dbed8f558d95ced0e3.tar.gz
gnu-maintenance: Support // URLs in latest-html-release.
This makes "./pre-inst-env guix refresh -u" download the release tarball from the right place -- previously, it downloaded from https://www.libreoffice.org//download.documentfoundation.org/libreoffice/src/7.4.0/libreoffice-7.4.0.3.tar.xz?idx=1 whereas it should download from https://download.documentfoundation.org/libreoffice/src/7.4.0/libreoffice-7.4.0.3.tar.xz?idx=1 instead. * guix/gnu-maintenance.scm (latest-html-release)[url-release]: Adjust computation in the case of an absolute URI-reference without a scheme. * tests/gnu-maintenance.scm ("latest-html-release, scheme-less URIs"): Test it. Signed-off-by: Christopher Baines <mail@cbaines.net>
Diffstat (limited to 'guix/gnu-maintenance.scm')
-rw-r--r--guix/gnu-maintenance.scm7
1 files changed, 7 insertions, 0 deletions
diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm
index e7edbf6656..1ffa408666 100644
--- a/guix/gnu-maintenance.scm
+++ b/guix/gnu-maintenance.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
+;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -499,6 +500,12 @@ are unavailable."
(base-url (string-append base-url directory))
(url (cond ((and=> (string->uri url) uri-scheme) ;full URL?
url)
+ ;; full URL, except for URI scheme. Reuse the URI
+ ;; scheme of the document that contains the link.
+ ((string-prefix? "//" url)
+ (string-append
+ (symbol->string (uri-scheme (string->uri base-url)))
+ ":" url))
((string-prefix? "/" url) ;absolute path?
(let ((uri (string->uri base-url)))
(uri->string