Subject: bug#65773: html updater may fail when page has moved (guix refresh gambit-c)

From: Maxim Cournoyer <[email-masked]>
Date: Wed, 06 Sep 2023 00:16:30 -0400

Hi,

Attempting to 'guix refresh gambit-c' currently fails like:

--8<---------------cut here---------------start------------->8---
./pre-inst-env guix refresh gambit-c
Backtrace:
In ice-9/eval.scm:
    619:8 19 (_ #(#(#<directory (guile-user) 7f98520bfc80>)))
In guix/ui.scm:
   2323:7 18 (run-guix . _)
  2286:10 17 (run-guix-command _ . _)
In ice-9/boot-9.scm:
  1752:10 16 (with-exception-handler _ _ #:unwind? _ # _)
  1752:10 15 (with-exception-handler _ _ #:unwind? _ # _)
In guix/store.scm:
   659:37 14 (thunk)
  2168:25 13 (run-with-store #<store-connection 256.99 7f983bf81eb0> …)
In guix/scripts/refresh.scm:
   632:14 12 (_ _)
In srfi/srfi-1.scm:
    634:9 11 (for-each #<procedure 7f983740aab0 at guix/scripts/ref…> …)
In guix/scripts/refresh.scm:
   402:10 10 (check-for-package-update #<<update-spec> package: #<p…> …)
In srfi/srfi-1.scm:
   858:15  9 (any1 #<procedure 7f983740aa80 at guix/upstream.scm:25…> …)
In guix/import/utils.scm:
    131:4  8 (call-with-networking-exception-handler _)
In ice-9/boot-9.scm:
  1752:10  7 (with-exception-handler _ _ #:unwind? _ # _)
In guix/gnu-maintenance.scm:
   643:18  6 (import-html-release _ _ #:rewrite-url? _ #:version _ # …)
    568:6  5 (rewrite-url _ "4.9.5" #:to-version _)
In srfi/srfi-1.scm:
   460:18  4 (fold #<procedure 7f9837412d40 at guix/gnu-maintenance…> …)
In guix/gnu-maintenance.scm:
   603:25  3 (_ _ _)
In ice-9/boot-9.scm:
  1685:16  2 (raise-exception _ #:continuable? _)
  1685:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
no candidates found in rewrite-url
--8<---------------cut here---------------end--------------->8---

That's because http-fetch/cached doesn't following redirection:

--8<---------------cut here---------------start------------->8---
$ curl http://www.gambitscheme.org/4.9.4
<html>
<head><title>301 Moved Permanently</title></head>
<body>
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
--8<---------------cut here---------------end--------------->8---

which means the page is reachable but doesn't contain the expected
content.

-- 
Thanks,
Maxim