net-misc/curl: Sync with Gentoo

It's from Gentoo commit a4ad3e71d71e3afd54cc377a9ed1cfe74e5d8a6e.
This commit is contained in:
Flatcar Buildbot 2024-09-16 07:14:52 +00:00 committed by Krzesimir Nowak
parent ee00acf683
commit 8e52e295af
7 changed files with 65 additions and 10 deletions

View File

@ -1,3 +1,5 @@
DIST curl-8.10.0.tar.xz 2729448 BLAKE2B 18b438c0e4e7b0b698a1fee16406c611124e3d137349869dd8dbb43b5ba45163c6a053e02f665e627424c96e18f8499c13ebe1eeb4c1441936d0183d28696ae6 SHA512 055277695ea242fcb0bf26ca6c4867a385cd578cd73ed4c5c4a020233248044c1ecaebcbaeaac47d3ffe07a41300ea5fc86396d7e812137cf75ed3e1b54ca5b2
DIST curl-8.10.0.tar.xz.asc 488 BLAKE2B 2b651b074b39eb8b34bc9e46a70d4e6597f04250fc3b5c8f8c4641a022529d176179cc54d9c7dccd9b64c62f1873a7ab214705d6a724928e68b871216658a683 SHA512 3d3ece14008facc373cd715d46eeb523bb17a701df3b1839f0774847692613a9472d3e7a60ba814846bbc8e8e4f17c81a1f1355e1c9eebef244b7cd00e0f6fb8
DIST curl-8.7.1.tar.xz 2707016 BLAKE2B a2a9f48d0b69c0d92fcbbda535ce55082a5243abe3ab2db80d6fa3f32fb2c98b65026d69fc45c94e966398cf9ba8d9c95b6b91f4768b54749ed3275dd21838ef SHA512 5bbde9d5648e9226f5490fa951690aaf159149345f3a315df2ba58b2468f3e59ca32e8a49734338afc861803a4f81caac6d642a4699b72c6310ebfb1f618aad2 DIST curl-8.7.1.tar.xz 2707016 BLAKE2B a2a9f48d0b69c0d92fcbbda535ce55082a5243abe3ab2db80d6fa3f32fb2c98b65026d69fc45c94e966398cf9ba8d9c95b6b91f4768b54749ed3275dd21838ef SHA512 5bbde9d5648e9226f5490fa951690aaf159149345f3a315df2ba58b2468f3e59ca32e8a49734338afc861803a4f81caac6d642a4699b72c6310ebfb1f618aad2
DIST curl-8.7.1.tar.xz.asc 488 BLAKE2B 1c91d116aecc8e98d8ec3aad68b7c96f11151e6c2716f531e5d2989e9b6b1199e180603673891d7967cdcdaee1d6b5e15160ccabe9b51590e2887022db03c2ed SHA512 f98c393997c4a32f545a8982226e8cd612395210915a4576c2ce227d0f650cff341be7bf15e989d1789abf32ac4fd9c190b9250b81e650b569e8532048746b37 DIST curl-8.7.1.tar.xz.asc 488 BLAKE2B 1c91d116aecc8e98d8ec3aad68b7c96f11151e6c2716f531e5d2989e9b6b1199e180603673891d7967cdcdaee1d6b5e15160ccabe9b51590e2887022db03c2ed SHA512 f98c393997c4a32f545a8982226e8cd612395210915a4576c2ce227d0f650cff341be7bf15e989d1789abf32ac4fd9c190b9250b81e650b569e8532048746b37
DIST curl-8.8.0.tar.xz 2748860 BLAKE2B c14903bad4cbd1752a5335afa6bcc78be1a484692fce0e0a6c2061963e0e6b4e56defb8332cef32d0dbddb481ad0443b71faf3a52a6e9d945c89ecbce373d2a3 SHA512 9d2c0d3a0d8f6c31ba4fabe48f801910f886fde43dc198dc4213708d6967ed5e040a1bb7348aa1cb126577ee508a3ec36fe65256d027d861d6ffb70f6383967a DIST curl-8.8.0.tar.xz 2748860 BLAKE2B c14903bad4cbd1752a5335afa6bcc78be1a484692fce0e0a6c2061963e0e6b4e56defb8332cef32d0dbddb481ad0443b71faf3a52a6e9d945c89ecbce373d2a3 SHA512 9d2c0d3a0d8f6c31ba4fabe48f801910f886fde43dc198dc4213708d6967ed5e040a1bb7348aa1cb126577ee508a3ec36fe65256d027d861d6ffb70f6383967a

View File

@ -21,13 +21,13 @@ else
https://curl.se/download/${P}.tar.xz https://curl.se/download/${P}.tar.xz
verify-sig? ( https://curl.se/download/${P}.tar.xz.asc ) verify-sig? ( https://curl.se/download/${P}.tar.xz.asc )
" "
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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 fi
LICENSE="BSD curl ISC test? ( BSD-4 )" LICENSE="BSD curl ISC test? ( BSD-4 )"
SLOT="0" SLOT="0"
IUSE="+adns +alt-svc brotli debug +ftp gnutls gopher +hsts +http2 +http3 idn +imap kerberos ldap mbedtls +openssl +pop3" 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" 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 # 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" IUSE+=" +curl_quic_openssl curl_quic_ngtcp2 curl_ssl_gnutls curl_ssl_mbedtls +curl_ssl_openssl curl_ssl_rustls"
RESTRICT="!test? ( test )" RESTRICT="!test? ( test )"
@ -43,6 +43,7 @@ REQUIRED_USE="
curl_quic_ngtcp2 curl_quic_ngtcp2
) )
http3 http3
ssl
) )
ssl? ( ssl? (
^^ ( ^^ (
@ -77,7 +78,7 @@ REQUIRED_USE="
# particulary for fast-moving targets like HTTP/2 and TCP/2 e.g.: # 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/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/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 # However 'supported' vs 'works' are two entirely different things; be sane but
# don't be afraid to require a later version. # 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. # ngtcp2 = https://bugs.gentoo.org/912029 - can only build with one tls backend at a time.
@ -130,7 +131,7 @@ BDEPEND="
verify-sig? ( sec-keys/openpgp-keys-danielstenberg ) 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=( MULTILIB_WRAPPED_HEADERS=(
/usr/include/curl/curlbuild.h /usr/include/curl/curlbuild.h
@ -157,6 +158,7 @@ QA_CONFIG_IMPL_DECL_SKIP=(
PATCHES=( PATCHES=(
"${FILESDIR}"/${PN}-prefix-2.patch "${FILESDIR}"/${PN}-prefix-2.patch
"${FILESDIR}"/${PN}-respect-cflags-3.patch "${FILESDIR}"/${PN}-respect-cflags-3.patch
"${FILESDIR}"/${P}-sendrecv-poll.patch
) )
src_prepare() { src_prepare() {
@ -344,7 +346,7 @@ multilib_src_test() {
# See https://github.com/curl/curl/blob/master/tests/runtests.pl#L5721 # 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) # -n: no valgrind (unreliable in sandbox and doesn't work correctly on all arches)
# -v: verbose # -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 # -k: keep test files after completion
# -am: automake style TAP output # -am: automake style TAP output
# -p: print logs if test fails # -p: print logs if test fails

View File

@ -21,7 +21,7 @@ else
https://curl.se/download/${P}.tar.xz https://curl.se/download/${P}.tar.xz
verify-sig? ( https://curl.se/download/${P}.tar.xz.asc ) verify-sig? ( https://curl.se/download/${P}.tar.xz.asc )
" "
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~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 fi
LICENSE="BSD curl ISC test? ( BSD-4 )" LICENSE="BSD curl ISC test? ( BSD-4 )"

View File

@ -21,7 +21,7 @@ else
https://curl.se/download/${P}.tar.xz https://curl.se/download/${P}.tar.xz
verify-sig? ( https://curl.se/download/${P}.tar.xz.asc ) verify-sig? ( https://curl.se/download/${P}.tar.xz.asc )
" "
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~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 fi
LICENSE="BSD curl ISC test? ( BSD-4 )" LICENSE="BSD curl ISC test? ( BSD-4 )"

View File

@ -21,7 +21,7 @@ else
https://curl.se/download/${P}.tar.xz https://curl.se/download/${P}.tar.xz
verify-sig? ( https://curl.se/download/${P}.tar.xz.asc ) verify-sig? ( https://curl.se/download/${P}.tar.xz.asc )
" "
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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 fi
LICENSE="BSD curl ISC test? ( BSD-4 )" LICENSE="BSD curl ISC test? ( BSD-4 )"

View File

@ -21,7 +21,7 @@ else
https://curl.se/download/${P}.tar.xz https://curl.se/download/${P}.tar.xz
verify-sig? ( https://curl.se/download/${P}.tar.xz.asc ) verify-sig? ( https://curl.se/download/${P}.tar.xz.asc )
" "
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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 fi
LICENSE="BSD curl ISC test? ( BSD-4 )" LICENSE="BSD curl ISC test? ( BSD-4 )"
@ -78,7 +78,7 @@ REQUIRED_USE="
# particulary for fast-moving targets like HTTP/2 and TCP/2 e.g.: # 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/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/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 # However 'supported' vs 'works' are two entirely different things; be sane but
# don't be afraid to require a later version. # 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. # ngtcp2 = https://bugs.gentoo.org/912029 - can only build with one tls backend at a time.

View File

@ -0,0 +1,51 @@
https://github.com/curl/curl/commit/a33bcc9b53b9d6ea9f879624e8abea0b012b008e
From: Stefan Eissing <stefan@eissing.org>
Date: Fri, 13 Sep 2024 18:36:53 +0200
Subject: [PATCH] transfer: fix sendrecv() without interim poll
There was a "clever" optimization that skipped sendrecv() handling when
the transfer's pollset was empty. This happens for paused transfers, for
example.
Unforunately, if the libcurl application never calls curl_multi_poll(),
the pollset is and will aways remain empty, prevent the transfer from
progressing.
Remove this "optimization" and always try send/receive where applicable.
Fixes #14898
Reported-by: Victor Kislov
Closes #14901
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -431,8 +431,6 @@ CURLcode Curl_sendrecv(struct Curl_easy *data, struct curltime *nowp)
if(select_bits_paused(data, data->state.select_bits)) {
/* leave the bits unchanged, so they'll tell us what to do when
* this transfer gets unpaused. */
- /* DEBUGF(infof(data, "sendrecv, select_bits, early return on PAUSED"));
- */
result = CURLE_OK;
goto out;
}
@@ -440,16 +438,13 @@ CURLcode Curl_sendrecv(struct Curl_easy *data, struct curltime *nowp)
/* DEBUGF(infof(data, "sendrecv, select_bits %x, RUN", select_bits)); */
select_bits = (CURL_CSELECT_OUT|CURL_CSELECT_IN);
}
- else if(data->last_poll.num) {
- /* The transfer wanted something polled. Let's run all available
- * send/receives. Worst case we EAGAIN on some. */
- /* DEBUGF(infof(data, "sendrecv, had poll sockets, RUN")); */
+ else {
+ /* try both directions if the transfer wants it. We used to poll
+ * the socket here and on ran send/recv depending on POLLIN/OUT, but
+ * that does not when connections are multiplexed or handshake,
+ * or other direction reversals are happening. */
select_bits = (CURL_CSELECT_OUT|CURL_CSELECT_IN);
}
- else if(data->req.keepon & KEEP_SEND_TIMED) {
- /* DEBUGF(infof(data, "sendrecv, KEEP_SEND_TIMED, RUN ul")); */
- select_bits = CURL_CSELECT_OUT;
- }
#ifdef USE_HYPER
if(data->conn->datastream) {