diff --git a/.fmf/version b/.fmf/version
deleted file mode 100644
index d00491f..0000000
--- a/.fmf/version
+++ /dev/null
@@ -1 +0,0 @@
-1
diff --git a/.gitignore b/.gitignore
index 9bb4285..7dcfd8f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,2 @@
/curl-[0-9.]*.tar.lzma
-/curl-[0-9.]*.tar.lzma.asc
/curl-[0-9.]*.tar.xz
-/curl-[0-9.]*.tar.xz.asc
-/curl-[0-9]*.[0-9]*.[0-9]*/
-/*.src.rpm
diff --git a/0001-curl-7.58.0-ftp-typo-in-recursive-callback-detection.patch b/0001-curl-7.58.0-ftp-typo-in-recursive-callback-detection.patch
new file mode 100644
index 0000000..224630c
--- /dev/null
+++ b/0001-curl-7.58.0-ftp-typo-in-recursive-callback-detection.patch
@@ -0,0 +1,29 @@
+From 1b02cb2b51148915b2ba025bb262ef34f369fa4b Mon Sep 17 00:00:00 2001
+From: dasimx
+Date: Wed, 14 Mar 2018 11:02:05 +0100
+Subject: [PATCH] FTP: fix typo in recursive callback detection for seeking
+
+Fixes #2380
+
+Upstream-commit: 920f73a6906dce87c6ee87c32b109a287189965d
+Signed-off-by: Kamil Dudka
+---
+ lib/ftp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/ftp.c b/lib/ftp.c
+index e2cc38b..0cc583b 100644
+--- a/lib/ftp.c
++++ b/lib/ftp.c
+@@ -1621,7 +1621,7 @@ static CURLcode ftp_state_ul_setup(struct connectdata *conn,
+ Curl_set_in_callback(data, true);
+ seekerr = conn->seek_func(conn->seek_client, data->state.resume_from,
+ SEEK_SET);
+- Curl_set_in_callback(data, true);
++ Curl_set_in_callback(data, false);
+ }
+
+ if(seekerr != CURL_SEEKFUNC_OK) {
+--
+2.14.3
+
diff --git a/0002-curl-7.59.0-CVE-2018-1000301.patch b/0002-curl-7.59.0-CVE-2018-1000301.patch
new file mode 100644
index 0000000..b733979
--- /dev/null
+++ b/0002-curl-7.59.0-CVE-2018-1000301.patch
@@ -0,0 +1,48 @@
+From 5815730864a2010872840bae24797983e892eb90 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Sat, 24 Mar 2018 23:47:41 +0100
+Subject: [PATCH 1/2] http: restore buffer pointer when bad response-line is
+ parsed
+
+... leaving the k->str could lead to buffer over-reads later on.
+
+CVE: CVE-2018-1000301
+Assisted-by: Max Dymond
+
+Detected by OSS-Fuzz.
+Bug: https://curl.haxx.se/docs/adv_2018-b138.html
+Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7105
+
+Upstream-commit: 8c7b3737d29ed5c0575bf592063de8a51450812d
+Signed-off-by: Kamil Dudka
+---
+ lib/http.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/lib/http.c b/lib/http.c
+index 841f6cc..dc10f5f 100644
+--- a/lib/http.c
++++ b/lib/http.c
+@@ -2966,6 +2966,8 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data,
+ {
+ CURLcode result;
+ struct SingleRequest *k = &data->req;
++ ssize_t onread = *nread;
++ char *ostr = k->str;
+
+ /* header line within buffer loop */
+ do {
+@@ -3030,7 +3032,9 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data,
+ else {
+ /* this was all we read so it's all a bad header */
+ k->badheader = HEADER_ALLBAD;
+- *nread = (ssize_t)rest_length;
++ *nread = onread;
++ k->str = ostr;
++ return CURLE_OK;
+ }
+ break;
+ }
+--
+2.14.3
+
diff --git a/0003-curl-7.59.0-CVE-2018-1000300.patch b/0003-curl-7.59.0-CVE-2018-1000300.patch
new file mode 100644
index 0000000..fb4d15b
--- /dev/null
+++ b/0003-curl-7.59.0-CVE-2018-1000300.patch
@@ -0,0 +1,39 @@
+From 9b757a9a431f6859807d9f6e697cc2d2a120098d Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Fri, 23 Mar 2018 23:30:04 +0100
+Subject: [PATCH 2/2] pingpong: fix response cache memcpy overflow
+
+Response data for a handle with a large buffer might be cached and then
+used with the "closure" handle when it has a smaller buffer and then the
+larger cache will be copied and overflow the new smaller heap based
+buffer.
+
+Reported-by: Dario Weisser
+CVE: CVE-2018-1000300
+Bug: https://curl.haxx.se/docs/adv_2018-82c2.html
+
+Upstream-commit: 583b42cb3b809b1bf597af160468ccba728c2248
+Signed-off-by: Kamil Dudka
+---
+ lib/pingpong.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/lib/pingpong.c b/lib/pingpong.c
+index 438856a..ad370ee 100644
+--- a/lib/pingpong.c
++++ b/lib/pingpong.c
+@@ -304,7 +304,10 @@ CURLcode Curl_pp_readresp(curl_socket_t sockfd,
+ * it would have been populated with something of size int to begin
+ * with, even though its datatype may be larger than an int.
+ */
+- DEBUGASSERT((ptr + pp->cache_size) <= (buf + data->set.buffer_size + 1));
++ if((ptr + pp->cache_size) > (buf + data->set.buffer_size + 1)) {
++ failf(data, "cached response data too big to handle");
++ return CURLE_RECV_ERROR;
++ }
+ memcpy(ptr, pp->cache, pp->cache_size);
+ gotbytes = (ssize_t)pp->cache_size;
+ free(pp->cache); /* free the cache */
+--
+2.14.3
+
diff --git a/0004-curl-7.59.0-http2-GOAWAY.patch b/0004-curl-7.59.0-http2-GOAWAY.patch
new file mode 100644
index 0000000..0e76a6e
--- /dev/null
+++ b/0004-curl-7.59.0-http2-GOAWAY.patch
@@ -0,0 +1,137 @@
+From 84ddda3994c1f12d79946780dee9111b3cf1c308 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Thu, 19 Apr 2018 20:03:30 +0200
+Subject: [PATCH] http2: handle GOAWAY properly
+
+When receiving REFUSED_STREAM, mark the connection for close and retry
+streams accordingly on another/fresh connection.
+
+Reported-by: Terry Wu
+Fixes #2416
+Fixes #1618
+Closes #2510
+
+Upstream-commit: d122df5972fc01e39ae28e6bca705237d7e3318a
+Signed-off-by: Kamil Dudka
+---
+ lib/http2.c | 17 ++++++++++++-----
+ lib/multi.c | 4 +++-
+ lib/transfer.c | 17 +++++++++++++++--
+ lib/urldata.h | 2 +-
+ 4 files changed, 31 insertions(+), 9 deletions(-)
+
+diff --git a/lib/http2.c b/lib/http2.c
+index b2c34e9..fba4d70 100644
+--- a/lib/http2.c
++++ b/lib/http2.c
+@@ -1078,7 +1078,6 @@ void Curl_http2_done(struct connectdata *conn, bool premature)
+ struct http_conn *httpc = &conn->proto.httpc;
+
+ if(http->header_recvbuf) {
+- H2BUGF(infof(data, "free header_recvbuf!!\n"));
+ Curl_add_buffer_free(http->header_recvbuf);
+ http->header_recvbuf = NULL; /* clear the pointer */
+ Curl_add_buffer_free(http->trailer_recvbuf);
+@@ -1351,7 +1350,15 @@ static ssize_t http2_handle_stream_close(struct connectdata *conn,
+
+ /* Reset to FALSE to prevent infinite loop in readwrite_data function. */
+ stream->closed = FALSE;
+- if(httpc->error_code != NGHTTP2_NO_ERROR) {
++ if(httpc->error_code == NGHTTP2_REFUSED_STREAM) {
++ H2BUGF(infof(data, "REFUSED_STREAM (%d), try again on a new connection!\n",
++ stream->stream_id));
++ connclose(conn, "REFUSED_STREAM"); /* don't use this anymore */
++ data->state.refused_stream = TRUE;
++ *err = CURLE_RECV_ERROR; /* trigger Curl_retry_request() later */
++ return -1;
++ }
++ else if(httpc->error_code != NGHTTP2_NO_ERROR) {
+ failf(data, "HTTP/2 stream %u was not closed cleanly: %s (err %d)",
+ stream->stream_id, Curl_http2_strerror(httpc->error_code),
+ httpc->error_code);
+@@ -1579,9 +1586,9 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
+ }
+
+ if(nread == 0) {
+- failf(data, "Unexpected EOF");
+- *err = CURLE_RECV_ERROR;
+- return -1;
++ H2BUGF(infof(data, "end of stream\n"));
++ *err = CURLE_OK;
++ return 0;
+ }
+
+ H2BUGF(infof(data, "nread=%zd\n", nread));
+diff --git a/lib/multi.c b/lib/multi.c
+index 98e5fca..d69e5f9 100644
+--- a/lib/multi.c
++++ b/lib/multi.c
+@@ -541,7 +541,9 @@ static CURLcode multi_done(struct connectdata **connp,
+ if(conn->send_pipe.size || conn->recv_pipe.size) {
+ /* Stop if pipeline is not empty . */
+ data->easy_conn = NULL;
+- DEBUGF(infof(data, "Connection still in use, no more multi_done now!\n"));
++ DEBUGF(infof(data, "Connection still in use %d/%d, "
++ "no more multi_done now!\n",
++ conn->send_pipe.size, conn->recv_pipe.size));
+ return CURLE_OK;
+ }
+
+diff --git a/lib/transfer.c b/lib/transfer.c
+index fd9af31..5c29cc9 100644
+--- a/lib/transfer.c
++++ b/lib/transfer.c
+@@ -1926,7 +1926,7 @@ CURLcode Curl_retry_request(struct connectdata *conn,
+ char **url)
+ {
+ struct Curl_easy *data = conn->data;
+-
++ bool retry = FALSE;
+ *url = NULL;
+
+ /* if we're talking upload, we can't do the checks below, unless the protocol
+@@ -1939,7 +1939,7 @@ CURLcode Curl_retry_request(struct connectdata *conn,
+ conn->bits.reuse &&
+ (!data->set.opt_no_body
+ || (conn->handler->protocol & PROTO_FAMILY_HTTP)) &&
+- (data->set.rtspreq != RTSPREQ_RECEIVE)) {
++ (data->set.rtspreq != RTSPREQ_RECEIVE))
+ /* We got no data, we attempted to re-use a connection. For HTTP this
+ can be a retry so we try again regardless if we expected a body.
+ For other protocols we only try again only if we expected a body.
+@@ -1947,6 +1947,19 @@ CURLcode Curl_retry_request(struct connectdata *conn,
+ This might happen if the connection was left alive when we were
+ done using it before, but that was closed when we wanted to read from
+ it again. Bad luck. Retry the same request on a fresh connect! */
++ retry = TRUE;
++ else if(data->state.refused_stream &&
++ (data->req.bytecount + data->req.headerbytecount == 0) ) {
++ /* This was sent on a refused stream, safe to rerun. A refused stream
++ error can typically only happen on HTTP/2 level if the stream is safe
++ to issue again, but the nghttp2 API can deliver the message to other
++ streams as well, which is why this adds the check the data counters
++ too. */
++ infof(conn->data, "REFUSED_STREAM, retrying a fresh connect\n");
++ data->state.refused_stream = FALSE; /* clear again */
++ retry = TRUE;
++ }
++ if(retry) {
+ infof(conn->data, "Connection died, retrying a fresh connect\n");
+ *url = strdup(conn->data->change.url);
+ if(!*url)
+diff --git a/lib/urldata.h b/lib/urldata.h
+index 3d7b9e5..6a36ee9 100644
+--- a/lib/urldata.h
++++ b/lib/urldata.h
+@@ -1225,7 +1225,7 @@ struct UrlState {
+ curl_off_t current_speed; /* the ProgressShow() function sets this,
+ bytes / second */
+ bool this_is_a_follow; /* this is a followed Location: request */
+-
++ bool refused_stream; /* this was refused, try again */
+ char *first_host; /* host name of the first (not followed) request.
+ if set, this should be the host name that we will
+ sent authorization to, no else. Used to make Location:
+--
+2.14.4
+
diff --git a/0005-curl-7.59.0-CVE-2018-0500.patch b/0005-curl-7.59.0-CVE-2018-0500.patch
new file mode 100644
index 0000000..221c05f
--- /dev/null
+++ b/0005-curl-7.59.0-CVE-2018-0500.patch
@@ -0,0 +1,40 @@
+From 7a5d2b67b8bee753735d4b03f66c4054d9b812f9 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Wed, 13 Jun 2018 12:24:40 +0200
+Subject: [PATCH] smtp: use the upload buffer size for scratch buffer malloc
+
+... not the read buffer size, as that can be set smaller and thus cause
+a buffer overflow! CVE-2018-0500
+
+Reported-by: Peter Wu
+Bug: https://curl.haxx.se/docs/adv_2018-70a2.html
+
+Upstream-commit: ba1dbd78e5f1ed67c1b8d37ac89d90e5e330b628
+Signed-off-by: Kamil Dudka
+---
+ lib/smtp.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/lib/smtp.c b/lib/smtp.c
+index 3f3b45a..400ad54 100644
+--- a/lib/smtp.c
++++ b/lib/smtp.c
+@@ -1563,13 +1563,14 @@ CURLcode Curl_smtp_escape_eob(struct connectdata *conn, const ssize_t nread)
+ if(!scratch || data->set.crlf) {
+ oldscratch = scratch;
+
+- scratch = newscratch = malloc(2 * data->set.buffer_size);
++ scratch = newscratch = malloc(2 * UPLOAD_BUFSIZE);
+ if(!newscratch) {
+ failf(data, "Failed to alloc scratch buffer!");
+
+ return CURLE_OUT_OF_MEMORY;
+ }
+ }
++ DEBUGASSERT(UPLOAD_BUFSIZE >= nread);
+
+ /* Have we already sent part of the EOB? */
+ eob_sent = smtp->eob;
+--
+2.14.4
+
diff --git a/0006-curl-7.59.0-pkcs11.patch b/0006-curl-7.59.0-pkcs11.patch
new file mode 100644
index 0000000..d0f8ff1
--- /dev/null
+++ b/0006-curl-7.59.0-pkcs11.patch
@@ -0,0 +1,225 @@
+From cf48e08b1a7c480e43d6e66154e94c5029c0d335 Mon Sep 17 00:00:00 2001
+From: Anderson Toshiyuki Sasaki
+Date: Mon, 19 Feb 2018 14:31:06 +0100
+Subject: [PATCH] ssl: set engine implicitly when a PKCS#11 URI is provided
+
+This allows the use of PKCS#11 URI for certificates and keys without
+setting the corresponding type as "ENG" and the engine as "pkcs11"
+explicitly. If a PKCS#11 URI is provided for certificate, key,
+proxy_certificate or proxy_key, the corresponding type is set as "ENG"
+if not provided and the engine is set to "pkcs11" if not provided.
+
+Acked-by: Nikos Mavrogiannopoulos
+Closes #2333
+
+Upstream-commit: 298d2565e2a2f06a859b7f5a1cc24ba7c87a8ce2
+Signed-off-by: Kamil Dudka
+---
+ docs/cmdline-opts/cert.d | 7 ++++++
+ docs/cmdline-opts/key.d | 7 ++++++
+ lib/vtls/openssl.c | 38 ++++++++++++++++++++++++++++
+ src/tool_getparam.c | 2 +-
+ src/tool_operate.c | 53 ++++++++++++++++++++++++++++++++++++++++
+ tests/unit/unit1394.c | 3 +++
+ 6 files changed, 109 insertions(+), 1 deletion(-)
+
+diff --git a/docs/cmdline-opts/cert.d b/docs/cmdline-opts/cert.d
+index 0cd5d53..ae6fe2f 100644
+--- a/docs/cmdline-opts/cert.d
++++ b/docs/cmdline-opts/cert.d
+@@ -23,6 +23,13 @@ nickname contains ":", it needs to be preceded by "\\" so that it is not
+ recognized as password delimiter. If the nickname contains "\\", it needs to
+ be escaped as "\\\\" so that it is not recognized as an escape character.
+
++If curl is built against OpenSSL library, and the engine pkcs11 is available,
++then a PKCS#11 URI (RFC 7512) can be used to specify a certificate located in
++a PKCS#11 device. A string beginning with "pkcs11:" will be interpreted as a
++PKCS#11 URI. If a PKCS#11 URI is provided, then the --engine option will be set
++as "pkcs11" if none was provided and the --cert-type option will be set as
++"ENG" if none was provided.
++
+ (iOS and macOS only) If curl is built against Secure Transport, then the
+ certificate string can either be the name of a certificate/private key in the
+ system or user keychain, or the path to a PKCS#12-encoded certificate and
+diff --git a/docs/cmdline-opts/key.d b/docs/cmdline-opts/key.d
+index fbf583a..4877b42 100644
+--- a/docs/cmdline-opts/key.d
++++ b/docs/cmdline-opts/key.d
+@@ -7,4 +7,11 @@ Private key file name. Allows you to provide your private key in this separate
+ file. For SSH, if not specified, curl tries the following candidates in order:
+ '~/.ssh/id_rsa', '~/.ssh/id_dsa', './id_rsa', './id_dsa'.
+
++If curl is built against OpenSSL library, and the engine pkcs11 is available,
++then a PKCS#11 URI (RFC 7512) can be used to specify a private key located in a
++PKCS#11 device. A string beginning with "pkcs11:" will be interpreted as a
++PKCS#11 URI. If a PKCS#11 URI is provided, then the --engine option will be set
++as "pkcs11" if none was provided and the --key-type option will be set as
++"ENG" if none was provided.
++
+ If this option is used several times, the last one will be used.
+diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c
+index 2a6b3cf..5f16dbd 100644
+--- a/lib/vtls/openssl.c
++++ b/lib/vtls/openssl.c
+@@ -532,8 +532,25 @@ static int ssl_ui_writer(UI *ui, UI_STRING *uis)
+ }
+ return (UI_method_get_writer(UI_OpenSSL()))(ui, uis);
+ }
++
++/*
++ * Check if a given string is a PKCS#11 URI
++ */
++static bool is_pkcs11_uri(const char *string)
++{
++ if(strncasecompare(string, "pkcs11:", 7)) {
++ return TRUE;
++ }
++ else {
++ return FALSE;
++ }
++}
++
+ #endif
+
++static CURLcode Curl_ossl_set_engine(struct Curl_easy *data,
++ const char *engine);
++
+ static
+ int cert_stuff(struct connectdata *conn,
+ SSL_CTX* ctx,
+@@ -596,6 +613,16 @@ int cert_stuff(struct connectdata *conn,
+ case SSL_FILETYPE_ENGINE:
+ #if defined(HAVE_OPENSSL_ENGINE_H) && defined(ENGINE_CTRL_GET_CMD_FROM_NAME)
+ {
++ /* Implicitly use pkcs11 engine if none was provided and the
++ * cert_file is a PKCS#11 URI */
++ if(!data->state.engine) {
++ if(is_pkcs11_uri(cert_file)) {
++ if(Curl_ossl_set_engine(data, "pkcs11") != CURLE_OK) {
++ return 0;
++ }
++ }
++ }
++
+ if(data->state.engine) {
+ const char *cmd_name = "LOAD_CERT_CTRL";
+ struct {
+@@ -762,6 +789,17 @@ int cert_stuff(struct connectdata *conn,
+ #ifdef HAVE_OPENSSL_ENGINE_H
+ { /* XXXX still needs some work */
+ EVP_PKEY *priv_key = NULL;
++
++ /* Implicitly use pkcs11 engine if none was provided and the
++ * key_file is a PKCS#11 URI */
++ if(!data->state.engine) {
++ if(is_pkcs11_uri(key_file)) {
++ if(Curl_ossl_set_engine(data, "pkcs11") != CURLE_OK) {
++ return 0;
++ }
++ }
++ }
++
+ if(data->state.engine) {
+ UI_METHOD *ui_method =
+ UI_create_method((char *)"curl user interface");
+diff --git a/src/tool_getparam.c b/src/tool_getparam.c
+index 7ce9c28..6628247 100644
+--- a/src/tool_getparam.c
++++ b/src/tool_getparam.c
+@@ -337,7 +337,7 @@ void parse_cert_parameter(const char *cert_parameter,
+ * looks like a RFC7512 PKCS#11 URI which can be used as-is.
+ * Also if cert_parameter contains no colon nor backslash, this
+ * means no passphrase was given and no characters escaped */
+- if(!strncmp(cert_parameter, "pkcs11:", 7) ||
++ if(curl_strnequal(cert_parameter, "pkcs11:", 7) ||
+ !strpbrk(cert_parameter, ":\\")) {
+ *certname = strdup(cert_parameter);
+ return;
+diff --git a/src/tool_operate.c b/src/tool_operate.c
+index e8b434a..fa44c70 100644
+--- a/src/tool_operate.c
++++ b/src/tool_operate.c
+@@ -113,6 +113,19 @@ static bool is_fatal_error(CURLcode code)
+ return FALSE;
+ }
+
++/*
++ * Check if a given string is a PKCS#11 URI
++ */
++static bool is_pkcs11_uri(const char *string)
++{
++ if(curl_strnequal(string, "pkcs11:", 7)) {
++ return TRUE;
++ }
++ else {
++ return FALSE;
++ }
++}
++
+ #ifdef __VMS
+ /*
+ * get_vms_file_size does what it takes to get the real size of the file
+@@ -1057,6 +1070,46 @@ static CURLcode operate_do(struct GlobalConfig *global,
+ my_setopt_str(curl, CURLOPT_PINNEDPUBLICKEY, config->pinnedpubkey);
+
+ if(curlinfo->features & CURL_VERSION_SSL) {
++ /* Check if config->cert is a PKCS#11 URI and set the
++ * config->cert_type if necessary */
++ if(config->cert) {
++ if(!config->cert_type) {
++ if(is_pkcs11_uri(config->cert)) {
++ config->cert_type = strdup("ENG");
++ }
++ }
++ }
++
++ /* Check if config->key is a PKCS#11 URI and set the
++ * config->key_type if necessary */
++ if(config->key) {
++ if(!config->key_type) {
++ if(is_pkcs11_uri(config->key)) {
++ config->key_type = strdup("ENG");
++ }
++ }
++ }
++
++ /* Check if config->proxy_cert is a PKCS#11 URI and set the
++ * config->proxy_type if necessary */
++ if(config->proxy_cert) {
++ if(!config->proxy_cert_type) {
++ if(is_pkcs11_uri(config->proxy_cert)) {
++ config->proxy_cert_type = strdup("ENG");
++ }
++ }
++ }
++
++ /* Check if config->proxy_key is a PKCS#11 URI and set the
++ * config->proxy_key_type if necessary */
++ if(config->proxy_key) {
++ if(!config->proxy_key_type) {
++ if(is_pkcs11_uri(config->proxy_key)) {
++ config->proxy_key_type = strdup("ENG");
++ }
++ }
++ }
++
+ my_setopt_str(curl, CURLOPT_SSLCERT, config->cert);
+ my_setopt_str(curl, CURLOPT_PROXY_SSLCERT, config->proxy_cert);
+ my_setopt_str(curl, CURLOPT_SSLCERTTYPE, config->cert_type);
+diff --git a/tests/unit/unit1394.c b/tests/unit/unit1394.c
+index 667991d..010f052 100644
+--- a/tests/unit/unit1394.c
++++ b/tests/unit/unit1394.c
+@@ -56,6 +56,9 @@ UNITTEST_START
+ "foo:bar\\\\", "foo", "bar\\\\",
+ "foo:bar:", "foo", "bar:",
+ "foo\\::bar\\:", "foo:", "bar\\:",
++ "pkcs11:foobar", "pkcs11:foobar", NULL,
++ "PKCS11:foobar", "PKCS11:foobar", NULL,
++ "PkCs11:foobar", "PkCs11:foobar", NULL,
+ #ifdef WIN32
+ "c:\\foo:bar:baz", "c:\\foo", "bar:baz",
+ "c:\\foo\\:bar:baz", "c:\\foo:bar", "baz",
+--
+2.17.1
+
diff --git a/0007-curl-7.61.0-libssh.patch b/0007-curl-7.61.0-libssh.patch
new file mode 100644
index 0000000..496e9b1
--- /dev/null
+++ b/0007-curl-7.61.0-libssh.patch
@@ -0,0 +1,133 @@
+From 155d4ffb7d40daf2afa0102f91f810675220ab6e Mon Sep 17 00:00:00 2001
+From: Kamil Dudka
+Date: Tue, 14 Aug 2018 13:14:49 +0200
+Subject: [PATCH 1/2] ssh-libssh: reduce excessive verbose output about pubkey
+ auth
+
+The verbose message "Authentication using SSH public key file" was
+printed each time the ssh_userauth_publickey_auto() was called, which
+meant each time a packet was transferred over network because the API
+operates in non-blocking mode.
+
+This patch makes sure that the verbose message is printed just once
+(when the authentication state is entered by the SSH state machine).
+
+Upstream-commit: 1e843a31a49484aeddf8f358e71392205f5fd6b1
+Signed-off-by: Kamil Dudka
+---
+ lib/ssh-libssh.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/lib/ssh-libssh.c b/lib/ssh-libssh.c
+index cecf477ac..f40f074b9 100644
+--- a/lib/ssh-libssh.c
++++ b/lib/ssh-libssh.c
+@@ -607,6 +607,7 @@ static CURLcode myssh_statemach_act(struct connectdata *conn, bool *block)
+ sshc->auth_methods = ssh_userauth_list(sshc->ssh_session, NULL);
+ if(sshc->auth_methods & SSH_AUTH_METHOD_PUBLICKEY) {
+ state(conn, SSH_AUTH_PKEY_INIT);
++ infof(data, "Authentication using SSH public key file\n");
+ }
+ else if(sshc->auth_methods & SSH_AUTH_METHOD_GSSAPI_MIC) {
+ state(conn, SSH_AUTH_GSSAPI);
+@@ -659,8 +660,6 @@ static CURLcode myssh_statemach_act(struct connectdata *conn, bool *block)
+
+ }
+ else {
+- infof(data, "Authentication using SSH public key file\n");
+-
+ rc = ssh_userauth_publickey_auto(sshc->ssh_session, NULL,
+ data->set.ssl.key_passwd);
+ if(rc == SSH_AUTH_AGAIN) {
+--
+2.17.1
+
+
+From 4b445519694ab620bd6376066844a7076e8ce4ab Mon Sep 17 00:00:00 2001
+From: Kamil Dudka
+Date: Tue, 14 Aug 2018 12:47:18 +0200
+Subject: [PATCH 2/2] ssh-libssh: fix infinite connect loop on invalid private
+ key
+
+Added test 656 (based on test 604) to verify the fix.
+
+Bug: https://bugzilla.redhat.com/1595135
+
+Closes #2879
+
+Upstream-commit: a4c7911a48dadb4f68ba6b38bb1bf3f061b747f6
+Signed-off-by: Kamil Dudka
+---
+ lib/ssh-libssh.c | 1 +
+ tests/data/Makefile.inc | 2 +-
+ tests/data/test656 | 33 +++++++++++++++++++++++++++++++++
+ 3 files changed, 35 insertions(+), 1 deletion(-)
+ create mode 100644 tests/data/test656
+
+diff --git a/lib/ssh-libssh.c b/lib/ssh-libssh.c
+index f40f074b9..12d618cfe 100644
+--- a/lib/ssh-libssh.c
++++ b/lib/ssh-libssh.c
+@@ -652,6 +652,7 @@ static CURLcode myssh_statemach_act(struct connectdata *conn, bool *block)
+ if(rc != SSH_OK) {
+ failf(data, "Could not load private key file %s",
+ data->set.str[STRING_SSH_PRIVATE_KEY]);
++ MOVE_TO_ERROR_STATE(CURLE_LOGIN_DENIED);
+ break;
+ }
+
+diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
+index 20274b37c..518a5a543 100644
+--- a/tests/data/Makefile.inc
++++ b/tests/data/Makefile.inc
+@@ -83,7 +83,7 @@ test617 test618 test619 test620 test621 test622 test623 test624 test625 \
+ test626 test627 test628 test629 test630 test631 test632 test633 test634 \
+ test635 test636 test637 test638 test639 test640 test641 test642 \
+ test643 test644 test645 test646 test647 test648 test649 test650 test651 \
+-test652 test653 test654 test655 \
++test652 test653 test654 test655 test656 \
+ \
+ test700 test701 test702 test703 test704 test705 test706 test707 test708 \
+ test709 test710 test711 test712 test713 test714 test715 \
+diff --git a/tests/data/test656 b/tests/data/test656
+new file mode 100644
+index 000000000..4107d3d17
+--- /dev/null
++++ b/tests/data/test656
+@@ -0,0 +1,33 @@
++
++
++
++SFTP
++FAILURE
++
++
++
++#
++# Client-side
++
++
++sftp
++
++
++SFTP retrieval with nonexistent private key file
++
++
++--key DOES_NOT_EXIST --pubkey curl_client_key.pub -u %USER: sftp://%HOSTIP:%SSHPORT%PWD/not-a-valid-file-moooo --insecure --connect-timeout 8
++
++
++
++#
++# Verify data after the test has been "shot"
++
++
++disable
++
++
++67
++
++
++
+--
+2.17.1
+
diff --git a/0008-curl-7.59.0-CVE-2018-14618.patch b/0008-curl-7.59.0-CVE-2018-14618.patch
new file mode 100644
index 0000000..e9ed142
--- /dev/null
+++ b/0008-curl-7.59.0-CVE-2018-14618.patch
@@ -0,0 +1,72 @@
+From 114b31ab5b7e6965b629697020a7ce4b6cea340e Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Mon, 13 Aug 2018 10:35:52 +0200
+Subject: [PATCH] Curl_ntlm_core_mk_nt_hash: return error on too long password
+
+... since it would cause an integer overflow if longer than (max size_t
+/ 2).
+
+This is CVE-2018-14618
+
+Bug: https://curl.haxx.se/docs/CVE-2018-14618.html
+Closes #2756
+Reported-by: Zhaoyang Wu
+
+Upstream-commit: 57d299a499155d4b327e341c6024e293b0418243
+Signed-off-by: Kamil Dudka
+---
+ lib/curl_ntlm_core.c | 23 +++++++++++++----------
+ 1 file changed, 13 insertions(+), 10 deletions(-)
+
+diff --git a/lib/curl_ntlm_core.c b/lib/curl_ntlm_core.c
+index e896276..e5c785d 100644
+--- a/lib/curl_ntlm_core.c
++++ b/lib/curl_ntlm_core.c
+@@ -143,6 +143,15 @@
+ #define NTLMv2_BLOB_SIGNATURE "\x01\x01\x00\x00"
+ #define NTLMv2_BLOB_LEN (44 -16 + ntlm->target_info_len + 4)
+
++#ifndef SIZE_T_MAX
++/* some limits.h headers have this defined, some don't */
++#if defined(SIZEOF_SIZE_T) && (SIZEOF_SIZE_T > 4)
++#define SIZE_T_MAX 18446744073709551615U
++#else
++#define SIZE_T_MAX 4294967295U
++#endif
++#endif
++
+ /*
+ * Turns a 56-bit key into being 64-bit wide.
+ */
+@@ -557,8 +566,11 @@ CURLcode Curl_ntlm_core_mk_nt_hash(struct Curl_easy *data,
+ unsigned char *ntbuffer /* 21 bytes */)
+ {
+ size_t len = strlen(password);
+- unsigned char *pw = len ? malloc(len * 2) : strdup("");
++ unsigned char *pw;
+ CURLcode result;
++ if(len > SIZE_T_MAX/2) /* avoid integer overflow */
++ return CURLE_OUT_OF_MEMORY;
++ pw = len ? malloc(len * 2) : strdup("");
+ if(!pw)
+ return CURLE_OUT_OF_MEMORY;
+
+@@ -646,15 +658,6 @@ CURLcode Curl_hmac_md5(const unsigned char *key, unsigned int keylen,
+ return CURLE_OK;
+ }
+
+-#ifndef SIZE_T_MAX
+-/* some limits.h headers have this defined, some don't */
+-#if defined(SIZEOF_SIZE_T) && (SIZEOF_SIZE_T > 4)
+-#define SIZE_T_MAX 18446744073709551615U
+-#else
+-#define SIZE_T_MAX 4294967295U
+-#endif
+-#endif
+-
+ /* This creates the NTLMv2 hash by using NTLM hash as the key and Unicode
+ * (uppercase UserName + Domain) as the data
+ */
+--
+2.17.1
+
diff --git a/0009-curl-7.59.0-test320-gnutls.patch b/0009-curl-7.59.0-test320-gnutls.patch
new file mode 100644
index 0000000..a9cbaac
--- /dev/null
+++ b/0009-curl-7.59.0-test320-gnutls.patch
@@ -0,0 +1,63 @@
+From 3cd5b375e31fb98e4782dc3a77e7316ad9eb26cf Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Thu, 4 Oct 2018 15:34:13 +0200
+Subject: [PATCH] test320: strip out more HTML when comparing
+
+To make the test case work with different gnutls-serv versions better.
+
+Reported-by: Kamil Dudka
+Fixes #3093
+Closes #3094
+
+Upstream-commit: 94ad57b0246b5658c2a9139dbe6a80efa4c4e2f3
+Signed-off-by: Kamil Dudka
+---
+ tests/data/test320 | 24 ++++--------------------
+ 1 file changed, 4 insertions(+), 20 deletions(-)
+
+diff --git a/tests/data/test320 b/tests/data/test320
+index 457a11eb2..87311d4f2 100644
+--- a/tests/data/test320
++++ b/tests/data/test320
+@@ -62,34 +62,18 @@ simple TLS-SRP HTTPS GET, check user in response
+ HTTP/1.0 200 OK
+ Content-type: text/html
+
+-
+-
+-
+-
+-
+-
+-If your browser supports session resuming, then you should see the same session ID, when you press the reload button.
+-Connected as user 'jsmith'.
+-
+-
|
+-| Key Exchange: | SRP |
+-| Compression | NULL |
+-| Cipher | AES-NNN-CBC |
+-| MAC | SHA1 |
+-| Ciphersuite | SRP_SHA_AES_NNN_CBC_SHA1 |
+-
Your HTTP header was:
Host: %HOSTIP:%HTTPTLSPORT
++FINE
+ User-Agent: curl-test-suite
+ Accept: */*
+
+-
+-
+-
+
+
+-s/^Session ID:.*//
++s/^
Connected as user 'jsmith'.*/FINE/
+ s/Protocol version:.*[0-9]//
+ s/GNUTLS/GnuTLS/
+ s/(AES[-_])\d\d\d([-_]CBC)/$1NNN$2/
++s/^<.*\n//
++s/^\n//
+
+
+
+--
+2.17.1
+
diff --git a/0010-curl-7.59.0-CVE-2018-16842.patch b/0010-curl-7.59.0-CVE-2018-16842.patch
new file mode 100644
index 0000000..6903ad6
--- /dev/null
+++ b/0010-curl-7.59.0-CVE-2018-16842.patch
@@ -0,0 +1,78 @@
+From 27d6c92acdac671ddf8f77f72956b2181561f774 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Sun, 28 Oct 2018 01:33:23 +0200
+Subject: [PATCH 1/2] voutf: fix bad arethmetic when outputting warnings to
+ stderr
+
+CVE-2018-16842
+Reported-by: Brian Carpenter
+Bug: https://curl.haxx.se/docs/CVE-2018-16842.html
+
+Upstream-commit: d530e92f59ae9bb2d47066c3c460b25d2ffeb211
+Signed-off-by: Kamil Dudka
+---
+ src/tool_msgs.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/tool_msgs.c b/src/tool_msgs.c
+index 9cce806..05bec39 100644
+--- a/src/tool_msgs.c
++++ b/src/tool_msgs.c
+@@ -67,7 +67,7 @@ static void voutf(struct GlobalConfig *config,
+ (void)fwrite(ptr, cut + 1, 1, config->errors);
+ fputs("\n", config->errors);
+ ptr += cut + 1; /* skip the space too */
+- len -= cut;
++ len -= cut + 1;
+ }
+ else {
+ fputs(ptr, config->errors);
+--
+2.17.2
+
+
+From 23f8c641b02e6c302d0e8cc5a5ee225a33b01f28 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Sun, 28 Oct 2018 10:43:57 +0100
+Subject: [PATCH 2/2] test2080: verify the fix for CVE-2018-16842
+
+Upstream-commit: 350306e4726b71b5b386fc30e3fecc039a807157
+Signed-off-by: Kamil Dudka
+---
+ tests/data/Makefile.inc | 3 ++-
+ tests/data/test2080 | Bin 0 -> 20659 bytes
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+ create mode 100644 tests/data/test2080
+
+diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc
+index e045748..aa5fff0 100644
+--- a/tests/data/Makefile.inc
++++ b/tests/data/Makefile.inc
+@@ -194,4 +194,5 @@ test2048 test2049 test2050 test2051 test2052 test2053 test2054 test2055 \
+ test2056 test2057 test2058 test2059 test2060 test2061 test2062 test2063 \
+ test2064 test2065 test2066 test2067 test2068 test2069 \
+ \
+-test2070 test2071 test2072 test2073
++test2070 test2071 test2072 test2073 \
++test2080
+diff --git a/tests/data/test2080 b/tests/data/test2080
+new file mode 100644
+index 0000000000000000000000000000000000000000..47e376ecb5d7879c0a98e392bff48ccc52e9db0a
+GIT binary patch
+literal 20659
+zcmeI)Pj3@35QkyT{uI*`iBshYE(n>u@JB+F3kdG+t~asjwJY0gl}``eO+)FONU8ef
+zl6Ca+%A4K8~qdz
+zd{+G6l*#ToY+DU||F9%J1n*+KPxQ;7MapuoQ!&MMQSXmpqMh0_yS6g=;N;HNjilBk
+zY$c?)mULZxib{;$g~jw~nrs|8b@sJI)_QmS_4(WLrNld}2Y0LEO$e>m->_NA&o$n!
+z9^YDZ>cvMs2q1s}0tg_000PG)@a?$9VHyMwKmY**5I_I{1Q0m1z~!MEP#*yV5I_I{
+z1Q0*~0R#|0009ILKmY**4ldvh-hl=PAb-+Xw`j-8D
+zzg+g?Rt8(G*s;1Sb>n1S94H%G
+Date: Thu, 18 Oct 2018 15:07:15 +0200
+Subject: [PATCH] Curl_close: clear data->multi_easy on free to avoid
+ use-after-free
+
+Regression from b46cfbc068 (7.59.0)
+CVE-2018-16840
+Reported-by: Brian Carpenter (Geeknik Labs)
+
+Bug: https://curl.haxx.se/docs/CVE-2018-16840.html
+
+Upstream-commit: 81d135d67155c5295b1033679c606165d4e28f3f
+Signed-off-by: Kamil Dudka
+---
+ lib/url.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/lib/url.c b/lib/url.c
+index f159008..dcc1ecc 100644
+--- a/lib/url.c
++++ b/lib/url.c
+@@ -320,10 +320,12 @@ CURLcode Curl_close(struct Curl_easy *data)
+ and detach this handle from there. */
+ curl_multi_remove_handle(data->multi, data);
+
+- if(data->multi_easy)
++ if(data->multi_easy) {
+ /* when curl_easy_perform() is used, it creates its own multi handle to
+ use and this is the one */
+ curl_multi_cleanup(data->multi_easy);
++ data->multi_easy = NULL;
++ }
+
+ /* Destroy the timeout list that is held in the easy handle. It is
+ /normally/ done by curl_multi_remove_handle() but this is "just in
+--
+2.17.2
+
diff --git a/0012-curl-7.59.0-CVE-2018-16839.patch b/0012-curl-7.59.0-CVE-2018-16839.patch
new file mode 100644
index 0000000..5570f44
--- /dev/null
+++ b/0012-curl-7.59.0-CVE-2018-16839.patch
@@ -0,0 +1,136 @@
+From 4df8ff21144236497fc92521d79fbca2dc079686 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Tue, 20 Mar 2018 15:15:14 +0100
+Subject: [PATCH 1/2] vauth/cleartext: fix integer overflow check
+
+Make the integer overflow check not rely on the undefined behavior that
+a size_t wraps around on overflow.
+
+Detected by lgtm.com
+Closes #2408
+
+Upstream-commit: c1366571b609407cf0d4d9f4a2769d29e1313151
+Signed-off-by: Kamil Dudka
+---
+ lib/curl_ntlm_core.c | 11 +----------
+ lib/curl_setup.h | 9 +++++++++
+ lib/vauth/cleartext.c | 14 ++++----------
+ 3 files changed, 14 insertions(+), 20 deletions(-)
+
+diff --git a/lib/curl_ntlm_core.c b/lib/curl_ntlm_core.c
+index e5c785d..b69c293 100644
+--- a/lib/curl_ntlm_core.c
++++ b/lib/curl_ntlm_core.c
+@@ -5,7 +5,7 @@
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+- * Copyright (C) 1998 - 2017, Daniel Stenberg, , et al.
++ * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+@@ -143,15 +143,6 @@
+ #define NTLMv2_BLOB_SIGNATURE "\x01\x01\x00\x00"
+ #define NTLMv2_BLOB_LEN (44 -16 + ntlm->target_info_len + 4)
+
+-#ifndef SIZE_T_MAX
+-/* some limits.h headers have this defined, some don't */
+-#if defined(SIZEOF_SIZE_T) && (SIZEOF_SIZE_T > 4)
+-#define SIZE_T_MAX 18446744073709551615U
+-#else
+-#define SIZE_T_MAX 4294967295U
+-#endif
+-#endif
+-
+ /*
+ * Turns a 56-bit key into being 64-bit wide.
+ */
+diff --git a/lib/curl_setup.h b/lib/curl_setup.h
+index f128696..e4503c6 100644
+--- a/lib/curl_setup.h
++++ b/lib/curl_setup.h
+@@ -447,6 +447,15 @@
+ # endif
+ #endif
+
++#ifndef SIZE_T_MAX
++/* some limits.h headers have this defined, some don't */
++#if defined(SIZEOF_SIZE_T) && (SIZEOF_SIZE_T > 4)
++#define SIZE_T_MAX 18446744073709551615U
++#else
++#define SIZE_T_MAX 4294967295U
++#endif
++#endif
++
+ /*
+ * Arg 2 type for gethostname in case it hasn't been defined in config file.
+ */
+diff --git a/lib/vauth/cleartext.c b/lib/vauth/cleartext.c
+index a761ae7..5d61ce6 100644
+--- a/lib/vauth/cleartext.c
++++ b/lib/vauth/cleartext.c
+@@ -5,7 +5,7 @@
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+- * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al.
++ * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al.
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+@@ -73,16 +73,10 @@ CURLcode Curl_auth_create_plain_message(struct Curl_easy *data,
+ ulen = strlen(userp);
+ plen = strlen(passwdp);
+
+- /* Compute binary message length, checking for overflows. */
+- plainlen = 2 * ulen;
+- if(plainlen < ulen)
+- return CURLE_OUT_OF_MEMORY;
+- plainlen += plen;
+- if(plainlen < plen)
+- return CURLE_OUT_OF_MEMORY;
+- plainlen += 2;
+- if(plainlen < 2)
++ /* Compute binary message length. Check for overflows. */
++ if((ulen > SIZE_T_MAX/2) || (plen > (SIZE_T_MAX/2 - 2)))
+ return CURLE_OUT_OF_MEMORY;
++ plainlen = 2 * ulen + plen + 2;
+
+ plainauth = malloc(plainlen);
+ if(!plainauth)
+--
+2.17.2
+
+
+From ad9943254ded9a983af7d581e8a1f3317e8a8781 Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg
+Date: Fri, 28 Sep 2018 16:08:16 +0200
+Subject: [PATCH 2/2] Curl_auth_create_plain_message: fix too-large-input-check
+
+CVE-2018-16839
+Reported-by: Harry Sintonen
+Bug: https://curl.haxx.se/docs/CVE-2018-16839.html
+
+Upstream-commit: f3a24d7916b9173c69a3e0ee790102993833d6c5
+Signed-off-by: Kamil Dudka
+---
+ lib/vauth/cleartext.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/vauth/cleartext.c b/lib/vauth/cleartext.c
+index 5d61ce6..1367143 100644
+--- a/lib/vauth/cleartext.c
++++ b/lib/vauth/cleartext.c
+@@ -74,7 +74,7 @@ CURLcode Curl_auth_create_plain_message(struct Curl_easy *data,
+ plen = strlen(passwdp);
+
+ /* Compute binary message length. Check for overflows. */
+- if((ulen > SIZE_T_MAX/2) || (plen > (SIZE_T_MAX/2 - 2)))
++ if((ulen > SIZE_T_MAX/4) || (plen > (SIZE_T_MAX/2 - 2)))
+ return CURLE_OUT_OF_MEMORY;
+ plainlen = 2 * ulen + plen + 2;
+
+--
+2.17.2
+
diff --git a/0013-curl-7.61.1-zsh-completion.patch b/0013-curl-7.61.1-zsh-completion.patch
new file mode 100644
index 0000000..770a15b
--- /dev/null
+++ b/0013-curl-7.61.1-zsh-completion.patch
@@ -0,0 +1,76 @@
+From 082034e2334b2d0795b2b324ff3e0635bb7d2b86 Mon Sep 17 00:00:00 2001
+From: Alessandro Ghedini
+Date: Tue, 5 Feb 2019 20:44:14 +0000
+Subject: [PATCH 1/2] zsh.pl: update regex to better match curl -h output
+
+The current regex fails to match '<...>' arguments properly (e.g. those
+with spaces in them), which causes an completion script with wrong
+descriptions for some options.
+
+The problem can be reproduced as follows:
+
+% curl --reso
+
+Upstream-commit: dbd32f3241b297b96ee11a51da1a661f528ca026
+Signed-off-by: Kamil Dudka
+---
+ scripts/zsh.pl | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/zsh.pl b/scripts/zsh.pl
+index 1257190..941b322 100755
+--- a/scripts/zsh.pl
++++ b/scripts/zsh.pl
+@@ -7,7 +7,7 @@ use warnings;
+
+ my $curl = $ARGV[0] || 'curl';
+
+-my $regex = '\s+(?:(-[^\s]+),\s)?(--[^\s]+)\s([^\s.]+)?\s+(.*)';
++my $regex = '\s+(?:(-[^\s]+),\s)?(--[^\s]+)\s*(\<.+?\>)?\s+(.*)';
+ my @opts = parse_main_opts('--help', $regex);
+
+ my $opts_str;
+--
+2.17.2
+
+
+From 45abc785e101346f19599aa5f9fa1617e525ec4d Mon Sep 17 00:00:00 2001
+From: Alessandro Ghedini
+Date: Tue, 5 Feb 2019 21:06:26 +0000
+Subject: [PATCH 2/2] zsh.pl: escape ':' character
+
+':' is interpreted as separator by zsh, so if used as part of the argument
+or option's description it needs to be escaped.
+
+The problem can be reproduced as follows:
+
+% curl -E
+
+Bug: https://bugs.debian.org/921452
+
+Upstream-commit: b3cc8017b7364f588365be2b2629c49c142efdb7
+Signed-off-by: Kamil Dudka
+---
+ scripts/zsh.pl | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/scripts/zsh.pl b/scripts/zsh.pl
+index 941b322..0f9cbec 100755
+--- a/scripts/zsh.pl
++++ b/scripts/zsh.pl
+@@ -45,9 +45,12 @@ sub parse_main_opts {
+
+ my $option = '';
+
++ $arg =~ s/\:/\\\:/g if defined $arg;
++
+ $desc =~ s/'/'\\''/g if defined $desc;
+ $desc =~ s/\[/\\\[/g if defined $desc;
+ $desc =~ s/\]/\\\]/g if defined $desc;
++ $desc =~ s/\:/\\\:/g if defined $desc;
+
+ $option .= '{' . trim($short) . ',' if defined $short;
+ $option .= trim($long) if defined $long;
+--
+2.17.2
+
diff --git a/0101-curl-7.32.0-multilib.patch b/0101-curl-7.32.0-multilib.patch
index f7f66e6..532980e 100644
--- a/0101-curl-7.32.0-multilib.patch
+++ b/0101-curl-7.32.0-multilib.patch
@@ -1,92 +1,89 @@
-From 6bb4e674cdc953f5c0048aa84172539900725166 Mon Sep 17 00:00:00 2001
-From: Jan Macku
-Date: Tue, 16 Dec 2025 10:04:40 +0100
+From 2a4754a3a7cf60ecc36d83cbe50b8c337cb87632 Mon Sep 17 00:00:00 2001
+From: Kamil Dudka
+Date: Fri, 12 Apr 2013 12:04:05 +0200
Subject: [PATCH] prevent multilib conflicts on the curl-config script
---
- curl-config.in | 23 +++++------------------
- docs/curl-config.md | 4 +++-
- libcurl.pc.in | 1 +
- 3 files changed, 9 insertions(+), 19 deletions(-)
+ curl-config.in | 21 +++------------------
+ docs/curl-config.1 | 4 +++-
+ libcurl.pc.in | 1 +
+ 3 files changed, 7 insertions(+), 19 deletions(-)
diff --git a/curl-config.in b/curl-config.in
-index a1c8185875..bb43ca8335 100644
+index 150004d..95d0759 100644
--- a/curl-config.in
+++ b/curl-config.in
-@@ -74,7 +74,7 @@ while test "$#" -gt 0; do
- ;;
+@@ -76,7 +76,7 @@ while test $# -gt 0; do
+ ;;
- --cc)
-- echo '@CC@'
-+ echo 'gcc'
- ;;
+ --cc)
+- echo "@CC@"
++ echo "gcc"
+ ;;
- --prefix)
-@@ -149,16 +149,7 @@ while test "$#" -gt 0; do
- ;;
+ --prefix)
+@@ -143,32 +143,17 @@ while test $# -gt 0; do
+ ;;
- --libs)
-- if test "@libdir@" != '/usr/lib' && test "@libdir@" != '/usr/lib64'; then
-- curllibdir="-L@libdir@ "
-- else
-- curllibdir=''
-- fi
-- if test '@ENABLE_SHARED@' = 'no'; then
-- echo "${curllibdir}-lcurl @LIBCURL_PC_LIBS_PRIVATE@"
-- else
-- echo "${curllibdir}-lcurl"
-- fi
-+ echo '-lcurl'
- ;;
+ --libs)
+- if test "X@libdir@" != "X/usr/lib" -a "X@libdir@" != "X/usr/lib64"; then
+- CURLLIBDIR="-L@libdir@ "
+- else
+- CURLLIBDIR=""
+- fi
+- if test "X@REQUIRE_LIB_DEPS@" = "Xyes"; then
+- echo ${CURLLIBDIR}-lcurl @LIBCURL_LIBS@
+- else
+- echo ${CURLLIBDIR}-lcurl
+- fi
++ echo -lcurl
+ ;;
+ --ssl-backends)
+ echo "@SSL_BACKENDS@"
+ ;;
- --ssl-backends)
-@@ -166,16 +157,12 @@ while test "$#" -gt 0; do
- ;;
+ --static-libs)
+- if test "X@ENABLE_STATIC@" != "Xno" ; then
+- echo @libdir@/libcurl.@libext@ @LDFLAGS@ @LIBCURL_LIBS@
+- else
+- echo "curl was built with static libraries disabled" >&2
+- exit 1
+- fi
+ ;;
- --static-libs)
-- if test '@ENABLE_STATIC@' != 'no'; then
-- echo "@libdir@/libcurl.@libext@ @LIBCURL_PC_LDFLAGS_PRIVATE@ @LIBCURL_PC_LIBS_PRIVATE@"
-- else
-- echo 'curl was built with static libraries disabled' >&2
-- exit 1
-- fi
-+ echo 'curl was built with static libraries disabled' >&2
-+ exit 1
- ;;
+ --configure)
+- echo @CONFIGURE_OPTIONS@
++ pkg-config libcurl --variable=configure_options | sed 's/^"//;s/"$//'
+ ;;
- --configure)
-- echo @CONFIGURE_OPTIONS@
-+ pkg-config libcurl --variable=configure_options | sed 's/^"//;s/"$//'
- ;;
-
- *)
-diff --git a/docs/curl-config.md b/docs/curl-config.md
-index 12ad245b79..fa0e03d273 100644
---- a/docs/curl-config.md
-+++ b/docs/curl-config.md
-@@ -87,7 +87,9 @@ no, one or several names. If more than one name, they appear comma-separated.
- ## `--static-libs`
-
- Shows the complete set of libs and other linker options you need in order to
--link your application with libcurl statically. (Added in 7.17.1)
-+link your application with libcurl statically. Note that Fedora/RHEL libcurl
+ *)
+diff --git a/docs/curl-config.1 b/docs/curl-config.1
+index 14a9d2b..ffcc004 100644
+--- a/docs/curl-config.1
++++ b/docs/curl-config.1
+@@ -70,7 +70,9 @@ no, one or several names. If more than one name, they will appear
+ comma-separated. (Added in 7.58.0)
+ .IP "--static-libs"
+ Shows the complete set of libs and other linker options you will need in order
+-to link your application with libcurl statically. (Added in 7.17.1)
++to link your application with libcurl statically. Note that Fedora/RHEL libcurl
+packages do not provide any static libraries, thus cannot be linked statically.
+(Added in 7.17.1)
-
- ## `--version`
-
+ .IP "--version"
+ Outputs version information about the installed libcurl.
+ .IP "--vernum"
diff --git a/libcurl.pc.in b/libcurl.pc.in
-index c0ba5244a8..f3645e1748 100644
+index 2ba9c39..f8f8b00 100644
--- a/libcurl.pc.in
+++ b/libcurl.pc.in
-@@ -28,6 +28,7 @@ libdir=@libdir@
+@@ -29,6 +29,7 @@ libdir=@libdir@
includedir=@includedir@
supported_protocols="@SUPPORT_PROTOCOLS@"
supported_features="@SUPPORT_FEATURES@"
+configure_options=@CONFIGURE_OPTIONS@
Name: libcurl
- URL: https://curl.se/
+ URL: https://curl.haxx.se/
--
-2.52.0
+2.5.0
diff --git a/0102-curl-7.36.0-debug.patch b/0102-curl-7.36.0-debug.patch
new file mode 100644
index 0000000..13f07df
--- /dev/null
+++ b/0102-curl-7.36.0-debug.patch
@@ -0,0 +1,65 @@
+From 6710648c2b270c9ce68a7d9f1bba1222c7be8b58 Mon Sep 17 00:00:00 2001
+From: Kamil Dudka
+Date: Wed, 31 Oct 2012 11:38:30 +0100
+Subject: [PATCH] prevent configure script from discarding -g in CFLAGS (#496778)
+
+---
+ configure | 13 +++----------
+ m4/curl-compilers.m4 | 13 +++----------
+ 2 files changed, 6 insertions(+), 20 deletions(-)
+
+diff --git a/configure b/configure
+index 8f079a3..53b4774 100755
+--- a/configure
++++ b/configure
+@@ -16524,18 +16524,11 @@ $as_echo "yes" >&6; }
+ gccvhi=`echo $gccver | cut -d . -f1`
+ gccvlo=`echo $gccver | cut -d . -f2`
+ compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
+- flags_dbg_all="-g -g0 -g1 -g2 -g3"
+- flags_dbg_all="$flags_dbg_all -ggdb"
+- flags_dbg_all="$flags_dbg_all -gstabs"
+- flags_dbg_all="$flags_dbg_all -gstabs+"
+- flags_dbg_all="$flags_dbg_all -gcoff"
+- flags_dbg_all="$flags_dbg_all -gxcoff"
+- flags_dbg_all="$flags_dbg_all -gdwarf-2"
+- flags_dbg_all="$flags_dbg_all -gvms"
++ flags_dbg_all=""
+ flags_dbg_yes="-g"
+ flags_dbg_off=""
+- flags_opt_all="-O -O0 -O1 -O2 -O3 -Os -Og -Ofast"
+- flags_opt_yes="-O2"
++ flags_opt_all=""
++ flags_opt_yes=""
+ flags_opt_off="-O0"
+
+ OLDCPPFLAGS=$CPPFLAGS
+diff --git a/m4/curl-compilers.m4 b/m4/curl-compilers.m4
+index 0cbba7a..9175b5b 100644
+--- a/m4/curl-compilers.m4
++++ b/m4/curl-compilers.m4
+@@ -157,18 +157,11 @@ AC_DEFUN([CURL_CHECK_COMPILER_GNU_C], [
+ gccvhi=`echo $gccver | cut -d . -f1`
+ gccvlo=`echo $gccver | cut -d . -f2`
+ compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null`
+- flags_dbg_all="-g -g0 -g1 -g2 -g3"
+- flags_dbg_all="$flags_dbg_all -ggdb"
+- flags_dbg_all="$flags_dbg_all -gstabs"
+- flags_dbg_all="$flags_dbg_all -gstabs+"
+- flags_dbg_all="$flags_dbg_all -gcoff"
+- flags_dbg_all="$flags_dbg_all -gxcoff"
+- flags_dbg_all="$flags_dbg_all -gdwarf-2"
+- flags_dbg_all="$flags_dbg_all -gvms"
++ flags_dbg_all=""
+ flags_dbg_yes="-g"
+ flags_dbg_off=""
+- flags_opt_all="-O -O0 -O1 -O2 -O3 -Os -Og -Ofast"
+- flags_opt_yes="-O2"
++ flags_opt_all=""
++ flags_opt_yes=""
+ flags_opt_off="-O0"
+ CURL_CHECK_DEF([_WIN32], [], [silent])
+ else
+--
+1.7.1
+
diff --git a/0104-curl-7.19.7-localhost6.patch b/0104-curl-7.19.7-localhost6.patch
new file mode 100644
index 0000000..4f664d3
--- /dev/null
+++ b/0104-curl-7.19.7-localhost6.patch
@@ -0,0 +1,51 @@
+diff --git a/tests/data/test1083 b/tests/data/test1083
+index e441278..b0958b6 100644
+--- a/tests/data/test1083
++++ b/tests/data/test1083
+@@ -33,13 +33,13 @@ ipv6
+ http-ipv6
+
+
+-HTTP-IPv6 GET with ip6-localhost --interface
++HTTP-IPv6 GET with localhost6 --interface
+
+
+--g "http://%HOST6IP:%HTTP6PORT/1083" --interface ip6-localhost
++-g "http://%HOST6IP:%HTTP6PORT/1083" --interface localhost6
+
+
+-perl -e "if ('%CLIENT6IP' ne '[::1]') {print 'Test requires default test server host address';} else {exec './server/resolve --ipv6 ip6-localhost'; print 'Cannot run precheck resolve';}"
++perl -e "if ('%CLIENT6IP' ne '[::1]') {print 'Test requires default test server host address';} else {exec './server/resolve --ipv6 localhost6'; print 'Cannot run precheck resolve';}"
+
+
+
+diff --git a/tests/data/test241 b/tests/data/test241
+index 46eae1f..4e1632c 100644
+--- a/tests/data/test241
++++ b/tests/data/test241
+@@ -30,13 +30,13 @@ ipv6
+ http-ipv6
+
+
+-HTTP-IPv6 GET (using ip6-localhost)
++HTTP-IPv6 GET (using localhost6)
+
+
+--g "http://ip6-localhost:%HTTP6PORT/241"
++-g "http://localhost6:%HTTP6PORT/241"
+
+
+-./server/resolve --ipv6 ip6-localhost
++./server/resolve --ipv6 localhost6
+
+
+
+@@ -48,7 +48,7 @@ HTTP-IPv6 GET (using ip6-localhost)
+
+
+ GET /241 HTTP/1.1
+-Host: ip6-localhost:%HTTP6PORT
++Host: localhost6:%HTTP6PORT
+ Accept: */*
+
+
diff --git a/0105-curl-7.61.0-tests-ssh-keygen.patch b/0105-curl-7.61.0-tests-ssh-keygen.patch
new file mode 100644
index 0000000..b8b9ffb
--- /dev/null
+++ b/0105-curl-7.61.0-tests-ssh-keygen.patch
@@ -0,0 +1,33 @@
+From daded1aff280104d16e405fcd1be1a857c74b191 Mon Sep 17 00:00:00 2001
+From: Kamil Dudka
+Date: Mon, 27 Aug 2018 15:53:35 +0200
+Subject: [PATCH] tests: make ssh-keygen always produce PEM format
+
+The default format produced by openssh-7.8p1 cannot be consumed
+by currently available versions of libssh and libssh2.
+---
+ tests/sshserver.pl | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/sshserver.pl b/tests/sshserver.pl
+index 9b3d122..d477a02 100755
+--- a/tests/sshserver.pl
++++ b/tests/sshserver.pl
+@@ -372,12 +372,12 @@ if((! -e $hstprvkeyf) || (! -s $hstprvkeyf) ||
+ # Make sure all files are gone so ssh-keygen doesn't complain
+ unlink($hstprvkeyf, $hstpubkeyf, $cliprvkeyf, $clipubkeyf);
+ logmsg 'generating host keys...' if($verbose);
+- if(system "\"$sshkeygen\" -q -t rsa -f $hstprvkeyf -C 'curl test server' -N ''") {
++ if(system "\"$sshkeygen\" -q -t rsa -f $hstprvkeyf -C 'curl test server' -N '' -m PEM") {
+ logmsg 'Could not generate host key';
+ exit 1;
+ }
+ logmsg 'generating client keys...' if($verbose);
+- if(system "\"$sshkeygen\" -q -t rsa -f $cliprvkeyf -C 'curl test client' -N ''") {
++ if(system "\"$sshkeygen\" -q -t rsa -f $cliprvkeyf -C 'curl test client' -N '' -m PEM") {
+ logmsg 'Could not generate client key';
+ exit 1;
+ }
+--
+2.17.1
+
diff --git a/ci.fmf b/ci.fmf
deleted file mode 100644
index d3546e9..0000000
--- a/ci.fmf
+++ /dev/null
@@ -1,9 +0,0 @@
-discover:
- how: fmf
-prepare:
- how: install
- exclude:
- - libcurl-minimal
- - curl-minimal
-execute:
- how: tmt
diff --git a/curl-7.59.0.tar.xz.asc b/curl-7.59.0.tar.xz.asc
new file mode 100644
index 0000000..e74f7b2
--- /dev/null
+++ b/curl-7.59.0.tar.xz.asc
@@ -0,0 +1,11 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAABCgAdFiEEJ+3q8i86vOtQ25oSXMkI/bceEsIFAlqoxTwACgkQXMkI/bce
+EsJrHQf7B0ik8F5dfGYumYWkXHc9poJU+dJ0o6pwzg4QsP+4mwVTw/gnrXDm1hVk
+iFPIAdgTkxiIDZi+6mDfZA9dZ8Aq38XbYjRIwXTW4KrjTtEFQXtwlEClrHrJyXfl
++2YC52BcY0D2JVDqUAB9cVSSgaHHf1jd4h32a8YMrwco4jP5rSxbmZe4psU2m8TC
+skaZEoSIRJzg5oV+AgDSQMrq+fLsc5lIDKTl+7v6sjnGlcYeRC1SiBePyrh5g/o5
+w4JJH839MyjrYvi6MyCBHeyCFYDrxKvQw8zRwivfZ1oipM2SaSVq8c60PdR85Zw5
+/SNOU/7Qpvhua0GhAfaI/CTwwewy6w==
+=OcVv
+-----END PGP SIGNATURE-----
diff --git a/curl.rpmlintrc b/curl.rpmlintrc
deleted file mode 100644
index 022a98e..0000000
--- a/curl.rpmlintrc
+++ /dev/null
@@ -1,15 +0,0 @@
-# Intentional stuff we're not concerned about
-addFilter("unversioned-explicit-provides webclient")
-addFilter("package-with-huge-docs")
-addFilter("crypto-policy-non-compliance-openssl /usr/lib(64)?/libcurl.so.4")
-
-# This is just plain wrong (%_configure redefinition)
-addFilter("configure-without-libdir-spec")
-
-# Technical term
-addFilter("E: spelling-error \('kerberos',")
-
-# Artefacts of RemovePathPostfixes: .minimal
-addFilter("W: dangling-relative-symlink /usr/lib/.build-id/.* ../../../../.*curl.*\.minimal")
-#addFilter("W: dangling-relative-symlink /usr/lib.*/libcurl.so.4 libcurl.so.4.*.minimal")
-#addFilter("E: invalid-ldconfig-symlink /usr/lib.*/libcurl.so.4.* libcurl.so.4.*.minimal")
diff --git a/curl.spec b/curl.spec
index c0ad4db..ad34021 100644
--- a/curl.spec
+++ b/curl.spec
@@ -1,177 +1,129 @@
-# OpenSSL ENGINE support
-# This is deprecated by OpenSSL since OpenSSL 3.0 and by Fedora since Fedora 41
-# https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine
-# Change the bcond to 0 to turn off ENGINE support by default
-%bcond openssl_engine_support %[%{defined fedora} || 0%{?rhel} < 10]
-
-# HTTP/3 support
-# This is using ngtcp2 with OpenSSL 3.5 QUIC support instead of curl's
-# experimental native OpenSSL 3.5 support.
-%bcond http3 %[0%{?fedora} >= 43]
-
Summary: A utility for getting files from remote servers (FTP, HTTP, and others)
Name: curl
-Version: 8.18.0
-Release: 1%{?dist}
-License: curl
-Source0: https://curl.se/download/%{name}-%{version_no_tilde}.tar.xz
-Source1: https://curl.se/download/%{name}-%{version_no_tilde}.tar.xz.asc
-# The curl download page ( https://curl.se/download.html ) links
-# to Daniel's address page https://daniel.haxx.se/address.html for the GPG Key,
-# which points to the GPG key as of April 7th 2016 of https://daniel.haxx.se/mykey.asc
-Source2: mykey.asc
+Version: 7.59.0
+Release: 10%{?dist}
+License: MIT
+Source: https://curl.haxx.se/download/%{name}-%{version}.tar.xz
+
+# ftp: fix typo in recursive callback detection for seeking
+Patch1: 0001-curl-7.58.0-ftp-typo-in-recursive-callback-detection.patch
+
+# fix RTSP bad headers buffer over-read (CVE-2018-1000301)
+Patch2: 0002-curl-7.59.0-CVE-2018-1000301.patch
+
+# fix FTP shutdown response buffer overflow (CVE-2018-1000300)
+Patch3: 0003-curl-7.59.0-CVE-2018-1000300.patch
+
+# http2: handle GOAWAY properly (#1585797)
+Patch4: 0004-curl-7.59.0-http2-GOAWAY.patch
+
+# fix heap buffer overflow in SMTP send (CVE-2018-0500)
+Patch5: 0005-curl-7.59.0-CVE-2018-0500.patch
+
+# ssl: set engine implicitly when a PKCS#11 URI is provided (#1219544)
+Patch6: 0006-curl-7.59.0-pkcs11.patch
+
+# scp/sftp: fix infinite connect loop on invalid private key (#1595135)
+Patch7: 0007-curl-7.61.0-libssh.patch
+
+# fix NTLM password overflow via integer overflow (CVE-2018-14618)
+Patch8: 0008-curl-7.59.0-CVE-2018-14618.patch
+
+# test320: update expected output for gnutls-3.6.4
+Patch9: 0009-curl-7.59.0-test320-gnutls.patch
+
+# fix bad arethmetic when outputting warnings to stderr (CVE-2018-16842)
+Patch10: 0010-curl-7.59.0-CVE-2018-16842.patch
+# we need `git apply` to apply this patch
+BuildRequires: git
+
+# fix use-after-free in handle close (CVE-2018-16840)
+Patch11: 0011-curl-7.59.0-CVE-2018-16840.patch
+
+# SASL password overflow via integer overflow (CVE-2018-16839)
+Patch12: 0012-curl-7.59.0-CVE-2018-16839.patch
+
+# make zsh completion work again
+Patch13: 0013-curl-7.61.1-zsh-completion.patch
# patch making libcurl multilib ready
Patch101: 0101-curl-7.32.0-multilib.patch
+# prevent configure script from discarding -g in CFLAGS (#496778)
+Patch102: 0102-curl-7.36.0-debug.patch
+
+# use localhost6 instead of ip6-localhost in the curl test-suite
+Patch104: 0104-curl-7.19.7-localhost6.patch
+
+# tests: make ssh-keygen always produce PEM format (#1622594)
+Patch105: 0105-curl-7.61.0-tests-ssh-keygen.patch
+
Provides: curl-full = %{version}-%{release}
-# do not fail when trying to install curl-minimal after drop
-Provides: curl-minimal = %{version}-%{release}
Provides: webclient
-URL: https://curl.se/
-
-%if 0%{?fedora}
-# instead of bundled wcurl utility, recommend wcurl package
-Recommends: wcurl
-%endif
-
-# The reason for maintaining two separate packages for curl is no longer valid.
-# The curl-minimal is currently almost identical to curl-full, so let's drop curl-minimal.
-# For more details, see https://bugzilla.redhat.com/show_bug.cgi?id=2262096
-Obsoletes: curl-minimal < 8.6.0-4
+URL: https://curl.haxx.se/
BuildRequires: automake
-BuildRequires: brotli-devel
BuildRequires: coreutils
BuildRequires: gcc
BuildRequires: groff
BuildRequires: krb5-devel
BuildRequires: libidn2-devel
+BuildRequires: libmetalink-devel
BuildRequires: libnghttp2-devel
-%if %{with http3}
-BuildRequires: libnghttp3-devel
-%endif
BuildRequires: libpsl-devel
BuildRequires: libssh-devel
-BuildRequires: libtool
BuildRequires: make
-%if %{with http3}
-BuildRequires: ngtcp2-crypto-ossl-devel
-%endif
BuildRequires: openldap-devel
BuildRequires: openssh-clients
BuildRequires: openssh-server
-BuildRequires: openssl
BuildRequires: openssl-devel
-%if %{with openssl_engine_support} && 0%{?fedora} >= 41
-BuildRequires: openssl-devel-engine
-%endif
-BuildRequires: perl-interpreter
BuildRequires: pkgconfig
-BuildRequires: python-unversioned-command
-BuildRequires: python3-devel
+BuildRequires: python
BuildRequires: sed
+BuildRequires: stunnel
BuildRequires: zlib-devel
-# For gpg verification of source tarball
-BuildRequires: gnupg2
-
-# needed to compress content of tool_hugehelp.c after changing curl.1 man page
-BuildRequires: perl(IO::Compress::Gzip)
-
-# needed for generation of shell completions
-BuildRequires: perl(Getopt::Long)
-BuildRequires: perl(Pod::Usage)
-BuildRequires: perl(strict)
-BuildRequires: perl(warnings)
-
-# needed for test1560 to succeed
-BuildRequires: glibc-langpack-en
-
# gnutls-serv is used by the upstream test-suite
BuildRequires: gnutls-utils
-# hostname(1) is used by the test-suite but it is missing in armv7hl buildroot
-BuildRequires: hostname
-
# nghttpx (an HTTP/2 proxy) is used by the upstream test-suite
BuildRequires: nghttp2
# perl modules used in the test suite
-BuildRequires: perl(B)
-BuildRequires: perl(base)
-BuildRequires: perl(constant)
BuildRequires: perl(Cwd)
BuildRequires: perl(Digest::MD5)
-BuildRequires: perl(Digest::SHA)
BuildRequires: perl(Exporter)
BuildRequires: perl(File::Basename)
BuildRequires: perl(File::Copy)
BuildRequires: perl(File::Spec)
-BuildRequires: perl(I18N::Langinfo)
BuildRequires: perl(IPC::Open2)
-BuildRequires: perl(List::Util)
-BuildRequires: perl(Memoize)
BuildRequires: perl(MIME::Base64)
-BuildRequires: perl(POSIX)
-BuildRequires: perl(Storable)
-BuildRequires: perl(Time::HiRes)
+BuildRequires: perl(strict)
BuildRequires: perl(Time::Local)
+BuildRequires: perl(Time::HiRes)
+BuildRequires: perl(warnings)
BuildRequires: perl(vars)
-%if 0%{?fedora}
-# needed for upstream test 1451
-BuildRequires: python3-impacket
-%endif
-
# The test-suite runs automatically through valgrind if valgrind is available
# on the system. By not installing valgrind into mock's chroot, we disable
# this feature for production builds on architectures where valgrind is known
# to be less reliable, in order to avoid unnecessary build failures (see RHBZ
# #810992, #816175, and #886891). Nevertheless developers are free to install
# valgrind manually to improve test coverage on any architecture.
-%ifarch x86_64
+%ifarch x86_64 %{ix86}
BuildRequires: valgrind
%endif
-# stunnel is used by upstream tests but it does not seem to work reliably
-# on aarch64/s390x and occasionally breaks some tests (mainly 1561 and 1562)
-%ifnarch aarch64 s390x
-BuildRequires: stunnel
-%endif
-
# using an older version of libcurl could result in CURLE_UNKNOWN_OPTION
Requires: libcurl%{?_isa} >= %{version}-%{release}
-# Define OPENSSL_NO_ENGINE to avoid inclusion of
-%if %{without openssl_engine_support}
-%global _preprocessor_defines %{?_preprocessor_defines} -DOPENSSL_NO_ENGINE
-%endif
-
-# require at least the version of libnghttp2 that we were built against,
-# to ensure that we have the necessary symbols available (#2144277)
-%global libnghttp2_version %(pkg-config --modversion libnghttp2 2>/dev/null || echo 0)
-
-# require at least the version of libnghttp3 that we were built against,
-# to ensure that we have the necessary symbols available
-%global libnghttp3_version %(pkg-config --modversion libnghttp3 2>/dev/null || echo 0)
-
-# require at least the version of libpsl that we were built against,
-# to ensure that we have the necessary symbols available (#1631804)
-%global libpsl_version %(pkg-config --modversion libpsl 2>/dev/null || echo 0)
-
# require at least the version of libssh that we were built against,
# to ensure that we have the necessary symbols available (#525002, #642796)
%global libssh_version %(pkg-config --modversion libssh 2>/dev/null || echo 0)
-# require at least the version of ngtcp2 that we were built against,
-# to ensure that we have the necessary symbols available
-%global ngtcp2_version %(pkg-config --modversion libngtcp2 2>/dev/null || echo 0)
-
# require at least the version of openssl-libs that we were built against,
# to ensure that we have the necessary symbols available (#1462184, #1462211)
-# (we need to translate 3.0.0-alpha16 -> 3.0.0-0.alpha16 and 3.0.0-beta1 -> 3.0.0-0.beta1 though)
-%global openssl_version %({ pkg-config --modversion openssl 2>/dev/null || echo 0;} | sed 's|-|-0.|')
+%global openssl_version %(pkg-config --modversion openssl 2>/dev/null || echo 0)
%description
curl is a command line tool for transferring data with URL syntax, supporting
@@ -183,15 +135,7 @@ resume, proxy tunneling and a busload of other useful tricks.
%package -n libcurl
Summary: A library for getting files from web servers
-Requires: libnghttp2%{?_isa} >= %{libnghttp2_version}
-%if %{with http3}
-Requires: libnghttp3%{?_isa} >= %{libnghttp3_version}
-%endif
-Requires: libpsl%{?_isa} >= %{libpsl_version}
Requires: libssh%{?_isa} >= %{libssh_version}
-%if %{with http3}
-Requires: ngtcp2%{?_isa} >= %{ngtcp2_version}
-%endif
Requires: openssl-libs%{?_isa} >= 1:%{openssl_version}
Provides: libcurl-full = %{version}-%{release}
Provides: libcurl-full%{?_isa} = %{version}-%{release}
@@ -217,13 +161,27 @@ The libcurl-devel package includes header files and libraries necessary for
developing programs which use the libcurl library. It contains the API
documentation of the library, too.
+%package -n curl-minimal
+Summary: Conservatively configured build of curl for minimal installations
+Provides: curl = %{version}-%{release}
+Conflicts: curl
+RemovePathPostfixes: .minimal
+
+# using an older version of libcurl could result in CURLE_UNKNOWN_OPTION
+Requires: libcurl%{?_isa} >= %{version}-%{release}
+
+%description -n curl-minimal
+This is a replacement of the 'curl' package for minimal installations. It
+comes with a limited set of features compared to the 'curl' package. On the
+other hand, the package is smaller and requires fewer run-time dependencies to
+be installed.
+
%package -n libcurl-minimal
Summary: Conservatively configured build of libcurl for minimal installations
-Requires: libnghttp2%{?_isa} >= %{libnghttp2_version}
Requires: openssl-libs%{?_isa} >= 1:%{openssl_version}
Provides: libcurl = %{version}-%{release}
Provides: libcurl%{?_isa} = %{version}-%{release}
-Conflicts: libcurl%{?_isa}
+Conflicts: libcurl
RemovePathPostfixes: .minimal
# needed for RemovePathPostfixes to work with shared libraries
%undefine __brp_ldconfig
@@ -235,107 +193,81 @@ other hand, the package is smaller and requires fewer run-time dependencies to
be installed.
%prep
-%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
-%autosetup -n %{name}-%{version_no_tilde} -p1
+%setup -q
-# disable test 1801
+# upstream patches
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+git init
+git apply %{PATCH10}
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+
+# Fedora patches
+%patch101 -p1
+%patch102 -p1
+%patch104 -p1
+%patch105 -p1
+
+# regenerate Makefile.in files
+aclocal -I m4
+automake
+
+# disable test 1112 (#565305) and test 1801
#
-printf "1801\n" >>tests/data/DISABLED
+printf "1112\n1801\n" >> tests/data/DISABLED
-# test3026: avoid pthread_create() failure due to resource exhaustion on i386
-%ifarch %{ix86}
-sed -e 's|NUM_THREADS 1000$|NUM_THREADS 256|' \
- -i tests/libtest/lib3026.c
+# disable test 1319 on ppc64 (server times out)
+%ifarch ppc64
+echo "1319" >> tests/data/DISABLED
%endif
-# adapt test 323 for updated OpenSSL
-sed -e 's|^35$|35,52|' -i tests/data/test323
-
-# use localhost6 instead of ip6-localhost in the curl test-suite
-(
- # avoid glob expansion in the trace output of `bash -x`
- { set +x; } 2>/dev/null
- cmd="sed -e 's|ip6-localhost|localhost6|' -i tests/data/test[0-9]*"
- printf "+ %s\n" "$cmd" >&2
- eval "$cmd"
-)
-
-# avoid unnecessary arch-dependent line in the processed file
-sed -e '/# Used in @libdir@/d' \
- -i curl-config.in
-
%build
-# regenerate the configure script and Makefile.in files
-autoreconf -fiv
-
mkdir build-{full,minimal}
-export common_configure_opts=" \
- --cache-file=../config.cache \
- --disable-manual \
- --disable-static \
- --enable-hsts \
- --enable-ipv6 \
- --enable-symbol-hiding \
- --enable-threaded-resolver \
- --without-zstd \
- --with-gssapi \
- --with-libidn2 \
- --with-nghttp2 \
- --with-ssl --with-ca-bundle=%{_sysconfdir}/pki/ca-trust/extracted/pem/tls-ca-bundle.pem \
- --with-zsh-functions-dir"
+export common_configure_opts=" \
+ --cache-file=../config.cache \
+ --disable-static \
+ --enable-symbol-hiding \
+ --enable-ipv6 \
+ --enable-threaded-resolver \
+ --with-gssapi \
+ --with-nghttp2 \
+ --with-ssl --with-ca-bundle=%{_sysconfdir}/pki/tls/certs/ca-bundle.crt"
%global _configure ../configure
# configure minimal build
(
cd build-minimal
- %configure $common_configure_opts \
- --disable-dict \
- --disable-gopher \
- --disable-imap \
- --disable-ldap \
- --disable-ldaps \
- --disable-mqtt \
- --disable-ntlm \
- --disable-pop3 \
- --disable-rtsp \
- --disable-smb \
- --disable-smtp \
- --disable-telnet \
- --disable-tftp \
- --disable-tls-srp \
- --disable-websockets \
- --without-brotli \
- --without-libpsl \
+ %configure $common_configure_opts \
+ --disable-ldap \
+ --disable-ldaps \
+ --disable-manual \
+ --without-libidn2 \
+ --without-libmetalink \
+ --without-libpsl \
--without-libssh
)
# configure full build
(
cd build-full
- %configure $common_configure_opts \
- --enable-dict \
- --enable-gopher \
- --enable-imap \
- --enable-ldap \
- --enable-ldaps \
- --enable-mqtt \
- --enable-ntlm \
- --enable-pop3 \
- --enable-rtsp \
- --enable-smb \
- --enable-smtp \
- --enable-telnet \
- --enable-tftp \
- --enable-tls-srp \
- --enable-websockets \
- --with-brotli \
- --with-libpsl \
- --with-libssh \
-%if %{with http3}
- --with-nghttp3 \
- --with-ngtcp2 \
-%endif
+ %configure $common_configure_opts \
+ --enable-ldap \
+ --enable-ldaps \
+ --enable-manual \
+ --with-libidn2 \
+ --with-libmetalink \
+ --with-libpsl \
+ --with-libssh
)
# avoid using rpath
@@ -343,82 +275,60 @@ sed -e 's/^runpath_var=.*/runpath_var=/' \
-e 's/^hardcode_libdir_flag_spec=".*"$/hardcode_libdir_flag_spec=""/' \
-i build-{full,minimal}/libtool
-%make_build V=1 -C build-minimal
-%make_build V=1 -C build-full
+make %{?_smp_mflags} V=1 -C build-minimal
+make %{?_smp_mflags} V=1 -C build-full
%check
+# we have to override LD_LIBRARY_PATH because we eliminated rpath
+LD_LIBRARY_PATH="$RPM_BUILD_ROOT%{_libdir}:$LD_LIBRARY_PATH"
+export LD_LIBRARY_PATH
+
# compile upstream test-cases
-%make_build V=1 -C build-minimal/tests
-%make_build V=1 -C build-full/tests
-
-# relax crypto policy for the test-suite to make it pass again (#1610888)
-export OPENSSL_SYSTEM_CIPHERS_OVERRIDE=XXX
-export OPENSSL_CONF=
-
-# make runtests.pl work for out-of-tree builds
-export srcdir=../../tests
-
-# prevent valgrind from being extremely slow (#1662656)
-# https://fedoraproject.org/wiki/Changes/DebuginfodByDefault
-unset DEBUGINFOD_URLS
-
-# run the upstream test-suite for both curl-minimal and curl-full
-for size in minimal full; do (
- cd build-${size}
-
- # we have to override LD_LIBRARY_PATH because we eliminated rpath
- export LD_LIBRARY_PATH="${PWD}/lib/.libs"
-
- cd tests
- perl -I../../tests ../../tests/runtests.pl -a -p -v '!flaky'
-)
-done
+cd build-full/tests
+make %{?_smp_mflags} V=1
+# run the upstream test-suite
+srcdir=../../tests perl -I../../tests ../../tests/runtests.pl -a -p -v '!flaky'
%install
# install and rename the library that will be packaged as libcurl-minimal
-%make_install -C build-minimal/lib
+make DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" install -C build-minimal/lib
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.{la,so}
for i in ${RPM_BUILD_ROOT}%{_libdir}/*; do
mv -v $i $i.minimal
done
+# install and rename the executable that will be packaged as curl-minimal
+make DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" install -C build-minimal/src
+mv -v ${RPM_BUILD_ROOT}%{_bindir}/curl{,.minimal}
+
# install libcurl.m4
install -d $RPM_BUILD_ROOT%{_datadir}/aclocal
install -m 644 docs/libcurl/libcurl.m4 $RPM_BUILD_ROOT%{_datadir}/aclocal
# install the executable and library that will be packaged as curl and libcurl
cd build-full
-%make_install
+make DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" install
-# do not install /usr/share/fish/completions/curl.fish which is also installed
-# by fish-3.0.2-1.module_f31+3716+57207597 and would trigger a conflict
-rm -rf ${RPM_BUILD_ROOT}%{_datadir}/fish
+# install zsh completion for curl
+# (we have to override LD_LIBRARY_PATH because we eliminated rpath)
+LD_LIBRARY_PATH="$RPM_BUILD_ROOT%{_libdir}:$LD_LIBRARY_PATH" \
+ make DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" install -C scripts
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl.la
-# do not install bundled wcurl utility
-# it is provided by the wcurl package
-rm -f ${RPM_BUILD_ROOT}%{_bindir}/wcurl
-rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/wcurl.1*
-
%ldconfig_scriptlets -n libcurl
%ldconfig_scriptlets -n libcurl-minimal
%files
-%doc CHANGES.md
-%doc README
-%doc docs/BUGS.md
-%doc docs/DISTROS.md
-%doc docs/FAQ.md
-%doc docs/FEATURES.md
-%doc docs/KNOWN_BUGS.md
-%doc docs/TODO.md
-%doc docs/TheArtOfHttpScripting.md
+%doc CHANGES README*
+%doc docs/BUGS docs/FAQ docs/FEATURES
+%doc docs/MANUAL docs/RESOURCES
+%doc docs/TheArtOfHttpScripting docs/TODO
%{_bindir}/curl
%{_mandir}/man1/curl.1*
-%{_datadir}/zsh
+%{_datadir}/zsh/site-functions
%files -n libcurl
%license COPYING
@@ -427,7 +337,7 @@ rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/wcurl.1*
%files -n libcurl-devel
%doc docs/examples/*.c docs/examples/Makefile.example docs/INTERNALS.md
-%doc docs/CONTRIBUTE.md docs/libcurl/ABI.md
+%doc docs/CONTRIBUTE.md docs/libcurl/ABI
%{_bindir}/curl-config*
%{_includedir}/curl
%{_libdir}/*.so
@@ -436,649 +346,45 @@ rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/wcurl.1*
%{_mandir}/man3/*
%{_datadir}/aclocal/libcurl.m4
+%files -n curl-minimal
+%{_bindir}/curl.minimal
+%{_mandir}/man1/curl.1*
+
%files -n libcurl-minimal
%license COPYING
%{_libdir}/libcurl.so.4.minimal
%{_libdir}/libcurl.so.4.[0-9].[0-9].minimal
%changelog
-* Wed Jan 07 2026 Jan Macku - 8.18.0-1
-- new upstream release
-
-* Mon Jan 05 2026 Jan Macku - 8.18.0~rc3-1
-- new upstream release candidate
-
-* Tue Dec 16 2025 Jan Macku - 8.18.0~rc2-1
-- new upstream release candidate
-- reenable valgrind on test 616
-
-* Tue Dec 09 2025 Jan Macku - 8.18.0~rc1-1
-- new upstream release candidate
-- drop upstreamed patches
-
-* Sun Dec 07 2025 Aleksei Bavshin - 8.17.0-5
-- Enable HTTP/3 support with ngtcp2
-
-* Thu Dec 04 2025 Jan Macku - 8.17.0-4
-- apply upstream patches for valgrind issues in HTTP/3 (#2408809)
-
-* Thu Nov 13 2025 Jan Macku - 8.17.0-3
-- recommend wcurl package instead of bundled wcurl utility
-
-* Thu Nov 13 2025 Jan Macku - 8.17.0-2
-- remove bundled wcurl utility that was added in 8.14.0~rc1, use wcurl package instead
-
-* Mon Nov 10 2025 Jan Macku - 8.17.0-1
-- new upstream release
-
-* Thu Oct 30 2025 Jan Macku - 8.17.0~rc3-1
-- new upstream release candidate
-
-* Tue Oct 21 2025 Jan Macku - 8.17.0~rc2-1
-- new upstream release candidate
-
-* Mon Oct 13 2025 Jan Macku - 8.17.0~rc1-1
-- new upstream release candidate
-
-* Wed Sep 10 2025 Jan Macku - 8.16.0-1
-- new upstream release
-
-* Wed Sep 03 2025 Jan Macku - 8.16.0~rc3-1
-- new upstream release candidate
-
-* Tue Aug 26 2025 Jan Macku - 8.16.0~rc2-1
-- new upstream release candidate
-
-* Wed Jul 23 2025 Fedora Release Engineering - 8.15.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
-
-* Wed Jul 16 2025 Jan Macku - 8.15.0-1
-- new upstream release
-
-* Thu Jul 10 2025 Jan Macku - 8.15.0~rc3-1
-- new upstream release candidate
-
-* Mon Jun 30 2025 Jan Macku - 8.15.0~rc2-1
-- new upstream release candidate
-
-* Mon Jun 23 2025 Jan Macku - 8.15.0~rc1-1
-- new upstream release candidate
-
-* Wed Jun 04 2025 Jan Macku - 8.14.1-1
-- new upstream release
-- drop: 0001-curl-8.14.0-multi-fix-add_handle-resizing.patch (no longer needed)
-
-* Wed May 28 2025 Jan Macku - 8.14.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2025-5025 - No QUIC certificate pinning with wolfSSL
- CVE-2025-4947 - QUIC certificate check skip with wolfSSL
-- fix regression: curl_multi_add_handle() returning OOM when using more than 400 handles
-
-* Fri May 02 2025 Jan Macku - 8.14.0~rc1-1
-- new upstream release candidate
-- new utility: wcurl which lets you download URLs without having to remember any parameters
-
-* Wed Apr 02 2025 Jan Macku - 8.13.0-1
-- new upstream release
-- add build time dependency on openssl (required by tests)
-
-* Wed Mar 26 2025 Jan Macku - 8.13.0~rc3-1
-- new upstream release candidate
-- drop: 0102-curl-7.84.0-test3026.patch (no longer needed)
-
-* Tue Mar 18 2025 Jan Macku - 8.13.0~rc2-1
-- new upstream release candidate
-
-* Thu Mar 13 2025 Jan Macku - 8.13.0~rc1-2
-- fix --cert parameter (#2351531)
-
-* Mon Mar 10 2025 Jan Macku - 8.13.0~rc1-1
-- new upstream release candidate
-
-* Wed Feb 05 2025 Jan Macku - 8.12.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2025-0725 - gzip integer overflow
- CVE-2025-0665 - eventfd double close
- CVE-2025-0167 - netrc and default credential leak
-- drop upstreamed patches
-
-* Fri Jan 31 2025 Jan Macku - 8.11.1-4
-- TLS: check connection for SSL use, not handler (#2324130#c7)
-
-* Thu Jan 16 2025 Fedora Release Engineering - 8.11.1-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
-
-* Sun Dec 15 2024 Paul Howarth - 8.11.1-2
-- Fix crash with Unexpected error 9 on netlink descriptor 10 (rhbz#2332350)
- - https://github.com/curl/curl/issues/15725
- - https://github.com/curl/curl/pull/15727
-
-* Wed Dec 11 2024 Jan Macku - 8.11.1-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2024-11053 - netrc and redirect credential leak
-
-* Wed Nov 06 2024 Yaakov Selkowitz - 8.11.0-2
-- Disable engine support on RHEL 10+
-
-* Wed Nov 06 2024 Jan Macku - 8.11.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2024-9681 - HSTS subdomain overwrites parent cache entry
-
-* Tue Sep 24 2024 Jan Macku - 8.10.1-2
-- Use tls-ca-bundle.pem instead of ca-bundle.crt (OpenSSL specific) (#2313564)
-
-* Wed Sep 18 2024 Jan Macku - 8.10.1-1
-- new upstream release
-
-* Wed Sep 11 2024 Jan Macku - 8.10.0-1
-- new upstream release
-
-* Wed Aug 21 2024 Jacek Migacz - 8.9.1-3
-- Retire deprecated ntlm-wb configure option
-
-* Mon Aug 5 2024 voidanix - 8.9.1-2
-- Apply SIGPIPE-related patch due to upstream regression
-
-* Wed Jul 24 2024 Jan Macku - 8.9.1-1
-- new upstream release
-
-* Wed Jul 24 2024 Jan Macku - 8.9.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2024-6874 - macidn punycode buffer overread
- CVE-2024-6197 - freeing stack buffer in utf8asn1str
-- drop upstreamed patches
-
-* Wed Jul 17 2024 Fedora Release Engineering - 8.8.0-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
-
-* Fri Jul 12 2024 Paul Howarth - 8.8.0-2
-- adapt for https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine
-- added build condition for openssl_engine_support, true by default so as to
- not change the resulting built package (yet)
-- with openssl_engine_support true, BR: openssl-devel-engine
-- with openssl_engine_support false, build with -DOPENSSL_NO_ENGINE
-
-* Wed May 22 2024 Jan Macku - 8.8.0-1
-- new upstream release
-- drop upstreamed patches
-
-* Wed Mar 27 2024 Jan Macku - 8.7.1-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2024-2004 - Usage of disabled protocol
- CVE-2024-2379 - QUIC certificate check bypass with wolfSSL
- CVE-2024-2398 - HTTP/2 push headers memory-leak
- CVE-2024-2466 - TLS certificate check bypass with mbedTLS
-- drop upstreamed patches
-- reenable test 0313
-- fix zsh completions, use --with-zsh-functions-dir
-- apply upstream patches for 8.7.1 issues and regressions
-
-* Mon Feb 19 2024 Jan Macku - 8.6.0-7
-- Fix: Leftovers after chunking should not be part of the curl buffer output (#2264220)
-
-* Mon Feb 12 2024 Jan Macku - 8.6.0-6
-- revert "receive max buffer" + add test case
-- temporarily disable test 0313
-- remove suggests of libcurl-minimal in curl-full
-
-* Mon Feb 12 2024 Jan Macku - 8.6.0-5
-- add Provides to curl-minimal
-
-* Wed Feb 07 2024 Jan Macku - 8.6.0-4
-- drop curl-minimal subpackage in favor of curl-full (#2262096)
-
-* Mon Feb 05 2024 Jan Macku - 8.6.0-3
-- ignore response body to HEAD requests
-
-* Fri Feb 02 2024 Jan Macku - 8.6.0-2
-- don't build manual for curl-full - use man 1 curl instead (#2262373)
-
-* Thu Feb 01 2024 Jan Macku - 8.6.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2024-0853 - OCSP verification bypass with TLS session reuse
-- drop 001-dist-add-tests-errorcodes.pl-to-the-tarball.patch (replaced by upstream fix)
-- remove accidentally included mk-ca-bundle.1 man page (upstream bug #12843)
-
-* Fri Jan 19 2024 Fedora Release Engineering - 8.5.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
-
-* Wed Dec 06 2023 Jan Macku - 8.5.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2023-46218 - cookie mixed case PSL bypass
- CVE-2023-46219 - HSTS long file name clears contents
-
-* Wed Oct 11 2023 Jan Macku - 8.4.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2023-38545 - SOCKS5 heap buffer overflow
- CVE-2023-38546 - cookie injection with none file
-
-* Wed Sep 13 2023 Jan Macku - 8.3.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2023-38039 - HTTP headers eat all memory
-
-* Wed Aug 02 2023 Jan Macku - 8.2.1-2
-- enable websockets (#2224651)
-
-* Wed Jul 26 2023 Lukáš Zaoral - 8.2.1-1
-- new upstream release (rhbz#2226659)
-
-* Wed Jul 19 2023 Jan Macku - 8.2.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2023-32001 - fopen race condition
-
-* Tue May 30 2023 Jan Macku - 8.1.2-1
-- new upstream release, with small bugfixes and improvements
-
-* Tue May 23 2023 Jan Macku - 8.1.1-1
-- new upstream release, with small bugfixes and improvements
-
-* Wed May 17 2023 Kamil Dudka - 8.1.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2023-28321 - IDN wildcard match
- CVE-2023-28322 - more POST-after-PUT confusion
-
-* Fri Apr 21 2023 Kamil Dudka - 8.0.1-3
-- tests: re-enable temporarily disabled test-cases
-- tests: attempt to fix a conflict on port numbers
-- apply patches automatically
-
-* Tue Mar 21 2023 Lukáš Zaoral - 8.0.1-2
-- migrated to SPDX license
-
-* Mon Mar 20 2023 Kamil Dudka - 8.0.1-1
-- new upstream release
-
-* Mon Mar 20 2023 Kamil Dudka - 8.0.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2023-27538 - SSH connection too eager reuse still
- CVE-2023-27537 - HSTS double-free
- CVE-2023-27536 - GSS delegation too eager connection re-use
- CVE-2023-27535 - FTP too eager connection reuse
- CVE-2023-27534 - SFTP path ~ resolving discrepancy
- CVE-2023-27533 - TELNET option IAC injection
-
-* Mon Feb 20 2023 Kamil Dudka - 7.88.1-1
-- new upstream release
-
-* Fri Feb 17 2023 Kamil Dudka - 7.88.0-2
-- http2: set drain on stream end
-
-* Wed Feb 15 2023 Kamil Dudka - 7.88.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2023-23916 - HTTP multi-header compression denial of service
- CVE-2023-23915 - HSTS amnesia with --parallel
- CVE-2023-23914 - HSTS ignored on multiple requests
-
-* Fri Jan 20 2023 Kamil Dudka - 7.87.0-4
-- fix regression in a public header file (#2162716)
-
-* Thu Jan 19 2023 Fedora Release Engineering - 7.87.0-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
-
-* Wed Jan 11 2023 Kamil Dudka - 7.87.0-2
-- test3012: temporarily disable valgrind (#2143040)
-
-* Wed Dec 21 2022 Kamil Dudka - 7.87.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2022-43552 - HTTP Proxy deny use-after-free
- CVE-2022-43551 - Another HSTS bypass via IDN
-
-* Tue Nov 29 2022 Kamil Dudka - 7.86.0-4
-- noproxy: tailmatch like in 7.85.0 and earlier (#2149224)
-
-* Thu Nov 24 2022 Kamil Dudka - 7.86.0-3
-- enforce versioned libnghttp2 dependency for libcurl (#2144277)
-
-* Mon Oct 31 2022 Kamil Dudka - 7.86.0-2
-- fix regression in noproxy matching
-
-* Wed Oct 26 2022 Kamil Dudka - 7.86.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2022-42916 - HSTS bypass via IDN
- CVE-2022-42915 - HTTP proxy double-free
- CVE-2022-35260 - .netrc parser out-of-bounds access
- CVE-2022-32221 - POST following PUT confusion
-
-* Thu Sep 01 2022 Kamil Dudka - 7.85.0-1
-- new upstream release, which fixes the following vulnerability
- CVE-2022-35252 - control code in cookie denial of service
-
-* Thu Aug 25 2022 Kamil Dudka - 7.84.0-3
-- tests: fix http2 tests to use CRLF headers to make it work with nghttp2-1.49.0
-
-* Wed Jul 20 2022 Fedora Release Engineering - 7.84.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
-
-* Mon Jun 27 2022 Kamil Dudka - 7.84.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2022-32207 - Unpreserved file permissions
- CVE-2022-32205 - Set-Cookie denial of service
- CVE-2022-32206 - HTTP compression denial of service
- CVE-2022-32208 - FTP-KRB bad message verification
-
-* Wed May 11 2022 Kamil Dudka - 7.83.1-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2022-27782 - fix too eager reuse of TLS and SSH connections
- CVE-2022-27779 - do not accept cookies for TLD with trailing dot
- CVE-2022-27778 - do not remove wrong file on error
- CVE-2022-30115 - hsts: ignore trailing dots when comparing hosts names
- CVE-2022-27780 - reject percent-encoded path separator in URL host
-
-* Wed Apr 27 2022 Kamil Dudka - 7.83.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2022-27774 - curl credential leak on redirect
- CVE-2022-27776 - curl auth/cookie leak on redirect
- CVE-2022-27775 - curl bad local IPv6 connection reuse
- CVE-2022-22576 - curl OAUTH2 bearer bypass in connection re-use
-
-* Tue Mar 15 2022 Kamil Dudka - 7.82.0-2
-- openssl: fix incorrect CURLE_OUT_OF_MEMORY error on CN check failure
-
-* Sat Mar 05 2022 Kamil Dudka - 7.82.0-1
-- new upstream release
-
-* Thu Feb 24 2022 Kamil Dudka - 7.81.0-4
-- enable IDN support also in libcurl-minimal
-
-* Thu Feb 10 2022 Zbigniew Jędrzejewski-Szmek - 7.81.0-3
-- Suggest libcurl-minimal in curl-minimal
-
-* Thu Jan 20 2022 Fedora Release Engineering - 7.81.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
-
-* Wed Jan 05 2022 Kamil Dudka - 7.81.0-1
-- new upstream release
-
-* Sun Nov 14 2021 Paul Howarth - 7.80.0-2
-- sshserver.pl (used in test suite) now requires the Digest::SHA perl module
-
-* Wed Nov 10 2021 Kamil Dudka - 7.80.0-1
-- new upstream release
-
-* Tue Oct 26 2021 Kamil Dudka - 7.79.1-3
-- re-enable HSTS in libcurl-minimal as a security feature (#2005874)
-
-* Mon Oct 04 2021 Kamil Dudka - 7.79.1-2
-- disable more protocols and features in libcurl-minimal (#2005874)
-
-* Wed Sep 22 2021 Kamil Dudka - 7.79.1-1
-- new upstream release
-
-* Thu Sep 16 2021 Kamil Dudka - 7.79.0-4
-- fix regression in http2 implementation introduced in the last release
-
-* Thu Sep 16 2021 Sahana Prasad - 7.79.0-3
-- Rebuilt with OpenSSL 3.0.0
-
-* Thu Sep 16 2021 Kamil Dudka - 7.79.0-2
-- make SCP/SFTP tests work with openssh-8.7p1
-
-* Wed Sep 15 2021 Kamil Dudka - 7.79.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2021-22947 - STARTTLS protocol injection via MITM
- CVE-2021-22946 - protocol downgrade required TLS bypassed
- CVE-2021-22945 - use-after-free and double-free in MQTT sending
-
-* Tue Sep 14 2021 Sahana Prasad - 7.78.0-4
-- Rebuilt with OpenSSL 3.0.0
-
-* Fri Jul 23 2021 Kamil Dudka - 7.78.0-3
-- make explicit dependency on openssl work with alpha/beta builds of openssl
-
-* Wed Jul 21 2021 Fedora Release Engineering - 7.78.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
-
-* Wed Jul 21 2021 Kamil Dudka - 7.78.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2021-22925 - TELNET stack contents disclosure again
- CVE-2021-22924 - bad connection reuse due to flawed path name checks
- CVE-2021-22923 - metalink download sends credentials
- CVE-2021-22922 - wrong content via metalink not discarded
-
-* Wed Jun 02 2021 Kamil Dudka - 7.77.0-2
-- build the curl tool without metalink support (#1967213)
-
-* Wed May 26 2021 Kamil Dudka - 7.77.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2021-22901 - TLS session caching disaster
- CVE-2021-22898 - TELNET stack contents disclosure
-
-* Mon May 03 2021 Kamil Dudka - 7.76.1-2
-- http2: fix resource leaks detected by Coverity
-
-* Wed Apr 14 2021 Kamil Dudka - 7.76.1-1
-- new upstream release
-
-* Wed Mar 31 2021 Kamil Dudka - 7.76.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2021-22890 - TLS 1.3 session ticket proxy host mixup
- CVE-2021-22876 - Automatic referer leaks credentials
-
-* Wed Mar 24 2021 Kamil Dudka - 7.75.0-3
-- fix SIGSEGV upon disconnect of a ldaps:// transfer
-
-* Tue Feb 23 2021 Kamil Dudka - 7.75.0-2
-- build-require python3-impacket only on Fedora
-
-* Wed Feb 03 2021 Kamil Dudka - 7.75.0-1
-- new upstream release
-
-* Tue Jan 26 2021 Kamil Dudka - 7.74.0-4
-- do not use stunnel for tests on s390x builds to avoid spurious failures
-
-* Tue Jan 26 2021 Fedora Release Engineering - 7.74.0-3
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
-
-* Wed Dec 09 2020 Kamil Dudka - 7.74.0-2
-- do not rewrite shebangs in test-suite to use python3 explicitly
-
-* Wed Dec 09 2020 Kamil Dudka - 7.74.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2020-8286 - curl: Inferior OCSP verification
- CVE-2020-8285 - libcurl: FTP wildcard stack overflow
- CVE-2020-8284 - curl: trusting FTP PASV responses
-
-* Wed Oct 14 2020 Kamil Dudka - 7.73.0-2
-- prevent upstream test 1451 from being skipped
-
-* Wed Oct 14 2020 Kamil Dudka - 7.73.0-1
-- new upstream release
-
-* Thu Sep 10 2020 Jinoh Kang - 7.72.0-2
-- fix multiarch conflicts in libcurl-minimal (#1877671)
-
-* Wed Aug 19 2020 Kamil Dudka - 7.72.0-1
-- new upstream release, which fixes the following vulnerability
- CVE-2020-8231 - libcurl: wrong connect-only connection
-
-* Thu Aug 06 2020 Kamil Dudka - 7.71.1-5
-- setopt: unset NOBODY switches to GET if still HEAD
-
-* Mon Jul 27 2020 Fedora Release Engineering - 7.71.1-4
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
-
-* Mon Jul 13 2020 Tom Stellard - 7.71.1-3
-- Use make macros
-- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
-
-* Fri Jul 03 2020 Kamil Dudka - 7.71.1-2
-- curl: make the --krb option work again (#1833193)
-
-* Wed Jul 01 2020 Kamil Dudka - 7.71.1-1
-- new upstream release
-
-* Wed Jun 24 2020 Kamil Dudka - 7.71.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2020-8169 - curl: Partial password leak over DNS on HTTP redirect
- CVE-2020-8177 - curl: overwrite local file with -J
-
-* Wed Apr 29 2020 Kamil Dudka - 7.70.0-1
-- new upstream release
-
-* Mon Apr 20 2020 Kamil Dudka - 7.69.1-3
-- SSH: use new ECDSA key types to check known hosts (#1824926)
-
-* Fri Apr 17 2020 Tom Stellard - 7.69.1-2
-- Prevent discarding of -g when compiling with clang
-
-* Wed Mar 11 2020 Kamil Dudka - 7.69.1-1
-- new upstream release
-
-* Mon Mar 09 2020 Kamil Dudka - 7.69.0-2
-- make Flatpak work again (#1810989)
-
-* Wed Mar 04 2020 Kamil Dudka - 7.69.0-1
-- new upstream release
-
-* Tue Jan 28 2020 Fedora Release Engineering - 7.68.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
-
-* Wed Jan 08 2020 Kamil Dudka - 7.68.0-1
-- new upstream release
-
-* Thu Nov 14 2019 Kamil Dudka - 7.67.0-2
-- fix infinite loop on upload using a glob (#1771025)
-
-* Wed Nov 06 2019 Kamil Dudka - 7.67.0-1
-- new upstream release
-
-* Wed Sep 11 2019 Kamil Dudka - 7.66.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2019-5481 - double free due to subsequent call of realloc()
- CVE-2019-5482 - heap buffer overflow in function tftp_receive_packet()
-
-* Tue Aug 27 2019 Kamil Dudka - 7.65.3-4
-- avoid reporting spurious error in the HTTP2 framing layer (#1690971)
-
-* Thu Aug 01 2019 Kamil Dudka - 7.65.3-3
-- improve handling of gss_init_sec_context() failures
-
-* Wed Jul 24 2019 Fedora Release Engineering - 7.65.3-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
-
-* Sat Jul 20 2019 Paul Howarth - 7.65.3-1
-- new upstream release
-
-* Wed Jul 17 2019 Kamil Dudka - 7.65.2-1
-- new upstream release
-
-* Wed Jun 05 2019 Kamil Dudka - 7.65.1-1
-- new upstream release
-
-* Thu May 30 2019 Kamil Dudka - 7.65.0-2
-- fix spurious timeout events with speed-limit (#1714893)
-
-* Wed May 22 2019 Kamil Dudka - 7.65.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2019-5436 - TFTP receive buffer overflow
- CVE-2019-5435 - integer overflows in curl_url_set()
-
-* Thu May 09 2019 Kamil Dudka - 7.64.1-2
-- do not treat failure of gss_init_sec_context() with --negotiate as fatal
-
-* Wed Mar 27 2019 Kamil Dudka - 7.64.1-1
-- new upstream release
-
-* Mon Mar 25 2019 Kamil Dudka - 7.64.0-6
-- remove verbose "Expire in" ... messages (#1690971)
-
-* Thu Mar 21 2019 Kamil Dudka - 7.64.0-5
-- avoid spurious "Could not resolve host: [host name]" error messages
-
-* Wed Feb 27 2019 Kamil Dudka - 7.64.0-4
-- fix NULL dereference if flushing cookies with no CookieInfo set (#1683676)
-
-* Mon Feb 25 2019 Kamil Dudka - 7.64.0-3
-- prevent NetworkManager from leaking file descriptors (#1680198)
-
-* Mon Feb 11 2019 Kamil Dudka - 7.64.0-2
+* Mon Feb 11 2019 Kamil Dudka - 7.61.1-10
- make zsh completion work again
-* Wed Feb 06 2019 Kamil Dudka - 7.64.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2019-3823 - SMTP end-of-response out-of-bounds read
- CVE-2019-3822 - NTLMv2 type-3 header stack buffer overflow
- CVE-2018-16890 - NTLM type-2 out-of-bounds buffer read
+* Thu Nov 15 2018 Kamil Dudka - 7.59.0-9
+- make the patch for CVE-2018-16842 apply properly (CVE-2018-16842)
-* Mon Feb 04 2019 Kamil Dudka - 7.63.0-7
-- prevent valgrind from reporting false positives on x86_64
-
-* Thu Jan 31 2019 Fedora Release Engineering - 7.63.0-6
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
-
-* Mon Jan 21 2019 Kamil Dudka - 7.63.0-5
-- xattr: strip credentials from any URL that is stored (CVE-2018-20483)
-
-* Fri Jan 04 2019 Kamil Dudka - 7.63.0-4
-- replace 0105-curl-7.63.0-libstubgss-ldadd.patch by upstream patch
-
-* Wed Dec 19 2018 Kamil Dudka - 7.63.0-3
-- curl -J: do not append to the destination file (#1658574)
-
-* Fri Dec 14 2018 Kamil Dudka - 7.63.0-2
-- revert an upstream commit that broke `fedpkg new-sources` (#1659329)
-
-* Wed Dec 12 2018 Kamil Dudka - 7.63.0-1
-- new upstream release
-
-* Wed Oct 31 2018 Kamil Dudka - 7.62.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2018-16839 - SASL password overflow via integer overflow
- CVE-2018-16840 - use-after-free in handle close
- CVE-2018-16842 - warning message out-of-buffer read
-
-* Thu Oct 11 2018 Kamil Dudka - 7.61.1-3
-- enable TLS 1.3 post-handshake auth in OpenSSL
-- update the documentation of --tlsv1.0 in curl(1) man page
-
-* Thu Oct 04 2018 Kamil Dudka - 7.61.1-2
-- enforce versioned libpsl dependency for libcurl (#1631804)
+* Thu Nov 01 2018 Kamil Dudka - 7.59.0-8
+- SASL password overflow via integer overflow (CVE-2018-16839)
+- fix use-after-free in handle close (CVE-2018-16840)
+- fix bad arethmetic when outputting warnings to stderr (CVE-2018-16842)
- test320: update expected output for gnutls-3.6.4
-- drop 0105-curl-7.61.0-tests-ssh-keygen.patch no longer needed (#1622594)
-* Wed Sep 05 2018 Kamil Dudka - 7.61.1-1
-- new upstream release, which fixes the following vulnerability
- CVE-2018-14618 - NTLM password overflow via integer overflow
-
-* Tue Sep 04 2018 Kamil Dudka - 7.61.0-8
-- make the --tls13-ciphers option work
-
-* Mon Aug 27 2018 Kamil Dudka - 7.61.0-7
+* Wed Sep 05 2018 Kamil Dudka - 7.59.0-7
+- fix NTLM password overflow via integer overflow (CVE-2018-14618)
- tests: make ssh-keygen always produce PEM format (#1622594)
-
-* Wed Aug 15 2018 Kamil Dudka - 7.61.0-6
- scp/sftp: fix infinite connect loop on invalid private key (#1595135)
-* Thu Aug 09 2018 Kamil Dudka - 7.61.0-5
+* Thu Aug 09 2018 Kamil Dudka - 7.59.0-6
- ssl: set engine implicitly when a PKCS#11 URI is provided (#1219544)
-* Tue Aug 07 2018 Kamil Dudka - 7.61.0-4
-- relax crypto policy for the test-suite to make it pass again (#1610888)
+* Wed Jul 11 2018 Kamil Dudka - 7.59.0-5
+- fix heap buffer overflow in SMTP send (CVE-2018-0500)
-* Tue Jul 31 2018 Kamil Dudka - 7.61.0-3
-- disable flaky test 1900, which covers deprecated HTTP pipelining
-- adapt test 323 for updated OpenSSL
+* Tue Jun 05 2018 Kamil Dudka - 7.59.0-4
+- http2: handle GOAWAY properly (#1585797)
-* Thu Jul 12 2018 Fedora Release Engineering - 7.61.0-2
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
-
-* Wed Jul 11 2018 Kamil Dudka - 7.61.0-1
-- new upstream release, which fixes the following vulnerability
- CVE-2018-0500 - SMTP send heap buffer overflow
-
-* Tue Jul 10 2018 Kamil Dudka - 7.60.0-3
-- enable support for brotli compression in libcurl-full
-
-* Wed Jul 04 2018 Kamil Dudka - 7.60.0-2
-- do not hard-wire path of the Python 3 interpreter
-
-* Wed May 16 2018 Kamil Dudka - 7.60.0-1
-- new upstream release, which fixes the following vulnerabilities
- CVE-2018-1000300 - FTP shutdown response buffer overflow
- CVE-2018-1000301 - RTSP bad headers buffer over-read
-
-* Thu Mar 15 2018 Kamil Dudka - 7.59.0-3
-- make the test-suite use Python 3
+* Fri May 18 2018 Kamil Dudka - 7.59.0-3
+- fix FTP shutdown response buffer overflow (CVE-2018-1000300)
+- fix RTSP bad headers buffer over-read (CVE-2018-1000301)
* Wed Mar 14 2018 Kamil Dudka - 7.59.0-2
- ftp: fix typo in recursive callback detection for seeking
@@ -1482,3 +788,881 @@ rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/wcurl.1*
* Wed Feb 06 2013 Kamil Dudka 7.29.0-1
- new upstream release (fixes CVE-2013-0249)
+
+* Tue Jan 15 2013 Kamil Dudka 7.28.1-3
+- require valgrind for build only on i386 and x86_64 (#886891)
+
+* Tue Jan 15 2013 Kamil Dudka 7.28.1-2
+- prevent NSS from crashing on client auth hook failure
+- clear session cache if a client cert from file is used
+- fix error messages for CURLE_SSL_{CACERT,CRL}_BADFILE
+
+* Tue Nov 20 2012 Kamil Dudka 7.28.1-1
+- new upstream release
+
+* Wed Oct 31 2012 Kamil Dudka 7.28.0-1
+- new upstream release
+
+* Mon Oct 01 2012 Kamil Dudka 7.27.0-3
+- use the upstream facility to disable problematic tests
+- do not crash if MD5 fingerprint is not provided by libssh2
+
+* Wed Aug 01 2012 Kamil Dudka 7.27.0-2
+- eliminate unnecessary inotify events on upload via file protocol (#844385)
+
+* Sat Jul 28 2012 Kamil Dudka 7.27.0-1
+- new upstream release
+
+* Mon Jul 23 2012 Kamil Dudka 7.26.0-6
+- print reason phrase from HTTP status line on error (#676596)
+
+* Wed Jul 18 2012 Fedora Release Engineering - 7.26.0-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Sat Jun 09 2012 Kamil Dudka 7.26.0-4
+- fix duplicated SSL handshake with multi interface and proxy (#788526)
+
+* Wed May 30 2012 Karsten Hopp 7.26.0-3
+- disable test 1319 on ppc64, server times out
+
+* Mon May 28 2012 Kamil Dudka 7.26.0-2
+- use human-readable error messages provided by NSS (upstream commit 72f4b534)
+
+* Fri May 25 2012 Kamil Dudka 7.26.0-1
+- new upstream release
+
+* Wed Apr 25 2012 Karsten Hopp 7.25.0-3
+- valgrind on ppc64 works fine, disable ppc32 only
+
+* Wed Apr 25 2012 Karsten Hopp 7.25.0-3
+- drop BR valgrind on PPC(64) until bugzilla #810992 gets fixed
+
+* Fri Apr 13 2012 Kamil Dudka 7.25.0-2
+- use NSS_InitContext() to initialize NSS if available (#738456)
+- provide human-readable names for NSS errors (upstream commit a60edcc6)
+
+* Fri Mar 23 2012 Paul Howarth 7.25.0-1
+- new upstream release (#806264)
+- fix character encoding of docs with a patch rather than just iconv
+- update debug and multilib patches
+- don't use macros for commands
+- reduce size of %%prep output for readability
+
+* Tue Jan 24 2012 Kamil Dudka 7.24.0-1
+- new upstream release (fixes CVE-2012-0036)
+
+* Thu Jan 05 2012 Paul Howarth 7.23.0-6
+- rebuild for gcc 4.7
+
+* Mon Jan 02 2012 Kamil Dudka 7.23.0-5
+- upstream patch that allows to run FTPS tests with nss-3.13 (#760060)
+
+* Tue Dec 27 2011 Kamil Dudka 7.23.0-4
+- allow to run FTPS tests with nss-3.13 (#760060)
+
+* Sun Dec 25 2011 Kamil Dudka 7.23.0-3
+- avoid unnecessary timeout event when waiting for 100-continue (#767490)
+
+* Mon Nov 21 2011 Kamil Dudka 7.23.0-2
+- curl -JO now uses -O name if no C-D header comes (upstream commit c532604)
+
+* Wed Nov 16 2011 Kamil Dudka 7.23.0-1
+- new upstream release (#754391)
+
+* Mon Sep 19 2011 Kamil Dudka 7.22.0-2
+- nss: select client certificates by DER (#733657)
+
+* Tue Sep 13 2011 Kamil Dudka 7.22.0-1
+- new upstream release
+- curl-config now provides dummy --static-libs option (#733956)
+
+* Sun Aug 21 2011 Paul Howarth 7.21.7-4
+- actually fix SIGSEGV of curl -O -J given more than one URL (#723075)
+
+* Mon Aug 15 2011 Kamil Dudka 7.21.7-3
+- fix SIGSEGV of curl -O -J given more than one URL (#723075)
+- introduce the --delegation option of curl (#730444)
+- initialize NSS with no database if the selected database is broken (#728562)
+
+* Wed Aug 03 2011 Kamil Dudka 7.21.7-2
+- add a new option CURLOPT_GSSAPI_DELEGATION (#719939)
+
+* Thu Jun 23 2011 Kamil Dudka 7.21.7-1
+- new upstream release (fixes CVE-2011-2192)
+
+* Wed Jun 08 2011 Kamil Dudka 7.21.6-2
+- avoid an invalid timeout event on a reused handle (#679709)
+
+* Sat Apr 23 2011 Paul Howarth 7.21.6-1
+- new upstream release
+
+* Mon Apr 18 2011 Kamil Dudka 7.21.5-2
+- fix the output of curl-config --version (upstream commit 82ecc85)
+
+* Mon Apr 18 2011 Kamil Dudka 7.21.5-1
+- new upstream release
+
+* Sat Apr 16 2011 Peter Robinson 7.21.4-4
+- no valgrind on ARMv5 arches
+
+* Sat Mar 05 2011 Dennis Gilmore 7.21.4-3
+- no valgrind on sparc arches
+
+* Tue Feb 22 2011 Kamil Dudka 7.21.4-2
+- do not ignore failure of SSL handshake (upstream commit 7aa2d10)
+
+* Fri Feb 18 2011 Kamil Dudka 7.21.4-1
+- new upstream release
+- avoid memory leak on SSL connection failure (upstream commit a40f58d)
+- work around valgrind bug (#678518)
+
+* Tue Feb 08 2011 Fedora Release Engineering - 7.21.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Wed Jan 12 2011 Kamil Dudka