aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-09-20 15:54:36 -0400
committerNick Mathewson <nickm@torproject.org>2017-09-20 16:07:19 -0400
commit564ff506ea34ef44422470ed4dc2856e0c234c87 (patch)
treeb1f8d44327cdeed956085117699289e436db0ca4
parent2c93be80d9ad0712b5716c85e32f7a5184f3b1d2 (diff)
downloadtor-564ff506ea34ef44422470ed4dc2856e0c234c87.tar.gz
tor-564ff506ea34ef44422470ed4dc2856e0c234c87.zip
When detecting OpenSSL, look for 1.0.1, and in homebrew location
Previously we would detect the system openssl on OSX, and then fail to use it, since we required Open 1.0.1 or later. That's silly! Instead of looking for RAND_add(), look for TLSv1_1_method(): it was introduced in 1.0.1, and is also present in LibreSSL. Also, add the hombebrew path to our search path here. Fixes bug 23602; bugfix on 0.2.7.2-alpha.
-rw-r--r--changes/ticket236026
-rw-r--r--configure.ac9
2 files changed, 11 insertions, 4 deletions
diff --git a/changes/ticket23602 b/changes/ticket23602
new file mode 100644
index 0000000000..c741f2b6d9
--- /dev/null
+++ b/changes/ticket23602
@@ -0,0 +1,6 @@
+ o Minor bugfixes (build):
+ - When searching for OpenSSL, don't accept any OpenSSL library that lacks
+ TLSv1_1_method(): Tor doesn't build with those versions. Additionally,
+ look in /usr/local/opt/openssl, if it's present. These changes
+ together repair the default build on OSX systems with Homebrew
+ installed. Fixes bug 23602; bugfix on 0.2.7.2-alpha.
diff --git a/configure.ac b/configure.ac
index 76140cbd19..eaa0cd2be6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -612,11 +612,12 @@ AC_ARG_WITH(ssl-dir,
fi
])
+AC_MSG_NOTICE([Now, we'll look for OpenSSL >= 1.0.1])
TOR_SEARCH_LIBRARY(openssl, $tryssldir, [-lssl -lcrypto $TOR_LIB_GDI],
- [#include <openssl/rand.h>],
- [void RAND_add(const void *buf, int num, double entropy);],
- [RAND_add((void*)0,0,0);], [],
- [/usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/athena /opt/openssl])
+ [#include <openssl/ssl.h>],
+ [struct ssl_method_st; const struct ssl_method_st *TLSv1_1_method(void);],
+ [TLSv1_1_method();], [],
+ [/usr/local/opt/openssl /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/athena /opt/openssl])
dnl XXXX check for OPENSSL_VERSION_NUMBER == SSLeay()