From 1570e47498339106dcdb3928a006cd4047c11ad2 Mon Sep 17 00:00:00 2001 From: Flatcar Buildbot Date: Mon, 10 Feb 2025 07:10:23 +0000 Subject: [PATCH] net-misc/curl: Sync with Gentoo It's from Gentoo commit 085bf5efb8018e9ee06759661e7d7f943cf1d052. --- .../portage-stable/net-misc/curl/Manifest | 6 +- .../net-misc/curl/curl-8.11.1-r2.ebuild | 2 +- ...8.11.0-r1.ebuild => curl-8.12.0-r1.ebuild} | 25 ++-- ...url-8.8.0-r2.ebuild => curl-8.12.0.ebuild} | 121 ++++++++-------- .../net-misc/curl/curl-9999.ebuild | 17 ++- .../curl/files/curl-8.12.0-multi.patch | 136 ++++++++++++++++++ .../net-misc/curl/files/curl-prefix-4.patch | 35 +++++ .../portage-stable/net-misc/curl/metadata.xml | 1 - 8 files changed, 258 insertions(+), 85 deletions(-) rename sdk_container/src/third_party/portage-stable/net-misc/curl/{curl-8.11.0-r1.ebuild => curl-8.12.0-r1.ebuild} (95%) rename sdk_container/src/third_party/portage-stable/net-misc/curl/{curl-8.8.0-r2.ebuild => curl-8.12.0.ebuild} (78%) create mode 100644 sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-8.12.0-multi.patch create mode 100644 sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-prefix-4.patch diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest b/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest index d4b9c62c3d..24f5ecbff7 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/Manifest @@ -1,10 +1,8 @@ DIST curl-8.10.1.tar.xz 2726748 BLAKE2B bfdfa24f6d652884044c5e8eea5d70daad651b46255c99c9df502f9595a2dcbf8c4034446becf9e87f8e8a3f397a8fda29ab3e0d6020ac0dae62dd42b8136b78 SHA512 f1c7a12492dcfb8ba08be69b96a83ce9074592cbaa6b95c72b3c16fc58ad35e9f9deec7b72baca7d360d013b0b1c7ea38bd4edae464903ac67aa3c76238d8c6c DIST curl-8.10.1.tar.xz.asc 488 BLAKE2B 8e8f2b628d4e8964a76c1c43c5557aacbfc2d2dbc51be8a0fa1b157c257f15f29aedba842cba7cb270c4adcf0b4a5d9c8b0b3d49633c48b061fb3e1472303d66 SHA512 21d6d560c027efc9e3e5db182a77501d6376442221ba910df817e2ec980bee44a9fe2afc698205f8d5e8313ae47915a341d60206a46b46e816d73ee357a894ac -DIST curl-8.11.0.tar.xz 2750684 BLAKE2B 3db13ed558bee332e07e1eab878b5ecae14cd049c115eea3a25fcb78cf28aadfe577dc224df75b62844529994ec478a9a74fed5c9bae338f809d231420ae5d0a SHA512 3a642d421e0a5c09ecb681bea18498f2c6124e9af4d8afdc074dfb85a9b0211d8972ade9cf00ab44b5dfed9303262cd83551dd3b5e0976d11fc19da3c4a0987e -DIST curl-8.11.0.tar.xz.asc 488 BLAKE2B 5d91dc654d6a62c66e344ca92676b42e7a49f437e14f9fb714f7ae64a266d24d9bb7006b4512fc323459072ff0d9e05f627e494f34f845eadbedbd83acacc2ce SHA512 71073dde48e8f0013e392eb88bf70f6b8a4a4f0c955a3fb56db98e74aa10acc1004e2a0483f30be082e61b59a76fa75ae1d90545ace7c6b07bca8164078375f0 DIST curl-8.11.1.tar.xz 2751236 BLAKE2B a87ec2c78c5d6daf44eee4cf8e3ed124849d067f6c63145205fda18f33ddd3adce386058ead8f9b713f8e595f5e059acd13479eb00edc226247aabd3c2234112 SHA512 7c7c47a49505575b610c56b455f0919ea5082a993bf5483eeb258ead167aadb87078d626b343b417dcfc5439c53556425c8fb4fe3b01b53a87b47c01686a3e57 DIST curl-8.11.1.tar.xz.asc 488 BLAKE2B 53d58ebb8ab722d8394b7ce94b646c876324cd89b3e47d9129bddcfbb6db338c1dbe93a5e72a25caf7be9ddd450c2b0832cfee17beb8ba701bdeefe653235d53 SHA512 c09bedb67e83fb8ca3ad73c5bd0d92fed7fc2c26dbe5a71cccb193fd151c7219713241a9fe74baefcd1d008cfafba78142bf04cec24dd4a88d67179184d35824 -DIST curl-8.8.0.tar.xz 2748860 BLAKE2B c14903bad4cbd1752a5335afa6bcc78be1a484692fce0e0a6c2061963e0e6b4e56defb8332cef32d0dbddb481ad0443b71faf3a52a6e9d945c89ecbce373d2a3 SHA512 9d2c0d3a0d8f6c31ba4fabe48f801910f886fde43dc198dc4213708d6967ed5e040a1bb7348aa1cb126577ee508a3ec36fe65256d027d861d6ffb70f6383967a -DIST curl-8.8.0.tar.xz.asc 488 BLAKE2B d80c0ff357b344d7ec2b975a92f1eeb7557993b61a69e7adaaeab89c9b5a53ddade5104fe1a0ad260145db9c90fc0aae36dfc22320492db6696f290da9ff675b SHA512 37b501770225dff6b1e7bde1157f556f10ec1c597fcbbb5c8b8c370efb97a3a70f585f2f5c201b96380d68466696474a5f65a07da59b704678d6927567d25359 +DIST curl-8.12.0.tar.xz 2777552 BLAKE2B b38c7465a38f6bbdc6daa1e8a27dc810f970c9172ddf532881e83965e1fa6001beff1bf358e5138e1a0ae1121d877f6a5a4f38ef7ea7e03c8b06dc46fbf24022 SHA512 ed35f0020541050ce387f4ba80f9e87562ececd99082da1bae85840dee81c49b86a4a55909e15fcbf4eb116106a796c29a9b2678dee11326f80db75992c6edc5 +DIST curl-8.12.0.tar.xz.asc 488 BLAKE2B 8977dabab96b6f188e8b16497e7a4e589f05b5512a9bc6ec0ee36797615c720b9cb5c34bc90df6ee037d898b8fa7f708ad2b2ff789163adcb5308a2e0d7cf9df SHA512 8526554ffb2187b48b6a4c6a0d4a8c73d484ef3ce4c3791add0e759baf953ac7ae0b2f88d688365b1f09c5745198611fa1761aa14d02ddf52823c4ff238779cd DIST curl-8.9.1.tar.xz 2782364 BLAKE2B 6e38e20e2b03ab5bfbb8d9797442dfdd9644fc80d7b1f7c1efb1f44e0d730524e82ccf7413b2c6f4555bd61ae42f91ec7c0201e2c0d563811c85164aa234aada SHA512 a0fe234402875db194aad4e4208b7e67e7ffc1562622eea90948d4b9b0122c95c3dde8bbe2f7445a687cb3de7cb09f20e5819d424570442d976aa4c913227fc7 DIST curl-8.9.1.tar.xz.asc 488 BLAKE2B 437268f6e5ba5db73f205fd87f3ded1e5fc200e8bf63a83cdb7e21dfbf2f4a4620e598cd0bf5d8fa1548ade08d45b386599542cd988df46a238b85790409f42e SHA512 18acd58436d70900ab6912b84774da2c451b9dbfc83d6d00f85bbbe7894b67075918e58956fdb753fcc1486e4f10caa31139d7c68b037d7c83dc2e9c2fae9f9b diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.11.1-r2.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.11.1-r2.ebuild index 96c0bc7723..1c959b004f 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.11.1-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.11.1-r2.ebuild @@ -21,7 +21,7 @@ else https://curl.se/download/${P}.tar.xz verify-sig? ( https://curl.se/download/${P}.tar.xz.asc ) " - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="BSD curl ISC test? ( BSD-4 )" diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.11.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.12.0-r1.ebuild similarity index 95% rename from sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.11.0-r1.ebuild rename to sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.12.0-r1.ebuild index 2563786372..7acb873fe0 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.11.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.12.0-r1.ebuild @@ -156,15 +156,9 @@ QA_CONFIG_IMPL_DECL_SKIP=( ) PATCHES=( - "${FILESDIR}/${PN}-prefix-3.patch" + "${FILESDIR}/${PN}-prefix-4.patch" "${FILESDIR}/${PN}-respect-cflags-3.patch" - "${FILESDIR}/${P}-cmdline-ech-docs.patch" - "${FILESDIR}/${P}-curl-libssh-ipv6-brackets.patch" - "${FILESDIR}/${P}-mbedtls-global-init.patch" - "${FILESDIR}/${P}-setopt-http_content_decoding.patch" - "${FILESDIR}/${P}-cookie-case-sensitive.patch" - "${FILESDIR}/${P}-duphandle-init-netrc.patch" - "${FILESDIR}/${P}-netrc-large-file.patch" + "${FILESDIR}/${P}-multi.patch" ) src_prepare() { @@ -277,15 +271,12 @@ multilib_src_configure() { --enable-socketpair --disable-sspi $(use_enable static-libs static) - --enable-pthreads - --enable-threaded-resolver --disable-versioned-symbols --without-amissl --without-bearssl $(use_with brotli) --with-fish-functions-dir="${EPREFIX}"/usr/share/fish/vendor_completions.d $(use_with http2 nghttp2) - --without-hyper $(use_with idn libidn2) $(use_with kerberos gssapi "${EPREFIX}"/usr) --without-libgsasl @@ -321,9 +312,17 @@ multilib_src_configure() { ) fi - if [[ ${CHOST} == *mingw* ]] ; then + # Since 8.12.0 adns/c-ares and the threaded resolver are mutually exclusive + # This is in support of some work to enable `httpsrr` to use adns and the rest + # of curl to use the threaded resolver; we'll just make `httpsrr` conditional on adns + # when the time comes. + if use adns; then myconf+=( - --disable-pthreads + --disable-threaded-resolver + ) + else + myconf+=( + --enable-threaded-resolver ) fi diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.8.0-r2.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.12.0.ebuild similarity index 78% rename from sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.8.0-r2.ebuild rename to sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.12.0.ebuild index 89b07c74c6..f8c6055018 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.8.0-r2.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.12.0.ebuild @@ -21,21 +21,30 @@ else https://curl.se/download/${P}.tar.xz verify-sig? ( https://curl.se/download/${P}.tar.xz.asc ) " - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi LICENSE="BSD curl ISC test? ( BSD-4 )" SLOT="0" -IUSE="+adns +alt-svc brotli debug +ftp gnutls gopher +hsts +http2 idn +imap kerberos ldap mbedtls nghttp3 +openssl +pop3" -IUSE+=" +psl +progress-meter rtmp rustls samba +smtp ssh ssl sslv3 static-libs test telnet +tftp websockets zstd" -# These select the default SSL implementation -IUSE+=" curl_ssl_gnutls curl_ssl_mbedtls +curl_ssl_openssl curl_ssl_rustls" +IUSE="+adns +alt-svc brotli debug +ftp gnutls gopher +hsts +http2 +http3 idn +imap kerberos ldap mbedtls +openssl +pop3" +IUSE+=" +psl +progress-meter +quic rtmp rustls samba +smtp ssh ssl sslv3 static-libs test telnet +tftp +websockets zstd" +# These select the default tls implementation / which quic impl to use +IUSE+=" +curl_quic_openssl curl_quic_ngtcp2 curl_ssl_gnutls curl_ssl_mbedtls +curl_ssl_openssl curl_ssl_rustls" RESTRICT="!test? ( test )" -# Only one default ssl provider can be enabled -# The default ssl provider needs its USE satisfied -# nghttp3 = https://bugs.gentoo.org/912029 +# Only one default ssl / quic provider can be enabled +# The default provider needs its USE satisfied +# HTTP/3 and MultiSSL are mutually exclusive; it's not clear if MultiSSL offers any benefit at all in the modern day. +# https://github.com/curl/curl/commit/65ece771f4602107d9cdd339dff4b420280a2c2e REQUIRED_USE=" + quic? ( + ^^ ( + curl_quic_openssl + curl_quic_ngtcp2 + ) + http3 + ssl + ) ssl? ( ^^ ( curl_ssl_gnutls @@ -44,36 +53,49 @@ REQUIRED_USE=" curl_ssl_rustls ) ) + curl_quic_openssl? ( + curl_ssl_openssl + quic + !gnutls + !mbedtls + !rustls + ) + curl_quic_ngtcp2? ( + curl_ssl_gnutls + quic + !mbedtls + !openssl + !rustls + ) curl_ssl_gnutls? ( gnutls ) curl_ssl_mbedtls? ( mbedtls ) curl_ssl_openssl? ( openssl ) curl_ssl_rustls? ( rustls ) - nghttp3? ( - !openssl - alt-svc ) + http3? ( alt-svc quic ) " # cURL's docs and CI/CD are great resources for confirming supported versions # particulary for fast-moving targets like HTTP/2 and TCP/2 e.g.: # - https://github.com/curl/curl/blob/master/docs/INTERNALS.md (core dependencies + minimum versions) # - https://github.com/curl/curl/blob/master/docs/HTTP3.md (example of a feature that moves quickly) -# - https://github.com/curl/curl/blob/master/.github/workflows/quiche-linux.yml (CI/CD for TCP/2) +# - https://github.com/curl/curl/blob/master/.github/workflows/http3-linux.yml (CI/CD for TCP/2) # However 'supported' vs 'works' are two entirely different things; be sane but # don't be afraid to require a later version. - +# ngtcp2 = https://bugs.gentoo.org/912029 - can only build with one tls backend at a time. RDEPEND=" >=sys-libs/zlib-1.1.4[${MULTILIB_USEDEP}] adns? ( >=net-dns/c-ares-1.16.0:=[${MULTILIB_USEDEP}] ) brotli? ( app-arch/brotli:=[${MULTILIB_USEDEP}] ) - http2? ( >=net-libs/nghttp2-1.12.0:=[${MULTILIB_USEDEP}] ) - idn? ( net-dns/libidn2:=[static-libs?,${MULTILIB_USEDEP}] ) + http2? ( >=net-libs/nghttp2-1.15.0:=[${MULTILIB_USEDEP}] ) + http3? ( >=net-libs/nghttp3-1.1.0[${MULTILIB_USEDEP}] ) + idn? ( >=net-dns/libidn2-2.0.0:=[static-libs?,${MULTILIB_USEDEP}] ) kerberos? ( >=virtual/krb5-0-r1[${MULTILIB_USEDEP}] ) ldap? ( >=net-nds/openldap-2.0.0:=[static-libs?,${MULTILIB_USEDEP}] ) - nghttp3? ( - >=net-libs/nghttp3-1.1.0[${MULTILIB_USEDEP}] - >=net-libs/ngtcp2-1.2.0[gnutls,ssl,-openssl,${MULTILIB_USEDEP}] - ) psl? ( net-libs/libpsl[${MULTILIB_USEDEP}] ) + quic? ( + curl_quic_openssl? ( >=dev-libs/openssl-3.3.0:=[quic,${MULTILIB_USEDEP}] ) + curl_quic_ngtcp2? ( >=net-libs/ngtcp2-1.2.0[gnutls,ssl,-openssl,${MULTILIB_USEDEP}] ) + ) rtmp? ( media-video/rtmpdump[${MULTILIB_USEDEP}] ) ssh? ( >=net-libs/libssh2-1.0.0[${MULTILIB_USEDEP}] ) ssl? ( @@ -90,7 +112,7 @@ RDEPEND=" >=dev-libs/openssl-0.9.7:=[sslv3(-)=,static-libs?,${MULTILIB_USEDEP}] ) rustls? ( - >=net-libs/rustls-ffi-0.13.0:=[${MULTILIB_USEDEP}] + >=net-libs/rustls-ffi-0.14.0:=[${MULTILIB_USEDEP}] ) ) zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] ) @@ -104,12 +126,12 @@ BDEPEND=" test? ( sys-apps/diffutils http2? ( >=net-libs/nghttp2-1.15.0:=[utils,${MULTILIB_USEDEP}] ) - nghttp3? ( net-libs/nghttp2:=[utils,${MULTILIB_USEDEP}] ) + http3? ( net-libs/nghttp2:=[utils,${MULTILIB_USEDEP}] ) ) verify-sig? ( sec-keys/openpgp-keys-danielstenberg ) " -DOCS=( CHANGES README docs/{FEATURES.md,INTERNALS.md,FAQ,BUGS.md,CONTRIBUTE.md} ) +DOCS=( README docs/{FEATURES.md,INTERNALS.md,FAQ,BUGS.md,CONTRIBUTE.md} ) MULTILIB_WRAPPED_HEADERS=( /usr/include/curl/curlbuild.h @@ -134,11 +156,8 @@ QA_CONFIG_IMPL_DECL_SKIP=( ) PATCHES=( - "${FILESDIR}"/${PN}-prefix-2.patch - "${FILESDIR}"/${PN}-respect-cflags-3.patch - "${FILESDIR}"/${P}-install-manpage.patch - "${FILESDIR}"/${P}-mbedtls.patch - "${FILESDIR}"/${P}-multi_wait-timeout.patch + "${FILESDIR}/${PN}-prefix-4.patch" + "${FILESDIR}/${PN}-respect-cflags-3.patch" ) src_prepare() { @@ -251,22 +270,20 @@ multilib_src_configure() { --enable-socketpair --disable-sspi $(use_enable static-libs static) - --enable-pthreads - --enable-threaded-resolver --disable-versioned-symbols --without-amissl --without-bearssl $(use_with brotli) --with-fish-functions-dir="${EPREFIX}"/usr/share/fish/vendor_completions.d $(use_with http2 nghttp2) - --without-hyper $(use_with idn libidn2) $(use_with kerberos gssapi "${EPREFIX}"/usr) --without-libgsasl $(use_with psl libpsl) --without-msh3 - $(use_with nghttp3) - $(use_with nghttp3 ngtcp2) + $(use_with http3 nghttp3) + $(use_with curl_quic_ngtcp2 ngtcp2) + $(use_with curl_quic_openssl openssl-quic) --without-quiche $(use_with rtmp librtmp) --without-schannel @@ -288,15 +305,23 @@ multilib_src_configure() { ) fi - if use test && multilib_is_native_abi && ( use http2 || use nghttp3 ); then + if use test && multilib_is_native_abi && ( use http2 || use http3 ); then myconf+=( --with-test-nghttpx="${BROOT}/usr/bin/nghttpx" ) fi - if [[ ${CHOST} == *mingw* ]] ; then + # Since 8.12.0 adns/c-ares and the threaded resolver are mutually exclusive + # This is in support of some work to enable `httpsrr` to use adns and the rest + # of curl to use the threaded resolver; we'll just make `httpsrr` conditional on adns + # when the time comes. + if use adns; then myconf+=( - --disable-pthreads + --disable-threaded-resolver + ) + else + myconf+=( + --enable-threaded-resolver ) fi @@ -308,30 +333,6 @@ multilib_src_configure() { sed -i -e '/SUBDIRS/s:scripts::' Makefile || die fi - # Fix up the pkg-config file to be more robust. - # https://github.com/curl/curl/issues/864 - local priv=() libs=() - # We always enable zlib. - libs+=( "-lz" ) - priv+=( "zlib" ) - if use http2; then - libs+=( "-lnghttp2" ) - priv+=( "libnghttp2" ) - fi - if use nghttp3; then - libs+=( "-lnghttp3" "-lngtcp2" ) - priv+=( "libnghttp3" "libngtcp2" ) - fi - if use ssl && use curl_ssl_openssl; then - libs+=( "-lssl" "-lcrypto" ) - priv+=( "openssl" ) - fi - grep -q Requires.private libcurl.pc && die "need to update ebuild" - libs=$(printf '|%s' "${libs[@]}") - sed -i -r \ - -e "/^Libs.private/s:(${libs#|})( |$)::g" \ - libcurl.pc || die - echo "Requires.private: ${priv[*]}" >> libcurl.pc || die } multilib_src_compile() { @@ -349,7 +350,7 @@ multilib_src_test() { # See https://github.com/curl/curl/blob/master/tests/runtests.pl#L5721 # -n: no valgrind (unreliable in sandbox and doesn't work correctly on all arches) # -v: verbose - # -a: keep going on failure (so we see everything which breaks, not just 1st test) + # -a: keep going on failure (so we see everything that breaks, not just 1st test) # -k: keep test files after completion # -am: automake style TAP output # -p: print logs if test fails diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-9999.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-9999.ebuild index 5a37525caa..f8c6055018 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-9999.ebuild @@ -156,7 +156,7 @@ QA_CONFIG_IMPL_DECL_SKIP=( ) PATCHES=( - "${FILESDIR}/${PN}-prefix-3.patch" + "${FILESDIR}/${PN}-prefix-4.patch" "${FILESDIR}/${PN}-respect-cflags-3.patch" ) @@ -270,15 +270,12 @@ multilib_src_configure() { --enable-socketpair --disable-sspi $(use_enable static-libs static) - --enable-pthreads - --enable-threaded-resolver --disable-versioned-symbols --without-amissl --without-bearssl $(use_with brotli) --with-fish-functions-dir="${EPREFIX}"/usr/share/fish/vendor_completions.d $(use_with http2 nghttp2) - --without-hyper $(use_with idn libidn2) $(use_with kerberos gssapi "${EPREFIX}"/usr) --without-libgsasl @@ -314,9 +311,17 @@ multilib_src_configure() { ) fi - if [[ ${CHOST} == *mingw* ]] ; then + # Since 8.12.0 adns/c-ares and the threaded resolver are mutually exclusive + # This is in support of some work to enable `httpsrr` to use adns and the rest + # of curl to use the threaded resolver; we'll just make `httpsrr` conditional on adns + # when the time comes. + if use adns; then myconf+=( - --disable-pthreads + --disable-threaded-resolver + ) + else + myconf+=( + --enable-threaded-resolver ) fi diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-8.12.0-multi.patch b/sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-8.12.0-multi.patch new file mode 100644 index 0000000000..b9405af8da --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-8.12.0-multi.patch @@ -0,0 +1,136 @@ +https://github.com/curl/curl/issues/16236#issuecomment-2645385845 +https://github.com/curl/curl/commit/242a1439e7d8cdb72ae6a2fa2e705e2d9a2b7501 + + +--- a/lib/setopt.c ++++ b/lib/setopt.c +@@ -1584,10 +1584,6 @@ static CURLcode setopt_pointers(struct Curl_easy *data, CURLoption option, + if(data->share->hsts == data->hsts) + data->hsts = NULL; + #endif +-#ifdef USE_SSL +- if(data->share->ssl_scache == data->state.ssl_scache) +- data->state.ssl_scache = data->multi ? data->multi->ssl_scache : NULL; +-#endif + #ifdef USE_LIBPSL + if(data->psl == &data->share->psl) + data->psl = data->multi ? &data->multi->psl : NULL; +@@ -1628,10 +1624,6 @@ static CURLcode setopt_pointers(struct Curl_easy *data, CURLoption option, + data->hsts = data->share->hsts; + } + #endif +-#ifdef USE_SSL +- if(data->share->ssl_scache) +- data->state.ssl_scache = data->share->ssl_scache; +-#endif + #ifdef USE_LIBPSL + if(data->share->specifier & (1 << CURL_LOCK_DATA_PSL)) + data->psl = &data->share->psl; +--- a/lib/transfer.c ++++ b/lib/transfer.c +@@ -567,12 +567,6 @@ CURLcode Curl_pretransfer(struct Curl_easy *data) + #endif + data->state.httpreq = data->set.method; + +-#ifdef USE_SSL +- if(!data->state.ssl_scache) +- /* There was no ssl session cache set via a share, use the multi one */ +- data->state.ssl_scache = data->multi->ssl_scache; +-#endif +- + data->state.requests = 0; + data->state.followlocation = 0; /* reset the location-follow counter */ + data->state.this_is_a_follow = FALSE; /* reset this */ +--- a/lib/urldata.h ++++ b/lib/urldata.h +@@ -1199,7 +1199,6 @@ struct UrlState { + curl_prot_t first_remote_protocol; + + int retrycount; /* number of retries on a new connection */ +- struct Curl_ssl_scache *ssl_scache; /* TLS session pool */ + int os_errno; /* filled in with errno whenever an error occurs */ + long followlocation; /* redirect counter */ + int requests; /* request counter: redirects + authentication retakes */ +--- a/lib/vtls/vtls_scache.c ++++ b/lib/vtls/vtls_scache.c +@@ -82,6 +82,17 @@ struct Curl_ssl_scache { + long age; + }; + ++static struct Curl_ssl_scache *cf_ssl_scache_get(struct Curl_easy *data) ++{ ++ struct Curl_ssl_scache *scache = NULL; ++ /* If a share is present, its ssl_scache has preference over the multi */ ++ if(data->share && data->share->ssl_scache) ++ scache = data->share->ssl_scache; ++ else if(data->multi && data->multi->ssl_scache) ++ scache = data->multi->ssl_scache; ++ return scache; ++} ++ + static void cf_ssl_scache_clear_session(struct Curl_ssl_session *s) + { + if(s->sdata) { +@@ -792,7 +803,7 @@ CURLcode Curl_ssl_scache_put(struct Curl_cfilter *cf, + const char *ssl_peer_key, + struct Curl_ssl_session *s) + { +- struct Curl_ssl_scache *scache = data->state.ssl_scache; ++ struct Curl_ssl_scache *scache = cf_ssl_scache_get(data); + struct ssl_config_data *ssl_config = Curl_ssl_cf_get_config(cf, data); + CURLcode result; + DEBUGASSERT(ssl_config); +@@ -826,7 +837,7 @@ CURLcode Curl_ssl_scache_take(struct Curl_cfilter *cf, + const char *ssl_peer_key, + struct Curl_ssl_session **ps) + { +- struct Curl_ssl_scache *scache = data->state.ssl_scache; ++ struct Curl_ssl_scache *scache = cf_ssl_scache_get(data); + struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf); + struct Curl_ssl_scache_peer *peer = NULL; + struct Curl_llist_node *n; +@@ -870,7 +881,7 @@ CURLcode Curl_ssl_scache_add_obj(struct Curl_cfilter *cf, + void *sobj, + Curl_ssl_scache_obj_dtor *sobj_free) + { +- struct Curl_ssl_scache *scache = data->state.ssl_scache; ++ struct Curl_ssl_scache *scache = cf_ssl_scache_get(data); + struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf); + struct Curl_ssl_scache_peer *peer = NULL; + CURLcode result; +@@ -898,7 +909,7 @@ bool Curl_ssl_scache_get_obj(struct Curl_cfilter *cf, + const char *ssl_peer_key, + void **sobj) + { +- struct Curl_ssl_scache *scache = data->state.ssl_scache; ++ struct Curl_ssl_scache *scache = cf_ssl_scache_get(data); + struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf); + struct Curl_ssl_scache_peer *peer = NULL; + CURLcode result; +@@ -924,7 +935,7 @@ void Curl_ssl_scache_remove_all(struct Curl_cfilter *cf, + struct Curl_easy *data, + const char *ssl_peer_key) + { +- struct Curl_ssl_scache *scache = data->state.ssl_scache; ++ struct Curl_ssl_scache *scache = cf_ssl_scache_get(data); + struct ssl_primary_config *conn_config = Curl_ssl_cf_get_primary_config(cf); + struct Curl_ssl_scache_peer *peer = NULL; + CURLcode result; +@@ -1021,7 +1032,7 @@ CURLcode Curl_ssl_session_import(struct Curl_easy *data, + const unsigned char *shmac, size_t shmac_len, + const unsigned char *sdata, size_t sdata_len) + { +- struct Curl_ssl_scache *scache = data->state.ssl_scache; ++ struct Curl_ssl_scache *scache = cf_ssl_scache_get(data); + struct Curl_ssl_scache_peer *peer = NULL; + struct Curl_ssl_session *s = NULL; + bool locked = FALSE; +@@ -1092,7 +1103,7 @@ CURLcode Curl_ssl_session_export(struct Curl_easy *data, + curl_ssls_export_cb *export_fn, + void *userptr) + { +- struct Curl_ssl_scache *scache = data->state.ssl_scache; ++ struct Curl_ssl_scache *scache = cf_ssl_scache_get(data); + struct Curl_ssl_scache_peer *peer; + struct dynbuf sbuf, hbuf; + struct Curl_llist_node *n; diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-prefix-4.patch b/sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-prefix-4.patch new file mode 100644 index 0000000000..796b67fd92 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-prefix-4.patch @@ -0,0 +1,35 @@ +From f18f4362d7ca60fb12248a559dab26aea330771c Mon Sep 17 00:00:00 2001 +From: Matt Jolly +Date: Wed, 5 Feb 2025 17:27:11 +1000 +Subject: [PATCH] Update prefix patch for 8.12.0 + +Signed-off-by: Matt Jolly +--- + curl-config.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/curl-config.in b/curl-config.in +index 55184167b..df31fdb46 100644 +--- a/curl-config.in ++++ b/curl-config.in +@@ -141,7 +141,7 @@ while test "$#" -gt 0; do + ;; + + --cflags) +- if test "X@includedir@" = 'X/usr/include'; then ++ if test "X@includedir@" = "X@GENTOO_PORTAGE_EPREFIX@/usr/include"; then + echo '@LIBCURL_PC_CFLAGS@' + else + echo "@LIBCURL_PC_CFLAGS@ -I@includedir@" +@@ -149,7 +149,7 @@ while test "$#" -gt 0; do + ;; + + --libs) +- if test "X@libdir@" != 'X/usr/lib' -a "X@libdir@" != 'X/usr/lib64'; then ++ if test "X@libdir@" != "X@GENTOO_PORTAGE_EPREFIX@/usr/lib" -a "X@libdir@" != "X@GENTOO_PORTAGE_EPREFIX@/usr/lib64"; then + curllibdir="-L@libdir@ " + else + curllibdir='' +-- +2.48.0 + diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/metadata.xml b/sdk_container/src/third_party/portage-stable/net-misc/curl/metadata.xml index 884608c7c1..b3581ad828 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/metadata.xml @@ -17,7 +17,6 @@ Enable HTTP Strict Transport Security Enable Internet Message Access Protocol support Enable mbedtls ssl backend - Enable HTTP/3 support using net-libs/nghttp3 Enable HTTP/3 support Enable openssl ssl backend Enable Post Office Protocol 3 support