~ruther/guix-local

f53b9f309f7918702d9a8dbab841f4eb79058afb — Ludovic Courtès 1 year, 4 months ago 1a09cd1
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
M gnu/local.mk => gnu/local.mk +1 -0
@@ 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			\

A gnu/packages/patches/libgit2-proxy-reconnection.patch => gnu/packages/patches/libgit2-proxy-reconnection.patch +18 -0
@@ 0,0 1,18 @@
Temporary fix for <https://github.com/libgit2/libgit2/issues/7081>.
Submitted as <https://github.com/libgit2/libgit2/pull/7082>.

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());

M gnu/packages/version-control.scm => gnu/packages/version-control.scm +3 -0
@@ 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"))))))