First the problem: I'm trying to build on Solaris 8 with cyrus-imap-2.0.8, cyrus-sasl-1.5.24, and KTH krb4-1.0.4. I'm getting library conflicts between krb4 and SSL and (even worse)) libcyrus.a and libsasl.a: gcc -L/local/db/lib -R/local/db/lib -L/local/db/lib -L/usr/local/lib -R/usr/local/lib -L/local/krb4/lib -L/opt/openssh/lib -L/local/zephyr/lib -L/opt/local/lib -g -O2 -o imapd \ ../master/service.o pushstats.o imapd.o index.o tls.o libimap.a ../acap/libacap.a ../lib/libcyrus.a -L/mail/cyrus/lib -lsasl -ldl -lkrb -lresolv -ldb -ldes -lssl -lcrypto -lwrap -lnsl -lsocket -lnsl -lzephyr ../et/libcom_err.a ld: fatal: symbol `lcase' is multiply defined: (file ../lib/libcyrus.a(util.o) and file /mail/cyrus/lib/libsasl.a(checkpw.o)); ld: fatal: symbol `des_key_sched' is multiply defined: (file /local/krb4/lib/libdes.a(set_key.o) and file /opt/openssh/lib/libcrypto.a(set_key.o)); ld: fatal: symbol `des_is_weak_key' is multiply defined: (file /local/krb4/lib/libdes.a(set_key.o) and file /opt/openssh/lib/libcrypto.a(set_key.o)); ld: fatal: symbol `des_set_key' is multiply defined: (file /local/krb4/lib/libdes.a(set_key.o) and file /opt/openssh/lib/libcrypto.a(set_key.o)); ld: fatal: symbol `des_set_odd_parity' is multiply defined: (file /local/krb4/lib/libdes.a(set_key.o) and file /opt/openssh/lib/libcrypto.a(set_key.o)); ld: fatal: symbol `des_check_key' is multiply defined: (file /local/krb4/lib/libdes.a(set_key.o) and file /opt/openssh/lib/libcrypto.a(set_key.o)); ld: fatal: symbol `des_encrypt' is multiply defined: (file /local/krb4/lib/libdes.a(des_enc.o) and file /opt/openssh/lib/libcrypto.a(des_enc.o)); ld: fatal: symbol `des_encrypt2' is multiply defined: (file /local/krb4/lib/libdes.a(des_enc.o) and file /opt/openssh/lib/libcrypto.a(des_enc.o)); ld: fatal: symbol `des_encrypt3' is multiply defined: (file /local/krb4/lib/libdes.a(des_enc.o) and file /opt/openssh/lib/libcrypto.a(des_enc.o)); ld: fatal: symbol `des_decrypt3' is multiply defined: (file /local/krb4/lib/libdes.a(des_enc.o) and file /opt/openssh/lib/libcrypto.a(des_enc.o)); ld: fatal: File processing errors. No output written to imapd collect2: ld returned 1 exit status gmake[1]: *** [imapd] Error 1 gmake[1]: Leaving directory `/home/slumos/src/mail/cyrus-imapd-2.0.8/imap' gmake: *** [all] Error 1 I'm configuring with: ./configure \ --cache-file=/dev/null \ --prefix=/mail/cyrus \ --with-cyrus-user=cyrus \ --with-cyrus-group=cyrus \ --with-cyrus-prefix=/mail/cyrus \ --with-dbdir=/local/db \ --with-auth=krb \ --with-krb=/local/krb4 \ --with-openssl=/opt/openssh \ --with-zephyr=/local/zephyr \ --with-notify=zephyr \ --with-sasl=/mail/cyrus \ --with-libwrap=/opt/local I had a similar problem with MD5 routines in cyrus-sasl and KTH krb4 (which I also notice has been reported as far back as July, is anybody working on bugfixes currently?), but I was able to hack around that. I'm not sure how to hack around a conflict in what I thought was the required version of SASL.... Now the patch: This fixes a couple of problems in configure.in: 1. Add $with_krb to LDFLAGS before checking for -ldes, 2. Need $with_zephyr/include in addition to $with_zephyr/include/zephyr because code uses "#include <zephyr/zephyr.h>", 3. krb4 depends on -lnsl on Solaris. I just realized that I fixed this wrongly because it just adds -lnsl instead of checking for it, but that should be easy to fix. diff -c cyrus-imapd-2.0.8.orig/configure.in cyrus-imapd-2.0.8/configure.in *** cyrus-imapd-2.0.8.orig/configure.in Tue Dec 19 09:01:25 2000 --- cyrus-imapd-2.0.8/configure.in Thu Dec 21 15:07:05 2000 *************** *** 456,464 **** dnl we might need -lresolv for kerberos AC_CHECK_LIB(resolv,res_search) - AC_CHECK_LIB(des,des_ecb_encrypt, LIBS="${LIBS} -ldes", - AC_MSG_ERROR([The Kerberos DES library is required for Kerberos support.])) - dnl if we were ambitious, we'd look more aggressively for the dnl krb4 install if test -d ${with_krb}; then --- 456,461 ---- *************** *** 478,488 **** LDFLAGS="$LDFLAGS -L${with_krb}/lib" fi if test "$with_des" != no; then AC_CHECK_HEADER(krb.h, AC_CHECK_LIB(krb, krb_mk_priv,, AC_WARN(No Kerberos V4 found); krb4=no, ! -ldes), AC_WARN(No Kerberos V4 found); krb4=no) else AC_WARN(No DES library found for Kerberos V4 support) --- 475,488 ---- LDFLAGS="$LDFLAGS -L${with_krb}/lib" fi + AC_CHECK_LIB(des,des_ecb_encrypt, LIBS="${LIBS} -ldes", + AC_MSG_ERROR([The Kerberos DES library is required for Kerberos support.])) + if test "$with_des" != no; then AC_CHECK_HEADER(krb.h, AC_CHECK_LIB(krb, krb_mk_priv,, AC_WARN(No Kerberos V4 found); krb4=no, ! -ldes -lnsl), AC_WARN(No Kerberos V4 found); krb4=no) else AC_WARN(No DES library found for Kerberos V4 support) *************** *** 550,557 **** no) true;; ""|yes) AC_CHECK_LIB(zephyr,ZInitialize,ZEPHYR_LIBS="-lzephyr", with_zephyr="no",);; ! *) if test -d ${with_zephyr}/include/zephyr; then ! ZEPHYR_CPPFLAGS="-I${with_zephyr}/include/zephyr" else ZEPHYR_CPPFLAGS="-I${with_zephyr}/include" fi --- 550,560 ---- no) true;; ""|yes) AC_CHECK_LIB(zephyr,ZInitialize,ZEPHYR_LIBS="-lzephyr", with_zephyr="no",);; ! *) if test -d ${with_zephyr}/lib; then ! LDFLAGS="${LDFLAGS} -L${with_zephyr}/lib" ! fi ! if test -d ${with_zephyr}/include/zephyr; then ! ZEPHYR_CPPFLAGS="-I${with_zephyr}/include -I${with_zephyr}/incl ude/zephyr" else ZEPHYR_CPPFLAGS="-I${with_zephyr}/include" fi