Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

curl: update to v8.4.0 #5938

Merged
merged 3 commits into from
Nov 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cross/curl/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PKG_NAME = curl
PKG_VERS = 8.1.2
PKG_VERS = 8.4.0
PKG_EXT = tar.xz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://curl.se/download
Expand Down
6 changes: 3 additions & 3 deletions cross/curl/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
curl-8.1.2.tar.xz SHA1 bba5bcc82cb46bb20e31dc094d01ab40dbd40920
curl-8.1.2.tar.xz SHA256 31b1118eb8bfd43cd95d9a3f146f814ff874f6ed3999b29d94f4d1e7dbac5ef6
curl-8.1.2.tar.xz MD5 1f7f6678b1342ad78f30e1dedd015fe2
curl-8.4.0.tar.xz SHA1 893985fa820b25d41141eb318c0c2e3bf00f0ae5
curl-8.4.0.tar.xz SHA256 16c62a9c4af0f703d28bda6d7bbf37ba47055ad3414d70dec63e2e6336f2a82d
curl-8.4.0.tar.xz MD5 8424597f247da68b6041dd7f9ca367fe
72 changes: 39 additions & 33 deletions cross/curl/patches/002-prefer-gnutls-for-http3.patch
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# To use GNUTLS for http3 (ngtcp2) when USE_OPENSSL is defined too,
# we must first check for USE_GNUTLS and apply code for.
#
--- lib/vquic/curl_ngtcp2.h.orig 2023-05-15 10:55:59.000000000 +0000
+++ lib/vquic/curl_ngtcp2.h 2023-06-11 07:37:17.255309500 +0000
--- lib/vquic/curl_ngtcp2.h.orig 2023-10-05 07:58:50.000000000 +0000
+++ lib/vquic/curl_ngtcp2.h 2023-11-24 12:41:56.051202200 +0000
@@ -34,7 +34,9 @@

#include <ngtcp2/ngtcp2_crypto.h>
Expand All @@ -14,8 +14,8 @@
#include <openssl/ssl.h>
#elif defined(USE_WOLFSSL)
#include <wolfssl/options.h>
--- lib/vquic/curl_ngtcp2.c.orig 2023-05-26 06:37:58.000000000 +0000
+++ lib/vquic/curl_ngtcp2.c 2023-06-11 08:00:26.210096152 +0000
--- lib/vquic/curl_ngtcp2.c.orig 2023-10-10 09:34:20.000000000 +0000
+++ lib/vquic/curl_ngtcp2.c 2023-11-25 11:45:17.635886120 +0000
@@ -28,7 +28,10 @@
#include <ngtcp2/ngtcp2.h>
#include <nghttp3/nghttp3.h>
Expand All @@ -26,10 +26,10 @@
+#include "vtls/gtls.h"
+#elif defined(USE_OPENSSL)
#include <openssl/err.h>
#ifdef OPENSSL_IS_BORINGSSL
#if defined(OPENSSL_IS_BORINGSSL) || defined(OPENSSL_IS_AWSLC)
#include <ngtcp2/ngtcp2_crypto_boringssl.h>
@@ -36,9 +39,6 @@
#include <ngtcp2/ngtcp2_crypto_openssl.h>
#include <ngtcp2/ngtcp2_crypto_quictls.h>
#endif
#include "vtls/openssl.h"
-#elif defined(USE_GNUTLS)
Expand All @@ -38,7 +38,7 @@
#elif defined(USE_WOLFSSL)
#include <ngtcp2/ngtcp2_crypto_wolfssl.h>
#include "vtls/wolfssl.h"
@@ -101,17 +101,17 @@
@@ -102,17 +102,17 @@
(H3_STREAM_WINDOW_SIZE / H3_STREAM_CHUNK_SIZE)


Expand All @@ -58,11 +58,11 @@
+#define QUIC_CIPHERS \
+ "TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_" \
+ "POLY1305_SHA256:TLS_AES_128_CCM_SHA256"
+#define QUIC_GROUPS "P-256:P-384:P-521"
+#define QUIC_GROUPS "P-256:X25519:P-384:P-521"
#elif defined(USE_WOLFSSL)
#define QUIC_CIPHERS \
"TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_" \
@@ -142,11 +142,11 @@
@@ -143,11 +143,11 @@
ngtcp2_transport_params transport_params;
ngtcp2_ccerr last_error;
ngtcp2_crypto_conn_ref conn_ref;
Expand All @@ -77,7 +77,7 @@
#elif defined(USE_WOLFSSL)
WOLFSSL_CTX *sslctx;
WOLFSSL *ssl;
@@ -331,13 +331,7 @@
@@ -360,13 +360,7 @@
}
}

Expand All @@ -92,7 +92,7 @@
static int keylog_callback(gnutls_session_t session, const char *label,
const gnutls_datum_t *secret)
{
@@ -352,6 +346,13 @@
@@ -381,6 +375,12 @@
Curl_tls_keylog_write(label, crandom.data, secret->data, secret->size);
return 0;
}
Expand All @@ -102,11 +102,10 @@
+ (void)ssl;
+ Curl_tls_keylog_write_line(line);
+}
+
#elif defined(USE_WOLFSSL)
#if defined(HAVE_SECRET_CALLBACK)
static void keylog_callback(const WOLFSSL *ssl, const char *line)
@@ -364,7 +365,60 @@
@@ -393,7 +393,60 @@

static int init_ngh3_conn(struct Curl_cfilter *cf);

Expand Down Expand Up @@ -136,15 +135,15 @@
+ gnutls_session_set_ptr(ctx->gtls->session, &ctx->conn_ref);
+
+ if(ngtcp2_crypto_gnutls_configure_client_session(ctx->gtls->session) != 0) {
+ DEBUGF(LOG_CF(data, cf,
+ "ngtcp2_crypto_gnutls_configure_client_session failed\n"));
+ CURL_TRC_CF(data, cf,
+ "ngtcp2_crypto_gnutls_configure_client_session failed\n");
+ return CURLE_QUIC_CONNECT_ERROR;
+ }
+
+ rc = gnutls_priority_set_direct(ctx->gtls->session, QUIC_PRIORITY, NULL);
+ if(rc < 0) {
+ DEBUGF(LOG_CF(data, cf, "gnutls_priority_set_direct failed: %s\n",
+ gnutls_strerror(rc)));
+ CURL_TRC_CF(data, cf, "gnutls_priority_set_direct failed: %s\n",
+ gnutls_strerror(rc));
+ return CURLE_QUIC_CONNECT_ERROR;
+ }
+
Expand All @@ -168,8 +167,8 @@
static CURLcode quic_ssl_ctx(SSL_CTX **pssl_ctx,
struct Curl_cfilter *cf, struct Curl_easy *data)
{
@@ -495,59 +549,6 @@
SSL_set_tlsext_host_name(ctx->ssl, cf->conn->host.name);
@@ -544,59 +597,6 @@
}
return CURLE_OK;
}
-#elif defined(USE_GNUTLS)
Expand Down Expand Up @@ -197,15 +196,15 @@
- gnutls_session_set_ptr(ctx->gtls->session, &ctx->conn_ref);
-
- if(ngtcp2_crypto_gnutls_configure_client_session(ctx->gtls->session) != 0) {
- DEBUGF(LOG_CF(data, cf,
- "ngtcp2_crypto_gnutls_configure_client_session failed\n"));
- CURL_TRC_CF(data, cf,
- "ngtcp2_crypto_gnutls_configure_client_session failed\n");
- return CURLE_QUIC_CONNECT_ERROR;
- }
-
- rc = gnutls_priority_set_direct(ctx->gtls->session, QUIC_PRIORITY, NULL);
- if(rc < 0) {
- DEBUGF(LOG_CF(data, cf, "gnutls_priority_set_direct failed: %s\n",
- gnutls_strerror(rc)));
- CURL_TRC_CF(data, cf, "gnutls_priority_set_direct failed: %s\n",
- gnutls_strerror(rc));
- return CURLE_QUIC_CONNECT_ERROR;
- }
-
Expand All @@ -228,7 +227,7 @@
#elif defined(USE_WOLFSSL)

static CURLcode quic_ssl_ctx(WOLFSSL_CTX **pssl_ctx,
@@ -1730,7 +1731,14 @@
@@ -1902,7 +1902,14 @@
cf->conn->bundle->multiuse = BUNDLE_MULTIPLEX;

if(cf->conn->ssl_config.verifyhost) {
Expand All @@ -244,7 +243,7 @@
X509 *server_cert;
server_cert = SSL_get_peer_certificate(ctx->ssl);
if(!server_cert) {
@@ -1740,13 +1748,6 @@
@@ -1912,13 +1919,6 @@
X509_free(server_cert);
if(result)
return result;
Expand All @@ -258,17 +257,25 @@
#elif defined(USE_WOLFSSL)
if(wolfSSL_check_domain_name(ctx->ssl, snihost) == SSL_FAILURE)
return CURLE_PEER_FAILED_VERIFICATION;
@@ -1755,7 +1756,8 @@
@@ -1927,7 +1927,7 @@
}
else
infof(data, "Skipped certificate verification");
-#ifdef USE_OPENSSL
+#ifdef USE_GNUTLS
+#elif defined(USE_OPENSSL)
+#if defined(USE_OPENSSL) && !defined(USE_GNUTLS)
if(data->set.ssl.certinfo)
/* asked to gather certificate info */
(void)Curl_ossl_certchain(data, ctx->ssl);
@@ -2170,12 +2172,7 @@
@@ -1996,7 +1996,7 @@
pktx->ts = timestamp();
}

-#ifdef USE_OPENSSL
+#if defined(USE_OPENSSL) && !defined(USE_GNUTLS)
if(!ctx->x509_store_setup) {
result = Curl_ssl_setup_x509_store(cf, data, ctx->sslctx);
if(result)
@@ -2319,12 +2319,7 @@
if(ctx->qlogfd != -1) {
close(ctx->qlogfd);
}
Expand All @@ -282,7 +289,7 @@
if(ctx->gtls) {
if(ctx->gtls->cred)
gnutls_certificate_free_credentials(ctx->gtls->cred);
@@ -2183,6 +2180,11 @@
@@ -2332,6 +2327,11 @@
gnutls_deinit(ctx->gtls->session);
free(ctx->gtls);
}
Expand All @@ -294,13 +301,12 @@
#elif defined(USE_WOLFSSL)
if(ctx->ssl)
wolfSSL_free(ctx->ssl);
@@ -2264,7 +2266,8 @@
@@ -2414,7 +2414,7 @@
Curl_bufcp_init(&ctx->stream_bufcp, H3_STREAM_CHUNK_SIZE,
H3_STREAM_POOL_SPARES);

-#ifdef USE_OPENSSL
+#ifdef USE_GNUTLS
+#elif defined(USE_OPENSSL)
+#if defined(USE_OPENSSL) && !defined(USE_GNUTLS)
result = quic_ssl_ctx(&ctx->sslctx, cf, data);
if(result)
return result;
4 changes: 2 additions & 2 deletions cross/libsigc++/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PKG_NAME = libsigc++-main

# support for c++11/c++17 language features is required
UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(PPC_ARCHS) $(OLD_PPC_ARCHS)
# support for c++11 language features is required for libsigc++-2.12
UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(OLD_PPC_ARCHS)

OPTIONAL_DEPENDS = cross/libsigc++-latest
OPTIONAL_DEPENDS += cross/libsigc++-2.12
Expand Down
2 changes: 1 addition & 1 deletion cross/nghttp2/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PKG_NAME = nghttp2
PKG_VERS = 1.54.0
PKG_VERS = 1.58.0
PKG_EXT = tar.xz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://github.com/nghttp2/nghttp2/releases/download/v$(PKG_VERS)
Expand Down
2 changes: 1 addition & 1 deletion cross/nghttp2/PLIST
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
lnk:lib/libnghttp2.so
lnk:lib/libnghttp2.so.14
lib:lib/libnghttp2.so.14.24.2
lib:lib/libnghttp2.so.14.25.1
6 changes: 3 additions & 3 deletions cross/nghttp2/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
nghttp2-1.54.0.tar.xz SHA1 eac516cb21f0c3c2e2fc4d21ee9f35b96650fd45
nghttp2-1.54.0.tar.xz SHA256 20533c9354fbb6aa689b6aa0ddb77f91da1d242587444502832e1864308152df
nghttp2-1.54.0.tar.xz MD5 8833c8ff79b328711079cb3e34a6e4ff
nghttp2-1.58.0.tar.xz SHA1 604fd302ab380dc3d4c7a0dfd7d8b4a1eb4d5eaa
nghttp2-1.58.0.tar.xz SHA256 4a68a3040da92fd9872c056d0f6b0cd60de8410de10b578f8ade9ecc14d297e0
nghttp2-1.58.0.tar.xz MD5 4601542da69d9657072a3c5529f5c32e
4 changes: 2 additions & 2 deletions cross/nghttp3/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PKG_NAME = nghttp3
PKG_VERS = 0.12.0
PKG_VERS = 1.0.0
PKG_EXT = tar.xz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://github.com/ngtcp2/nghttp3/releases/download/v$(PKG_VERS)
Expand All @@ -19,6 +19,6 @@ LICENSE = MIT

GNU_CONFIGURE = 1
CONFIGURE_ARGS = --disable-static --enable-lib-only
ADDITIONAL_CFLAGS = -O2 -std=c++11
ADDITIONAL_CFLAGS = -O2

include ../../mk/spksrc.cross-cc.mk
4 changes: 2 additions & 2 deletions cross/nghttp3/PLIST
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
lnk:lib/libnghttp3.so
lnk:lib/libnghttp3.so.7
lib:lib/libnghttp3.so.7.0.0
lnk:lib/libnghttp3.so.9
lib:lib/libnghttp3.so.9.0.0
6 changes: 3 additions & 3 deletions cross/nghttp3/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
nghttp3-0.12.0.tar.xz SHA1 a530e49553e8a9a573a88e24f9a457fe81b677a8
nghttp3-0.12.0.tar.xz SHA256 d2e12072f5f86209b6ff9e4f07f990dece3c27d2f8367aa2a00fc5181ab85189
nghttp3-0.12.0.tar.xz MD5 a9b2ef84f1a0233c7cb4dd259e758a85
nghttp3-1.0.0.tar.xz SHA1 1ac1d2871bf81aacc69fa1304fc634df8bc6ea71
nghttp3-1.0.0.tar.xz SHA256 2d982fadb92ba6488cd5ef3dadc9d2c901084c812553aea9ab1c4bfa1215f77a
nghttp3-1.0.0.tar.xz MD5 af21094ff54f40bf8a88a4222094dfd3
5 changes: 2 additions & 3 deletions cross/ngtcp2/Makefile
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
PKG_NAME = ngtcp2
PKG_VERS = 0.15.0
PKG_VERS = 1.0.1
PKG_EXT = tar.xz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://github.com/ngtcp2/ngtcp2/releases/download/v$(PKG_VERS)
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)

# for supported version for curl
# see: https://github.com/curl/curl/blob/master/docs/HTTP3.md
# despite ngtcp2 version 0.16.0 is expected, it works with 0.15.0 only

DEPENDS = cross/gnutls
DEPENDS = cross/gnutls cross/nghttp3

HOMEPAGE = https://nghttp2.org/ngtcp2/
COMMENT = ngtcp2 project is an effort to implement IETF QUIC protocol.
Expand Down
8 changes: 4 additions & 4 deletions cross/ngtcp2/PLIST
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
lnk:lib/libngtcp2.so
lnk:lib/libngtcp2.so.12
lib:lib/libngtcp2.so.12.0.0
lnk:lib/libngtcp2.so.16
lib:lib/libngtcp2.so.16.0.0
lnk:lib/libngtcp2_crypto_gnutls.so
lnk:lib/libngtcp2_crypto_gnutls.so.4
lib:lib/libngtcp2_crypto_gnutls.so.4.0.1
lnk:lib/libngtcp2_crypto_gnutls.so.8
lib:lib/libngtcp2_crypto_gnutls.so.8.0.1
6 changes: 3 additions & 3 deletions cross/ngtcp2/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
ngtcp2-0.15.0.tar.xz SHA1 7f6a8f672d76b4b551b9cc1979914bbce7e82387
ngtcp2-0.15.0.tar.xz SHA256 730b6700e4766fa70b311bcf88f1004f78ef3288f18e6e9cf42dfe9b655d412e
ngtcp2-0.15.0.tar.xz MD5 fc71469e0f9511f05bf2a2ea25892cbe
ngtcp2-1.0.1.tar.xz SHA1 7b3df07a2a56aec078cc8c5368366b2757415ff2
ngtcp2-1.0.1.tar.xz SHA256 21c898fa5543d3f2dc203fd0a300a8a7cb70fec21ad7f7a3ec6e119ba4850451
ngtcp2-1.0.1.tar.xz MD5 884fff8bcc4ab550fe17029dfd37103e
2 changes: 1 addition & 1 deletion diyspk/curl/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
SPK_NAME = curl
SPK_VERS = 8.1.2
SPK_VERS = 8.4.0
SPK_REV = 1

# package of curl with all optional features
Expand Down
3 changes: 3 additions & 0 deletions spk/domoticz/BROKEN
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
domoticz is currently broken
but there is WIP in https://github.com/SynoCommunity/spksrc/pull/4730
that might bring domiticz back...