[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