]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix that --with-ssl can use "/usr/include/openssl11" to pass the
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Tue, 17 Aug 2021 08:32:12 +0000 (10:32 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Tue, 17 Aug 2021 08:32:12 +0000 (10:32 +0200)
  location of a different openssl version.

acx_nlnetlabs.m4
configure
configure.ac
doc/Changelog

index 39e92d875331b2e695d82a9e947be64b1e386bec..ed3cdb06742e4a4814c038596368e968adb2ae19 100644 (file)
@@ -2,7 +2,9 @@
 # Copyright 2009, Wouter Wijngaards, NLnet Labs.   
 # BSD licensed.
 #
-# Version 41
+# Version 42
+# 2021-08-17 fix for openssl to detect split version, with ssldir_include
+#           and ssldir_lib output directories.
 # 2021-07-30 fix for openssl use of lib64 directory.
 # 2021-06-14 fix nonblocking test to use host instead of target for mingw test.
 # 2021-05-17 fix nonblocking socket test from grep on mingw32 to mingw for
@@ -647,6 +649,30 @@ AC_DEFUN([ACX_SSL_CHECKS], [
     withval=$1
     if test x_$withval != x_no; then
         AC_MSG_CHECKING(for SSL)
+       if test -n "$withval"; then
+               dnl look for openssl install with different version, eg.
+               dnl in /usr/include/openssl11/openssl/ssl.h
+               dnl and /usr/lib64/openssl11/libssl.so
+               dnl with the --with-ssl=/usr/include/openssl11
+               if test ! -f "$withval/include/openssl/ssl.h" -a -f "$withval/openssl/ssl.h"; then
+                       ssldir="$withval"
+                       found_ssl="yes"
+                       withval=""
+                       ssldir_include="$ssldir"
+                       dnl find the libdir
+                       ssldir_lib=`echo $ssldir | sed -e '/include/lib/'`
+                       if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then
+                               : # found here
+                       else
+                               ssldir_lib=`echo $ssldir | sed -e '/include/lib64/'`
+                               if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then
+                                       : # found here
+                               else
+                                       AC_MSG_ERROR([Could not find openssl lib file, $ssldir_lib/libssl.[so,a], pass like "/usr/local" or "/usr/include/openssl11"])
+                               fi
+                       fi
+               fi
+       fi
         if test x_$withval = x_ -o x_$withval = x_yes; then
             withval="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr"
         fi
@@ -654,12 +680,12 @@ AC_DEFUN([ACX_SSL_CHECKS], [
             ssldir="$dir"
             if test -f "$dir/include/openssl/ssl.h"; then
                 found_ssl="yes"
-                AC_DEFINE_UNQUOTED([HAVE_SSL], [], [Define if you have the SSL libraries installed.])
-                dnl assume /usr/include is already in the include-path.
-                if test "$ssldir" != "/usr"; then
-                        CPPFLAGS="$CPPFLAGS -I$ssldir/include"
-                        LIBSSL_CPPFLAGS="$LIBSSL_CPPFLAGS -I$ssldir/include"
-                fi
+               ssldir_include="$ssldir/include"
+               if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then
+                       ssldir_lib="$ssldir/lib64"
+               else
+                       ssldir_lib="$ssldir/lib"
+               fi
                 break;
             fi
         done
@@ -667,19 +693,16 @@ AC_DEFUN([ACX_SSL_CHECKS], [
             AC_MSG_ERROR(Cannot find the SSL libraries in $withval)
         else
             AC_MSG_RESULT(found in $ssldir)
+            AC_DEFINE_UNQUOTED([HAVE_SSL], [], [Define if you have the SSL libraries installed.])
             HAVE_SSL=yes
-            dnl assume /usr is already in the lib and dynlib paths.
-            if test "$ssldir" != "/usr" -a "$ssldir" != ""; then
-               if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then
-                       LDFLAGS="$LDFLAGS -L$ssldir/lib64"
-                       LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib64"
-                       ACX_RUNTIME_PATH_ADD([$ssldir/lib64])
-               else
-                       LDFLAGS="$LDFLAGS -L$ssldir/lib"
-                       LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib"
-                       ACX_RUNTIME_PATH_ADD([$ssldir/lib])
-               fi
-            fi
+           dnl assume /usr is already in the include, lib and dynlib paths.
+            if test "$ssldir" != "/usr"; then
+                   CPPFLAGS="$CPPFLAGS -I$ssldir_include"
+                   LIBSSL_CPPFLAGS="$LIBSSL_CPPFLAGS -I$ssldir_include"
+                   LDFLAGS="$LDFLAGS -L$ssldir_lib"
+                   LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir_lib"
+                   ACX_RUNTIME_PATH_ADD([$ssldir_lib])
+           fi
         
             AC_MSG_CHECKING([for EVP_sha256 in -lcrypto])
             LIBS="$LIBS -lcrypto"
@@ -758,7 +781,7 @@ dnl
 AC_DEFUN([ACX_WITH_SSL],
 [
 AC_ARG_WITH(ssl, AS_HELP_STRING([--with-ssl=pathname],[enable SSL (will check /usr/local/ssl
-                            /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr)]),[
+                            /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr or specify like /usr/include/openssl11)]),[
         ],[
             withval="yes"
         ])
@@ -776,7 +799,7 @@ dnl
 AC_DEFUN([ACX_WITH_SSL_OPTIONAL],
 [
 AC_ARG_WITH(ssl, AS_HELP_STRING([--with-ssl=pathname],[enable SSL (will check /usr/local/ssl
-                                /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr)]),[
+                                /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr or specify like /usr/include/openssl11)]),[
         ],[
             withval="yes"
         ])
index f5185fc5b5118141ad3ce62ff9a3d3e1f238cc33..186a13bfae52374efeab5960446a32ea67cf3aed 100755 (executable)
--- a/configure
+++ b/configure
@@ -1650,7 +1650,7 @@ Optional Packages:
   --with-nettle=path      use libnettle as crypto library, installed at path.
   --with-ssl=pathname     enable SSL (will check /usr/local/ssl /usr/lib/ssl
                           /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw
-                          /usr)
+                          /usr or specify like /usr/include/openssl11)
   --with-libbsd           Use portable libbsd functions
   --with-deprecate-rsa-1024
                           Deprecate RSA 1024 bit length, makes that an
     if test x_$withval != x_no; then
         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL" >&5
 $as_echo_n "checking for SSL... " >&6; }
+       if test -n "$withval"; then
+                                                                               if test ! -f "$withval/include/openssl/ssl.h" -a -f "$withval/openssl/ssl.h"; then
+                       ssldir="$withval"
+                       found_ssl="yes"
+                       withval=""
+                       ssldir_include="$ssldir"
+                                               ssldir_lib=`echo $ssldir | sed -e '/include/lib/'`
+                       if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then
+                               : # found here
+                       else
+                               ssldir_lib=`echo $ssldir | sed -e '/include/lib64/'`
+                               if test -f "$ssldir_lib/libssl.a" -o -f "$ssldir_lib/libssl.so"; then
+                                       : # found here
+                               else
+                                       as_fn_error $? "Could not find openssl lib file, $ssldir_lib/libssl.so,a, pass like \"/usr/local\" or \"/usr/include/openssl11\"" "$LINENO" 5
+                               fi
+                       fi
+               fi
+       fi
         if test x_$withval = x_ -o x_$withval = x_yes; then
             withval="/usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr"
         fi
@@ -18008,15 +18027,12 @@ $as_echo_n "checking for SSL... " >&6; }
             ssldir="$dir"
             if test -f "$dir/include/openssl/ssl.h"; then
                 found_ssl="yes"
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_SSL /**/
-_ACEOF
-
-                                if test "$ssldir" != "/usr"; then
-                        CPPFLAGS="$CPPFLAGS -I$ssldir/include"
-                        LIBSSL_CPPFLAGS="$LIBSSL_CPPFLAGS -I$ssldir/include"
-                fi
+               ssldir_include="$ssldir/include"
+               if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then
+                       ssldir_lib="$ssldir/lib64"
+               else
+                       ssldir_lib="$ssldir/lib"
+               fi
                 break;
             fi
         done
@@ -18025,30 +18041,25 @@ _ACEOF
         else
             { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $ssldir" >&5
 $as_echo "found in $ssldir" >&6; }
-            HAVE_SSL=yes
-                        if test "$ssldir" != "/usr" -a "$ssldir" != ""; then
-               if test ! -d "$ssldir/lib" -a -d "$ssldir/lib64"; then
-                       LDFLAGS="$LDFLAGS -L$ssldir/lib64"
-                       LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib64"
 
-       if test "x$enable_rpath" = xyes; then
-               if echo "$ssldir/lib64" | grep "^/" >/dev/null; then
-                       RUNTIME_PATH="$RUNTIME_PATH -R$ssldir/lib64"
-               fi
-       fi
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SSL /**/
+_ACEOF
 
-               else
-                       LDFLAGS="$LDFLAGS -L$ssldir/lib"
-                       LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir/lib"
+            HAVE_SSL=yes
+                       if test "$ssldir" != "/usr"; then
+                   CPPFLAGS="$CPPFLAGS -I$ssldir_include"
+                   LIBSSL_CPPFLAGS="$LIBSSL_CPPFLAGS -I$ssldir_include"
+                   LDFLAGS="$LDFLAGS -L$ssldir_lib"
+                   LIBSSL_LDFLAGS="$LIBSSL_LDFLAGS -L$ssldir_lib"
 
        if test "x$enable_rpath" = xyes; then
-               if echo "$ssldir/lib" | grep "^/" >/dev/null; then
-                       RUNTIME_PATH="$RUNTIME_PATH -R$ssldir/lib"
+               if echo "$ssldir_lib" | grep "^/" >/dev/null; then
+                       RUNTIME_PATH="$RUNTIME_PATH -R$ssldir_lib"
                fi
        fi
 
-               fi
-            fi
+           fi
 
             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_sha256 in -lcrypto" >&5
 $as_echo_n "checking for EVP_sha256 in -lcrypto... " >&6; }
@@ -18377,7 +18388,7 @@ rm -f core conftest.err conftest.$ac_objext \
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LibreSSL" >&5
 $as_echo_n "checking for LibreSSL... " >&6; }
-if grep VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then
+if grep VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
@@ -18799,7 +18810,7 @@ $as_echo_n "checking if GOST works... " >&6; }
 if test c${cross_compiling} = cno; then
 BAKCFLAGS="$CFLAGS"
 if test -n "$ssldir"; then
-       CFLAGS="$CFLAGS -Wl,-rpath,$ssldir/lib"
+       CFLAGS="$CFLAGS -Wl,-rpath,$ssldir_lib"
 fi
 if test "$cross_compiling" = yes; then :
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
@@ -18982,8 +18993,8 @@ fi
              # see if OPENSSL 1.0.0 or later (has EVP MD and Verify independency)
              { $as_echo "$as_me:${as_lineno-$LINENO}: checking if openssl supports SHA2 and ECDSA with EVP" >&5
 $as_echo_n "checking if openssl supports SHA2 and ECDSA with EVP... " >&6; }
-             if grep OPENSSL_VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "OpenSSL" >/dev/null; then
-               if grep OPENSSL_VERSION_NUMBER $ssldir/include/openssl/opensslv.h | grep 0x0 >/dev/null; then
+             if grep OPENSSL_VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "OpenSSL" >/dev/null; then
+               if grep OPENSSL_VERSION_NUMBER $ssldir_include/openssl/opensslv.h | grep 0x0 >/dev/null; then
                  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
index 1ed55b0ef8aca83f6075cd17c11dccd4c3e0b16f..b9b177584d97e811d0dbc1ad3c487dcdafcc1ee4 100644 (file)
@@ -857,7 +857,7 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
 ])
 
 AC_MSG_CHECKING([for LibreSSL])
-if grep VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then
+if grep VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "LibreSSL" >/dev/null; then
        AC_MSG_RESULT([yes])
        AC_DEFINE([HAVE_LIBRESSL], [1], [Define if we have LibreSSL])
        # libressl provides these compat functions, but they may also be
@@ -987,7 +987,7 @@ AC_MSG_CHECKING([if GOST works])
 if test c${cross_compiling} = cno; then
 BAKCFLAGS="$CFLAGS"
 if test -n "$ssldir"; then
-       CFLAGS="$CFLAGS -Wl,-rpath,$ssldir/lib"
+       CFLAGS="$CFLAGS -Wl,-rpath,$ssldir_lib"
 fi
 AC_RUN_IFELSE([AC_LANG_SOURCE([[
 #include <string.h>
@@ -1110,8 +1110,8 @@ case "$enable_ecdsa" in
              ])
              # see if OPENSSL 1.0.0 or later (has EVP MD and Verify independency)
              AC_MSG_CHECKING([if openssl supports SHA2 and ECDSA with EVP])
-             if grep OPENSSL_VERSION_TEXT $ssldir/include/openssl/opensslv.h | grep "OpenSSL" >/dev/null; then
-               if grep OPENSSL_VERSION_NUMBER $ssldir/include/openssl/opensslv.h | grep 0x0 >/dev/null; then
+             if grep OPENSSL_VERSION_TEXT $ssldir_include/openssl/opensslv.h | grep "OpenSSL" >/dev/null; then
+               if grep OPENSSL_VERSION_NUMBER $ssldir_include/openssl/opensslv.h | grep 0x0 >/dev/null; then
                  AC_MSG_RESULT([no])
                  AC_DEFINE_UNQUOTED([USE_ECDSA_EVP_WORKAROUND], [1], [Define this to enable an EVP workaround for older openssl])
                else
index dc4939417e0384c63ac5f6756530e00499b7705b..26c66e65edb1f42a2651e2cfef78ce905da77ad8 100644 (file)
@@ -1,3 +1,7 @@
+17 August 2021: Wouter
+       - Fix that --with-ssl can use "/usr/include/openssl11" to pass the
+         location of a different openssl version.
+
 16 August 2021: George
        - Merge PR #528 from fobser: Make sldns_str2wire_svcparam_buf()
          static.