diff --git a/srcpkgs/curl/patches/0001-select-do-not-return-fatal-error-on-EINTR-from-poll.patch b/srcpkgs/curl/patches/0001-select-do-not-return-fatal-error-on-EINTR-from-poll.patch new file mode 100644 index 00000000000..c2456da0e1d --- /dev/null +++ b/srcpkgs/curl/patches/0001-select-do-not-return-fatal-error-on-EINTR-from-poll.patch @@ -0,0 +1,40 @@ +From 52e822173aa3cd4f610531d32fbf943f026cdca6 Mon Sep 17 00:00:00 2001 +From: Thomas Weißschuh +Date: Sun, 3 Jul 2022 18:20:44 +0200 +Subject: select: do not return fatal error on EINTR from poll() + +The same was done for select() in 5912da25 but poll() was missed. + +Bug: https://bugs.archlinux.org/task/75201 +Reported-by: Alexandre Bury (gyscos at archlinux) + +Ref: https://github.com/curl/curl/issues/8921 +Ref: https://github.com/curl/curl/pull/8961 +Ref: https://github.com/curl/curl/commit/5912da25#r77584294 + +Closes https://github.com/curl/curl/pull/9091 +--- + lib/select.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/lib/select.c b/lib/select.c +index c16358d56..2ac074677 100644 +--- a/lib/select.c ++++ b/lib/select.c +@@ -310,8 +310,12 @@ int Curl_poll(struct pollfd ufds[], unsigned int nfds, timediff_t timeout_ms) + else + pending_ms = 0; + r = poll(ufds, nfds, pending_ms); +- if(r <= 0) ++ if(r <= 0) { ++ if((r == -1) && (SOCKERRNO == EINTR)) ++ /* make EINTR from select or poll not a "lethal" error */ ++ r = 0; + return r; ++ } + + for(i = 0; i < nfds; i++) { + if(ufds[i].fd == CURL_SOCKET_BAD) +-- +cgit v1.2.3-18-g5258 + diff --git a/srcpkgs/curl/template b/srcpkgs/curl/template index 8579b3244f5..eb8c4204a6c 100644 --- a/srcpkgs/curl/template +++ b/srcpkgs/curl/template @@ -1,10 +1,10 @@ # Template file for 'curl' pkgname=curl version=7.84.0 -revision=1 +revision=2 build_style=gnu-configure configure_args="ac_cv_sizeof_off_t=8 --enable-threaded-resolver --enable-ipv6 - $(vopt_with rtmp) $(vopt_with gssapi) $(vopt_enable ldap) $(vopt_with gnutls) + $(vopt_with rtmp librtmp) $(vopt_with gssapi) $(vopt_enable ldap) $(vopt_with gnutls) $(vopt_enable ldap ldaps) $(vopt_with ssh libssh2) $(vopt_with ssl) $(vopt_with zstd) --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt --without-libidn2 ac_cv_path_NROFF=/usr/bin/mandoc" @@ -58,16 +58,15 @@ post_install() { if [ -n "$XBPS_CROSS_BASE" ]; then # Leave $XBPS_CROSS_BASE in --configure to reflect how it was built vsed -i $DESTDIR/usr/bin/curl-config \ - -e "/[ ]*--static-libs)/,/[ ]*;;/ s,-L$XBPS_CROSS_BASE,-L," + -e "/[ ]*--static-libs)/,/[ ]*;;/ s,-L${XBPS_CROSS_BASE},-L," fi - - vlicense COPYING } libcurl_package() { short_desc="Multiprotocol file transfer library" pkg_install() { vmove "usr/lib/*.so.*" + vlicense COPYING } }