From unknown Sat Jun 14 03:54:21 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#38873] [PATCH] gnu: curl: Make libcurl respect SSL_CERT_{DIR,FILE} Resent-From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 02 Jan 2020 17:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 38873 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 38873@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.157798551510637 (code B ref -1); Thu, 02 Jan 2020 17:19:02 +0000 Received: (at submit) by debbugs.gnu.org; 2 Jan 2020 17:18:35 +0000 Received: from localhost ([127.0.0.1]:39972 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1in47H-0002lV-18 for submit@debbugs.gnu.org; Thu, 02 Jan 2020 12:18:35 -0500 Received: from lists.gnu.org ([209.51.188.17]:42630) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1in47F-0002lO-EO for submit@debbugs.gnu.org; Thu, 02 Jan 2020 12:18:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35121) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1in47E-0007Oo-4z for guix-patches@gnu.org; Thu, 02 Jan 2020 12:18:33 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_NONE, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1in47C-0002uf-Po for guix-patches@gnu.org; Thu, 02 Jan 2020 12:18:31 -0500 Received: from pat.zlotemysli.pl ([37.59.186.212]:41572) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1in47C-0002u1-FX for guix-patches@gnu.org; Thu, 02 Jan 2020 12:18:30 -0500 Received: (qmail 2820 invoked by uid 1009); 2 Jan 2020 18:18:28 +0100 Received: from 188.123.215.55 (kuba@kadziolka.net@188.123.215.55) by pat (envelope-from , uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25681. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.023429 secs); 02 Jan 2020 17:18:28 -0000 Received: from unknown (HELO zdrowyportier.kadziolka.net) (kuba@kadziolka.net@188.123.215.55) by pat.zlotemysli.pl with SMTP; 2 Jan 2020 18:18:28 +0100 Date: Thu, 2 Jan 2020 18:18:26 +0100 From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= Message-ID: <20200102171826.v4j3d35ocx7tvp2j@zdrowyportier.kadziolka.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 37.59.186.212 X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) * gnu/packages/curl.scm (curl-7.66.0): Use patch. * gnu/packages/patches/libcurl-use-ssl-cert-env.patch: New file. This fixes the SSL errors occuring when trying to use rust:cargo's download functionality. As an additional advantage, this will probably allow removing some package-specific work-arounds that have already been made. I have found such work-arounds in cmake and kodi, but am not familiar enough with either to confidently remove them. --- gnu/packages/curl.scm | 4 +- .../patches/libcurl-use-ssl-cert-env.patch | 61 +++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libcurl-use-ssl-cert-env.patch diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index aa5d24c401..c5cd88ec2e 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Roel Janssen ;;; Copyright © 2019 Ricardo Wurmus +;;; Copyright © 2020 Jakub Kądziołka ;;; ;;; This file is part of GNU Guix. ;;; @@ -153,7 +154,8 @@ tunneling, and so on.") version ".tar.xz")) (sha256 (base32 - "1hcqxpibhknhjy56wcxz5vd6m9ggx3ykwp3wp5wx05ih36481d6v")))))) + "1hcqxpibhknhjy56wcxz5vd6m9ggx3ykwp3wp5wx05ih36481d6v")) + (patches (search-patches "libcurl-use-ssl-cert-env.patch")))))) (define-public kurly (package diff --git a/gnu/packages/patches/libcurl-use-ssl-cert-env.patch b/gnu/packages/patches/libcurl-use-ssl-cert-env.patch new file mode 100644 index 0000000000..a68e64adc1 --- /dev/null +++ b/gnu/packages/patches/libcurl-use-ssl-cert-env.patch @@ -0,0 +1,61 @@ +Make libcurl respect the SSL_CERT_{DIR,FILE} variables by default. The variables +are fetched during initialization to preserve thread-safety (curl_global_init(3) +must be called when no other threads exist). +=================================================================== +--- curl-7.66.0.orig/lib/easy.c 2020-01-02 15:43:11.883921171 +0100 ++++ curl-7.66.0/lib/easy.c 2020-01-02 16:18:54.691882797 +0100 +@@ -134,6 +134,9 @@ + # pragma warning(default:4232) /* MSVC extension, dllimport identity */ + #endif + ++char * Curl_ssl_cert_dir = NULL; ++char * Curl_ssl_cert_file = NULL; ++ + /** + * curl_global_init() globally initializes curl given a bitwise set of the + * different features of what to initialize. +@@ -155,6 +158,9 @@ + #endif + } + ++ Curl_ssl_cert_dir = curl_getenv("SSL_CERT_DIR"); ++ Curl_ssl_cert_file = curl_getenv("SSL_CERT_FILE"); ++ + if(!Curl_ssl_init()) { + DEBUGF(fprintf(stderr, "Error: Curl_ssl_init failed\n")); + return CURLE_FAILED_INIT; +@@ -260,6 +266,9 @@ + Curl_ssl_cleanup(); + Curl_resolver_global_cleanup(); + ++ free(Curl_ssl_cert_dir); ++ free(Curl_ssl_cert_file); ++ + #ifdef WIN32 + Curl_win32_cleanup(init_flags); + #endif +diff -ur curl-7.66.0.orig/lib/url.c curl-7.66.0/lib/url.c +--- curl-7.66.0.orig/lib/url.c 2020-01-02 15:43:11.883921171 +0100 ++++ curl-7.66.0/lib/url.c 2020-01-02 16:21:11.563880346 +0100 +@@ -524,6 +524,21 @@ + if(result) + return result; + #endif ++ extern char * Curl_ssl_cert_dir; ++ extern char * Curl_ssl_cert_file; ++ if(Curl_ssl_cert_dir) { ++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAPATH_ORIG], Curl_ssl_cert_dir)) ++ return result; ++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAPATH_PROXY], Curl_ssl_cert_dir)) ++ return result; ++ } ++ ++ if(Curl_ssl_cert_file) { ++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAFILE_ORIG], Curl_ssl_cert_file)) ++ return result; ++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAFILE_PROXY], Curl_ssl_cert_file)) ++ return result; ++ } + } + + set->wildcard_enabled = FALSE; -- 2.24.1 From unknown Sat Jun 14 03:54:21 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#38873] Patch submitted upstream References: <20200102171826.v4j3d35ocx7tvp2j@zdrowyportier.kadziolka.net> In-Reply-To: <20200102171826.v4j3d35ocx7tvp2j@zdrowyportier.kadziolka.net> Resent-From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 12 Jan 2020 16:33:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 38873 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 38873@debbugs.gnu.org Received: via spool by 38873-submit@debbugs.gnu.org id=B38873.15788467734750 (code B ref 38873); Sun, 12 Jan 2020 16:33:01 +0000 Received: (at 38873) by debbugs.gnu.org; 12 Jan 2020 16:32:53 +0000 Received: from localhost ([127.0.0.1]:57850 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iqgAW-0001EX-Un for submit@debbugs.gnu.org; Sun, 12 Jan 2020 11:32:53 -0500 Received: from pat.zlotemysli.pl ([37.59.186.212]:60034) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iqgAU-0001EO-VP for 38873@debbugs.gnu.org; Sun, 12 Jan 2020 11:32:51 -0500 Received: (qmail 5641 invoked by uid 1009); 12 Jan 2020 17:32:48 +0100 Received: from 188.123.215.55 (kuba@kadziolka.net@188.123.215.55) by pat (envelope-from , uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25691. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.017372 secs); 12 Jan 2020 16:32:48 -0000 Received: from unknown (HELO zdrowyportier.kadziolka.net) (kuba@kadziolka.net@188.123.215.55) by pat.zlotemysli.pl with SMTP; 12 Jan 2020 17:32:48 +0100 Date: Sun, 12 Jan 2020 17:32:47 +0100 From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= Message-ID: <20200112163247.vu7gkehob3cpcql3@zdrowyportier.kadziolka.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) For reference: I have submitted this patch to curl itself, it seems that they find this unnecessary to have upstream: https://github.com/curl/curl/pull/4809 From unknown Sat Jun 14 03:54:21 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#38873] [PATCH] gnu: curl: Make libcurl respect SSL_CERT_{DIR, FILE} Resent-From: Marius Bakke Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 13 Jan 2020 22:58:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 38873 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= , 38873@debbugs.gnu.org Received: via spool by 38873-submit@debbugs.gnu.org id=B38873.157895625918455 (code B ref 38873); Mon, 13 Jan 2020 22:58:01 +0000 Received: (at 38873) by debbugs.gnu.org; 13 Jan 2020 22:57:39 +0000 Received: from localhost ([127.0.0.1]:60366 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ir8eQ-0004nb-NK for submit@debbugs.gnu.org; Mon, 13 Jan 2020 17:57:38 -0500 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:42757) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ir8eO-0004nO-FL for 38873@debbugs.gnu.org; Mon, 13 Jan 2020 17:57:37 -0500 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id D6F53223AC; Mon, 13 Jan 2020 17:57:30 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Mon, 13 Jan 2020 17:57:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= from:to:subject:in-reply-to:references:date:message-id :mime-version:content-type; s=fm1; bh=1ZNjmBRjgzXnvoBuICkRD+vnqy 5SPldxto96dcS8aKA=; b=sW/q4xFxl3f5AFvuhHrvX8aAYKvmy5HPmTNnYR/gRu EAUVnqL+tShBllOfaiWpBXkwUueTWChAcdR62AEGUSIZSN0WN4leTRLYHnQTJ9e5 b0gMy+1CQBDqkoZVfmYyL0bMzdrm++vzggGSjO54MSBvH58wcDx8iMx/LBOArETH 1rPaptIgIP8diF61V1r70EsZlHz+4oqfmt8/SsRZI7ckc+4Vvn5Nd1ovvQNNsXqm oYEuFseHHt2byCvFPwd+MHgUx8w94ojhUf3N1fL+q1X2Y6f8E8isH6o86TpjEKcQ +hkhY2VPmo2ZjEfAxtUGmOdkO97+G9mxBfj3c7SGTgEw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=1ZNjmB RjgzXnvoBuICkRD+vnqy5SPldxto96dcS8aKA=; b=ZXoVzbTUg6xlddtMEuM45x Q60I3Y0v9yxwwnyweqLxxqnDNOe/3aeVz47IvcEv9qLFN/Ldc4WMY+sjugWsF3kW CUn0+A1Pns4fUqrm07ED2HOlwPGM0/g/m+8VVsmwFa4uV9aQkTd7TbDBxqwV2dxY B5M1DA+EgSzMI9WrYfrE6qkXojrmrhOGjKRb/eeMPVk+TgWPLzy5aqYtYOk5zrBW rxQmPvfMlj5g//aWGGiGQiT1tjs/eP4FgNAi2b/rbzJ0Z+rbmqoL0WXkwxPQE/pp zLgVhEcLrXDGxmNucMy76CnnFCI5bfov7zRITnPlwZfJJ++bmtJ3sU24dukz+d7g == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedufedrvdejuddgtdefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffujghffgffkfggtgesghdtre ertderjeenucfhrhhomhepofgrrhhiuhhsuceurghkkhgvuceomhgsrghkkhgvsehfrghs thhmrghilhdrtghomheqnecukfhppeekgedrvddtvddrieelrddvheefnecurfgrrhgrmh epmhgrihhlfhhrohhmpehmsggrkhhkvgesfhgrshhtmhgrihhlrdgtohhmnecuvehluhhs thgvrhfuihiivgeptd X-ME-Proxy: Received: from localhost (ti0006q161-3035.bb.online.no [84.202.69.253]) by mail.messagingengine.com (Postfix) with ESMTPA id 3F22030600A8; Mon, 13 Jan 2020 17:57:30 -0500 (EST) From: Marius Bakke In-Reply-To: <20200102171826.v4j3d35ocx7tvp2j@zdrowyportier.kadziolka.net> References: <20200102171826.v4j3d35ocx7tvp2j@zdrowyportier.kadziolka.net> User-Agent: Notmuch/0.29.3 (https://notmuchmail.org) Emacs/26.3 (x86_64-pc-linux-gnu) Date: Mon, 13 Jan 2020 23:57:28 +0100 Message-ID: <871rs3vuav.fsf@devup.no> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Jakub K=C4=85dzio=C5=82ka writes: > * gnu/packages/curl.scm (curl-7.66.0): Use patch. > * gnu/packages/patches/libcurl-use-ssl-cert-env.patch: New file. > > This fixes the SSL errors occuring when trying to use rust:cargo's > download functionality. > > As an additional advantage, this will probably allow removing some > package-specific work-arounds that have already been made. I have > found such work-arounds in cmake and kodi, but am not familiar enough > with either to confidently remove them. Thanks! We should probably adjust the (native-search-paths ...) field of cURL to account for these new variables too. Can you also rebase it on 'core-updates'? From=20reading the upstream discussion, there does not seem to be any inherent problems with the patch. So, LGTM. Are you willing to maintain it when it inevitably requires porting to newer versions? :-) --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl4c9dgACgkQoqBt8qM6 VPoYIQgAzZvo3VWMAcId3YFlqfyG6XbYz0jsue7a/25aImQ/UU2lJ3nGs6tpCL7x wulW/Cd7CRa/Pnbn4IqAv3hZqt4DrDsA/d4qVFAUNbBrtm5NzgIJc53UqavzxVpj g2AVrgex4QjQONnOatwdXtPUF/dJ9steAodmstVlrFE8xZMM09x+S62ng6S18g0L GewVkzbk/jAO6hytItwq6TsXFXiY4uH5B9naVRiRoSB7pDIKPm4623jAIPiNgzrs 0toARGrTxQ4HeXDAYuLPk957Be533z1VtHteo2kN+JgdYZTq4W/8dI59Pf+65SjB fBgt2dk/NsdYQPJUbXthCjJfh1I3qQ== =lDnc -----END PGP SIGNATURE----- --=-=-=-- From unknown Sat Jun 14 03:54:21 2025 X-Loop: help-debbugs@gnu.org Subject: [bug#38873] [PATCH v2 core-updates] curl: Make libcurl respect SSL_CERT_DIR, SSL_CERT_FILE References: <20200102171826.v4j3d35ocx7tvp2j@zdrowyportier.kadziolka.net> In-Reply-To: <20200102171826.v4j3d35ocx7tvp2j@zdrowyportier.kadziolka.net> Resent-From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 14 Jan 2020 17:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 38873 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 38873@debbugs.gnu.org Received: via spool by 38873-submit@debbugs.gnu.org id=B38873.157902117326556 (code B ref 38873); Tue, 14 Jan 2020 17:00:02 +0000 Received: (at 38873) by debbugs.gnu.org; 14 Jan 2020 16:59:33 +0000 Received: from localhost ([127.0.0.1]:33493 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1irPXN-0006uF-Tq for submit@debbugs.gnu.org; Tue, 14 Jan 2020 11:59:33 -0500 Received: from pat.zlotemysli.pl ([37.59.186.212]:40494) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1irPXJ-0006ty-Ks for 38873@debbugs.gnu.org; Tue, 14 Jan 2020 11:59:29 -0500 Received: (qmail 17219 invoked by uid 1009); 14 Jan 2020 17:59:23 +0100 Received: from 188.123.215.55 (kuba@kadziolka.net@188.123.215.55) by pat (envelope-from , uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25694. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.026084 secs); 14 Jan 2020 16:59:23 -0000 Received: from unknown (HELO zdrowyportier.kadziolka.net) (kuba@kadziolka.net@188.123.215.55) by pat.zlotemysli.pl with SMTP; 14 Jan 2020 17:59:23 +0100 Date: Tue, 14 Jan 2020 17:59:21 +0100 From: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= Message-ID: <20200114165921.epqysoaydxxqm5ye@zdrowyportier.kadziolka.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/packages/patches/libcurl-use-ssl-cert-env.patch: New file. * gnu/packages/curl.scm (curl)[source]: Use the patch. [native-search-paths]: Add the new variables. --- gnu/packages/curl.scm | 20 ++++-- .../patches/cmake-curl-certificates.patch | 2 + .../kodi-set-libcurl-ssl-parameters.patch | 2 + .../patches/libcurl-use-ssl-cert-env.patch | 64 +++++++++++++++++++ 4 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 gnu/packages/patches/libcurl-use-ssl-cert-env.patch diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index ee1cca449b..074ae32fb5 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Roel Janssen ;;; Copyright © 2019 Ricardo Wurmus +;;; Copyright © 2020 Jakub Kądziołka ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,7 +58,8 @@ version ".tar.xz")) (sha256 (base32 - "0nh3j90w6b97wqcgxjfq55qhkz9s38955fbhwzv2fsi7483j895p")))) + "0nh3j90w6b97wqcgxjfq55qhkz9s38955fbhwzv2fsi7483j895p")) + (patches (search-patches "libcurl-use-ssl-cert-env.patch")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.2 MiB of man3 pages @@ -74,10 +76,20 @@ ("pkg-config" ,pkg-config) ("python" ,python-wrapper))) (native-search-paths - ;; Note: This search path is respected by the `curl` command-line tool only. - ;; Ideally we would bake this into libcurl itself so other users can benefit, - ;; but it's not supported upstream due to thread safety concerns. + ;; Introduced by libcurl-use-ssl-cert-env.patch (list (search-path-specification + (variable "SSL_CERT_DIR") + (separator #f) ;single entry + (files '("etc/ssl/certs"))) + (search-path-specification + (variable "SSL_CERT_FILE") + (file-type 'regular) + (separator #f) ;single entry + (files '("etc/ssl/certs/ca-certificates.crt"))) + ;; Note: This search path is respected by the `curl` command-line tool only. + ;; Patching libcurl to read it too would bring no advantages and require + ;; maintaining a more complex patch. + (search-path-specification (variable "CURL_CA_BUNDLE") (file-type 'regular) (separator #f) ;single entry diff --git a/gnu/packages/patches/cmake-curl-certificates.patch b/gnu/packages/patches/cmake-curl-certificates.patch index 7fe2615271..e8cda5bd96 100644 --- a/gnu/packages/patches/cmake-curl-certificates.patch +++ b/gnu/packages/patches/cmake-curl-certificates.patch @@ -4,6 +4,8 @@ at all: . This changes CMake such that commands honor SSL_CERT_FILE and SSL_CERT_DIR as well as /etc/ssl/certs. +FIXME: This shouldn't be necessary anymore, see libcurl-use-ssl-cert-env.patch + --- cmake-3.13.1/Source/cmCurl.cxx 2019-09-10 17:27:36.926907260 +0200 +++ cmake-3.13.1/Source/cmCurl.cxx 2019-09-10 17:52:35.475903919 +0200 @@ -2,11 +2,8 @@ diff --git a/gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch b/gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch index 2f60737e30..98bff50712 100644 --- a/gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch +++ b/gnu/packages/patches/kodi-set-libcurl-ssl-parameters.patch @@ -1,6 +1,8 @@ Kodi doesn't set the CAPATH and CAINFO parameters for libcurl. To make HTTPS connections work we can set them based on SSL_CERT_DIR and SSL_CERT_FILE. +FIXME: This shouldn't be necessary anymore, see libcurl-use-ssl-cert-env.patch + --- a/xbmc/filesystem/CurlFile.cpp +++ b/xbmc/filesystem/CurlFile.cpp @@ -626,5 +626,9 @@ diff --git a/gnu/packages/patches/libcurl-use-ssl-cert-env.patch b/gnu/packages/patches/libcurl-use-ssl-cert-env.patch new file mode 100644 index 0000000000..c8e80b4445 --- /dev/null +++ b/gnu/packages/patches/libcurl-use-ssl-cert-env.patch @@ -0,0 +1,64 @@ +Make libcurl respect the SSL_CERT_{DIR,FILE} variables by default. The variables +are fetched during initialization to preserve thread-safety (curl_global_init(3) +must be called when no other threads exist). + +This fixes network functionality in rust:cargo, and probably removes the need +for other future workarounds. +=================================================================== +--- curl-7.66.0.orig/lib/easy.c 2020-01-02 15:43:11.883921171 +0100 ++++ curl-7.66.0/lib/easy.c 2020-01-02 16:18:54.691882797 +0100 +@@ -134,6 +134,9 @@ + # pragma warning(default:4232) /* MSVC extension, dllimport identity */ + #endif + ++char * Curl_ssl_cert_dir = NULL; ++char * Curl_ssl_cert_file = NULL; ++ + /** + * curl_global_init() globally initializes curl given a bitwise set of the + * different features of what to initialize. +@@ -155,6 +158,9 @@ + #endif + } + ++ Curl_ssl_cert_dir = curl_getenv("SSL_CERT_DIR"); ++ Curl_ssl_cert_file = curl_getenv("SSL_CERT_FILE"); ++ + if(!Curl_ssl_init()) { + DEBUGF(fprintf(stderr, "Error: Curl_ssl_init failed\n")); + return CURLE_FAILED_INIT; +@@ -260,6 +266,9 @@ + Curl_ssl_cleanup(); + Curl_resolver_global_cleanup(); + ++ free(Curl_ssl_cert_dir); ++ free(Curl_ssl_cert_file); ++ + #ifdef WIN32 + Curl_win32_cleanup(init_flags); + #endif +diff -ur curl-7.66.0.orig/lib/url.c curl-7.66.0/lib/url.c +--- curl-7.66.0.orig/lib/url.c 2020-01-02 15:43:11.883921171 +0100 ++++ curl-7.66.0/lib/url.c 2020-01-02 16:21:11.563880346 +0100 +@@ -524,6 +524,21 @@ + if(result) + return result; + #endif ++ extern char * Curl_ssl_cert_dir; ++ extern char * Curl_ssl_cert_file; ++ if(Curl_ssl_cert_dir) { ++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAPATH_ORIG], Curl_ssl_cert_dir)) ++ return result; ++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAPATH_PROXY], Curl_ssl_cert_dir)) ++ return result; ++ } ++ ++ if(Curl_ssl_cert_file) { ++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAFILE_ORIG], Curl_ssl_cert_file)) ++ return result; ++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAFILE_PROXY], Curl_ssl_cert_file)) ++ return result; ++ } + } + + set->wildcard_enabled = FALSE; -- 2.24.1 From unknown Sat Jun 14 03:54:21 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Jakub =?UTF-8?Q?K=C4=85dzio=C5=82ka?= Subject: bug#38873: closed (Re: [bug#38873] [PATCH v2 core-updates] curl: Make libcurl respect SSL_CERT_DIR, SSL_CERT_FILE) Message-ID: References: <87r201vccv.fsf@devup.no> <20200102171826.v4j3d35ocx7tvp2j@zdrowyportier.kadziolka.net> X-Gnu-PR-Message: they-closed 38873 X-Gnu-PR-Package: guix-patches X-Gnu-PR-Keywords: patch Reply-To: 38873@debbugs.gnu.org Date: Tue, 14 Jan 2020 23:38:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1579045082-22664-1" This is a multi-part message in MIME format... ------------=_1579045082-22664-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #38873: [PATCH] gnu: curl: Make libcurl respect SSL_CERT_{DIR,FILE} which was filed against the guix-patches package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 38873@debbugs.gnu.org. --=20 38873: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D38873 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1579045082-22664-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 38873-done) by debbugs.gnu.org; 14 Jan 2020 23:37:34 +0000 Received: from localhost ([127.0.0.1]:33901 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1irVkc-0005sk-JG for submit@debbugs.gnu.org; Tue, 14 Jan 2020 18:37:34 -0500 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:36569) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1irVkY-0005sQ-CY for 38873-done@debbugs.gnu.org; Tue, 14 Jan 2020 18:37:33 -0500 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 4275A5A1; Tue, 14 Jan 2020 18:37:23 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Tue, 14 Jan 2020 18:37:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h= from:to:subject:in-reply-to:references:date:message-id :mime-version:content-type; s=fm1; bh=8k1QnSG/WMh6LdpL7tfMn4CzfR KnrBfzEJ7KXW5lemU=; b=g+OQl1L7CiZTQY8aSZNbZoXt+MMBVbiIQCQGKv87nw 6xVYAzSfoT1ad0N7amWOLrHzdIF7o6b4F8gJJRtl9ZtRGdJAMJM2gVPpzPhGhg5o omZWmCLeJvM7y48vbyNsWbSia60GKnvqa2OzY147A+aoHHHbmDZE8ki44mQ8U9aV FPKJs/U+B/Y05frUVKQN96sLw+qq+G64pPBWXoZ1o2UeD3PVQo0IQQW3JdyNEX+t GuTaW2Ig21OImUCB5dLK4nXCxoPXXi6jmNR4rhJryHYHlGGMU4T/xga4lHGmd+wh 2hpSCDoYhQeWuvtm/KfRqbHYdBNSizvl8G2ybSM8Q4zA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=8k1QnS G/WMh6LdpL7tfMn4CzfRKnrBfzEJ7KXW5lemU=; b=xFWIHDpkMKo8mbRywMRH+n JHySJpARfom/2ALHPQ6hps44GwvZcaycbSMtg59nbInhrExKbc0jXdLgdm/d2k8v kgFhZYTs9R1SvuPo5CISQ9LfXassZDf+K2B4OutKfT70RQGtY0yMXf6BOeGQYxEA wKUEJ3WaWYRU1H2ntNoAxolMvL/qW/wOFvhrQIasMWo5zmL+dXXlRyiblU+dA+/2 mmL2EwAW4wsX6+t5V/lljQWXeA3T3CdyUX7glwlkecE9tGwo2cgIHrGucUiPsoz+ qR+XywU29Da62GAo7Nt559o3w07hYE2jPY4zikBr10NrmBQRLG0HEcXdIn6xMlLg == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedrtddvgdduudcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhephffvufgjfhgffffkgggtsehgtderre dtreejnecuhfhrohhmpeforghrihhushcuuegrkhhkvgcuoehmsggrkhhkvgesfhgrshht mhgrihhlrdgtohhmqeenucfkphepkeegrddvtddvrdeiledrvdehfeenucfrrghrrghmpe hmrghilhhfrhhomhepmhgsrghkkhgvsehfrghsthhmrghilhdrtghomhenucevlhhushht vghrufhiiigvpedu X-ME-Proxy: Received: from localhost (ti0006q161-3035.bb.online.no [84.202.69.253]) by mail.messagingengine.com (Postfix) with ESMTPA id 4441B80059; Tue, 14 Jan 2020 18:37:22 -0500 (EST) From: Marius Bakke To: Jakub =?utf-8?B?S8SFZHppb8WCa2E=?= , 38873-done@debbugs.gnu.org Subject: Re: [bug#38873] [PATCH v2 core-updates] curl: Make libcurl respect SSL_CERT_DIR, SSL_CERT_FILE In-Reply-To: <20200114165921.epqysoaydxxqm5ye@zdrowyportier.kadziolka.net> References: <20200102171826.v4j3d35ocx7tvp2j@zdrowyportier.kadziolka.net> <20200114165921.epqysoaydxxqm5ye@zdrowyportier.kadziolka.net> User-Agent: Notmuch/0.29.3 (https://notmuchmail.org) Emacs/26.3 (x86_64-pc-linux-gnu) Date: Wed, 15 Jan 2020 00:37:20 +0100 Message-ID: <87r201vccv.fsf@devup.no> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 38873-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Jakub K=C4=85dzio=C5=82ka writes: > * gnu/packages/patches/libcurl-use-ssl-cert-env.patch: New file. > * gnu/packages/curl.scm (curl)[source]: Use the patch. > [native-search-paths]: Add the new variables. > --- > gnu/packages/curl.scm | 20 ++++-- > .../patches/cmake-curl-certificates.patch | 2 + > .../kodi-set-libcurl-ssl-parameters.patch | 2 + > .../patches/libcurl-use-ssl-cert-env.patch | 64 +++++++++++++++++++ > 4 files changed, 84 insertions(+), 4 deletions(-) > create mode 100644 gnu/packages/patches/libcurl-use-ssl-cert-env.patch The commit message forgot to mention the changed patches. However I opted to remove them, as the Kodi and CMake patches are harmless even with your patch, but will encourage you to fix them regardless. ;-) Also added the new patch to gnu/local.mk and adjusted indentation of the cURL comments. Pushed as a76a343082d61d5303b61a9e4cbde4ab8515a1e7, thanks! --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl4eULAACgkQoqBt8qM6 VPrnFQf/Q8cUcbNr+0ayf/kCq8ERjMvKzWOf7t9sHYfdmdK+goLU4NmhbsXMtAV3 JgWodly7tUqd+EjU7Ub7115fOqIdLh1ilpZ9p1H4hnJ5I9yM+1mOT+DEcKmwsjWN HsKcy+LrhMjzsPIU5vmi7/0Ha+ypSLNM2GcO0+jPJEtpzHPIW/7Fm5MBDIshU4Vp abIv56AkAVqapqwVapLwFjuQ1MUZGJ4pvYillAG6sV8cKQniNKfR8TR17zH1+huy +Zyzzoq/22xHyZz6drv0PoBzWPiaUdDhm+vIwdaFWDpDek201u81DPQp1qToX6ct tYww3FZ3fGwVP+aM4YIHg7HfO4+YTQ== =XjBq -----END PGP SIGNATURE----- --=-=-=-- ------------=_1579045082-22664-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 2 Jan 2020 17:18:35 +0000 Received: from localhost ([127.0.0.1]:39972 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1in47H-0002lV-18 for submit@debbugs.gnu.org; Thu, 02 Jan 2020 12:18:35 -0500 Received: from lists.gnu.org ([209.51.188.17]:42630) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1in47F-0002lO-EO for submit@debbugs.gnu.org; Thu, 02 Jan 2020 12:18:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35121) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1in47E-0007Oo-4z for guix-patches@gnu.org; Thu, 02 Jan 2020 12:18:33 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_NONE, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1in47C-0002uf-Po for guix-patches@gnu.org; Thu, 02 Jan 2020 12:18:31 -0500 Received: from pat.zlotemysli.pl ([37.59.186.212]:41572) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1in47C-0002u1-FX for guix-patches@gnu.org; Thu, 02 Jan 2020 12:18:30 -0500 Received: (qmail 2820 invoked by uid 1009); 2 Jan 2020 18:18:28 +0100 Received: from 188.123.215.55 (kuba@kadziolka.net@188.123.215.55) by pat (envelope-from , uid 1002) with qmail-scanner-2.08st (clamdscan: 0.98.6/25681. spamassassin: 3.4.0. perlscan: 2.08st. Clear:RC:1(188.123.215.55):. Processed in 0.023429 secs); 02 Jan 2020 17:18:28 -0000 Received: from unknown (HELO zdrowyportier.kadziolka.net) (kuba@kadziolka.net@188.123.215.55) by pat.zlotemysli.pl with SMTP; 2 Jan 2020 18:18:28 +0100 Date: Thu, 2 Jan 2020 18:18:26 +0100 From: Jakub =?utf-8?B?S8SFZHppb8WCa2E=?= To: guix-patches@gnu.org Subject: [PATCH] gnu: curl: Make libcurl respect SSL_CERT_{DIR,FILE} Message-ID: <20200102171826.v4j3d35ocx7tvp2j@zdrowyportier.kadziolka.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 37.59.186.212 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) * gnu/packages/curl.scm (curl-7.66.0): Use patch. * gnu/packages/patches/libcurl-use-ssl-cert-env.patch: New file. This fixes the SSL errors occuring when trying to use rust:cargo's download functionality. As an additional advantage, this will probably allow removing some package-specific work-arounds that have already been made. I have found such work-arounds in cmake and kodi, but am not familiar enough with either to confidently remove them. --- gnu/packages/curl.scm | 4 +- .../patches/libcurl-use-ssl-cert-env.patch | 61 +++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libcurl-use-ssl-cert-env.patch diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm index aa5d24c401..c5cd88ec2e 100644 --- a/gnu/packages/curl.scm +++ b/gnu/packages/curl.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Roel Janssen ;;; Copyright © 2019 Ricardo Wurmus +;;; Copyright © 2020 Jakub Kądziołka ;;; ;;; This file is part of GNU Guix. ;;; @@ -153,7 +154,8 @@ tunneling, and so on.") version ".tar.xz")) (sha256 (base32 - "1hcqxpibhknhjy56wcxz5vd6m9ggx3ykwp3wp5wx05ih36481d6v")))))) + "1hcqxpibhknhjy56wcxz5vd6m9ggx3ykwp3wp5wx05ih36481d6v")) + (patches (search-patches "libcurl-use-ssl-cert-env.patch")))))) (define-public kurly (package diff --git a/gnu/packages/patches/libcurl-use-ssl-cert-env.patch b/gnu/packages/patches/libcurl-use-ssl-cert-env.patch new file mode 100644 index 0000000000..a68e64adc1 --- /dev/null +++ b/gnu/packages/patches/libcurl-use-ssl-cert-env.patch @@ -0,0 +1,61 @@ +Make libcurl respect the SSL_CERT_{DIR,FILE} variables by default. The variables +are fetched during initialization to preserve thread-safety (curl_global_init(3) +must be called when no other threads exist). +=================================================================== +--- curl-7.66.0.orig/lib/easy.c 2020-01-02 15:43:11.883921171 +0100 ++++ curl-7.66.0/lib/easy.c 2020-01-02 16:18:54.691882797 +0100 +@@ -134,6 +134,9 @@ + # pragma warning(default:4232) /* MSVC extension, dllimport identity */ + #endif + ++char * Curl_ssl_cert_dir = NULL; ++char * Curl_ssl_cert_file = NULL; ++ + /** + * curl_global_init() globally initializes curl given a bitwise set of the + * different features of what to initialize. +@@ -155,6 +158,9 @@ + #endif + } + ++ Curl_ssl_cert_dir = curl_getenv("SSL_CERT_DIR"); ++ Curl_ssl_cert_file = curl_getenv("SSL_CERT_FILE"); ++ + if(!Curl_ssl_init()) { + DEBUGF(fprintf(stderr, "Error: Curl_ssl_init failed\n")); + return CURLE_FAILED_INIT; +@@ -260,6 +266,9 @@ + Curl_ssl_cleanup(); + Curl_resolver_global_cleanup(); + ++ free(Curl_ssl_cert_dir); ++ free(Curl_ssl_cert_file); ++ + #ifdef WIN32 + Curl_win32_cleanup(init_flags); + #endif +diff -ur curl-7.66.0.orig/lib/url.c curl-7.66.0/lib/url.c +--- curl-7.66.0.orig/lib/url.c 2020-01-02 15:43:11.883921171 +0100 ++++ curl-7.66.0/lib/url.c 2020-01-02 16:21:11.563880346 +0100 +@@ -524,6 +524,21 @@ + if(result) + return result; + #endif ++ extern char * Curl_ssl_cert_dir; ++ extern char * Curl_ssl_cert_file; ++ if(Curl_ssl_cert_dir) { ++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAPATH_ORIG], Curl_ssl_cert_dir)) ++ return result; ++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAPATH_PROXY], Curl_ssl_cert_dir)) ++ return result; ++ } ++ ++ if(Curl_ssl_cert_file) { ++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAFILE_ORIG], Curl_ssl_cert_file)) ++ return result; ++ if(result = Curl_setstropt(&set->str[STRING_SSL_CAFILE_PROXY], Curl_ssl_cert_file)) ++ return result; ++ } + } + + set->wildcard_enabled = FALSE; -- 2.24.1 ------------=_1579045082-22664-1--