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

Dan White dwhite at olp.net
Wed Apr 27 10:03:29 EDT 2011


On 27/04/11 09:54 +0300, kibirango moses wrote:
>Hullo Users,
>
>I have reinstalled an tried the  above instructions and i still have
>the pam_start error as indicated in the config.log file below :
>
>root at mailbackup:/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

'--enable-pam' is not a valid option. '--with-bdblibdir' is a typo.

If your headers are in /usr/include/security, and your pam library in
/usr/lib, then you'd want to do:

--with-pam=/usr

A successful config.log should look something like:

configure:6916: checking for security/pam_appl.h
configure:6921: result: yes
configure:6916: checking for pam/pam_appl.h
configure:6921: result: no
configure:7054: checking for pam_start
configure:7124: result: no
configure:7162: gcc -o conftest -Wall -W -g -O2   -I/usr/include
-L/usr/lib conftest.c -lpam  >&5
configure: In function 'main':
configure:7169:1: error: 'pam_handle_t' undeclared (first use in this
function)
configure:7169:1: note: each undeclared identifier is reported only once
for each function it appears in
configure:7169:15: error: 'pamh' undeclared (first use in this function)
configure:7172:1: warning: implicit declaration of function 'pam_start'

...

ac_cv_header_pam_pam_appl_h=no
ac_cv_header_paths_h=yes
ac_cv_header_security_pam_appl_h=yes


Which means that pam_appl.h was successfully found in
/usr/include/security/, but not /usr/include/pam/.


>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:6961: checking pam/pam_appl.h presence
>configure:7033: checking for pam/pam_appl.h
>configure:7054: checking for pam_start
>/usr/local/src/cyrus-sasl2_2.1.23.dfsg1/configure:7116: undefined
>reference to `pam_start'
>/tmp/ccsfJ0eS.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;
>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
>/usr/lib64/gcc/x86_64-slackware-linux/4.4.4/../../../../x86_64-slackware-linux/bin/ld:
>cannot find -lpam
>| #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=yes
>ac_cv_header_security_pam_appl_h=yes
>
>Kindly requesting for advice on how to fix this asap
>
>Thanx
>
>
>>>*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

On closer inspection, this looks OK.

What does saslauthd/config.log look like? any additional errors there?

-- 
Dan White


More information about the Cyrus-sasl mailing list