Date: Wednesday, February 15, 2023 @ 07:56:10
  Author: eworm
Revision: 469046

archrelease: copy trunk to testing-x86_64

Added:
  curl/repos/testing-x86_64/
  
curl/repos/testing-x86_64/0001-typecheck_accept_expressions_for_option_info_parameters.patch
    (from rev 469045, 
curl/trunk/0001-typecheck_accept_expressions_for_option_info_parameters.patch)
  
curl/repos/testing-x86_64/0002-cfilters_Curl_conn_get_select_socks_use_the_first_non_connected_filter.patch
    (from rev 469045, 
curl/trunk/0002-cfilters_Curl_conn_get_select_socks_use_the_first_non_connected_filter.patch)
  curl/repos/testing-x86_64/PKGBUILD
    (from rev 469045, curl/trunk/PKGBUILD)
  curl/repos/testing-x86_64/keys/

-----------------------------------------------------------------------------------+
 0001-typecheck_accept_expressions_for_option_info_parameters.patch             
   |   49 +++
 
0002-cfilters_Curl_conn_get_select_socks_use_the_first_non_connected_filter.patch
 |   34 ++
 PKGBUILD                                                                       
   |  128 ++++++++++
 3 files changed, 211 insertions(+)

Copied: 
curl/repos/testing-x86_64/0001-typecheck_accept_expressions_for_option_info_parameters.patch
 (from rev 469045, 
curl/trunk/0001-typecheck_accept_expressions_for_option_info_parameters.patch)
===================================================================
--- 
testing-x86_64/0001-typecheck_accept_expressions_for_option_info_parameters.patch
                           (rev 0)
+++ 
testing-x86_64/0001-typecheck_accept_expressions_for_option_info_parameters.patch
   2023-02-15 07:56:10 UTC (rev 469046)
@@ -0,0 +1,49 @@
+From e2aed004302e51cfa5b6ce8c8ab65ef92aa83196 Mon Sep 17 00:00:00 2001
+From: Patrick Monnerat <[email protected]>
+Date: Fri, 23 Dec 2022 15:35:27 +0100
+Subject: typecheck: accept expressions for option/info parameters
+
+As expressions can have side effects, evaluate only once.
+
+To enable deprecation reporting only once, get rid of the __typeof__
+use to define the local temporary variable and use the target type
+(CURLoption/CURLINFO). This also avoids multiple reports on type
+conflicts (if some) by the curlcheck_* macros.
+
+Note that CURLOPT_* and CURLINFO_* symbols may be deprecated, but not
+their values: a curl_easy_setopt call with an integer constant as option
+will never report a deprecation.
+
+Reported-by: Thomas Klausner
+Fixes #10148
+Closes #10149
+---
+ include/curl/typecheck-gcc.h | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/include/curl/typecheck-gcc.h b/include/curl/typecheck-gcc.h
+index bf655bb632..85aa8b7b49 100644
+--- a/include/curl/typecheck-gcc.h
++++ b/include/curl/typecheck-gcc.h
+@@ -42,9 +42,8 @@
+  */
+ #define curl_easy_setopt(handle, option, value)                         \
+   __extension__({                                                       \
+-      CURL_IGNORE_DEPRECATION(__typeof__(option) _curl_opt = option;)   \
++      CURLoption _curl_opt = (option);                                  \
+       if(__builtin_constant_p(_curl_opt)) {                             \
+-        (void) option;                                                  \
+         CURL_IGNORE_DEPRECATION(                                        \
+           if(curlcheck_long_option(_curl_opt))                          \
+             if(!curlcheck_long(value))                                  \
+@@ -120,9 +119,8 @@
+ /* wraps curl_easy_getinfo() with typechecking */
+ #define curl_easy_getinfo(handle, info, arg)                            \
+   __extension__({                                                       \
+-      CURL_IGNORE_DEPRECATION(__typeof__(info) _curl_info = info;)      \
++      CURLINFO _curl_info = (info);                                     \
+       if(__builtin_constant_p(_curl_info)) {                            \
+-        (void) info;                                                    \
+         CURL_IGNORE_DEPRECATION(                                        \
+           if(curlcheck_string_info(_curl_info))                         \
+             if(!curlcheck_arr((arg), char *))                           \

Copied: 
curl/repos/testing-x86_64/0002-cfilters_Curl_conn_get_select_socks_use_the_first_non_connected_filter.patch
 (from rev 469045, 
curl/trunk/0002-cfilters_Curl_conn_get_select_socks_use_the_first_non_connected_filter.patch)
===================================================================
--- 
testing-x86_64/0002-cfilters_Curl_conn_get_select_socks_use_the_first_non_connected_filter.patch
                            (rev 0)
+++ 
testing-x86_64/0002-cfilters_Curl_conn_get_select_socks_use_the_first_non_connected_filter.patch
    2023-02-15 07:56:10 UTC (rev 469046)
@@ -0,0 +1,34 @@
+From 728400f875e845f72ee5602edb905f6301ade3e7 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <[email protected]>
+Date: Mon, 26 Dec 2022 09:59:20 +0100
+Subject: cfilters:Curl_conn_get_select_socks: use the first non-connected
+ filter
+
+When there are filters addded for both socket and SSL, the code
+previously checked the SSL sockets during connect when it *should* first
+check the socket layer until that has connected.
+
+Fixes #10157
+Fixes #10146
+Closes #10160
+
+Reviewed-by: Stefan Eissing
+---
+ lib/cfilters.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/lib/cfilters.c b/lib/cfilters.c
+index 8951533418..8b05fbc8f4 100644
+--- a/lib/cfilters.c
++++ b/lib/cfilters.c
+@@ -437,6 +437,10 @@ int Curl_conn_get_select_socks(struct Curl_easy *data, 
int sockindex,
+   DEBUGASSERT(data);
+   DEBUGASSERT(data->conn);
+   cf = data->conn->cfilter[sockindex];
++
++  /* if the next one is not yet connected, that's the one we want */
++  while(cf && cf->next && !cf->next->connected)
++    cf = cf->next;
+   if(cf) {
+     return cf->cft->get_select_socks(cf, data, socks);
+   }

Copied: curl/repos/testing-x86_64/PKGBUILD (from rev 469045, 
curl/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD                             (rev 0)
+++ testing-x86_64/PKGBUILD     2023-02-15 07:56:10 UTC (rev 469046)
@@ -0,0 +1,128 @@
+# Maintainer: Dave Reisner <[email protected]>
+# Contributor: Angel Velasquez <[email protected]>
+# Contributor: Eric Belanger <[email protected]>
+# Contributor: Lucien Immink <[email protected]>
+# Contributor: Daniel J Griffiths <[email protected]>
+
+pkgbase=curl
+pkgname=(curl libcurl-compat libcurl-gnutls)
+pkgver=7.88.0
+pkgrel=1
+pkgdesc='An URL retrieval utility and library'
+arch=('x86_64')
+url='https://curl.haxx.se'
+license=('MIT')
+depends=('ca-certificates' 'brotli' 'libbrotlidec.so' 'krb5' 
'libgssapi_krb5.so'
+         'libidn2' 'libidn2.so' 'libnghttp2' 'libpsl' 'libpsl.so' 'libssh2' 
'libssh2.so'
+         'openssl' 'zlib' 'zstd' 'libzstd.so')
+makedepends=('patchelf')
+provides=('libcurl.so')
+source=("https://curl.haxx.se/download/${pkgname}-${pkgver}.tar.gz"{,.asc})
+sha512sums=('bfaac71e97a45d884be410872a55fdb365f9d03c11620fb12e82c7f26dbbb6a417b51dd0dc2a3631e95fb36e37a72c7f73fd6cf5f796c154f1424395c03c22cb'
+            'SKIP')
+validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg
+
+_configure_options=(
+  --prefix='/usr'
+  --mandir='/usr/share/man'
+  --disable-ldap
+  --disable-ldaps
+  --disable-manual
+  --enable-ipv6
+  --enable-threaded-resolver
+  --with-gssapi
+  --with-libssh2
+  --with-random='/dev/urandom'
+  --with-ca-bundle='/etc/ssl/certs/ca-certificates.crt'
+)
+
+prepare() {
+  cd "${srcdir}/${pkgbase}-${pkgver}"
+
+  #patch -Np1 < ../
+}
+
+build() {
+  mkdir build-curl{,-compat,-gnutls}
+
+  # build curl
+  cd "${srcdir}"/build-curl
+
+  "${srcdir}/${pkgbase}-${pkgver}"/configure \
+    "${_configure_options[@]}" \
+    --with-openssl \
+    --enable-versioned-symbols
+  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+  make
+
+  # build libcurl-compat
+  cd "${srcdir}"/build-curl-compat
+
+  "${srcdir}/${pkgbase}-${pkgver}"/configure \
+    "${_configure_options[@]}" \
+    --with-openssl \
+    --disable-versioned-symbols
+  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+  make -C lib
+
+  # build libcurl-gnutls
+  cd "${srcdir}"/build-curl-gnutls
+
+  "${srcdir}/${pkgbase}-${pkgver}"/configure \
+    "${_configure_options[@]}" \
+    --disable-versioned-symbols \
+    --without-openssl \
+    --with-gnutls
+  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+  make -C lib
+  patchelf --set-soname 'libcurl-gnutls.so.4' ./lib/.libs/libcurl.so
+}
+
+package_curl() {
+  cd build-curl
+
+  make DESTDIR="${pkgdir}" install
+  make DESTDIR="${pkgdir}" install -C scripts
+
+  cd "${srcdir}/${pkgname}-${pkgver}"
+
+  # license
+  install -Dt "${pkgdir}/usr/share/licenses/$pkgname" -m0644 COPYING
+}
+
+package_libcurl-compat() {
+  pkgdesc='An URL retrieval library (without versioned symbols)'
+  depends=('curl' 'openssl')
+
+  cd "${srcdir}"/build-curl-compat
+
+  make -C lib DESTDIR="${pkgdir}" install
+
+  mv "${pkgdir}"/usr/lib/libcurl{,-compat}.so.4.8.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 4.7.0; do
+    ln -s libcurl-compat.so.4.8.0 "${pkgdir}"/usr/lib/libcurl.so.${version}
+  done
+
+  install -dm 0755 "${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=('curl' 'gnutls')
+
+  cd "${srcdir}"/build-curl-gnutls
+
+  make -C lib DESTDIR="${pkgdir}" install
+
+  mv "${pkgdir}"/usr/lib/libcurl{,-gnutls}.so.4.8.0
+  rm "${pkgdir}"/usr/lib/libcurl.{a,so}*
+  ln -s libcurl-gnutls.so.4 "${pkgdir}"/usr/lib/libcurl-gnutls.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 4.7.0; do
+    ln -s libcurl-gnutls.so.4.8.0 
"${pkgdir}"/usr/lib/libcurl-gnutls.so.${version}
+  done
+
+  install -dm 0755 "${pkgdir}"/usr/share/licenses
+  ln -s curl "${pkgdir}"/usr/share/licenses/libcurl-gnutls
+}

Reply via email to