Patch against 2.5.9 for OpenSSL in lib64, pkg-config

Jason Englander jasoneng3 at gmail.com
Mon Jul 25 16:25:54 EDT 2016


If you have a source installed OpenSSL under /usr/local/ssl on a 64-bit 
system, you probably have /usr/local/ssl/lib64 instead of 
/usr/local/ssl/lib

In order for Cyrus IMAP configure to find the libraries, even passing 
--with-openssl=/usr/local/ssl to configure, you would need to use 
LDFLAGS=-L/usr/local/ssl/lib64 and also add /usr/local/ssl/lib64 to LIBS 
in perl/imap/Makefile.PL and perl/sieve/managesieve/Makefile.PL

I am no autoconf guru by any means, but I made two changes to configure.ac 
that enable (after 'autoreconf -f -i') you to use either 
--with-ssl=/usr/local/ssl and have that check both lib and lib64 under 
there, and also if you use --with-ssl with no path, for it to try 
pkg-config before system defaults (e.g. /usr/include and /usr/lib).

If you go the pkg-config way, as long as your PKG_CONFIG_PATH variable 
(possibly set in /etc/profile) includes /usr/local/ssl/lib64/pkgconfig or 
wherever yours is, it should work.  I believe they added support for it to 
OpenSSL > 0.9.6

So far only tested on one Slackware Linux machine with source Cyrus IMAP 
2.5.9 and source OpenSSL 1.0.2h


--- configure.ac.orig   2016-07-21 22:01:21.000000000 -0400
+++ configure.ac        2016-07-25 14:25:55.432452824 -0400
@@ -984,10 +984,16 @@
      ;;
  x|xyes)
      # default args or --with-openssl
-    # try to enable, search in default system directories
      #
-    ssl_cppflags=
-    ssl_ldflags=
+    # Try pkg-config - OpenSSL >= 0.9.6 has openssl.pc
+    PKG_CHECK_MODULES(OPENSSL, openssl)
+    ssl_cppflags="$OPENSSL_CFLAGS"
+    ssl_ldflags="$OPENSSL_LIBS"
+    if test -n "$ssl_cppflags" -a -n "$ssl_ldflags"; then
+      with_ssl=yes
+    fi
+    #
+    # If pkg-config doesn't work, search in default system directories
      ;;
  *)
      # --with-openssl=DIR
@@ -995,7 +1001,11 @@
      if test -d "$with_ssl"; then
         ssl_cppflags="-I${with_ssl}/include"
         ssl_ldflags=
-       CMU_ADD_LIBPATH_TO(${with_ssl}/lib, ssl_ldflags)
+       if test -d "${with_ssl}/lib64"; then
+           CMU_ADD_LIBPATH_TO(${with_ssl}/lib64, ssl_ldflags)
+       else
+           CMU_ADD_LIBPATH_TO(${with_ssl}/lib, ssl_ldflags)
+       fi
         with_ssl=yes
      else
         AC_WARN([Disabling OpenSSL - no include files found])




More information about the Info-cyrus mailing list