More info. I've tried to see different between Debian 3.0 (where freeradius is working) and Debian 3.1. Excerpt from "perl -V" on 3.0, where FR *works*: Linker and Libraries: ld='gcc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -lndbm -ldb -ldl -lm -lc -lposix -lcrypt -lutil perllibs=-lnsl -ldl -lm -lc -lposix -lcrypt -lutil libc=/lib/libc-2.1.3.so, so=so, useshrplib=false, libperl=libperl.a So it's static (libperl.a). Perhaps that's the cause why FR has no problems here :? Nevertheless, in Debian 3.1 (where FR is giving problems), it's using libperl.so (or the correspondant link in /usr/lib). One of the simmilar threads I've found is: http://lists.cistron.nl/pipermail/freeradius-users/2005-April/042978.html But I don't see the solution there. I checked that rlm_perl.so is linked against: libperl.so.5.8 => /usr/lib/libperl.so.5.8 (0x40012000) while "perl -V" says "libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libperl.so.5.8.4" Although they're the same file: raclde01:~# ls -l /usr/lib/libperl* -rw-r--r-- 1 root root 1400854 Mar 8 11:15 /usr/lib/libperl.a lrwxrwxrwx 1 root root 14 Aug 23 16:57 /usr/lib/libperl.so -> libperl.so.5.8 lrwxrwxrwx 1 root root 16 Aug 23 15:56 /usr/lib/libperl.so.5.8 -> libperl.so.5.8.4 -rw-r--r-- 1 root root 1150824 Mar 8 11:15 /usr/lib/libperl.so.5.8.4 raclde01:~# Any ideas, please? :-( Cheers, -Román Roman Medina-Heigl Hernandez wrote:
Hi,
I'm trying to get FR 1.0.4 to work with new Debian stable distro (3.1). I need rlm_perl so I run ./configure with --with-experimental-modules and compiled it from source (latest .tgz downloaded from freeradius.org):
# tar zxvf freeradius-1.0.4.tar.gz # chown -R root. freeradius-1.0.4 # cd freeradius-1.0.4 # ./configure --with-experimental-modules --prefix=/usr/local/freeradius # make # make install
Compile/build process is ok. Then I configured it to use a perl script and that's what I get when trying to start radiusd:
raclde01:/usr/local/freeradius/sbin# ./radiusd -X Starting - reading configuration files ... reread_config: reading radiusd.conf Config: including file: /etc/freeradius/proxy.conf Config: including file: /etc/freeradius/clients.conf Config: including file: /etc/freeradius/snmp.conf Config: including file: /etc/freeradius/eap.conf Config: including file: /etc/freeradius/sql.conf main: prefix = "/usr" main: localstatedir = "/var" main: logdir = "/var/log/freeradius" main: libdir = "/usr/lib/freeradius" main: radacctdir = "/var/log/freeradius/radacct" main: hostname_lookups = no main: max_request_time = 30 main: cleanup_delay = 5 main: max_requests = 1024 main: delete_blocked_requests = 0 main: port = 0 main: allow_core_dumps = no main: log_stripped_names = no main: log_file = "/var/log/freeradius/radius.log" main: log_auth = no main: log_auth_badpass = no main: log_auth_goodpass = no main: pidfile = "/var/run/freeradius/freeradius.pid" main: user = "freerad" main: group = "freerad" main: usercollide = no main: lower_user = "no" main: lower_pass = "no" main: nospace_user = "no" main: nospace_pass = "no" main: checkrad = "/usr/sbin/checkrad" main: proxy_requests = yes proxy: retry_delay = 5 proxy: retry_count = 3 proxy: synchronous = no proxy: default_fallback = yes proxy: dead_time = 120 proxy: post_proxy_authorize = yes proxy: wake_all_if_all_dead = no security: max_attributes = 200 security: reject_delay = 1 security: status_server = no main: debug_level = 0 read_config_files: reading dictionary read_config_files: reading naslist Using deprecated naslist file. Support for this will go away soon. read_config_files: reading clients read_config_files: reading realms radiusd: entering modules setup Module: Library search path is /usr/lib/freeradius Module: Loaded exec exec: wait = yes exec: program = "(null)" exec: input_pairs = "request" exec: output_pairs = "(null)" exec: packet_type = "(null)" rlm_exec: Wait=yes but no output defined. Did you mean output=none? Module: Instantiated exec (exec) Module: Loaded expr Module: Instantiated expr (expr) Module: Loaded perl perl: module = "/usr/local/usr/local/freeradius/bin/freeradius_test.pl" perl: func_authorize = "authorize" perl: func_authenticate = "authenticate" perl: func_accounting = "accounting" perl: func_preacct = "preacct" perl: func_checksimul = "checksimul" perl: func_detach = "detach" perl: func_xlat = "xlat" perl: perl_flags = "(null)" perl: func_start_accounting = "start_accounting" perl: func_stop_accounting = "stop_accounting" ./radiusd: relocation error: /usr/lib/perl/5.8/auto/IO/IO.so: undefined symbol: Perl_Tstack_sp_ptr raclde01:/usr/local/freeradius/sbin#
It's strange because I followed the same process with FR 1.0.2 on Debian 3.0 (oldstable - Woody) 1 or 2 months ago and I got success (no problems at all). So I don't know whether I have a problem with Perl / Debian or it is freeradius related. Perhaps am I missing some perl package in my Debian sarge?
Has somebody tested FR + rlm_perl on Debian Sarge? Any idea on what's happening? If you need more info, I could provide it.
For instance: raclde01:/usr/local/freeradius/sbin# dpkg -l | grep perl ii libdbi-perl 1.46-6 Perl5 database interface by Tim Bunce ii libdigest-perl 1.10-1 generic interface to message digest modules rc libnet-perl 1.09.01-1 Implementation of Internet protocols for Per ii libnet-server- 0.87-3 An extensible, general perl server engine ii libnetserver-g 1.03-7 A perl module for developing internet server ii libperl-dev 5.8.4-8 Perl library: development files ii libperl5.8 5.8.4-8 Shared Perl library ii libperlio-via- 0.11-1 dynamic PerlIO layers ii libplrpc-perl 0.2017-1 Perl extensions for writing PlRPC servers an ii liburi-perl 1.35-1 Manipulates and accesses URI strings ii libwww-perl 5.803-4 WWW client/server library for Perl (aka LWP) ii perl 5.8.4-8 Larry Wall's Practical Extraction and Report ii perl-base 5.8.4-8 The Pathologically Eclectic Rubbish Lister rc perl-doc 5.6.1-8.9 Perl documentation. ii perl-modules 5.8.4-8 Core Perl modules
raclde01:/usr/local/freeradius/sbin# perl -V Summary of my perl5 (revision 5 version 8 subversion 4) configuration: Platform: osname=linux, osvers=2.4.27-ti1211, archname=i386-linux-thread-multi uname='linux kosh 2.4.27-ti1211 #1 sun sep 19 18:17:45 est 2004 i686 gnulinux ' config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i386-linux -Dprefix=/usr -Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.8.4 -Dsitearch=/usr/local/lib/perl/5.8.4 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Uusenm -Duseshrplib -Dlibperl=libperl.so.5.8.4 -Dd_dosuid -des' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -I/usr/local/include' ccversion='', gccversion='3.3.5 (Debian 1:3.3.5-9)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt perllibs=-ldl -lm -lpthread -lc -lcrypt libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libperl.so.5.8.4 gnulibc_version='2.3.2' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'
Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT Built under linux Compiled at Mar 8 2005 19:51:48 @INC: /etc/perl /usr/local/lib/perl/5.8.4 /usr/local/share/perl/5.8.4 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . raclde01:/usr/local/freeradius/sbin#
Thanks in advance. -Roman
PS: I searched the list archive and other sources. I found other similar "symbol problems" but I did some tests (tried proposed solutions, etc) and I didn't got success, so I'm not really sure whether the origin of the problem is the same or not... Your help is appreciated. PS2: I also tried to rebuild FR package for Debian (which is currently 1.0.2 on Sarge), adding rlm_perl support (basically --with-experimental-modules). Build is correct but I have similar problems with symbols :-(
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html