Subject: bug#33100: closed (Re: bug#33100: [libssh] fatal: dumb http transport does not support shallow capabilities)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 21 Oct 2018 03:25:02 +0000

Your bug report

#33100: [libssh] fatal: dumb http transport does not support shallow capabilities

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
33100: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=33100
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#33100: [libssh] fatal: dumb http transport does not support shallow capabilities
From: Maxim Cournoyer <[email-masked]>
To: [email-masked] (Ludovic Courtès)
Cc: [email-masked]
Date: Sat, 20 Oct 2018 23:24:24 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

[email-masked] (Ludovic Courtès) writes:

> Hello!
>
> Maxim Cournoyer <[email-masked]> 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

Subject: [libssh] fatal: dumb http transport does not support shallow capabilities
From: Maxim Cournoyer <[email-masked]>
To: bug-guix <[email-masked]>
Cc: Leo Famulari <[email-masked]>
Date: Fri, 19 Oct 2018 22:22:38 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

Today I stumbled upon libssh that wouldn't build, due to the following
git error:

--8<---------------cut here---------------start------------->8---
fatal: dumb http transport does not support shallow capabilities"
--8<---------------cut here---------------end--------------->8---

There are now substitutes served from Berlin, so it's a bit more
difficult to reproduce, but the following worked for Ludovic and myself:

guix build --check /gnu/store/f0i7bdcg1lksr9dhz0cidi3ym8r8a5wl-libssh-0.7.6-checkout.drv

The output looks like:

--8<---------------cut here---------------start------------->8---
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
--8<---------------cut here---------------end--------------->8---

Leo, would you have an idea?

Thanks,

Maxim