Missing libraries...

Mark Keasling mark at air.co.jp
Fri Sep 20 05:11:45 EDT 2002


Hi,

While building Cyrus-SASL 2.1.7, I get the following error messages:

*** Warning: This library needs some functionality provided by -lgssapi_krb5.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have.

*** Warning: This library needs some functionality provided by -lk5crypto.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have.

*** Warning: libtool could not satisfy all declared inter-library
*** dependencies of module libgssapiv2.  Therefore, libtool will create
*** a static module, that should work as long as the dlopening
*** application is linked with the -dlopen flag.

[...]

ild: (argument error) can't find library arguments :: -lgssapi_krb5 -lk5crypto
*** Error code 8
make: Fatal error: Command failed for target `saslauthd'

I haven't tried to build in support for Kerberos before...
So for Kerberos 5, I've built the heimdal package, but it doesn't produce
either library:
  gssapi_krb5	(libgssapi_krb5.so, libgssapi_krb5.a)
  k5crypto	(libk5crypto.so, libk5crypto.a)

The big question is "Does anyone know what package these libraries come from
and where it is?" or did I get the configuration wrong?

My set up is...

All of the prerequisite packages have been installed under /opt/cyrus.
- make-3.79.1		ftp.gnu.org/gnu/make/make-3.79.1.tar.gz
- tcp_wrappers-7.6	ftp.porcupine.org/pub/security/tcp_wrappers_7.6.tar.gz
- TCL-8.3.4		tcl.activestate.com/pub/tcl/tcl8_3/tcl8.3.4.tar.gz
- BerkeleyDB-4.0.14	www.sleepycat.com/update/snapshot/db-4.0.14.tar.gz
- flex-2.5.4a		ftp.gnu.org/gnu/non-gnu/flex/flex-2.5.4a.tar.gz
- gdbm-1.8.0		ftp.gnu.org/gnu/gdbm/gdbm-1.8.0.tar.gz
- perl-5.8.0		ftp.ayamura.org/pub/CPAN/src/perl-5.8.0.tar.gz
- OpenSSL-0.9.6g	ftp.openssl.org/source/openssl-0.9.6g.tar.gz
- Kerberos4-1.1.1	ftp.pdc.kth.se/pub/krb/src/krb4-1.1.1.tar.gz
- Kerberos5-0.4e	ftp.pdc.kth.se/pub/heimdal/src/heimdal-0.4e.tar.gz
- Cyrus-SASL-2.1.7	ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.7.tar.gz

I used the following configuration for Cyrus-SASL:

$ setenv CPPFLAGS "-I/opt/cyrus/include -I/opt/cyrus/openssl/include"
$ setenv LDFLAGS "-L/opt/cyrus/lib -L/opt/cyrus/openssl/lib \
-R/opt/cyrus/lib -R/opt/cyrus/openssl/lib"
$ 
$ ./configure --prefix=/opt/cyrus \
 --enable-shared \
 --with-dbpath=/var/cyrus/etc/sasldb2 \
 --with-dblib=berkeley \
 --with-bdb-libdir=/opt/cyrus/lib \
 --with-bdb-incdir=/opt/cyrus/include \
 --with-pam \
 --with-saslauthd=/var/cyrus/state/saslauthd \
 --with-ipctype=unix \
 --enable-cram \
 --enable-digest \
 --with-openssl=/opt/cyrus/openssl \
 --enable-krb4 \
 --enable-gssapi=/opt/cyrus \
 --enable-plain \
 --enable-anon \
 --enable-login \
 --with-plugindir=/var/cyrus/lib/sasl2 \
 --with-rc4 \
 --with-des=/opt/cyrus/openssl \

To get Cyrus-SASL 2.1.7 to compile this far, I had to modify the source.

Errors:
"kerberos4.c", line 50: cannot find include file: <des.h>
"checkpw.c", line 438: cannot do pointer arithmetic on operand of unknown size
"saslauthd-unix.c", line 832: cannot do pointer arithmetic on operand of unknown size
"auth_krb4.c", line 40: cannot find include file: <des.h>

saslauthd-doors.c and testsaslauthd.c have the same problem as saslauthd-unix.c
so I fixed them too without waiting for the compiler.

Modifications:
$ 
$ diff -C 0 kerberos4.c.old kerberos4.c
*** kerberos4.c.old     Fri Sep 20 16:56:44 2002
--- kerberos4.c Fri Sep 20 16:57:03 2002
***************
*** 50 ****
! #include <des.h>
--- 50,57 ----
! /* DES support */
! #ifdef WITH_DES
! # ifdef WITH_SSL_DES
! #  include <openssl/des.h>
! # else /* system DES library */
! #  include <des.h>
! # endif
! #endif /* WITH_DES */
$ 
$ diff -C 0 checkpw.c.old checkpw.c
*** checkpw.c.old       Fri Sep 20 17:04:31 2002
--- checkpw.c   Fri Sep 20 16:37:08 2002
***************
*** 438 ****
!       buf += n;
--- 438 ----
!       buf = (void *)((char *)buf + n);
$ 
$ diff -C 0 saslauthd-doors.c.old saslauthd-doors.c
*** saslauthd-doors.c.old       Sat May 18 01:43:22 2002
--- saslauthd-doors.c   Fri Sep 20 17:10:23 2002
***************
*** 748 ****
!       buf += n;
--- 748 ----
!       buf = (void *)((char *) buf + n);
$ 
$ diff -C 0 saslauthd-unix.c.old saslauthd-unix.c
*** saslauthd-unix.c.old        Sat May 18 01:43:22 2002
--- saslauthd-unix.c    Fri Sep 20 17:10:04 2002
***************
*** 832 ****
!       buf += n;
--- 832 ----
!       buf = (void *)((char *) buf + n);
$ 
$ diff -C 0 testsaslauthd.c.old testsaslauthd.c
*** testsaslauthd.c.old Wed May 29 04:05:23 2002
--- testsaslauthd.c     Fri Sep 20 17:10:56 2002
***************
*** 140 ****
!       buf += n;
--- 140 ----
!       buf = (void *)((char *) buf + n);
$ 
$ diff -C 0 auth_krb4.c.old auth_krb4.c
*** auth_krb4.c.old     Thu Jan 17 14:13:14 2002
--- auth_krb4.c Fri Sep 20 17:32:16 2002
***************
*** 40 ****
! # include <des.h>
--- 40,47 ----
! /* DES support */
! #ifdef WITH_DES
! # ifdef WITH_SSL_DES
! #  include <openssl/des.h>
! # else /* system DES library */
! #  include <des.h>
! # endif
! #endif /* WITH_DES */

Regards,
Mark Keasling <mark at air.co.jp>





More information about the Info-cyrus mailing list