summaryrefslogtreecommitdiff
path: root/gnu/packages/patches/cmake-curl-certificates.patch
diff options
context:
space:
mode:
authorRicardo Wurmus <[email protected]>2019-09-18 11:54:54 +0200
committerRicardo Wurmus <[email protected]>2019-09-18 11:54:54 +0200
commit993a4fbb7c3d1f9977e0789c21905fddd72241fd (patch)
tree899b928672607b9ad74dafd42eb2bfa048a041c4 /gnu/packages/patches/cmake-curl-certificates.patch
parent248965c91caf7d10433f090b4712a9b201968416 (diff)
parent7bc46ecc34ceb042ff890e5d306d0a2a736e891d (diff)
Merge remote-tracking branch 'origin/master' into wip-texlive
Diffstat (limited to 'gnu/packages/patches/cmake-curl-certificates.patch')
-rw-r--r--gnu/packages/patches/cmake-curl-certificates.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/gnu/packages/patches/cmake-curl-certificates.patch b/gnu/packages/patches/cmake-curl-certificates.patch
new file mode 100644
index 0000000000..36252083f8
--- /dev/null
+++ b/gnu/packages/patches/cmake-curl-certificates.patch
@@ -0,0 +1,40 @@
+By default commands such as "ctest" would not look for certificates
+at all: <https://issues.guix.gnu.org/issue/37371>.
+
+This changes CMake such that commands honor SSL_CERT_FILE and SSL_CERT_DIR
+as well as /etc/ssl/certs.
+
+--- 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
+@@ -4,11 +4,8 @@
+
+ #include "cmThirdParty.h"
+
+-#if !defined(CMAKE_USE_SYSTEM_CURL) && !defined(_WIN32) && \
+- !defined(__APPLE__) && !defined(CURL_CA_BUNDLE) && !defined(CURL_CA_PATH)
+ # define CMAKE_FIND_CAFILE
+ # include "cmSystemTools.h"
+-#endif
+
+ // curl versions before 7.21.5 did not provide this error code
+ #if defined(LIBCURL_VERSION_NUM) && LIBCURL_VERSION_NUM < 0x071505
+@@ -29,6 +26,19 @@ std::string cmCurlSetCAInfo(::CURL* curl
+ ::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_CAINFO, cafile);
+ check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: ");
+ }
++
++ /* Honor the usual environment variables. */
++ else if (cmSystemTools::GetEnv("SSL_CERT_FILE", e)) {
++ ::CURLcode res =
++ ::curl_easy_setopt(curl, CURLOPT_CAINFO, e.c_str());
++ check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: ");
++ }
++ else if (cmSystemTools::GetEnv("SSL_CERT_DIR", e)) {
++ ::CURLcode res =
++ ::curl_easy_setopt(curl, CURLOPT_CAPATH, e.c_str());
++ check_curl_result(res, "Unable to set TLS/SSL Verify CAINFO: ");
++ }
++
+ #ifdef CMAKE_FIND_CAFILE
+ # define CMAKE_CAFILE_FEDORA "/etc/pki/tls/certs/ca-bundle.crt"
+ else if (cmSystemTools::FileExists(CMAKE_CAFILE_FEDORA, true)) {