mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu-maintenance: Add support to rewrite version in URL path.
Fixes <https://issues.guix.gnu.org/64015>. Fixes <https://issues.guix.gnu.org/65304>. Previously, the generic HTML updater would only look for the list of files found at the parent of its current source URL, ignoring that the URL may embed the version elsewhere in its path. This could cause 'guix refresh' to report no updates available, while in fact there were, such as for 'libuv'. * guix/gnu-maintenance.scm (strip-trailing-slash): New procedure. (%version-rx): New variable. (rewrite-url): New procedure. (import-html-release): New rewrite-url? argument. When true, use the above procedure. (import-html-updatable-release): Call import-html-release with #:rewrite-url set to #t. * tests/gnu-maintenance.scm ("rewrite-url, to-version specified") ("rewrite-url, without to-version"): New tests.
This commit is contained in:
parent
6fb8cc312d
commit
6953fb9241
2 changed files with 142 additions and 3 deletions
|
@ -147,4 +147,47 @@
|
|||
(equal? (list expected-signature-url)
|
||||
(upstream-source-signature-urls update))))))
|
||||
|
||||
(test-equal "rewrite-url, to-version specified"
|
||||
"https://download.qt.io/official_releases/qt/6.5/6.5.2/\
|
||||
submodules/qtbase-everywhere-src-6.5.2.tar.xz"
|
||||
(rewrite-url "https://download.qt.io/official_releases/qt/6.3/6.3.2/\
|
||||
submodules/qtbase-everywhere-src-6.3.2.tar.xz" "6.3.2" #:to-version "6.5.2"))
|
||||
|
||||
(test-equal "rewrite-url, without to-version"
|
||||
"https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz"
|
||||
(with-http-server
|
||||
;; First reply, crawling https://dist.libuv.org/dist/.
|
||||
`((200 "\
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head><title>Index of dist</title></head>
|
||||
<body>
|
||||
<a href=\"../\">../</a>
|
||||
<a href=\"v1.44.0/\" title=\"v1.44.0/\">v1.44.0/</a>
|
||||
<a href=\"v1.44.1/\" title=\"v1.44.1/\">v1.44.1/</a>
|
||||
<a href=\"v1.44.2/\" title=\"v1.44.2/\">v1.44.2/</a>
|
||||
<a href=\"v1.45.0/\" title=\"v1.45.0/\">v1.45.0/</a>
|
||||
<a href=\"v1.46.0/\" title=\"v1.46.0/\">v1.46.0/</a>
|
||||
</body>
|
||||
</html>")
|
||||
;; Second reply, crawling https://dist.libuv.org/dist/v1.46.0/.
|
||||
(200 "\
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head><title>Index of dist/v1.46.0</title></head>
|
||||
<body>
|
||||
<a href=\"../\">../</a>
|
||||
<a href=\"libuv-v1.46.0-dist.tar.gz\" title=\"libuv-v1.46.0-dist.tar.gz\">
|
||||
libuv-v1.46.0-dist.tar.gz</a>
|
||||
<a href=\"libuv-v1.46.0-dist.tar.gz.sign\"
|
||||
title=\"libuv-v1.46.0-dist.tar.gz.sign\">libuv-v1.46.0-dist.tar.gz.sign</a>
|
||||
<a href=\"libuv-v1.46.0.tar.gz\" title=\"libuv-v1.46.0.tar.gz\">
|
||||
libuv-v1.46.0.tar.gz</a>
|
||||
<a href=\"libuv-v1.46.0.tar.gz.sign\" title=\"libuv-v1.46.0.tar.gz.sign\">
|
||||
libuv-v1.46.0.tar.gz.sign</a>
|
||||
</body>
|
||||
</html>"))
|
||||
(rewrite-url "https://dist.libuv.org/dist/v1.45.0/libuv-v1.45.0.tar.gz"
|
||||
"1.45.0")))
|
||||
|
||||
(test-end)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue