Re: [Bug-wget] wget: configure.ac: gnutl > openssl ordering patch and libtool support

2016-08-17 Thread Tim Rühsen
On Dienstag, 16. August 2016 08:32:31 CEST Alex Damb wrote:
>  Hello,
> 
> This patch for configure.ac replaces logic of searching ssl backend: if not
> specified with --with-ssl=openssl, --with-ssl=gnutls or --with-ssl=no,
> then, first, tries to find gnutls library and, if failes, then tries to
> find openssl. In addition, it adds LT_INIT call to call libtool for
> specifying rpath option. 
> 
> Motivation: not defining --with-ssl=openssl and LDFLAGS="-I/opt/openssl/path
> -Wl,rpath,/opt/openssl/path" in case, when openssl or gnutls is correctly
> installed in non-standard locations, but with providing correct pkg-config
> files
> 
> steps:
> tar xf wget-1.18.tar.xz
> cd wget-1.18
> patch < ../wget-1.18-configure.ac.patch
> libtoolize
> autoreconf
> ./configure ...

Hi Alex,

thanks for your contribution.

Could you split your patch into two - the LT_INIT and the OpenSSL part, 
please.
And be so kind and remove the trailing white space (e.g. configure your editor  
to automatically remove these on saving and save again).

Regards, Tim

signature.asc
Description: This is a digitally signed message part.


[Bug-wget] wget: configure.ac: gnutl > openssl ordering patch and libtool support

2016-08-16 Thread Alex Damb
 Hello,

This patch for configure.ac replaces logic of searching ssl backend: if not 
specified with --with-ssl=openssl, --with-ssl=gnutls or --with-ssl=no, then, 
first, tries to find gnutls library and, if failes, then tries to find openssl. 
In addition, it adds LT_INIT call to call libtool for specifying rpath option.  

Motivation: not defining --with-ssl=openssl and LDFLAGS="-I/opt/openssl/path 
-Wl,rpath,/opt/openssl/path" in case, when openssl or gnutls is correctly 
installed in non-standard locations, but with providing correct pkg-config files

steps:
tar xf wget-1.18.tar.xz
cd wget-1.18
patch < ../wget-1.18-configure.ac.patch
libtoolize
autoreconf
./configure ...
--- configure.ac
+++ ../configure.ac
@@ -172,6 +172,9 @@
 AM_PROG_CC_C_O
 AC_AIX
 
+AM_PROG_AR
+LT_INIT
+
 gl_EARLY
 
 dnl
@@ -340,83 +343,8 @@
   ])
 ])
 
-AS_IF([test x"$with_ssl" = xopenssl], [
-  if [test x"$with_libssl_prefix" = x]; then
-PKG_CHECK_MODULES([OPENSSL], [openssl], [
-  AC_MSG_NOTICE([compiling in support for SSL via OpenSSL])
-  AC_LIBOBJ([openssl])
-  LIBS="$OPENSSL_LIBS $LIBS"
-  CFLAGS="$OPENSSL_CFLAGS -DHAVE_LIBSSL $CFLAGS"
-  LIBSSL=" " # ntlm check below wants this
-  AC_CHECK_FUNCS([RAND_egd])
-  AC_DEFINE([HAVE_LIBSSL], [1], [Define if using openssl.])
-  ssl_found=yes
-])
-  fi
-  if [test x"$ssl_found" != xyes]; then
-dnl As of this writing (OpenSSL 0.9.6), the libcrypto shared library
-dnl doesn't record its dependency on libdl, so we need to make sure
-dnl -ldl ends up in LIBS on systems that have it.  Most OSes use
-dnl dlopen(), but HP-UX uses shl_load().
-AC_CHECK_LIB(dl, dlopen, [], [
-  AC_CHECK_LIB(dl, shl_load)
-])
-
-ssl_found=no
-case $host_os in
-  *mingw32* )
-dnl prefer link to openssl dlls if possible. if not then fallback on static libs. if not then error
-
-AC_CHECK_LIB(eay32, EVP_MD_CTX_init)
-if test x"$ac_cv_lib_eay32_EVP_MD_CTX_init" != xno
-then
-  AC_CHECK_LIB(ssl32, SSL_connect, [
-ssl_found=yes
-AC_MSG_NOTICE([Enabling support for SSL via OpenSSL (shared)])
-AC_LIBOBJ([openssl])
-LIBS="${LIBS} -lssl32"
-AC_DEFINE([HAVE_LIBSSL32], [1], [Define to 1 if you have the `ssl32' library (-lssl32).])
-  ],
-  AC_MSG_ERROR([openssl not found: shared lib eay32 found but ssl32 not found]))
-
-else
-  LIBS+=' -lgdi32'
-  dnl fallback and test static libs
-fi
-dnl add zdll lib as dep for above tests?
-  ;;
-esac
-
-AS_IF([test x$ssl_found != xyes], [
-  dnl Now actually check for -lssl if it wasn't already found
-  AC_LIB_HAVE_LINKFLAGS([ssl], [crypto], [
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-#include 
-  ], [SSL_library_init ()])
-  if test x"$LIBSSL" != x
-  then
-ssl_found=yes
-AC_MSG_NOTICE([compiling in support for SSL via OpenSSL])
-AC_LIBOBJ([openssl])
-LIBS="$LIBSSL $LIBS"
-AC_CHECK_FUNCS([RAND_egd])
-  elif test x"$with_ssl" != x
-  then
-AC_MSG_ERROR([--with-ssl=openssl was given, but SSL is not available.])
-  fi
-])
-  fi
-], [
-  # --with-ssl is not openssl: check if it's no
-  AS_IF([test x"$with_ssl" != xno], [
-dnl default is -lgnutls
-with_ssl=gnutls
-
+AS_IF([test x"with_ssl" != xno], [
+  AS_IF([ test x"$with_ssl" = x || test x"$with_ssl" = xgnutls], [
 dnl Now actually check for -lgnutls
 if [test x"$with_libgnutls_prefix" = x]; then
   PKG_CHECK_MODULES([GNUTLS], [gnutls], [
@@ -426,6 +354,11 @@
 CFLAGS="$GNUTLS_CFLAGS -DHAVE_LIBGNUTLS $CFLAGS"
 AC_DEFINE([HAVE_LIBGNUTLS], [1], [Define if using gnutls.])
 ssl_found=yes
+with_ssl=gnutls
+  ], [
+AS_IF([test x"$with_ssl" = xgnutls],[
+  AC_MSG_ERROR([GnuTLS requested but not found])
+])
   ])
 fi
 if [test x"$ssl_found" != xyes]; then
@@ -435,17 +368,99 @@
   if test x"$LIBGNUTLS" != x
   then
 ssl_found=yes
-AC_MSG_NOTICE([compiling in support for SSL via GnuTLS])
-AC_LIBOBJ([gnutls])
+AC_MSG_NOTICE([compiling in support for SSL via GnuTLS])   
+AC_LIBOBJ([gnutls])
 LIBS="$LIBGNUTLS $LIBS"
-  else
-AC_MSG_ERROR([GnuTLS has not been found. Use --with-ssl=openssl if you explicitly want OpenSSL.])
-  fi
-fi
-
+with_ssl=gnutls
+  else 
+if [ x"$with_ssl" == xgnutls ]; then
+  AC_MSG_ERROR([GnuTLS has not been found. Use --with-ssl=openssl if you explicitly want OpenSSL.])  
+fi
+  fi