databases/evolution-data-server, base kerberos and security/openssl

Andriy Gapon avg at freebsd.org
Tue Nov 30 17:03:32 UTC 2010


It seems that databases/evolution-data-server fails the configure stage if
1. a base system does have kerberos in it;
2. security/heimdal is not installed;
3. there are no special flags like NO_KERBEROS in make.conf;
4. security/openssl (openssl-1.0.0*) is installed.

Excerpts from config.log:
...
$ ./configure --enable-static --enable-gnome-keyring=yes --with-openldap=yes
--with-libdb=/usr/local --with-krb5=/usr --without-weather
--localstatedir=/usr/local/share --with-html-dir=/usr/local/share/doc
--disable-gtk-doc
--with-gconf-source=xml:merged:/usr/local/etc/gconf/gconf.xml.defaults
--prefix=/usr/local --mandir=/usr/local/man --infodir=/usr/local/info/
--build=amd64-portbld-freebsd8.1
...
configure:16108: cc -o conftest -O2 -pipe -O2 -fno-strict-aliasing -pipe
-march=nocona -DLDAP_DEPRECATED -I/usr/local/include -I/usr/local/include/db41
-L/usr/local/lib -pthread  conftest.c  -L/usr/lib -L/usr/lib -lgssapi -lheimntlm
-lkrb5 -lhx509 -lcom_err -lcrypto -lasn1 -lroken -lcrypt >&5
/usr/lib/libhx509.so: undefined reference to `MD2_Init'
/usr/lib/libhx509.so: undefined reference to `MD2_Final'
/usr/lib/libhx509.so: undefined reference to `MD2_Update'
...

The problem is that -L/usr/local/lib comes before -L/usr/lib and as such
libcrypto.so from openssl-1.0.0* wins over libcrypto.so from the base, but the
former has an incompatible API and doesn't provide the quoted above symbols.

The reason that /usr/local/lib appears sooner in the library search path is in the
port's Makefile:
CONFIGURE_ENV=	... \
		LDFLAGS="-L${LOCALBASE}/lib ${PTHREAD_LIBS}"
It seems that LDFLAGS passed via configure's environment get prepended before any
linker flags tested/discovered by configure.

I am sure that there is a reason to have -L${LOCALBASE}/lib explicitly specified
in the LDFLAGS.  The following modification fixes the port build in the specified
environment:
CONFIGURE_ENV=	... \
		LDFLAGS="-L/usr/lib -L${LOCALBASE}/lib ${PTHREAD_LIBS}"

Perhaps this modification should be conditional in the same way as --with-krb5
setting in CONFIGURE_ARGS.

Thanks!
-- 
Andriy Gapon


More information about the freebsd-gnome mailing list