Subject: Re: bug#35010: Many CPAN download URLs are no longer available

From: Ludovic Courtès <[email-masked]>
Date: Wed, 27 Mar 2019 15:07:54 +0100

Hello,

Tobias Geerinckx-Rice <[email-masked]> skribis:

> The updater for CPAN packages is at best caveat-quality.  It helpfully
> downloads the updated tarball to the store, but doesn't update the
> URL.  Since the file is in the store, everything works fine on the
> updater's machine, then breaks everywhere else.
>
> Background: the problem here is that CPAN URLs contain the uploader
> name, e.g. (Karen?) ETHER(idge) in the case of
>
>  mirror://cpan/authors/id/E/ET/ETHER/URI-1.76.tar.gz
>
> which doesn't change every VERSION (so the problem is somewhat hidden)
> but more frequently than the author/maintainer would.

Ouch, I didn’t know that, this is terrible.

The good news is that the (guix upstream) framework gets to see the
correct URL:

--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> (package-latest-release perl-uri (force %updaters))
$6 = #<<upstream-source> package: "perl-uri" version: "1.76" urls: ("mirror://cpan/authors/id/O/OA/OALDERS/URI-1.76.tar.gz") signature-urls: #f input-changes: #<procedure 7fced1c44ca0 at guix/import/cpan.scm:308:7 (x)>>
--8<---------------cut here---------------end--------------->8---

So with a bit of work we could change ‘package-update’ to automatically
update the URL.

(Time passes…)

Commit 42314ffa072f31cc1cb44df38b1f8fcca19d9d3c should fix this.
I should have let figure it out ;-), but somehow I ended up
investigating too much, bah!

Let me know what you think.

In the meantime, to fix the Perl packages, you could maybe run:

  guix lint -c source $(guix package -A ^perl-)

Then you could perhaps comment the ‘version>?’ test in (guix upstream)
to force ‘guix package -u’ to update these seemingly up-to-date
packages.

HTH,
Ludo’.