Compiliation problem of Cyrus-sasl2 with PAM on slackware linux 13.1

Dan White dwhite at olp.net
Mon Apr 25 10:58:19 EDT 2011


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 at xxxxx:/usr/local/src/cyrus-sasl2_2.1.23.dfsg1# saslauthd -v*
>saslauthd 2.1.23
>
>authentication mechanisms: getpwent rimap shadow ldap
>
>*root at 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 at 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


More information about the Cyrus-sasl mailing list