From 8e52e295af9aa7fd36d92b7b54de0bc5bbf627e0 Mon Sep 17 00:00:00 2001 From: Flatcar Buildbot Date: Mon, 16 Sep 2024 07:14:52 +0000 Subject: [PATCH] net-misc/curl: Sync with Gentoo It's from Gentoo commit a4ad3e71d71e3afd54cc377a9ed1cfe74e5d8a6e. --- .../portage-stable/net-misc/curl/Manifest | 2 + ...url-8.9.1.ebuild => curl-8.10.0-r1.ebuild} | 12 +++-- .../net-misc/curl/curl-8.7.1-r4.ebuild | 2 +- .../net-misc/curl/curl-8.8.0-r1.ebuild | 2 +- .../net-misc/curl/curl-8.9.1-r1.ebuild | 2 +- .../net-misc/curl/curl-9999.ebuild | 4 +- .../files/curl-8.10.0-sendrecv-poll.patch | 51 +++++++++++++++++++ 7 files changed, 65 insertions(+), 10 deletions(-) rename sdk_container/src/third_party/portage-stable/net-misc/curl/{curl-8.9.1.ebuild => curl-8.10.0-r1.ebuild} (95%) create mode 100644 sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-8.10.0-sendrecv-poll.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 f629b1d12d..217735387d 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,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.asc 488 BLAKE2B 1c91d116aecc8e98d8ec3aad68b7c96f11151e6c2716f531e5d2989e9b6b1199e180603673891d7967cdcdaee1d6b5e15160ccabe9b51590e2887022db03c2ed SHA512 f98c393997c4a32f545a8982226e8cd612395210915a4576c2ce227d0f650cff341be7bf15e989d1789abf32ac4fd9c190b9250b81e650b569e8532048746b37 DIST curl-8.8.0.tar.xz 2748860 BLAKE2B c14903bad4cbd1752a5335afa6bcc78be1a484692fce0e0a6c2061963e0e6b4e56defb8332cef32d0dbddb481ad0443b71faf3a52a6e9d945c89ecbce373d2a3 SHA512 9d2c0d3a0d8f6c31ba4fabe48f801910f886fde43dc198dc4213708d6967ed5e040a1bb7348aa1cb126577ee508a3ec36fe65256d027d861d6ffb70f6383967a diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.9.1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.10.0-r1.ebuild similarity index 95% rename from sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.9.1.ebuild rename to sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.10.0-r1.ebuild index 29fe1924e3..335c3c36a0 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.9.1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.10.0-r1.ebuild @@ -21,13 +21,13 @@ else https://curl.se/download/${P}.tar.xz 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 LICENSE="BSD curl ISC test? ( BSD-4 )" SLOT="0" 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 IUSE+=" +curl_quic_openssl curl_quic_ngtcp2 curl_ssl_gnutls curl_ssl_mbedtls +curl_ssl_openssl curl_ssl_rustls" RESTRICT="!test? ( test )" @@ -43,6 +43,7 @@ REQUIRED_USE=" curl_quic_ngtcp2 ) http3 + ssl ) ssl? ( ^^ ( @@ -77,7 +78,7 @@ REQUIRED_USE=" # 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. @@ -130,7 +131,7 @@ BDEPEND=" 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 @@ -157,6 +158,7 @@ QA_CONFIG_IMPL_DECL_SKIP=( PATCHES=( "${FILESDIR}"/${PN}-prefix-2.patch "${FILESDIR}"/${PN}-respect-cflags-3.patch + "${FILESDIR}"/${P}-sendrecv-poll.patch ) src_prepare() { @@ -344,7 +346,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-8.7.1-r4.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.7.1-r4.ebuild index d9502c6ca2..512d7c8bb4 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.7.1-r4.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.7.1-r4.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 ~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 LICENSE="BSD curl ISC test? ( BSD-4 )" diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.8.0-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.8.0-r1.ebuild index 585156f0e2..485b1a721f 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.8.0-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.8.0-r1.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 ~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 LICENSE="BSD curl ISC test? ( BSD-4 )" diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.9.1-r1.ebuild b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.9.1-r1.ebuild index 68501e8298..ab60a16536 100644 --- a/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.9.1-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/curl-8.9.1-r1.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 ~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 LICENSE="BSD curl ISC test? ( BSD-4 )" 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 94d88b0924..8aa5f19b3d 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 @@ -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 ~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 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.: # - 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. diff --git a/sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-8.10.0-sendrecv-poll.patch b/sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-8.10.0-sendrecv-poll.patch new file mode 100644 index 0000000000..4465437700 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/net-misc/curl/files/curl-8.10.0-sendrecv-poll.patch @@ -0,0 +1,51 @@ +https://github.com/curl/curl/commit/a33bcc9b53b9d6ea9f879624e8abea0b012b008e +From: Stefan Eissing +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) {