commit:     508591b213da065801a691a68860eb3d21d898d4
Author:     Matt Jolly <kangie <AT> gentoo <DOT> org>
AuthorDate: Mon Aug  5 07:07:51 2024 +0000
Commit:     Matt Jolly <kangie <AT> gentoo <DOT> org>
CommitDate: Mon Aug  5 07:23:03 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=508591b2

net-misc/curl: add 8.9.1-r1

This revbump includes a patch for a regression where
libcurl could leak SIGPIPE into programs using it,
for example Transmission.

See: https://github.com/curl/curl/issues/14344
Closes: https://bugs.gentoo.org/937139
Signed-off-by: Matt Jolly <kangie <AT> gentoo.org>

 .../{curl-9999.ebuild => curl-8.9.1-r1.ebuild}     |  4 +++-
 net-misc/curl/curl-9999.ebuild                     |  1 +
 net-misc/curl/files/curl-8.9.1-sigpipe.patch       | 26 ++++++++++++++++++++++
 3 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/net-misc/curl/curl-9999.ebuild b/net-misc/curl/curl-8.9.1-r1.ebuild
similarity index 99%
copy from net-misc/curl/curl-9999.ebuild
copy to net-misc/curl/curl-8.9.1-r1.ebuild
index 2660f7cff4ca..68501e82986b 100644
--- a/net-misc/curl/curl-9999.ebuild
+++ b/net-misc/curl/curl-8.9.1-r1.ebuild
@@ -27,7 +27,7 @@ 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? (
                ^^ (
@@ -157,6 +158,7 @@ QA_CONFIG_IMPL_DECL_SKIP=(
 PATCHES=(
        "${FILESDIR}"/${PN}-prefix-2.patch
        "${FILESDIR}"/${PN}-respect-cflags-3.patch
+       "${FILESDIR}"/${PN}-8.9.1-sigpipe.patch
 )
 
 src_prepare() {

diff --git a/net-misc/curl/curl-9999.ebuild b/net-misc/curl/curl-9999.ebuild
index 2660f7cff4ca..0e787dfac352 100644
--- a/net-misc/curl/curl-9999.ebuild
+++ b/net-misc/curl/curl-9999.ebuild
@@ -43,6 +43,7 @@ REQUIRED_USE="
                        curl_quic_ngtcp2
                )
                http3
+               ssl
        )
        ssl? (
                ^^ (

diff --git a/net-misc/curl/files/curl-8.9.1-sigpipe.patch 
b/net-misc/curl/files/curl-8.9.1-sigpipe.patch
new file mode 100644
index 000000000000..d308fc4420e1
--- /dev/null
+++ b/net-misc/curl/files/curl-8.9.1-sigpipe.patch
@@ -0,0 +1,26 @@
+https://github.com/curl/curl/commit/3eec5afbd0b6377eca893c392569b2faf094d970
+From: Daniel Stenberg <[email protected]>
+Date: Mon, 5 Aug 2024 00:17:17 +0200
+Subject: [PATCH] sigpipe: init the struct so that first apply ignores
+
+Initializes 'no_signal' to TRUE, so that a call to sigpipe_apply() after
+init ignores the signal (unless CURLOPT_NOSIGNAL) is set.
+
+I have read the existing code multiple times now and I think it gets the
+initial state reversed this missing to ignore.
+
+Regression from 17e6f06ea37136c36d27
+
+Reported-by: Rasmus Thomsen
+Fixes #14344
+Closes #14390
+--- a/lib/sigpipe.h
++++ b/lib/sigpipe.h
+@@ -39,6 +39,7 @@ struct sigpipe_ignore {
+ static void sigpipe_init(struct sigpipe_ignore *ig)
+ {
+   memset(ig, 0, sizeof(*ig));
++  ig->no_signal = TRUE;
+ }
+ 
+ /*

Reply via email to