Subject: Guile-GnuTLS/Git circular dependency
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Date: Sat, 06 May 2023 19:20:41 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

‘git-download’ needs to depend on guile-gnutls to implement its fallback
mechanism (downloading from mirrors or from SWH over HTTPS).  Commit
c625e5b64d0a6cb7ffbf2ef971d4c990b1f5c5c1 restored this.  However, it
also introduced a circular dependency: the origin of guile-gnutls relies
on 'git-download', which would now depend on guile-gnutls.  Thus, I
reverted it right away.

We need to solve that.  For now, the only fix I can think of is having
‘guile-gnutls’ built from a “make dist”-provided tarballs.  Apparently
we can add assets at <https://gitlab.com/gnutls/guile/-/tags>; would you
like to upload a tarball and accompanying signature, Simon?

Unfortunately, that means doing away with all the packaging work by
Vivien, in particular proper bootstrapping with Gnulib.

The longer-term solution is to add a “builtin:git-download” derivation
builder, just like we have “builtin:download”.  The implementation
should be relatively easy, but we’ll have to be able to deal with
daemons that lack this builtin possibly for several years.

Thoughts?

Ludo’.