Subject: bug#71113: closed (Re: bug#71113: git-fetch throws an error: gnutls_handshake() failed: An unexpected TLS packet was received.)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 24 May 2024 09:45:02 +0000

Your bug report

#71113: git-fetch throws an error: gnutls_handshake() failed: An unexpected TLS packet was received.

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].

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

Subject: Re: bug#71113: git-fetch throws an error: gnutls_handshake() failed: An unexpected TLS packet was received.
From: nigko <[email-masked]>
To: [email-masked]
Date: Fri, 24 May 2024 14:43:11 +0500
List-Id: <debbugs-submit.debbugs.gnu.org>

It turns out that this wasn't Guix's bug at all, but only the wrong
configuration of https_proxy
variable in the guix-daemon environment (on foreign distro): I
mistakenly set https_proxy
to "https://... "address, while the proxy server understands only http
protocol.  Setting
https_proxy to "http://.." address fixes this.

Close this bug report.

Regards,
Nigko Yerden

Subject: git-fetch throws an error: gnutls_handshake() failed: An unexpected TLS packet was received.
From: nigko <[email-masked]>
To: [email-masked]
Date: Wed, 22 May 2024 15:20:07 +0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello Guix!

When I try to download source code of any package that use
git-fetch download method I get an error if I am behind https proxy
server. For example,

$ guix build --no-substitutes -S eigen
The following derivations will be built:
/gnu/store/rsk8d4py0c5qgp7q4xzd9ci3w4l5wki5-eigen-3.4.0-checkout.drv
/gnu/store/ac69jx4b08rqd07v5m5ayd5dgh3b9798-eigen-3.4.0-checkout.drv
building /gnu/store/ac69jx4b08rqd07v5m5ayd5dgh3b9798-eigen-3.4.0-checkout.drv...
hint: Consider installing the `glibc-locales' package and defining
`GUIX_LOCPATH', along these lines:

guix install glibc-locales
export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"

See the "Application Setup" section in the manual, for more info.

Initialized empty Git repository in
/gnu/store/1syd2rljr26hx9y45645lxwfh1wsya50-eigen-3.4.0-checkout/.git/
fatal: unable to access 'https://gitlab.com/libeigen/eigen.git/':
gnutls_handshake() failed: An unexpected TLS packet was received.
Failed to do a shallow fetch; retrying a full fetch...
fatal: unable to access 'https://gitlab.com/libeigen/eigen.git/':
gnutls_handshake() failed: An unexpected TLS packet was received.
git-fetch:
'/gnu/store/lcygm0p2d59acvwi12lwldg5c0d4czpr-git-minimal-2.41.0/bin/git
fetch origin'
failed with exit code 128
Trying content-addressed mirror at bordeaux.guix.gnu.org...
...

But when I use 'git clone' like this:

$ guix shell --preserve=https_proxy -CN git nss-certs -- \
git clone https://gitlab.com/libeigen/eigen.git/

it works.

I looked into definitions of 'git' and 'git-minimal' packages.
They both do not depend on 'gnutls' package (at least directly),
but instead on 'openssl'. Then why is git-fetch method apparently
using 'gnutls' and not 'openssl'? Is there any workaround for
git-fetch (similar to package transformations) that allow to
replace 'gnutls' by 'openssl' in its dependency graph?

Regards,
Nigko