Patch against 2.5.9 for OpenSSL in lib64, pkg-config

ellie timoney ellie at fastmail.com
Tue Jul 26 22:17:04 EDT 2016


This is now on the cyrus-imapd-2.5 and master branches, thanks :)

I ended up tweaking it a little bit:

> > +    if test -n "$ssl_cppflags" -a -n "$ssl_ldflags"; then
> > +      with_ssl=yes
> > +    fi

with_ssl=yes is now set by the PKG_CONFIG_MODULES macro's
action-if-found.  This seems like it will be more reliable in the case
where pkg-config successfully finds the library, but determines that it
doesn't actually need any special cflags and/or ldflags.

The committed version is here: 
https://github.com/cyrusimap/cyrus-imapd/commit/e84d2f58afac0ff2e7d71bb0efb2a5ad7cb04a93

Cheers,

ellie

On Tue, Jul 26, 2016, at 09:54 AM, ellie timoney via Info-cyrus wrote:
> Hi Jason,
> 
> That sounds pretty reasonable, thanks for the patch.  I'll try to get it
> tested and merged this week.
> 
> Cheers,
> 
> ellie
> 
> On Tue, Jul 26, 2016, at 06:25 AM, Jason Englander via Info-cyrus wrote:
> > 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])
> > 
> > 
> > ----
> > Cyrus Home Page: http://www.cyrusimap.org/
> > List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
> > To Unsubscribe:
> > https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus
> ----
> Cyrus Home Page: http://www.cyrusimap.org/
> List Archives/Info: http://lists.andrew.cmu.edu/pipermail/info-cyrus/
> To Unsubscribe:
> https://lists.andrew.cmu.edu/mailman/listinfo/info-cyrus


More information about the Info-cyrus mailing list