From f53b9f309f7918702d9a8dbab841f4eb79058afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Thu, 12 Jun 2025 11:31:44 +0200 Subject: [PATCH] gnu: libgit2: Patch bug in HTTP proxy support that shows on 302s. Fixes guix/guix#87. * gnu/packages/patches/libgit2-proxy-reconnection.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/version-control.scm (libgit2-1.9)[source]: Use it. Change-Id: If05b55e616da4d98b3de0e38f6a0d815dd256b92 --- gnu/local.mk | 1 + .../patches/libgit2-proxy-reconnection.patch | 18 ++++++++++++++++++ gnu/packages/version-control.scm | 3 +++ 3 files changed, 22 insertions(+) create mode 100644 gnu/packages/patches/libgit2-proxy-reconnection.patch diff --git a/gnu/local.mk b/gnu/local.mk index a4bb135b7e..1e2d897c08 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1742,6 +1742,7 @@ dist_patch_DATA = \ %D%/packages/patches/libgda-skip-postgresql-tests.patch \ %D%/packages/patches/libgdata-fix-tests.patch \ %D%/packages/patches/libgit2-mtime-0.patch \ + %D%/packages/patches/libgit2-proxy-reconnection.patch \ %D%/packages/patches/libgit2-uninitialized-proxy-settings.patch \ %D%/packages/patches/libgnome-encoding.patch \ %D%/packages/patches/libgnomeui-utf8.patch \ diff --git a/gnu/packages/patches/libgit2-proxy-reconnection.patch b/gnu/packages/patches/libgit2-proxy-reconnection.patch new file mode 100644 index 0000000000..b57af8d68b --- /dev/null +++ b/gnu/packages/patches/libgit2-proxy-reconnection.patch @@ -0,0 +1,18 @@ +Temporary fix for . +Submitted as . + +diff --git a/src/libgit2/transports/httpclient.c b/src/libgit2/transports/httpclient.c +index e25e0a73a..ecefbcd3e 100644 +--- a/src/libgit2/transports/httpclient.c ++++ b/src/libgit2/transports/httpclient.c +@@ -914,6 +914,10 @@ GIT_INLINE(git_http_parser_settings *) http_client_parser_settings(void) + + static void reset_parser(git_http_client *client) + { ++ /* Force the proxy connection to be closed so a fresh connection is ++ opened for the next CONNECT request. */ ++ client->proxy_connected = 0; ++ + git_http_parser_init(&client->parser, + GIT_HTTP_PARSER_RESPONSE, + http_client_parser_settings()); diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 8f2e1f5245..6b57ad5d0e 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1427,6 +1427,9 @@ write native speed custom Git applications in any language with bindings.") (url "https://github.com/libgit2/libgit2") (commit (string-append "v" version)))) (file-name (git-file-name "libgit2" version)) + (patches + (search-patches "libgit2-uninitialized-proxy-settings.patch" + "libgit2-proxy-reconnection.patch")) (sha256 (base32 "06ajn5i5l1209z7x7jxcpw68ph0a6g3q67bmx0jm381rr8cb4zdz"))))))