* m4/gl-openssl.m4: Add a new "auto_gpl_compat" mode, which will auto enable use of openssl, only for >= version 3, which is newly licensed under the Apache Software License. This will be used from coreutils for example by adding gl_SET_CRYPTO_CHECK_DEFAULT([auto_gpl_compat]) to configure.ac. Even though "auto_gpl_compat" is less aggressive than "auto", we leave the default at "no" so projects can opt in to the extra dependency. --- ChangeLog | 7 +++++++ m4/gl-openssl.m4 | 32 +++++++++++++++++++++++++------- 2 files changed, 32 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog index ac61fdf..740a982 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2020-01-01 Pádraig Brady <p...@draigbrady.com> + + md5, sha1, sha256, sha512:: support --with-openssl=auto_gpl_compat + * m4/gl-openssl.m4: Add a new "auto_gpl_compat" mode, + which will auto enable use of openssl, only for >= version 3, + which is newly licensed under the Apache Software License. + 2020-01-01 Bruno Haible <br...@clisp.org> doc: Update documentation about wchar_t. diff --git a/m4/gl-openssl.m4 b/m4/gl-openssl.m4 index 0195202..d2d1d6f 100644 --- a/m4/gl-openssl.m4 +++ b/m4/gl-openssl.m4 @@ -1,4 +1,4 @@ -# gl-openssl.m4 serial 3 +# gl-openssl.m4 serial 4 dnl Copyright (C) 2013-2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -21,7 +21,9 @@ AC_DEFUN([gl_CRYPTO_CHECK], AC_ARG_WITH([openssl], [AS_HELP_STRING([--with-openssl], [use libcrypto hash routines. Valid ARGs are: - 'yes', 'no', 'auto' => use if available, + 'yes', 'no', + 'auto' => use if any version available, + 'auto_gpl_compat' => use if gpl compatible version available, 'optional' => use if available and warn if not available; default is ']gl_CRYPTO_CHECK_DEFAULT['. Note also --with-linux-crypto, which will enable @@ -37,11 +39,27 @@ AC_DEFUN([gl_CRYPTO_CHECK], AC_SUBST([LIB_CRYPTO]) if test "x$with_openssl" != xno; then - AC_CHECK_LIB([crypto], [$1], - [AC_CHECK_HEADERS([openssl/$ALG_header], - [LIB_CRYPTO=-lcrypto - AC_DEFINE([HAVE_OPENSSL_$1], [1], - [Define to 1 if libcrypto is used for $1.])])]) + if test "x$with_openssl" = xauto_gpl_compat; then + AC_CACHE_CHECK([whether openssl is GPL compatible], + [gl_cv_openssl_gpl_compat], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[ + #include <openssl/opensslv.h> + #if OPENSSL_VERSION_MAJOR < 3 + #error "openssl >= version 3 not found" + #endif + ]])], + [gl_cv_openssl_gpl_compat=yes], + [gl_cv_openssl_gpl_compat=no])]) + fi + if test "x$with_openssl" != xauto_gpl_compat || + test "x$gl_cv_openssl_gpl_compat" = xyes; then + AC_CHECK_LIB([crypto], [$1], + [AC_CHECK_HEADERS([openssl/$ALG_header], + [LIB_CRYPTO=-lcrypto + AC_DEFINE([HAVE_OPENSSL_$1], [1], + [Define to 1 if libcrypto is used for $1.])])]) + fi if test "x$LIB_CRYPTO" = x; then if test "x$with_openssl" = xyes; then AC_MSG_ERROR([openssl development library not found for $1]) -- 2.9.3