On 23/04/11 11:04 +0300, kibirango moses wrote:
Hullo Users, I am having a compilation problem of Cyrus-sasl2 with Pam . The Pam authentication mechanism is missing and unknown *root@xxxxx:/usr/local/src/cyrus-sasl2_2.1.23.dfsg1# saslauthd -v* saslauthd 2.1.23 authentication mechanisms: getpwent rimap shadow ldap *root@xxxxx:/usr/local/src/cyrus-sasl2_2.1.23.dfsg1# saslauthd -a pam* saslauthd[31056] :set_auth_mech : unknown authentication mechanism: pam *Configure statement:* ./configure --enable-anon --enable-pam --enable-plain --enable-login --enable-sql --disable-krb4 --disable-otp --disable-cram --disable-digest --with-mys ql=/usr/local/mysql/lib/mysql --with-pam=/usr/include/security --with-pwcheck=/var/state/saslauthd --with-openssl=/usr/local/ssl --with-dblib=berkeley --with -plugindir=/usr/local/lib/sasl2 --with-bdblibdir=/usr/local/berkeley/lib --with-bdb-incdir=/usr/local/berkeley/include --with-dbpath=/var/lib/sasl/sasldb2 -- with-saslauthd=/var/state/saslauthd --with-ldap --enable-ldapdb
There is no --enable-pam that I see. There is a: --with-pam=DIR use PAM (rooted in DIR) yes But you probably only need to use that option if your pam installation is in a location that ./configure cannot find.
*Errors in config.log:* *root@xxxxx:/usr/local/src/cyrus-sasl2_2.1.23.dfsg1# cat config.log |grep pam* $ ./configure --enable-anon --enable-pam --enable-plain --enable-login --enable-sql --disable-krb4 --disable-otp --disable-cram --disable-digest --with-mysql=/usr/local/mysql/lib/mysql --with-pam=/usr/include/security --with-pwcheck=/var/state/saslauthd --with-openssl=/usr/local/ssl --with-dblib=berkeley --with-plugindir=/usr/local/lib/sasl2 --with-bdblibdir=/usr/local/berkeley/lib --with-bdb-incdir=/usr/local/berkeley/include --with-dbpath=/var/lib/sasl/sasldb2 --with-saslauthd=/var/state/saslauthd --with-ldap --enable-ldapdb configure:6925: checking security/pam_appl.h usability configure:6961: checking security/pam_appl.h presence configure:7033: checking for security/pam_appl.h configure:6925: checking pam/pam_appl.h usability configure:6986:26: error: pam/pam_appl.h: No such file or directory | #include <pam/pam_appl.h> configure:6961: checking pam/pam_appl.h presence configure:6988:26: error: pam/pam_appl.h: No such file or directory | #include <pam/pam_appl.h>
That indicates that ./configure can't find pam/pam_appl.h, whereever it may be installed. If that file is installed, but ./configure isn't doing the right thing, you could specify a --with-pam, or you could specify a 'CPPFLAGS' environment variable to assist it with finding the location, like: CPPFLAGS='-I/usr/local/include/pam/' export CPPFLAGS ./configure ...
configure:7033: checking for pam/pam_appl.h configure:7054: checking for pam_start /usr/local/src/cyrus-sasl2_2.1.23.dfsg1/configure:7115: undefined reference to `pam_start' /tmp/ccebUB6u.o:(.data+0x0): undefined reference to `pam_start' | which can conflict with char pam_start (); below. | char pam_start (); | #if defined (__stub_pam_start) || defined (__stub___pam_start) | char (*f) () = pam_start; | return f != pam_start;
And if you have linking errors, you might have to do: LDFLAGS='-L/usr/local/lib/pam' export LDFLAGS as well. See ./configure --help for details.
configure:7162: gcc -o conftest -Wall -W -g -O2 -I/usr/local/mysql/include/mysql -I/usr/include/security/include -L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/include/security/lib conftest.c -lpam >&5 configure:7169: error: 'pam_handle_t' undeclared (first use in this function) configure:7169: error: 'pamh' undeclared (first use in this function) configure:7172: warning: implicit declaration of function 'pam_start' | #include <pam/pam_appl.h> | #include <security/pam_appl.h> | pam_handle_t *pamh; | struct pam_conv *conv; | baz = pam_start(service, user, conv, &pamh); configure:17004: running /bin/sh './configure' --prefix=/usr/local '--enable-anon' '--enable-pam' '--enable-plain' '--enable-login' '--enable-sql' '--disable-krb4' '--disable-otp' '--disable-cram' '--disable-digest' '--with-mysql=/usr/local/mysql/lib/mysql' '--with-pam=/usr/include/security' '--with-pwcheck=/var/state/saslauthd' '--with-openssl=/usr/local/ssl' '--with-dblib=berkeley' '--with-plugindir=/usr/local/lib/sasl2' '--with-bdblibdir=/usr/local/berkeley/lib' '--with-bdb-incdir=/usr/local/berkeley/include' '--with-dbpath=/var/lib/sasl/sasldb2' '--with-saslauthd=/var/state/saslauthd' '--with-ldap' '--enable-ldapdb' 'CPPFLAGS=-I/usr/local/mysql/include/mysql' 'LDFLAGS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm' --cache-file=.././config.cache --srcdir=. ac_cv_func_pam_start=no ac_cv_header_pam_pam_appl_h=no ac_cv_header_security_pam_appl_h=yes Couls this be the problem and How can i fix this. It is really problematic Thanx Moses
-- Dan White