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
+}