Hi, [email protected] (Ludovic Courtès) writes:
> Hello! > > Maxim Cournoyer <[email protected]> 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. --8<---------------cut here---------------start------------->8--- 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 --8<---------------cut here---------------end--------------->8--- It's a bit of a shame, given that the shallow clone takes about 2 seconds (!): --8<---------------cut here---------------start------------->8--- 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 --8<---------------cut here---------------end--------------->8--- Based on the discussion here: https://github.com/CocoaPods/CocoaPods/issues/6270, it would seem this 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
