[Date Prev][Date Next] [Chronological] [Thread] [Top]

more about perl backend and external perl modules



-------------
root@gnp43:/home/pwadas# slapd -4 -d3872 -h ldap://192.168.0.221/ 
ldapi:///
@(#) $OpenLDAP: slapd 2.3.35 (May 12 2007 16:57:50) $
        
root@gnp43.internetdsl.tpnet.pl:/home/pwadas/SRC/SLAPD-NEW/openldap-2.3.35/servers/slapd
Error Can't load '/usr/lib/perl/5.8/auto/POSIX/POSIX.so' for module POSIX: 
/usr/lib/perl/5.8/auto/POSIX/POSIX.so: undefined symbol: PL_sig_name at 
/usr/lib/perl/5.8/XSLoader.pm line 70.
 at /usr/lib/perl/5.8/POSIX.pm line 26
Compilation failed in require at /etc/ldap/PerlBackend.pm line 26.
BEGIN failed--compilation aborted at /etc/ldap/PerlBackend.pm line 26.
Compilation failed in require at (eval 2) line 1.
BEGIN failed--compilation aborted at (eval 2) line 1.

WARNING: No dynamic config support for database perl.
Can't call method "init" on an undefined value.
root@gnp43:/home/pwadas# 


root@gnp43:~/SRC/SLAPD-NEW# perl --version

This is perl, v5.8.8 built for i486-linux-gnu-thread-multi
------------

Hello,
I got the above error, when I try to start slapd,
with perl backends, and some "use" lines in script.
No matter what perl package I try to use (POSIX, DBI, whatever),
I get similar error regarding perl library.

I tried to rebuild perl and its modules, and
rebuild openldap (tried 2.3.30 and 2.3.35 versions), with
no effect.
Is there some limitation on perl backend, because of
kind of the way it's embedded into slapd, which actually
disallow usage of external modules? It seems slapd runs
fine, when I don't put any "use" lines into backend perl file (*.pm)
Should I try without threading, or what? 

I've seen this thing being reported a few times on
various lists, including some linux distribution bugzillas,
anyway there was no answer, see e.g. this
https://bugs.launchpad.net/ubuntu/+source/openldap2.2/+bug/90812

This slapd 2.3.35 was built with the following options:

--prefix=/usr
--libexecdir=/usr/lib
--sysconfdir=/etc
--localstatedir=/var
--mandir=/usr/share/man
--enable-debug
--enable-dynamic
--enable-syslog
--enable-proctitle
--enable-ipv6
--enable-local
--enable-slapd
--enable-aci
--enable-cleartext
--enable-crypt
--enable-spasswd
--enable-modules
--enable-rewrite
--enable-rlookups
--enable-slp
--enable-wrappers
--enable-backends=mod
--enable-overlays=mod
--enable-slurpd
--with-subdir=ldap
--with-cyrus-sasl
--with-threads
--with-tls
--enable-bdb=mod
--enable-dnssrv=mod
--enable-hdb=mod
--enable-ldap=mod
--enable-ldbm=mod
--enable-meta=mod
--enable-monitor=mod
--enable-null=mod
--enable-passwd=mod
--enable-perl=mod
--enable-relay=mod
--enable-shell=mod
--enable-sql=mod
--enable-accesslog=mod
--enable-auditlog=mod
--enable-denyop=mod
--enable-dyngroup=mod
--enable-dynlist=mod
--enable-lastmod=mod
--enable-ppolicy=mod
--enable-proxycache=mod
--enable-refint=mod
--enable-retcode=mod
--enable-rwm=mod
--enable-syncprov=mod
--enable-translucent=mod
--enable-unique=mod
--enable-valsort=mod

and the part from slapd.conf (of course the same happens with only one 
directory in perlModulePath, containing PerlBackend.pm)

database        perl
suffix          "dc=example"
perlModulePath  /etc/ldap /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl
perlModule      PerlBackend


"PerlBackend.pm" is the file from slapd distribution, SampleLDAP, I just 
renamed it.

Regards,
Piotr