ports/137694: lang/perl5.10 and lang/perl5.8 -- Embedded perl fails after libtool/libltdl upgrade
Alexander Hasenfuss
hasenfuss at rz.tu-clausthal.de
Wed Aug 12 12:00:21 UTC 2009
>Number: 137694
>Category: ports
>Synopsis: lang/perl5.10 and lang/perl5.8 -- Embedded perl fails after libtool/libltdl upgrade
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Aug 12 12:00:17 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: Alexander Hasenfuss
>Release: 7.2
>Organization:
Clausthal University of Technology
>Environment:
FreeBSD schluesselmeister-vm.rz.tu-clausthal.de 7.2-RELEASE-p3 FreeBSD 7.2-RELEASE-p3 #0: Thu Jul 30 09:27:38 CEST 2009 root at teufelchen.rz.tu-clausthal.de:/usr/obj/usr/src/sys/TEUFELCHEN i386
>Description:
We were facing the problem when installing the port net/freeradius2 with perl
module. The port maintainer was able to reproduce the problem. FreeRADIUS just
uses the interface described in perlembed(1), so it seems not to be a freeradius
problem.
>How-To-Repeat:
- Update ports to latest version (we use the base system FreeBSD
7.2-RELEASE-p3).
- Follow the steps in "/usr/ports/UPDATING" to update to the new libtool
version.
- Install net/freeradius2 from scratch with perl support (problem seems
to exist with both perl 5.10 and 5.8). All of following steps use the
sample configuration that comes with the FreeRADIUS distribution.
- Go to "/usr/local/etc/raddb/sites-enabled" and edit "inner-tunnel".
Add "perl" to the "authorize" section (e.g. right underneath the line
# ldap
is a good place).
- Run "radiusd -X".
This will produce the error message.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>The problem is clearly with dynamic linkage of the Data::Dumper module -
>though this module seems to work in a quick Perl program outside FreeRADIUS,
>so the problem only happens when Perl is embedded.
>
>The problem is similar to that described at
>http://archive.netbsd.se/?ml=zope-perl&a=2000-08&m=3936630
>(this is embedding Perl in Python)
>
>It appears that calls to dlopen made via rlm_perl may need " | RTLD_GLOBAL"
>adding to the 'mode' argument (see the man page for dlopen(3)). However, that
>system call is not made directly in rlm_perl - all that rlm_perl does is use
>the interface found in the perlembed(1) man page.
Here is the error message after starting "radiusd -X":
[...]
Module: Linked to module rlm_perl
Module: Instantiating perl
perl {
module = "/usr/local/etc/raddb/example.pl"
func_authorize = "authorize"
func_authenticate = "authenticate"
func_accounting = "accounting"
func_preacct = "preacct"
func_checksimul = "checksimul"
func_detach = "detach"
func_xlat = "xlat"
func_pre_proxy = "pre_proxy"
func_post_proxy = "post_proxy"
func_post_auth = "post_auth"
}
Can't load '/usr/local/lib/perl5/5.10.0/mach/auto/Data/Dumper/Dumper.so'
for module Data::Dumper:
/usr/local/lib/perl5/5.10.0/mach/auto/Data/Dumper/Dumper.so: Undefined
symbol "Perl_sv_cmp" at /usr/local/lib/perl5/5.10.0/mach/XSLoader.pm
line 64.
at /usr/local/lib/perl5/5.10.0/mach/Data/Dumper.pm line 36
Compilation failed in require at /usr/local/etc/raddb/example.pl line 30.
BEGIN failed--compilation aborted at /usr/local/etc/raddb/example.pl
line 30.
rlm_perl: perl_parse failed: /usr/local/etc/raddb/example.pl not found
or has syntax errors.
/usr/local/etc/raddb/modules/perl[7]: Instantiation failed for module
"perl"
/usr/local/etc/raddb/sites-enabled/inner-tunnel[130]: Failed to find
module "perl".
/usr/local/etc/raddb/sites-enabled/inner-tunnel[34]: Errors parsing
authorize section.
Errors initializing modules
Rebuilding perl and freeradius doesn't fix the problem.
More information about the freebsd-ports-bugs
mailing list