unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Wojtek Kosior via Bug reports for GNU Guix <bug-guix@gnu.org>
To: 58555@debbugs.gnu.org
Subject: bug#58555: [guile-git] Attempt to use git repositories that support older "dumb" HTTP protocol gives uninformative error message
Date: Sat, 15 Oct 2022 17:08:26 +0200	[thread overview]
Message-ID: <20221015170826.061d6f4d@koszkonutek-tmp.pl.eu.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 3398 bytes --]

Hello,

I was trying to set up a Guix channel and use it from guix.scm of my
project. I got an error when using `guix shell`

> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
> Updating channel 'hydrilla-guix' from Git repository at 'https://git.koszko.org/hydrilla-guix-packaging'...
> SWH: revision "7ffa00d8923f518d4d3898d2b9f6673afe204660" originating from https://git.koszko.org/hydrilla-guix-packaging could not be found
> guix shell: warning: revision 7ffa00d8923f518d4d3898d2b9f6673afe204660 of https://git.koszko.org/hydrilla-guix-packaging could not be fetched from Software Heritage
> guix shell: error: failed to load 'guix.scm':
> guix/git.scm:401:19: Git error: invalid content-type: 'text/plain; charset=UTF-8'

I investigated this and found out it's guile-git that fails to HTTP
clone repositories that use the older "dumb" git protocol instead of
the newer "smart" one.

I have since added support for "smart" git protocol in my repository at
git.koszko.org. However, I found a way to reproduce this issue directly
in guile-git. I used more or less the following commands

    cd /tmp/
    git clone https://gitlab.com/guile-git/guile-git.git
    cd guile-git; patch --strip 1 < ~/.config/guix/current/share/guile/site/3.0/gnu/packages/patches/guile-git-adjust-for-libgit2-1.2.0.patch
    guix shell -f guix.scm nss-certs guile libgit2 guile-bytestructures -- guile -c '(use-modules (git bindings) (git clone)) (libgit2-init!) (clone "https://git.nicksphere.ch/calcurse" "/tmp/gitclonetest")'

Nick's repo that I am using here only supports the dumb protocol. Hence
the following error

> Backtrace:
> In ice-9/boot-9.scm:
>   1752:10  7 (with-exception-handler _ _ #:unwind? _ # _)
> In unknown file:
>            6 (apply-smob/0 #<thunk 7fc3b96122e0>)
> In ice-9/boot-9.scm:
>     724:2  5 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
> In ice-9/eval.scm:
>     619:8  4 (_ #(#(#<directory (guile-user) 7fc3b9617c80>)))
> In ice-9/command-line.scm:
>    185:19  3 (_ #<input: string 7fc3b9611850>)
> In unknown file:
>            2 (eval (clone "https://git.nicksphere.ch/calcurse" "/…") #)
> In git/clone.scm:
>      46:8  1 (_ _ _ _)
> In git/bindings.scm:
>      77:2  0 (raise-git-error _)
> 
> git/bindings.scm:77:2: In procedure raise-git-error:
> Throw to key `git-error' with args `(#<<git-error> code: -1 message: "invalid content-type: 'text/plain; charset=UTF-8'" class: 34>)'.

The expected behavior is that instead the user gets a meaningful
message, e.g. "Repository at <URL> could not be used because it doesn't
support the newer \"smart\" git HTTP protocol. Please ask the
repository owner to add support for that protocol".

I didn't see any mailing list for guile-git and I noticed most recent
commits in guile-git are from Guix maintainer anyway so I decided to
just submit to Guix bug mailing list. I hope I'm not doing something
horribly wrong here :)

Best,
Wojtek

-- (sig_start)
website: https://koszko.org/koszko.html
PGP: https://koszko.org/key.gpg
fingerprint: E972 7060 E3C5 637C 8A4F  4B42 4BC5 221C 5A79 FD1A

Meet Kraków saints!           #35: blessed Józef Innocenty Guz
Poznaj świętych krakowskich!  #35: błogosławiony Józef Innocenty Guz
https://pl.wikipedia.org/wiki/Józef_Innocenty_Guz
-- (sig_end)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

             reply	other threads:[~2022-10-16  8:45 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-15 15:08 Wojtek Kosior via Bug reports for GNU Guix [this message]
2022-10-16  8:56 ` bug#58555: [guile-git] Attempt to use git repositories that support older "dumb" HTTP protocol gives uninformative error message Maxime Devos

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221015170826.061d6f4d@koszkonutek-tmp.pl.eu.org \
    --to=bug-guix@gnu.org \
    --cc=58555@debbugs.gnu.org \
    --cc=koszko@koszko.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).