Date: Thursday, September 16, 2021 @ 09:52:52 Author: eworm Revision: 1016146
archrelease: copy trunk to community-testing-x86_64 Added: libcurl/repos/community-testing-x86_64/ libcurl/repos/community-testing-x86_64/0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch (from rev 1016145, libcurl/trunk/0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch) libcurl/repos/community-testing-x86_64/PKGBUILD (from rev 1016145, libcurl/trunk/PKGBUILD) -----------------------------------------------------------------------------+ 0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch | 47 ++++ PKGBUILD | 100 ++++++++++ 2 files changed, 147 insertions(+) Copied: libcurl/repos/community-testing-x86_64/0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch (from rev 1016145, libcurl/trunk/0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch) =================================================================== --- community-testing-x86_64/0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch (rev 0) +++ community-testing-x86_64/0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch 2021-09-16 09:52:52 UTC (rev 1016146) @@ -0,0 +1,47 @@ +From 901804ef95777b8e735a55b77f8dd630a58c575b Mon Sep 17 00:00:00 2001 +From: Daniel Stenberg <dan...@haxx.se> +Date: Thu, 16 Sep 2021 08:50:54 +0200 +Subject: [PATCH] Curl_http2_setup: don't change connection data on repeat + invokes + +Regression from 3cb8a748670ab88c (releasde in 7.79.0). That change moved +transfer oriented inits to before the check but also erroneously moved a +few connection oriented ones, which causes problems. + +Reported-by: Evangelos Foutras +Fixes #7730 +Closes #7731 +--- + lib/http2.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/lib/http2.c b/lib/http2.c +index a3de607c7d24..6d63f43636a5 100644 +--- a/lib/http2.c ++++ b/lib/http2.c +@@ -2221,12 +2221,6 @@ CURLcode Curl_http2_setup(struct Curl_easy *data, + stream->mem = data->state.buffer; + stream->len = data->set.buffer_size; + +- httpc->inbuflen = 0; +- httpc->nread_inbuf = 0; +- +- httpc->pause_stream_id = 0; +- httpc->drain_total = 0; +- + multi_connchanged(data->multi); + /* below this point only connection related inits are done, which only needs + to be done once per connection */ +@@ -2252,6 +2246,12 @@ CURLcode Curl_http2_setup(struct Curl_easy *data, + conn->httpversion = 20; + conn->bundle->multiuse = BUNDLE_MULTIPLEX; + ++ httpc->inbuflen = 0; ++ httpc->nread_inbuf = 0; ++ ++ httpc->pause_stream_id = 0; ++ httpc->drain_total = 0; ++ + infof(data, "Connection state changed (HTTP/2 confirmed)"); + + return CURLE_OK; Copied: libcurl/repos/community-testing-x86_64/PKGBUILD (from rev 1016145, libcurl/trunk/PKGBUILD) =================================================================== --- community-testing-x86_64/PKGBUILD (rev 0) +++ community-testing-x86_64/PKGBUILD 2021-09-16 09:52:52 UTC (rev 1016146) @@ -0,0 +1,100 @@ +# Maintainer: Maxime Gauduin <aluc...@archlinux.org> +# Contributor: Piotr Balcerowski <pi...@balcerowski.org> + +pkgbase=libcurl +pkgname=(libcurl-compat libcurl-gnutls) +_pkgname=curl +pkgver=7.79.0 +pkgrel=2 +pkgdesc='An URL retrieval library' +arch=('x86_64') +url='https://curl.haxx.se' +license=('MIT') +depends=("${_pkgname}") +makedepends=('gnutls' 'openssl') +options=('strip') +source=("https://curl.haxx.se/download/curl-${pkgver}.tar.gz"{,.asc} + '0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch') +sha512sums=('6529645774bd2687535cfaec5949281f305c2910da3bd4de22713ab370fde0d05c416579b46aef7eaaf5f73d882e96b8268b80b6802b978f9c54b0a837420dad' + 'SKIP' + 'f83ba83073a90ab369c7c0e06d440d6d8be87c72800095c35d803bca246ea5ee73b811b210ce9d8a7ee137583ca3e839afd8eb9accf699f655e9db82a7bdef71') +validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg + +_configure_options=( + --prefix='/usr' + --disable-ldap + --disable-ldaps + --disable-manual + --disable-versioned-symbols + --enable-ipv6 + --enable-threaded-resolver + --with-gssapi + --with-libssh2 + --with-openssl + --with-random='/dev/urandom' + --with-ca-bundle='/etc/ssl/certs/ca-certificates.crt' +) + +prepare() { + cd "curl-${pkgver}" + + patch -Np1 < ../0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch +} + +build() { + mkdir build-{compat,gnutls} + + # build compat (disable-versioned-symbols) + cd "${srcdir}"/build-compat + + "${srcdir}/curl-${pkgver}"/configure \ + "${_configure_options[@]}" + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make -C lib + + # build gnutls (without-ssl) + cd "${srcdir}"/build-gnutls + + "${srcdir}/curl-${pkgver}"/configure \ + "${_configure_options[@]}" \ + --without-ssl \ + --with-gnutls='/usr' + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make -C lib +} + +package_libcurl-compat() { + pkgdesc='An URL retrieval library (without versioned symbols)' + depends+=('openssl') + + cd "${srcdir}"/build-compat + + make -C lib DESTDIR="${pkgdir}" install + + mv "${pkgdir}"/usr/lib/libcurl{,-compat}.so.4.7.0 + rm "${pkgdir}"/usr/lib/libcurl.{a,so}* + for version in 3 4.0.0 4.1.0 4.2.0 4.3.0 4.4.0 4.5.0 4.6.0; do + ln -s libcurl-compat.so.4.7.0 "${pkgdir}"/usr/lib/libcurl.so.${version} + done + + install -dm 755 "${pkgdir}"/usr/share/licenses + ln -s curl "${pkgdir}"/usr/share/licenses/libcurl-compat +} + +package_libcurl-gnutls() { + pkgdesc='An URL retrieval library (without versioned symbols and linked against gnutls)' + depends+=('gnutls') + + cd "${srcdir}"/build-gnutls + + make -C lib DESTDIR="${pkgdir}" install + + mv "${pkgdir}"/usr/lib/libcurl{,-gnutls}.so.4.7.0 + rm "${pkgdir}"/usr/lib/libcurl.{a,so}* + for version in 3 4 4.0.0 4.1.0 4.2.0 4.3.0 4.4.0 4.5.0 4.6.0; do + ln -s libcurl-gnutls.so.4.7.0 "${pkgdir}"/usr/lib/libcurl-gnutls.so.${version} + done + + install -dm 755 "${pkgdir}"/usr/share/licenses + ln -s curl "${pkgdir}"/usr/share/licenses/libcurl-gnutls +}