[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