From: Ben Laurie Date: Fri, 6 Jul 2012 12:41:10 +0000 (+0000) Subject: Work correctly with a development version of OpenSSL. I suspect X-Git-Tag: 2.5.0-alpha~6672 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bb1777a1f922e7715e78c81513afc544d46270ab;p=apache Work correctly with a development version of OpenSSL. I suspect something similar is needed when there are two OpenSSL installations, one in a default location. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1358167 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/acinclude.m4 b/acinclude.m4 index 78495a8e13..44c12673df 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -499,38 +499,51 @@ AC_DEFUN(APACHE_CHECK_OPENSSL,[ saved_LDFLAGS="$LDFLAGS" SSL_LIBS="" - dnl Before doing anything else, load in pkg-config variables - if test -n "$PKGCONFIG"; then - saved_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" - if test "x$ap_openssl_base" != "x" -a \ - -f "${ap_openssl_base}/lib/pkgconfig/openssl.pc"; then - dnl Ensure that the given path is used by pkg-config too, otherwise - dnl the system openssl.pc might be picked up instead. - PKG_CONFIG_PATH="${ap_openssl_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}" - export PKG_CONFIG_PATH - fi - ap_openssl_libs="`$PKGCONFIG --libs-only-l openssl 2>&1`" - if test $? -eq 0; then - ap_openssl_found="yes" - pkglookup="`$PKGCONFIG --cflags-only-I openssl`" - APR_ADDTO(CPPFLAGS, [$pkglookup]) - APR_ADDTO(INCLUDES, [$pkglookup]) - pkglookup="`$PKGCONFIG --libs-only-L --libs-only-other openssl`" - APR_ADDTO(LDFLAGS, [$pkglookup]) - APR_ADDTO(SSL_LIBS, [$pkglookup]) + dnl See if we've been given a development OpenSSL (lib does not exist) + if test ! -d "$ap_openssl_base/lib"; then + AC_MSG_WARN([Using development version of OpenSSL]) + dnl we need to prepend the directories to override the system version + CPPFLAGS="-I$ap_openssl_base/include $CPPFLAGS" + INCLUDES="-I$ap_openssl_base/include $INCLUDES" + LDFLAGS="-L$ap_openssl_base $LDFLAGS" + dnl naughty, but easier than the alternatives + saved_LDFLAGS="$LDFLAGS" + SSL_LIBS="-L$ap_openssl_base" + else + + dnl Before doing anything else, load in pkg-config variables + if test -n "$PKGCONFIG"; then + saved_PKG_CONFIG_PATH="$PKG_CONFIG_PATH" + if test "x$ap_openssl_base" != "x" -a \ + -f "${ap_openssl_base}/lib/pkgconfig/openssl.pc"; then + dnl Ensure that the given path is used by pkg-config too, otherwise + dnl the system openssl.pc might be picked up instead. + PKG_CONFIG_PATH="${ap_openssl_base}/lib/pkgconfig${PKG_CONFIG_PATH+:}${PKG_CONFIG_PATH}" + export PKG_CONFIG_PATH + fi + ap_openssl_libs="`$PKGCONFIG --libs-only-l openssl 2>&1`" + if test $? -eq 0; then + ap_openssl_found="yes" + pkglookup="`$PKGCONFIG --cflags-only-I openssl`" + APR_ADDTO(CPPFLAGS, [$pkglookup]) + APR_ADDTO(INCLUDES, [$pkglookup]) + pkglookup="`$PKGCONFIG --libs-only-L --libs-only-other openssl`" + APR_ADDTO(LDFLAGS, [$pkglookup]) + APR_ADDTO(SSL_LIBS, [$pkglookup]) + fi + PKG_CONFIG_PATH="$saved_PKG_CONFIG_PATH" fi - PKG_CONFIG_PATH="$saved_PKG_CONFIG_PATH" - fi - dnl fall back to the user-supplied directory if not found via pkg-config - if test "x$ap_openssl_base" != "x" -a "x$ap_openssl_found" = "x"; then - APR_ADDTO(CPPFLAGS, [-I$ap_openssl_base/include]) - APR_ADDTO(INCLUDES, [-I$ap_openssl_base/include]) - APR_ADDTO(LDFLAGS, [-L$ap_openssl_base/lib]) - APR_ADDTO(SSL_LIBS, [-L$ap_openssl_base/lib]) - if test "x$ap_platform_runtime_link_flag" != "x"; then - APR_ADDTO(LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib]) - APR_ADDTO(SSL_LIBS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib]) + dnl fall back to the user-supplied directory if not found via pkg-config + if test "x$ap_openssl_base" != "x" -a "x$ap_openssl_found" = "x"; then + APR_ADDTO(CPPFLAGS, [-I$ap_openssl_base/include]) + APR_ADDTO(INCLUDES, [-I$ap_openssl_base/include]) + APR_ADDTO(LDFLAGS, [-L$ap_openssl_base/lib]) + APR_ADDTO(SSL_LIBS, [-L$ap_openssl_base/lib]) + if test "x$ap_platform_runtime_link_flag" != "x"; then + APR_ADDTO(LDFLAGS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib]) + APR_ADDTO(SSL_LIBS, [$ap_platform_runtime_link_flag$ap_openssl_base/lib]) + fi fi fi diff --git a/modules/ssl/ssl_engine_init.c b/modules/ssl/ssl_engine_init.c index 8cdc29a321..8315aa4afb 100644 --- a/modules/ssl/ssl_engine_init.c +++ b/modules/ssl/ssl_engine_init.c @@ -1057,6 +1057,7 @@ static int ssl_server_import_cert(server_rec *s, "Unable to initialize TLS authz extension: " "OpenSSL version too low"); ssl_die(s); +#error xx #endif }