[arch-commits] Commit in lib32-curl/trunk (2 files)
Christian Hesse
eworm at gemini.archlinux.org
Thu Sep 16 09:56:27 UTC 2021
Date: Thursday, September 16, 2021 @ 09:56:26
Author: eworm
Revision: 1016147
upgpkg: lib32-curl 7.79.0-2: make lib32-{curl,libcurl{-compat,-gnutls}} split packages
Added:
lib32-curl/trunk/0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch
Modified:
lib32-curl/trunk/PKGBUILD
-----------------------------------------------------------------------------+
0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch | 47 +++
PKGBUILD | 142 +++++++---
2 files changed, 155 insertions(+), 34 deletions(-)
Added: 0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch
===================================================================
--- 0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch (rev 0)
+++ 0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch 2021-09-16 09:56:26 UTC (rev 1016147)
@@ -0,0 +1,47 @@
+From 901804ef95777b8e735a55b77f8dd630a58c575b Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <daniel at 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;
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2021-09-16 09:52:52 UTC (rev 1016146)
+++ PKGBUILD 2021-09-16 09:56:26 UTC (rev 1016147)
@@ -5,57 +5,131 @@
# Contributor: Lucien Immink <l.immink at student.fnt.hvu.nl>
# Contributor: Daniel J Griffiths <ghost1227 at archlinux.us>
-pkgname=lib32-curl
-_pkgname=curl
+pkgbase=lib32-curl
+pkgname=(lib32-curl lib32-libcurl-compat lib32-libcurl-gnutls)
pkgver=7.79.0
-pkgrel=1
-pkgdesc="An URL retrieval utility and library (32-bit)"
+pkgrel=2
+pkgdesc='An URL retrieval utility and library (32-bit)'
arch=('x86_64')
-url="https://curl.haxx.se"
+url='https://curl.haxx.se'
license=('MIT')
-depends=('lib32-libidn2' 'lib32-libssh2' 'lib32-krb5' 'lib32-openssl'
- 'lib32-libpsl' 'lib32-zlib' 'lib32-zstd' "${_pkgname}")
-source=("https://curl.haxx.se/download/$_pkgname-$pkgver.tar.gz"{,.asc})
+depends=('curl' 'lib32-brotli' 'lib32-libidn2' 'lib32-libssh2' 'lib32-krb5'
+ 'lib32-libpsl' 'lib32-zlib' 'lib32-zstd')
+makedepends=('lib32-gnutls' 'lib32-openssl')
+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')
+ 'SKIP'
+ 'f83ba83073a90ab369c7c0e06d440d6d8be87c72800095c35d803bca246ea5ee73b811b210ce9d8a7ee137583ca3e839afd8eb9accf699f655e9db82a7bdef71')
validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg
+_configure_options=(
+ --prefix='/usr'
+ --disable-dependency-tracking
+ --disable-ldap
+ --disable-ldaps
+ --enable-ipv6
+ --enable-manual
+ --enable-threaded-resolver
+ --with-gssapi
+ --with-libssh2
+ --with-openssl
+ --with-random='/dev/urandom'
+ --with-ca-bundle='/etc/ssl/certs/ca-certificates.crt'
+ --libdir='/usr/lib32'
+)
+
+prepare() {
+ cd "curl-${pkgver}"
+
+ patch -Np1 < ../0001-Curl_http2_setup-do-not-change-connection-data-on-repeat-invokes.patch
+}
+
build() {
- cd "$_pkgname-$pkgver"
-
export CC="gcc -m32"
export CXX="g++ -m32"
export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
- ./configure \
- --prefix=/usr \
- --mandir=/usr/share/man \
- --disable-dependency-tracking \
- --disable-ldap \
- --disable-ldaps \
- --enable-ipv6 \
- --enable-manual \
- --enable-versioned-symbols \
- --enable-threaded-resolver \
- --with-gssapi \
- --with-libssh2 \
- --with-openssl \
- --with-random=/dev/urandom \
- --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt \
- --libdir=/usr/lib32
+ mkdir build-curl{,-compat,-gnutls}
+ # build lib32-curl
+ cd "${srcdir}"/build-curl
+
+ "${srcdir}/curl-${pkgver}"/configure \
+ "${_configure_options[@]}" \
+ --enable-versioned-symbols
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
- make
+ make -C lib
+ make libcurl.pc
+
+ # build lib32-libcurl-compat
+ cd "${srcdir}"/build-curl-compat
+
+ "${srcdir}/curl-${pkgver}"/configure \
+ "${_configure_options[@]}" \
+ --disable-versioned-symbols
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make -C lib
+
+ # build lib32-libcurl-gnutls
+ cd "${srcdir}"/build-curl-gnutls
+
+ "${srcdir}/curl-${pkgver}"/configure \
+ "${_configure_options[@]}" \
+ --disable-versioned-symbols \
+ --without-ssl \
+ --with-gnutls='/usr'
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+ make -C lib
}
-package() {
- cd "$_pkgname-$pkgver"
+package_lib32-curl() {
+ depends+=('lib32-openssl')
- make DESTDIR="$pkgdir" install
+ cd "${srcdir}"/build-curl
- rm -rf "${pkgdir}"/usr/{share,bin,include}
+ make -C lib DESTDIR="${pkgdir}" install
+ make DESTDIR="${pkgdir}" install-pkgconfigDATA
# license
- install -d "$pkgdir/usr/share/licenses"
- ln -s "$_pkgname" "$pkgdir/usr/share/licenses/$pkgname"
+ install -d "${pkgdir}/usr/share/licenses"
+ ln -s curl "${pkgdir}/usr/share/licenses/${pkgname}"
}
+
+package_lib32-libcurl-compat() {
+ pkgdesc='An URL retrieval utility and library (32-bit, without versioned symbols)'
+ depends+=('lib32-openssl')
+
+ cd "${srcdir}"/build-curl-compat
+
+ make -C lib DESTDIR="${pkgdir}" install
+
+ mv "${pkgdir}"/usr/lib32/libcurl{,-compat}.so.4.7.0
+ rm "${pkgdir}"/usr/lib32/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/lib32/libcurl.so.${version}
+ done
+
+ # license
+ install -d "${pkgdir}/usr/share/licenses"
+ ln -s curl "${pkgdir}/usr/share/licenses/${pkgname}"
+}
+
+package_lib32-libcurl-gnutls() {
+ pkgdesc='An URL retrieval utility and library (32-bit, without versioned symbols and linked against gnutls)'
+ depends+=('lib32-gnutls')
+
+ cd "${srcdir}"/build-curl-gnutls
+
+ make -C lib DESTDIR="${pkgdir}" install
+
+ mv "${pkgdir}"/usr/lib32/libcurl{,-gnutls}.so.4.7.0
+ rm "${pkgdir}"/usr/lib32/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/lib32/libcurl-gnutls.so.${version}
+ done
+
+ # license
+ install -d "${pkgdir}/usr/share/licenses"
+ ln -s curl "${pkgdir}/usr/share/licenses/${pkgname}"
+}
More information about the arch-commits
mailing list