Hi,
ludo@gnu.org (Ludovic Courtès) writes:
Toggle quote (13 lines)
> Hello!
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> guix build --check /gnu/store/f0i7bdcg1lksr9dhz0cidi3ym8r8a5wl-libssh-0.7.6-checkout.drv
>> building /gnu/store/f0i7bdcg1lksr9dhz0cidi3ym8r8a5wl-libssh-0.7.6-checkout.drv...
>> Initialized empty Git repository in /gnu/store/gqyjgpvzqy55dzibm59530fsx21dpiz4-libssh-0.7.6-checkout/.git/
>> fatal: dumb http transport does not support shallow capabilities
>
> On closer inspection, it seems that there’s nothing “fatal” here: if you
> let it run for a while (1 or 2 minutes), it ends up silently cloning the
> whole repo and the derivation build eventually succeeds.
It did end up working fine, although it took a large amout of time for
doing what seems to be a checkout (4 min 46 s). I did some experiments
and this is really the time it took to do a full clone of the libssh
project.
Toggle snippet (14 lines)
time git clone git://git.libssh.org/projects/libssh.git libssh
Cloning into 'libssh'...
remote: Enumerating objects: 28264, done.
remote: Counting objects: 100% (28264/28264), done.
remote: Compressing objects: 100% (11718/11718), done.
remote: Total 28264 (delta 20985), reused 21830 (delta 16350)s
Receiving objects: 100% (28264/28264), 5.21 MiB | 263.00 KiB/s, done.
Resolving deltas: 100% (20985/20985), done.
real 4m19.419s
user 0m3.272s
sys 0m0.540s
It's a bit of a shame, given that the shallow clone takes about 2
seconds (!):
Toggle snippet (14 lines)
time git clone --depth 1 git://git.libssh.org/projects/libssh.git libssh
Cloning into 'libssh'...
remote: Enumerating objects: 367, done.
remote: Counting objects: 100% (367/367), done.
remote: Compressing objects: 100% (358/358), done.
remote: Total 367 (delta 39), reused 53 (delta 1)
Receiving objects: 100% (367/367), 704.23 KiB | 728.00 KiB/s, done.
Resolving deltas: 100% (39/39), done.
real 0m2.028s
user 0m0.160s
sys 0m0.071s
Based on the discussion here:
means that the libssh git server doesn't support the newer "smart HTTP
transport" and the git client bails out (IIUC). At least in our case the
guile-ssh library seems to already correctly fallback to doing a full
clone.
Perhaps just clearer messages would have helped here also ('Failed to do
a shallow git clone due to ~error message~, falling back to a full clone').
Such a change would need to be made in guile-git IIUC.
I'll close this bug now; thank you!
Maxim