Skip to content

Commit b8c80a6

Browse files
committed
mingw-w64-curl: update to 8.20.0
Drop the 70bb0db76720c152f6a55bbe12cf162b55cb105b.patch backport (curl/curl@70bb0db): the schannel renegotiation timeout fix it carried is now part of curl 8.20.0 itself, so the backport is no longer needed. Re-export the remaining four patches against curl-8.20.0 with stable commit OIDs while we are touching the series. Per AGENTS.md, that is done by importing the 8.19.0 and 8.20.0 tarballs into a throw-away git repository via `contrib/fast-import/import-tars.perl`, `git am`-ing the patches, running git rebase --empty=drop --onto curl-8.20.0 curl-8.19.0 (which drops the schannel-timeout commit automatically once its diff turns empty against 8.20.0), forcing committer = author with git fast-export --no-data refs/tags/curl-8.20.0 HEAD | awk '/^author /{a=$0} /^committer /{$0="committer " substr(a,8)} 1' | git fast-import --force --quiet and finally `git format-patch --no-signature curl-8.20.0..HEAD` back into the package directory. The single manual conflict, in `lib/curl_config.h.in`, is resolved by placing `CURL_BINDIR` before `CURL_CA_BUNDLE` instead of after `CURL_CA_SEARCH_SAFE`: the file is otherwise alphabetical, and upstream's recently-added `CURL_DEBUG_GLOBAL_MEM` was placed in alphabetical order, so anchoring our addition the same way avoids re-encountering the conflict on future curl bumps. Assisted-by: Claude Opus 4.7 (1M context)(Internal only) Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1 parent 9fe4fe3 commit b8c80a6

6 files changed

Lines changed: 40 additions & 79 deletions

mingw-w64-curl/0001-Make-cURL-relocatable.patch

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
From b0761795838b6645cf1bc7d0c290decc1f57b4ca Mon Sep 17 00:00:00 2001
1+
From ca0338db9469d32ff4d522e5cb7779888c46d83f Mon Sep 17 00:00:00 2001
22
From: Ray Donnelly <mingw.android@gmail.com>
33
Date: Wed, 22 Feb 2017 11:03:04 +0100
44
Subject: [PATCH 1/4] Make cURL relocatable
@@ -29,10 +29,10 @@ Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2929
4 files changed, 55 insertions(+)
3030

3131
diff --git a/configure.ac b/configure.ac
32-
index 6d2cb5583b..cefba6bb1b 100644
32+
index d06024b..ea85a68 100644
3333
--- a/configure.ac
3434
+++ b/configure.ac
35-
@@ -4035,6 +4035,8 @@ dnl default includes
35+
@@ -3977,6 +3977,8 @@ AC_CHECK_HEADERS(
3636
]
3737
)
3838

@@ -42,7 +42,7 @@ index 6d2cb5583b..cefba6bb1b 100644
4242
AC_C_CONST
4343
AC_TYPE_SIZE_T
4444
diff --git a/lib/Makefile.inc b/lib/Makefile.inc
45-
index 84b4e5425b..8c9010e51a 100644
45+
index d762f72..2203577 100644
4646
--- a/lib/Makefile.inc
4747
+++ b/lib/Makefile.inc
4848
@@ -233,6 +233,7 @@ LIB_CFILES = \
@@ -53,7 +53,7 @@ index 84b4e5425b..8c9010e51a 100644
5353
pingpong.c \
5454
pop3.c \
5555
progress.c \
56-
@@ -359,6 +360,7 @@ LIB_HFILES = \
56+
@@ -364,6 +365,7 @@ LIB_HFILES = \
5757
netrc.h \
5858
noproxy.h \
5959
parsedate.h \
@@ -62,24 +62,24 @@ index 84b4e5425b..8c9010e51a 100644
6262
pop3.h \
6363
progress.h \
6464
diff --git a/lib/curl_config.h.in b/lib/curl_config.h.in
65-
index 7108da0790..9dbbfb3666 100644
65+
index ec9b71f..ac0bc93 100644
6666
--- a/lib/curl_config.h.in
6767
+++ b/lib/curl_config.h.in
68-
@@ -17,6 +17,9 @@
69-
/* If safe CA bundle search is enabled */
70-
#undef CURL_CA_SEARCH_SAFE
68+
@@ -2,6 +2,9 @@
69+
70+
/* !checksrc! disable COPYRIGHT all */
7171

7272
+/* Location of executable */
7373
+#undef CURL_BINDIR
7474
+
75-
/* Default SSL backend */
76-
#undef CURL_DEFAULT_SSL_BACKEND
75+
/* Location of default ca bundle */
76+
#undef CURL_CA_BUNDLE
7777

7878
diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c
79-
index f7201d18d6..b4a0547a8c 100644
79+
index 891facf..ba43dc5 100644
8080
--- a/lib/vtls/vtls.c
8181
+++ b/lib/vtls/vtls.c
82-
@@ -77,6 +77,9 @@
82+
@@ -78,6 +78,9 @@
8383
#include <Security/Security.h>
8484
#endif
8585

@@ -89,7 +89,7 @@ index f7201d18d6..b4a0547a8c 100644
8989

9090
#define CLONE_STRING(var) \
9191
do { \
92-
@@ -297,6 +300,15 @@ CURLcode Curl_ssl_easy_config_complete(struct Curl_easy *data)
92+
@@ -298,6 +301,15 @@ CURLcode Curl_ssl_easy_config_complete(struct Curl_easy *data)
9393
#if defined(CURL_CA_PATH) || defined(CURL_CA_BUNDLE)
9494
struct UserDefined *set = &data->set;
9595
CURLcode result;
@@ -105,7 +105,7 @@ index f7201d18d6..b4a0547a8c 100644
105105
#endif
106106

107107
if(Curl_ssl_backend() != CURLSSLBACKEND_SCHANNEL) {
108-
@@ -305,15 +317,41 @@ CURLcode Curl_ssl_easy_config_complete(struct Curl_easy *data)
108+
@@ -306,15 +318,41 @@ CURLcode Curl_ssl_easy_config_complete(struct Curl_easy *data)
109109
sslc->native_ca_store = TRUE;
110110
#endif
111111
#ifdef CURL_CA_PATH
@@ -147,7 +147,7 @@ index f7201d18d6..b4a0547a8c 100644
147147
if(result)
148148
return result;
149149
}
150-
@@ -352,16 +390,26 @@ CURLcode Curl_ssl_easy_config_complete(struct Curl_easy *data)
150+
@@ -353,16 +391,26 @@ CURLcode Curl_ssl_easy_config_complete(struct Curl_easy *data)
151151
#endif
152152
#ifdef CURL_CA_PATH
153153
if(!sslc->custom_capath && !set->str[STRING_SSL_CAPATH_PROXY]) {

mingw-w64-curl/0002-Hack-make-relocation-work-inside-libexec-git-core-an.patch

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
From 0d1cc065356bcb23642563c3046b0b0e860fa9bb Mon Sep 17 00:00:00 2001
1+
From b44b86a3cce1b8a9395868cc107c27f6f8f3591d Mon Sep 17 00:00:00 2001
22
From: Johannes Schindelin <johannes.schindelin@gmx.de>
33
Date: Wed, 31 Oct 2018 10:52:59 +0100
44
Subject: [PATCH 2/4] Hack: make relocation work inside libexec/git-core/ and
@@ -30,10 +30,10 @@ Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3030
1 file changed, 20 insertions(+), 1 deletion(-)
3131

3232
diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c
33-
index b4a0547a8c..ce4f4af5e7 100644
33+
index ba43dc5..8f1fbe5 100644
3434
--- a/lib/vtls/vtls.c
3535
+++ b/lib/vtls/vtls.c
36-
@@ -341,10 +341,29 @@ CURLcode Curl_ssl_easy_config_complete(struct Curl_easy *data)
36+
@@ -342,10 +342,29 @@ CURLcode Curl_ssl_easy_config_complete(struct Curl_easy *data)
3737
get_dll_path(relocated_bundle, path_max);
3838
strip_n_suffix_folders(relocated_bundle, 1);
3939
strncat(relocated_bundle, "/", path_max - 1);

mingw-w64-curl/0003-auth-upgrade-SSPI-identity-to-SEC_WINNT_AUTH_IDENTIT.patch

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
From 0aa2cd8539608511e34a58473f2974ae0ae50444 Mon Sep 17 00:00:00 2001
1+
From ba5dc04aa3908cf34c01f7112c59b3f7e077a97b Mon Sep 17 00:00:00 2001
22
From: Matthew John Cheetham <mjcheetham@outlook.com>
33
Date: Tue, 24 Mar 2026 11:53:02 +0000
44
Subject: [PATCH 3/4] auth: upgrade SSPI identity to SEC_WINNT_AUTH_IDENTITY_EX
@@ -22,7 +22,7 @@ Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2222
5 files changed, 19 insertions(+), 17 deletions(-)
2323

2424
diff --git a/lib/curl_sspi.c b/lib/curl_sspi.c
25-
index 1d4cf925d6..018bfff28e 100644
25+
index 3ea1762..4180643 100644
2626
--- a/lib/curl_sspi.c
2727
+++ b/lib/curl_sspi.c
2828
@@ -93,7 +93,7 @@ void Curl_sspi_global_cleanup(void)
@@ -51,9 +51,9 @@ index 1d4cf925d6..018bfff28e 100644
5151
+void Curl_sspi_free_identity(SEC_WINNT_AUTH_IDENTITY_EX *identity)
5252
{
5353
if(identity) {
54-
Curl_safefree(identity->User);
54+
curlx_safefree(identity->User);
5555
diff --git a/lib/curl_sspi.h b/lib/curl_sspi.h
56-
index 3779d51753..ea405f53a7 100644
56+
index 3779d51..ea405f5 100644
5757
--- a/lib/curl_sspi.h
5858
+++ b/lib/curl_sspi.h
5959
@@ -34,14 +34,14 @@ void Curl_sspi_global_cleanup(void);
@@ -75,7 +75,7 @@ index 3779d51753..ea405f53a7 100644
7575
/* Forward-declaration of global variables defined in curl_sspi.c */
7676
extern PSecurityFunctionTable Curl_pSecFn;
7777
diff --git a/lib/ldap.c b/lib/ldap.c
78-
index e223078b03..59369a556d 100644
78+
index 16c93ee..9346123 100644
7979
--- a/lib/ldap.c
8080
+++ b/lib/ldap.c
8181
@@ -157,7 +157,7 @@ static ULONG ldap_win_bind_auth(LDAP *server, const char *user,
@@ -88,7 +88,7 @@ index e223078b03..59369a556d 100644
8888

8989
memset(&cred, 0, sizeof(cred));
9090
diff --git a/lib/vauth/digest_sspi.c b/lib/vauth/digest_sspi.c
91-
index f29e569cd1..5f4b5e2735 100644
91+
index f0b6780..b7703b8 100644
9292
--- a/lib/vauth/digest_sspi.c
9393
+++ b/lib/vauth/digest_sspi.c
9494
@@ -95,8 +95,8 @@ CURLcode Curl_auth_create_digest_md5_message(struct Curl_easy *data,
@@ -123,10 +123,10 @@ index f29e569cd1..5f4b5e2735 100644
123123
SecBufferDesc resp_desc;
124124
unsigned long attrs;
125125
diff --git a/lib/vauth/vauth.h b/lib/vauth/vauth.h
126-
index 3e66c89cb5..10a02321e3 100644
126+
index 279da60..b8898f2 100644
127127
--- a/lib/vauth/vauth.h
128128
+++ b/lib/vauth/vauth.h
129-
@@ -170,8 +170,8 @@ struct ntlmdata {
129+
@@ -171,8 +171,8 @@ struct ntlmdata {
130130
#endif
131131
CredHandle *credentials;
132132
CtxtHandle *context;
@@ -137,7 +137,7 @@ index 3e66c89cb5..10a02321e3 100644
137137
size_t token_max;
138138
BYTE *output_token;
139139
BYTE *input_token;
140-
@@ -241,8 +241,8 @@ struct kerberos5data {
140+
@@ -242,8 +242,8 @@ struct kerberos5data {
141141
CredHandle *credentials;
142142
CtxtHandle *context;
143143
TCHAR *spn;
@@ -148,7 +148,7 @@ index 3e66c89cb5..10a02321e3 100644
148148
size_t token_max;
149149
BYTE *output_token;
150150
#else
151-
@@ -309,8 +309,8 @@ struct negotiatedata {
151+
@@ -310,8 +310,8 @@ struct negotiatedata {
152152
SECURITY_STATUS status;
153153
CredHandle *credentials;
154154
CtxtHandle *context;

mingw-w64-curl/0004-spnego-windows-disallow-NTLM-via-SPNEGO.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
From cab1cced8a4c48054183192a80d09112d788e868 Mon Sep 17 00:00:00 2001
1+
From ff7b85749240b289615394f83c7d91cfe129dece Mon Sep 17 00:00:00 2001
22
From: Matthew John Cheetham <mjcheetham@outlook.com>
33
Date: Mon, 23 Mar 2026 13:34:27 +0000
44
Subject: [PATCH 4/4] spnego(windows): disallow NTLM via SPNEGO
@@ -37,7 +37,7 @@ Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
3737
1 file changed, 27 insertions(+)
3838

3939
diff --git a/lib/vauth/spnego_sspi.c b/lib/vauth/spnego_sspi.c
40-
index 1f73123a0d..57d7599361 100644
40+
index 1baf593..d5eccc0 100644
4141
--- a/lib/vauth/spnego_sspi.c
4242
+++ b/lib/vauth/spnego_sspi.c
4343
@@ -146,6 +146,33 @@ CURLcode Curl_auth_decode_spnego_message(struct Curl_easy *data,

mingw-w64-curl/70bb0db76720c152f6a55bbe12cf162b55cb105b.patch

Lines changed: 0 additions & 36 deletions
This file was deleted.

mingw-w64-curl/PKGBUILD

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ pkgbase=mingw-w64-${_realname}
55
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}"
66
"${MINGW_PACKAGE_PREFIX}-${_realname}-gnutls"
77
"${MINGW_PACKAGE_PREFIX}-${_realname}-winssl")
8-
pkgver=8.19.0
9-
pkgrel=3
8+
pkgver=8.20.0
9+
pkgrel=1
1010
pkgdesc="Command line tool and library for transferring data with URLs (mingw-w64)"
1111
arch=('any')
1212
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
@@ -37,17 +37,15 @@ source=("https://github.com/curl/curl/releases/download/${_realname}-${pkgver//.
3737
"0001-Make-cURL-relocatable.patch"
3838
"0002-Hack-make-relocation-work-inside-libexec-git-core-an.patch"
3939
"0003-auth-upgrade-SSPI-identity-to-SEC_WINNT_AUTH_IDENTIT.patch"
40-
"0004-spnego-windows-disallow-NTLM-via-SPNEGO.patch"
41-
"70bb0db76720c152f6a55bbe12cf162b55cb105b.patch")
42-
sha256sums=('eba3230c1b659211a7afa0fbf475978cbf99c412e4d72d9aa92d020c460742d4'
40+
"0004-spnego-windows-disallow-NTLM-via-SPNEGO.patch")
41+
sha256sums=('4be48e69cf467246cb97d369b85d78a08528f2b37cffef2418ee16e6a4eb596e'
4342
'SKIP'
4443
'08209cbf1633fa92eae7e5d28f95f8df9d6184cc20fa878c99aec4709bb257fd'
4544
'965d3921ec4fdeec94a2718bc2c85ce5e1a00ea0e499330a554074a7ae15dfc6'
46-
'8567c3601664836e12e142f4c51c4f023aaa3477e9985ea4168301af22a1141f'
47-
'b9a7ca284f881c2e5e15daf109d8c42d7e92ef32949031b3da42ef9b7bf924bd'
48-
'e834995b7adcb573c8441ea17a54e71a359c4ec5049d31093ff25f898a48abf9'
49-
'f597923ca8ec8757bc7600a420cc5f6f5acd6ab85e005054273bc63805af6d48'
50-
'ffaadb16a5f1aaa4e0a33473b905a6650e6291afecb39f56805eaffc26a20932')
45+
'b2edcb0ea116ab7ebb77a3a390823e2ff7b1dce0af8cd92cd36efca7814dfc2e'
46+
'0bd487dd2e835caac6bd2f3aaef98423712c20e5c0c3330501d048681f0b950a'
47+
'e1afa8b88959782c562fa3ca635d4ebe2bc84c0c490da82caffedb876b743be9'
48+
'17fbbee114c957e976a2e2100cd250820b645ecdcea00f27c1083dd5d97c96ee')
5149
validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg
5250

5351
if test -z "$WITHOUT_ALTERNATES"
@@ -99,8 +97,7 @@ prepare() {
9997
0001-Make-cURL-relocatable.patch \
10098
0002-Hack-make-relocation-work-inside-libexec-git-core-an.patch \
10199
0003-auth-upgrade-SSPI-identity-to-SEC_WINNT_AUTH_IDENTIT.patch \
102-
0004-spnego-windows-disallow-NTLM-via-SPNEGO.patch \
103-
70bb0db76720c152f6a55bbe12cf162b55cb105b.patch
100+
0004-spnego-windows-disallow-NTLM-via-SPNEGO.patch
104101

105102
autoreconf -vfi
106103
}

0 commit comments

Comments
 (0)