Subject: [bug#54232] [PATCH 1/2] gnu: python-daemon: Use the git repo as source instead of pypi.

From: zimoun <[email-masked]>
Date: Fri, 04 Mar 2022 00:48:14 +0100

Hi Maxime and Attila,

On Thu, 03 Mar 2022 at 15:46, Maxime Devos <[email-masked]> wrote:

>> feel free to apply or reject this as you see fit. it's not important
>> for me to build from git, even though i also find it better. probably
>> the software heritage archives also work better with git.
>
> They do support tarballs to some degree, and disarchive to some degree
> compensates for mismatches.  I don't know how well this works in
> practice.

FYI, a quick picture on how it works. :-)

For source using ’git-fetch’, archival on Software Heritage (SWH) is
done using :

    guix lint -c archival <pkg>

and if later the URL for the repository is unavailable, then Guix
automatically sends a cooking requests to SWH and fetch from it there.
Basically the machinery works.  The failure are issues on SWH side or
not enough information on Guix side (see lengthy thread tag vs commit
hash for details of one typical issue :-))

For source using ’url-fetch’, archival on SWH is done via:

    http://guix.gnu.org/sources.json

The file is periodically builds on Guix side and periodically ingested
by SWH.  It lists all the “tarball“ URL locations for one Guix revision.

To keep it short, a tarball contains content (say source code itself)
and meta (say compression level or others).  SWH only preserves content
and drops meta.  Therefore, later it is not possible to rebuild from
their SWH data the exact same tarball and thus checksum mismatches.

The workaround is Disarchive.  It stores this ’meta’ in the database:

    http://disarchive.guix.gnu.org/

and thus using both (content from SWH and meta from Disarchive), the
exact same tarball is rebuilt.  This Disarchive database is periodically
updated by CI Cuirass.

If later the source URL is down, then Guix automatically sends a request
to SWH and Disarchive database ending by reassembling the both elements
of the required tarball.

Basically, the machinery works too.  Not all compression format are
supported.  Among other many other details.

(Note we name Disarchive both the tools to disassemble / reassemble and
also the database; where it can be misleading, sometimes. :-))

The plan is to have a better story for all.

Hope that helps and spread the word. ;-)

Cheers,
simon

PS: I have not talked about ’hg-fetch’ or ’svn-fetch’. ;-)