libcurl: honor $SSL_CERT_FILE (fixed)

The previous attempt to patch libcurl used

getenv("CURL_CA_BUNDLE") || getenv("SSL_CERT_FILE")

to get the second environment variable if the first is unset.
Unfortunately, this broke libcurl because the (||) operator is C returns
only 0 or 1, so it is inappropriate for pointer comparisons! Now we use

getenv("CURL_CA_BUNDLE") ? getenv("CURL_CA_BUNDLE") : getenv("SSL_CERT_FILE")

instead. This has one downside: it always calls getenv twice! But,
that's a small price to pay for actually being correct.
This commit is contained in:
Thomas Tuegel 2014-12-02 10:41:24 -06:00
parent ea1dd9fd4a
commit 02157ab123
1 changed files with 1 additions and 1 deletions

View File

@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
# make curl honor CURL_CA_BUNDLE & SSL_CERT_FILE
postConfigure = ''
echo '#define CURL_CA_BUNDLE (getenv("CURL_CA_BUNDLE") || getenv("SSL_CERT_FILE"))' >> lib/curl_config.h
echo '#define CURL_CA_BUNDLE (getenv("CURL_CA_BUNDLE") ? getenv("CURL_CA_BUNDLE") : getenv("SSL_CERT_FILE"))' >> lib/curl_config.h
'';
configureFlags = [