Commit: 77cf7d6a51966f926df49e62122a671b0dfd9337
Parent: 68ac5f38afff8b682e4e1aa953aab6e712e584ce
Author: Randy Palamar
Date: Sun, 15 Oct 2023 13:32:04 -0600
curl: update to 8.4.0
Diffstat:
11 files changed, 138 insertions(+), 93 deletions(-)
diff --git a/pkg/net/curl/.gitignore b/pkg/net/curl/.gitignore
@@ -1,2 +1,2 @@
-/curl-7.85.0.tar.gz
+/curl-8.4.0.tar.gz
/src
diff --git a/pkg/net/curl/curl_config.h b/pkg/net/curl/curl_config.h
@@ -4,11 +4,16 @@
/* #undef CURL_CA_PATH */
/* #undef CURL_DEFAULT_SSL_BACKEND */
/* #undef CURL_DISABLE_ALTSVC */
+/* #undef CURL_DISABLE_AWS */
+/* #undef CURL_DISABLE_BASIC_AUTH */
+/* #undef CURL_DISABLE_BEARER_AUTH */
+/* #undef CURL_DISABLE_BINDLOCAL */
/* #undef CURL_DISABLE_COOKIES */
-/* #undef CURL_DISABLE_CRYPTO_AUTH */
/* #undef CURL_DISABLE_DICT */
+/* #undef CURL_DISABLE_DIGEST_AUTH */
/* #undef CURL_DISABLE_DOH */
/* #undef CURL_DISABLE_FILE */
+/* #undef CURL_DISABLE_FORM_API */
/* #undef CURL_DISABLE_FTP */
/* #undef CURL_DISABLE_GETOPTIONS */
/* #undef CURL_DISABLE_GOPHER */
@@ -17,11 +22,13 @@
/* #undef CURL_DISABLE_HTTP */
/* #undef CURL_DISABLE_HTTP_AUTH */
/* #undef CURL_DISABLE_IMAP */
+/* #undef CURL_DISABLE_KERBEROS_AUTH */
#define CURL_DISABLE_LDAP 1
#define CURL_DISABLE_LDAPS 1
/* #undef CURL_DISABLE_LIBCURL_OPTION */
/* #undef CURL_DISABLE_MIME */
/* #undef CURL_DISABLE_MQTT */
+/* #undef CURL_DISABLE_NEGOTIATE_AUTH */
/* #undef CURL_DISABLE_NETRC */
/* #undef CURL_DISABLE_NTLM */
/* #undef CURL_DISABLE_OPENSSL_AUTO_LOAD_CONFIG */
@@ -41,29 +48,25 @@
#define CURL_SA_FAMILY_T sa_family_t
/* #undef CURL_WITH_MULTI_SSL */
/* #undef DEBUGBUILD */
-/* #undef EGD_SOCKET */
#define ENABLE_IPV6 1
#define GETHOSTNAME_TYPE_ARG2 size_t
#define HAVE_ALARM 1
+/* #undef HAVE_ARC4RANDOM */
#define HAVE_ARPA_INET_H 1
-#define HAVE_ARPA_TFTP_H 1
-#define HAVE_ASSERT_H 1
#define HAVE_ATOMIC 1
#define HAVE_BASENAME 1
#define HAVE_BOOL_T 1
-/* #undef HAVE_BORINGSSL */
/* #undef HAVE_BROTLI */
/* #undef HAVE_BROTLI_DECODE_H */
/* #undef HAVE_BUILTIN_AVAILABLE */
#define HAVE_CLOCK_GETTIME_MONOTONIC 1
+#define HAVE_CLOCK_GETTIME_MONOTONIC_RAW 1
/* #undef HAVE_CLOSESOCKET */
/* #undef HAVE_CLOSESOCKET_CAMEL */
-#define HAVE_CONNECT 1
/* #undef HAVE_CRYPTO_H */
#define HAVE_DECL_GETPWUID_R 1
/* #undef HAVE_DECL_GETPWUID_R_MISSING */
#define HAVE_DLFCN_H 1
-#define HAVE_ERRNO_H 1
/* #undef HAVE_ERR_H */
#define HAVE_FCHMOD 1
#define HAVE_FCNTL 1
@@ -71,6 +74,7 @@
#define HAVE_FCNTL_O_NONBLOCK 1
#define HAVE_FNMATCH 1
#define HAVE_FREEADDRINFO 1
+#define HAVE_FSEEKO 1
#define HAVE_FSETXATTR 1
#define HAVE_FSETXATTR_5 1
/* #undef HAVE_FSETXATTR_6 */
@@ -110,13 +114,17 @@
#define HAVE_INET_NTOP 1
#define HAVE_INET_PTON 1
#define HAVE_INTTYPES_H 1
+#define HAVE_IOCTL 1
/* #undef HAVE_IOCTLSOCKET */
/* #undef HAVE_IOCTLSOCKET_CAMEL */
/* #undef HAVE_IOCTLSOCKET_CAMEL_FIONBIO */
/* #undef HAVE_IOCTLSOCKET_FIONBIO */
+#define HAVE_IOCTL_FIONBIO 1
+#define HAVE_IOCTL_SIOCGIFADDR 1
/* #undef HAVE_IO_H */
/* #undef HAVE_LBER_H */
/* #undef HAVE_LDAP_H */
+/* #undef HAVE_LDAP_INIT_FD */
#define HAVE_LDAP_SSL 1
/* #undef HAVE_LDAP_SSL_H */
/* #undef HAVE_LDAP_URL_PARSE */
@@ -127,8 +135,6 @@
/* #undef HAVE_LIBRTMP_RTMP_H */
/* #undef HAVE_LIBSSH */
/* #undef HAVE_LIBSSH2 */
-/* #undef HAVE_LIBSSH2_H */
-/* #undef HAVE_LIBSSH_LIBSSH_H */
/* #undef HAVE_LIBSSL */
/* #undef HAVE_LIBWOLFSSH */
#define HAVE_LIBZ 1
@@ -161,7 +167,6 @@
/* #undef HAVE_OPENSSL_X509_H */
/* #undef HAVE_PEM_H */
#define HAVE_PIPE 1
-/* #undef HAVE_PK11_CREATEMANAGEDGENERICOBJECT */
#define HAVE_POLL_FINE 1
#define HAVE_POLL_H 1
#define HAVE_POSIX_STRERROR_R 1
@@ -170,7 +175,6 @@
#define HAVE_PWD_H 1
/* #undef HAVE_QUICHE_CONN_SET_QLOG_FD */
/* #undef HAVE_QUICHE_H */
-/* #undef HAVE_RAND_EGD */
#define HAVE_RECV 1
/* #undef HAVE_RSA_H */
#define HAVE_SCHED_YIELD 1
@@ -184,14 +188,15 @@
#define HAVE_SIGACTION 1
#define HAVE_SIGINTERRUPT 1
#define HAVE_SIGNAL 1
-#define HAVE_SIGNAL_H 1
#define HAVE_SIGSETJMP 1
+#define HAVE_SNPRINTF 1
#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
#define HAVE_SOCKET 1
#define HAVE_SOCKETPAIR 1
/* #undef HAVE_SOCKET_H */
/* #undef HAVE_SSL_GET_ECH_STATUS */
/* #undef HAVE_SSL_H */
+/* #undef HAVE_SSL_SET0_WBIO */
#define HAVE_STDATOMIC_H 1
#define HAVE_STDBOOL_H 1
#define HAVE_STDINT_H 1
@@ -204,6 +209,7 @@
/* #undef HAVE_STRICMP */
#define HAVE_STRINGS_H 1
#define HAVE_STRING_H 1
+#define HAVE_STROPTS_H 1
#define HAVE_STRTOK_R 1
#define HAVE_STRTOLL 1
#define HAVE_STRUCT_SOCKADDR_STORAGE 1
@@ -220,7 +226,6 @@
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_SYS_TYPES_H 1
-#define HAVE_SYS_UIO_H 1
#define HAVE_SYS_UN_H 1
/* #undef HAVE_SYS_UTIME_H */
#define HAVE_SYS_WAIT_H 1
@@ -234,26 +239,25 @@
#define HAVE_UTIME_H 1
#define HAVE_VARIADIC_MACROS_C99 1
#define HAVE_VARIADIC_MACROS_GCC 1
-/* #undef HAVE_WINCRYPT_H */
/* #undef HAVE_WINDOWS_H */
-/* #undef HAVE_WINLDAP_H */
/* #undef HAVE_WINSOCK2_H */
/* #undef HAVE_WOLFSSH_SSH_H */
/* #undef HAVE_WOLFSSL_DES_ECB_ENCRYPT */
+/* #undef HAVE_WOLFSSL_FULL_BIO */
/* #undef HAVE_WOLFSSL_GET_PEER_CERTIFICATE */
/* #undef HAVE_WOLFSSL_USEALPN */
#define HAVE_WRITABLE_ARGV 1
/* #undef HAVE_WS2TCPIP_H */
/* #undef HAVE_X509_H */
-#define HAVE_ZLIB_H 1
/* #undef HAVE_ZSTD */
/* #undef HAVE_ZSTD_H */
+/* #undef HAVE__FSEEKI64 */
#define LT_OBJDIR ".libs/"
/* #undef NEED_LBER_H */
/* #undef NEED_REENTRANT */
/* #undef NEED_THREAD_SAFE */
-#define NTLM_WB_ENABLED 1
-#define NTLM_WB_FILE "/usr/bin/ntlm_auth"
+/* #undef NTLM_WB_ENABLED */
+/* #undef NTLM_WB_FILE */
#define OS "oasis"
#define PACKAGE "curl"
#define PACKAGE_BUGREPORT "a suitable curl mailing list: https://curl.se/mail/"
@@ -263,23 +267,8 @@
#define PACKAGE_URL ""
#define PACKAGE_VERSION "-"
/* #undef RANDOM_FILE */
-#define RECV_TYPE_ARG1 int
-#define RECV_TYPE_ARG2 void *
-#define RECV_TYPE_ARG3 size_t
-#define RECV_TYPE_ARG4 int
-#define RECV_TYPE_RETV ssize_t
-#define SELECT_QUAL_ARG5
-#define SELECT_TYPE_ARG1 int
-#define SELECT_TYPE_ARG234 fd_set *
-#define SELECT_TYPE_ARG5 struct timeval *
-#define SELECT_TYPE_RETV int
-#define SEND_QUAL_ARG2 const
-#define SEND_TYPE_ARG1 int
-#define SEND_TYPE_ARG2 void *
-#define SEND_TYPE_ARG3 size_t
-#define SEND_TYPE_ARG4 int
-#define SEND_TYPE_RETV ssize_t
#define SIZEOF_CURL_OFF_T 8
+#define SIZEOF_CURL_SOCKET_T 4
#define SIZEOF_INT 4
/* probe SIZEOF_LONG */
/* #undef SIZEOF_LONG_LONG */
@@ -305,9 +294,8 @@
/* #undef USE_NGHTTP3 */
/* #undef USE_NGTCP2 */
/* #undef USE_NGTCP2_CRYPTO_GNUTLS */
-/* #undef USE_NGTCP2_CRYPTO_OPENSSL */
+/* #undef USE_NGTCP2_CRYPTO_QUICTLS */
/* #undef USE_NGTCP2_CRYPTO_WOLFSSL */
-/* #undef USE_NSS */
/* #undef USE_OPENLDAP */
/* #undef USE_OPENSSL */
/* #undef USE_QUICHE */
@@ -318,6 +306,7 @@
/* #undef USE_THREADS_WIN32 */
/* #undef USE_TLS_SRP */
#define USE_UNIX_SOCKETS 1
+/* #undef USE_WEBSOCKETS */
/* #undef USE_WIN32_CRYPTO */
/* #undef USE_WIN32_IDN */
/* #undef USE_WIN32_LARGE_FILES */
@@ -327,7 +316,6 @@
/* #undef USE_WOLFSSH */
/* #undef USE_WOLFSSL */
#define VERSION "-"
-/* #undef WANT_IDN_PROTOTYPES */
#ifndef _ALL_SOURCE
/* # undef _ALL_SOURCE */
#endif
diff --git a/pkg/net/curl/gen.lua b/pkg/net/curl/gen.lua
@@ -21,21 +21,24 @@ build('cat', '$outdir/curl_config.h', {
'$builddir/probe/SIZEOF_TIME_T',
})
+build('touch', '$outdir/include/curl/websockets.h')
+
pkg.hdrs = copy('$outdir/include/curl', '$srcdir/include/curl', {
'curl.h',
'curlver.h',
'easy.h',
+ 'header.h',
'mprintf.h',
- 'stdcheaders.h',
'multi.h',
- 'typecheck-gcc.h',
+ 'options.h',
+ 'stdcheaders.h',
'system.h',
+ 'typecheck-gcc.h',
'urlapi.h',
- 'options.h',
- 'header.h',
})
pkg.deps = {
'$outdir/curl_config.h',
+ '$outdir/include/curl/websockets.h',
'$gendir/headers',
'pkg/libs/bearssl/headers',
'pkg/devel/linux-headers/headers',
@@ -45,28 +48,29 @@ pkg.deps = {
-- src/lib/Makefile.inc:/^CSOURCES
lib('libcurl.a', [[
lib/(
- altsvc.c amigaos.c asyn-ares.c asyn-thread.c base64.c bufref.c
- c-hyper.c conncache.c connect.c content_encoding.c cookie.c
- curl_addrinfo.c curl_ctype.c curl_des.c curl_endian.c
- curl_fnmatch.c curl_get_line.c curl_gethostname.c curl_gssapi.c
- curl_memrchr.c curl_multibyte.c curl_ntlm_core.c curl_ntlm_wb.c
- curl_path.c curl_range.c curl_rtmp.c curl_sasl.c curl_sspi.c
- curl_threads.c dict.c doh.c dotdot.c dynbuf.c easy.c
- easygetopt.c easyoptions.c escape.c file.c fileinfo.c fopen.c
- formdata.c ftp.c ftplistparser.c getenv.c getinfo.c gopher.c
- h2h3.c hash.c headers.c hmac.c hostasyn.c hostip.c hostip4.c
- hostip6.c hostsyn.c hsts.c http.c http2.c http_chunks.c
- http_digest.c http_negotiate.c http_ntlm.c http_proxy.c
- http_aws_sigv4.c idn_win32.c if2ip.c imap.c inet_ntop.c
- inet_pton.c krb5.c ldap.c llist.c md4.c md5.c memdebug.c mime.c
- mprintf.c mqtt.c multi.c netrc.c nonblock.c openldap.c
- parsedate.c pingpong.c pop3.c progress.c psl.c rand.c rename.c
- rtsp.c select.c sendf.c setopt.c sha256.c share.c slist.c smb.c
- smtp.c socketpair.c socks.c socks_gssapi.c socks_sspi.c
- speedcheck.c splay.c strcase.c strdup.c strerror.c strtok.c
- strtoofft.c system_win32.c telnet.c tftp.c timediff.c timeval.c
- transfer.c url.c urlapi.c version.c version_win32.c warnless.c
- wildcard.c
+ altsvc.c amigaos.c asyn-ares.c asyn-thread.c base64.c bufq.c
+ bufref.c c-hyper.c cf-h1-proxy.c cf-h2-proxy.c cf-haproxy.c
+ cf-https-connect.c cf-socket.c cfilters.c conncache.c connect.c
+ content_encoding.c cookie.c curl_addrinfo.c curl_des.c
+ curl_endian.c curl_fnmatch.c curl_get_line.c curl_gethostname.c
+ curl_gssapi.c curl_memrchr.c curl_multibyte.c curl_ntlm_core.c
+ curl_ntlm_wb.c curl_path.c curl_range.c curl_rtmp.c curl_sasl.c
+ curl_sspi.c curl_threads.c curl_trc.c dict.c doh.c dynbuf.c
+ dynhds.c easy.c easygetopt.c easyoptions.c escape.c file.c
+ fileinfo.c fopen.c formdata.c ftp.c ftplistparser.c getenv.c
+ getinfo.c gopher.c hash.c headers.c hmac.c hostasyn.c hostip.c
+ hostip4.c hostip6.c hostsyn.c hsts.c http.c http1.c http2.c
+ http_aws_sigv4.c http_chunks.c http_digest.c http_negotiate.c
+ http_ntlm.c http_proxy.c idn.c if2ip.c imap.c inet_ntop.c
+ inet_pton.c krb5.c ldap.c llist.c macos.c md4.c md5.c memdebug.c
+ mime.c mprintf.c mqtt.c multi.c netrc.c nonblock.c noproxy.c
+ openldap.c parsedate.c pingpong.c pop3.c progress.c psl.c rand.c
+ rename.c rtsp.c select.c sendf.c setopt.c sha256.c share.c
+ slist.c smb.c smtp.c socketpair.c socks.c socks_gssapi.c
+ socks_sspi.c speedcheck.c splay.c strcase.c strdup.c strerror.c
+ strtok.c strtoofft.c system_win32.c telnet.c tftp.c timediff.c
+ timeval.c transfer.c url.c urlapi.c version.c version_win32.c
+ warnless.c ws.c
vauth/(
cleartext.c cram.c digest.c digest_sspi.c
gsasl.c krb5_gssapi.c krb5_sspi.c ntlm.c
@@ -74,22 +78,18 @@ lib('libcurl.a', [[
spnego_sspi.c vauth.c
)
vtls/(
- bearssl.c gskit.c gtls.c hostcheck.c keylog.c mbedtls.c
- mbedtls_threadlock.c nss.c openssl.c rustls.c schannel.c
+ bearssl.c gtls.c hostcheck.c keylog.c mbedtls.c
+ mbedtls_threadlock.c openssl.c rustls.c schannel.c
schannel_verify.c sectransp.c vtls.c wolfssl.c
x509asn1.c
)
- vquic/(msh3.c ngtcp2.c quiche.c vquic.c)
+ vquic/(curl_msh3.c curl_ngtcp2.c curl_quiche.c vquic.c)
vssh/(libssh.c libssh2.c wolfssh.c)
)
$builddir/pkg/libs/bearssl/libbearssl.a
$builddir/pkg/libs/zlib/libz.a
]])
-build('cc', '$outdir/tool_hugehelp.c.o', {
- '$dir/tool_hugehelp.c', '||', '$gendir/deps', '$srcdir/src/tool_hugehelp.h',
-})
-
-- src/src/Makefile.inc:/^CURL_CFILES
exe('curl', [[
src/(
@@ -119,21 +119,21 @@ exe('curl', [[
tool_msgs.c
tool_operate.c
tool_operhlp.c
- tool_panykey.c
tool_paramhlp.c
tool_parsecfg.c
tool_progress.c
- tool_strdup.c
tool_setopt.c
tool_sleep.c
+ tool_stderr.c
+ tool_strdup.c
tool_urlglob.c
tool_util.c
tool_vms.c
tool_writeout.c
tool_writeout_json.c
tool_xattr.c
+ var.c
)
- tool_hugehelp.c.o
libcurl.a.d
]])
diff --git a/pkg/net/curl/patch/0001-Reuse-dynbuf-symbols-for-curl-tool.patch b/pkg/net/curl/patch/0001-Reuse-dynbuf-symbols-for-curl-tool.patch
@@ -1,19 +1,19 @@
-From 04afba4813f504cafb717c48c50de4395fb3ea71 Mon Sep 17 00:00:00 2001
+From 78a6d851168c533469e8e22f210ba1654d377a78 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
-Date: Fri, 16 Oct 2020 19:09:50 -0700
+Date: Sun, 15 Oct 2023 08:33:50 -0600
Subject: [PATCH] Reuse dynbuf symbols for curl tool
---
- lib/dynbuf.h | 24 +++++++++++-------------
- 1 file changed, 11 insertions(+), 13 deletions(-)
+ lib/dynbuf.h | 26 ++++++++++++--------------
+ 1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/lib/dynbuf.h b/lib/dynbuf.h
-index c1e97235d..8b9158051 100644
+index 31a9130..507f5f5 100644
--- a/lib/dynbuf.h
+++ b/lib/dynbuf.h
-@@ -24,22 +24,20 @@
- *
- ***************************************************************************/
+@@ -26,23 +26,21 @@
+
+ #include <curl/curl.h>
-#ifndef BUILDING_LIBCURL
/* this renames the functions so that the tool code can use the same code
@@ -29,6 +29,7 @@ index c1e97235d..8b9158051 100644
-#define Curl_dyn_len(a) curlx_dyn_len(a)
-#define Curl_dyn_reset(a) curlx_dyn_reset(a)
-#define Curl_dyn_tail(a,b) curlx_dyn_tail(a,b)
+-#define Curl_dyn_setlen(a,b) curlx_dyn_setlen(a,b)
+#define curlx_dyn_init(a,b) Curl_dyn_init(a,b)
+#define curlx_dyn_add(a,b) Curl_dyn_add(a,b)
+#define curlx_dyn_addn(a,b,c) Curl_dyn_addn(a,b,c)
@@ -40,11 +41,12 @@ index c1e97235d..8b9158051 100644
+#define curlx_dyn_len(a) Curl_dyn_len(a)
+#define curlx_dyn_reset(a) Curl_dyn_reset(a)
+#define curlx_dyn_tail(a,b) Curl_dyn_tail(a,b)
++#define curlx_dyn_setlen(a,b) Curl_dyn_setlen(a,b)
#define curlx_dynbuf dynbuf /* for the struct name */
-#endif
struct dynbuf {
char *bufr; /* point to a null-terminated allocated buffer */
--
-2.35.1
+2.42.0
diff --git a/pkg/net/curl/patch/0002-bearssl-Remove-unnecessary-CA-blob-length-check.patch b/pkg/net/curl/patch/0002-bearssl-Remove-unnecessary-CA-blob-length-check.patch
@@ -1,4 +1,4 @@
-From 643bad651c570c0e2b5889df4d0cb0803fa58b1e Mon Sep 17 00:00:00 2001
+From f91719c41ecf96fe661a3fa03b5d22b8e6d52402 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Mon, 15 Nov 2021 13:10:02 -0800
Subject: [PATCH] bearssl: Remove unnecessary CA blob length check
@@ -11,10 +11,10 @@ than INT_MAX.
1 file changed, 3 deletions(-)
diff --git a/lib/vtls/bearssl.c b/lib/vtls/bearssl.c
-index f14eb66a2..ffa7c1166 100644
+index 934149c..32d9a5b 100644
--- a/lib/vtls/bearssl.c
+++ b/lib/vtls/bearssl.c
-@@ -129,9 +129,6 @@ static CURLcode load_cafile(struct cafile_source *source,
+@@ -133,9 +133,6 @@ static CURLcode load_cafile(struct cafile_source *source,
return CURLE_SSL_CACERT_BADFILE;
}
@@ -25,5 +25,5 @@ index f14eb66a2..ffa7c1166 100644
ca.in_cert = FALSE;
ca.anchors = NULL;
--
-2.35.1
+2.42.0
diff --git a/pkg/net/curl/patch/0003-Reuse-base64-for-curl-tool.patch b/pkg/net/curl/patch/0003-Reuse-base64-for-curl-tool.patch
@@ -0,0 +1,33 @@
+From 82e6a93c229a40c8fdb2f0289bfc5aad83e69bc1 Mon Sep 17 00:00:00 2001
+From: Randy Palamar <palamar@ualberta.ca>
+Date: Sun, 15 Oct 2023 13:11:17 -0600
+Subject: [PATCH] Reuse base64 for curl tool
+
+---
+ lib/curl_base64.h | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/lib/curl_base64.h b/lib/curl_base64.h
+index 7f7cd1d..e6958d9 100644
+--- a/lib/curl_base64.h
++++ b/lib/curl_base64.h
+@@ -24,13 +24,11 @@
+ *
+ ***************************************************************************/
+
+-#ifndef BUILDING_LIBCURL
+ /* this renames functions so that the tool code can use the same code
+ without getting symbol collisions */
+-#define Curl_base64_encode(a,b,c,d) curlx_base64_encode(a,b,c,d)
+-#define Curl_base64url_encode(a,b,c,d) curlx_base64url_encode(a,b,c,d)
+-#define Curl_base64_decode(a,b,c) curlx_base64_decode(a,b,c)
+-#endif
++#define curlx_base64_encode(a,b,c,d) Curl_base64_encode(a,b,c,d)
++#define curlx_base64url_encode(a,b,c,d) Curl_base64url_encode(a,b,c,d)
++#define curlx_base64_decode(a,b,c) Curl_base64_decode(a,b,c)
+
+ CURLcode Curl_base64_encode(const char *inputbuff, size_t insize,
+ char **outptr, size_t *outlen);
+--
+2.42.0
+
diff --git a/pkg/net/curl/patch/0004-HACK-manually-expand-broken-macro.patch b/pkg/net/curl/patch/0004-HACK-manually-expand-broken-macro.patch
@@ -0,0 +1,25 @@
+From e5088b6fecc4897180f601d736c46093a834a162 Mon Sep 17 00:00:00 2001
+From: Randy Palamar <palamar@ualberta.ca>
+Date: Sun, 15 Oct 2023 13:08:51 -0600
+Subject: [PATCH] HACK: manually expand broken macro
+
+---
+ src/tool_setopt.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/tool_setopt.c b/src/tool_setopt.c
+index de3b78f..774f34d 100644
+--- a/src/tool_setopt.c
++++ b/src/tool_setopt.c
+@@ -222,7 +222,7 @@ static char *c_escape(const char *str, curl_off_t len)
+ cutoff = 3;
+ }
+
+- result = curlx_dyn_addn(&escaped, STRCONST(""));
++ result = curlx_dyn_addn(&escaped, "", sizeof("") - 1);
+ for(s = str; !result && len; s++, len--) {
+ /* escape question marks as well, to prevent generating accidental
+ trigraphs */
+--
+2.42.0
+
diff --git a/pkg/net/curl/sha256 b/pkg/net/curl/sha256
@@ -1 +1 @@
-78a06f918bd5fde3c4573ef4f9806f56372b32ec1829c9ec474799eeee641c27 curl-7.85.0.tar.gz
+816e41809c043ff285e8c0f06a75a1fa250211bbfb2dc0a037eeef39f1a9e427 curl-8.4.0.tar.gz
diff --git a/pkg/net/curl/tool_hugehelp.c b/pkg/net/curl/tool_hugehelp.c
@@ -1,3 +0,0 @@
-/* built-in manual is disabled, blank function */
-#include "tool_hugehelp.h"
-void hugehelp(void) {}
diff --git a/pkg/net/curl/url b/pkg/net/curl/url
@@ -1 +1 @@
-url = "https://curl.se/download/curl-7.85.0.tar.gz"
+url = "https://curl.se/download/curl-8.4.0.tar.gz"
diff --git a/pkg/net/curl/ver b/pkg/net/curl/ver
@@ -1 +1 @@
-7.85.0 r0
+8.4.0 r0