Barry Hoggard wrote:
I'm trying to do a new install of apache and mod_perl on a Red Hat Linux box. I've build my own perl 5.8.1 in /opt/. This is the first time I've had a build fail in years.


Red Hat Enterprise Linux ES release 2.1 (Panama) Apache 1.3.29 mod_perl 1.29

perl -V:

Summary of my perl5 (revision 5.0 version 8 subversion 1) configuration:
Platform:
osname=linux, osvers=2.4.9-e.27, archname=i686-linux
uname='linux server1.tristanmedia.net 2.4.9-e.27 #1 tue aug 5 15:59:55 edt 2003 i686 unknown '
config_args='-Dprefix=/opt/perl-5.8.1 -des'
hint=recommended, useposix=true, d_sigaction=define
usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
optimize='-O2',
cppflags='-fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm'
ccversion='', gccversion='2.96 20000731 (Red Hat Linux 7.2 2.96-118.7.2)', 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=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
libc=/lib/libc-2.2.4.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.2.4'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'



Characteristics of this binary (from libperl): Compile-time options: USE_LARGE_FILES Built under linux Compiled at Oct 16 2003 12:06:43 %ENV: PERL5LIB=".:/home/bhoggard/dev/artcat/lib" @INC: . /home/bhoggard/dev/artcat/lib /opt/perl-5.8.1/lib/5.8.1/i686-linux /opt/perl-5.8.1/lib/5.8.1 /opt/perl-5.8.1/lib/site_perl/5.8.1/i686-linux /opt/perl-5.8.1/lib/site_perl/5.8.1 /opt/perl-5.8.1/lib/site_perl .

___


My build steps:


cd apache_1.3.29
./configure --prefix=/home/httpd/httpd_perl --enable-module=proxy \
  --enable-module=rewrite
cd ../mod_perl-1.29
perl Makefile.PL APACHE_PREFIX=/home/httpd/httpd_perl \
  APACHE_SRC=../apache_1.3.29/src NO_HTTPD=1 USE_APACI=1 \
  EVERYTHING=1 PREP_HTTPD=1 APACI_ARGS='--disable-module=userdir \
  --enable-module=proxy --enable-module=mod_rewrite'
make

____

After all of the cp lines, this happens:

make[1]: Entering directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Apache'
cp Apache.pm ../blib/lib/Apache.pm
Manifying ../blib/man3/Apache.3
make[1]: Leaving directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Apache'
make[1]: Entering directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Connection'
cp Connection.pm ../blib/lib/Apache/Connection.pm
make[1]: Leaving directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Connection'
make[1]: Entering directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Constants'
cp Constants.pm ../blib/lib/Apache/Constants.pm
Manifying ../blib/man3/Apache::Constants.3
make[1]: Leaving directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Constants'
make[1]: Entering directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/File'
cp File.pm ../blib/lib/Apache/File.pm
Manifying ../blib/man3/Apache::File.3
make[1]: Leaving directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/File'
make[1]: Entering directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Leak'
cp Leak.pm ../blib/lib/Apache/Leak.pm
/opt/perl-5.8.1/bin/perl /opt/perl-5.8.1/lib/5.8.1/ExtUtils/xsubpp -typemap /opt/perl-5.8.1/lib/5.8.1/ExtUtils/typemap -typemap typemap Leak.xs > Leak.xsc && mv Leak.xsc Leak.c
cc -c -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -DVERSION=\"1.00\" -DXS_VERSION=\"1.00\" -fpic "-I/opt/perl-5.8.1/lib/5.8.1/i686-linux/CORE" Leak.c
Running Mkbootstrap for Apache::Leak ()
chmod 644 Leak.bs
rm -f ../blib/arch/auto/Apache/Leak/Leak.so
LD_RUN_PATH="" cc -shared -L/usr/local/lib Leak.o -o ../blib/arch/auto/Apache/Leak/Leak.so
chmod 755 ../blib/arch/auto/Apache/Leak/Leak.so
cp Leak.bs ../blib/arch/auto/Apache/Leak/Leak.bs
chmod 644 ../blib/arch/auto/Apache/Leak/Leak.bs
Manifying ../blib/man3/Apache::Leak.3
make[1]: Leaving directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Leak'
make[1]: Entering directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Log'
cp Log.pm ../blib/lib/Apache/Log.pm
Manifying ../blib/man3/Apache::Log.3
make[1]: Leaving directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Log'
make[1]: Entering directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/ModuleConfig'
cp ModuleConfig.pm ../blib/lib/Apache/ModuleConfig.pm
make[1]: Leaving directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/ModuleConfig'
make[1]: Entering directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/PerlRunXS'
cp PerlRunXS.pm ../blib/lib/Apache/PerlRunXS.pm
Manifying ../blib/man3/Apache::PerlRunXS.3
make[1]: Leaving directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/PerlRunXS'
make[1]: Entering directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Server'
cp Server.pm ../blib/lib/Apache/Server.pm
make[1]: Leaving directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Server'
make[1]: Entering directory `/home/bhoggard/src/httpd_perl/mod_perl-1.29/Symbol'
cp Symbol.pm ../blib/lib/Apache/Symbol.pm
/opt/perl-5.8.1/bin/perl /opt/perl-5.8.1/lib/5.8.1/ExtUtils/xsubpp -typemap /opt/perl-5.8.1/lib/5.8.1/ExtUtils/typemap Symbol.xs > Symbol.xsc && mv Symbol.xsc Symbol.c
cc -c -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -DVERSION=\"1.31\" -DXS_VERSION=\"1.31\" -fpic "-I/opt/perl-5.8.1/lib/5.8.1/i686-linux/CORE" Symbol.c
Running Mkbootstrap for Apache::Symbol ()
chmod 644 Symbol.bs
rm -f ../blib/arch/auto/Apache/Symbol/Symbol.so
LD_RUN_PATH="" cc -shared -L/usr/local/lib Symbol.o -o ../blib/arch/auto/Apache/Symbol/Symbol.so
chmod 755 ../blib/arch/auto/Apache/Symbol/Symbol.so
cp Symbol.bs ../blib/arch/auto/Apache/Symbol/Symbol.bs
chmod 644 ../blib/arch/auto/Apache/Symbol/Symbol.bs
Can't locate loadable object for module Apache::Symbol in @INC (@INC contains: PERL5LIB=/home/bhoggard/src/httpd_perl/mod_perl-1.29/lib .

It looks like you have a bad setting for PERL5LIB, it seems that it's set to: PERL5LIB = "PERL5LIB=/home/bhoggard/src/httpd_perl/mod_perl-1.29/lib .",

/home/bhoggard/dev/artcat/lib /opt/perl-5.8.1/lib/5.8.1/i686-linux /opt/perl-5.8.1/lib/5.8.1 /opt/perl-5.8.1/lib/site_perl/5.8.1/i686-linux /opt/perl-5.8.1/lib/site_perl/5.8.1 /opt/perl-5.8.1/lib/site_perl .) at /opt/perl-5.8.1/lib/5.8.1/Pod/Parser.pm line 210
Compilation failed in require at /opt/perl-5.8.1/lib/5.8.1/Pod/Parser.pm

As it's chdir'ed to


/home/bhoggard/src/httpd_perl/mod_perl-1.29/Symbol

and it has '.' early in @INC, requiring Pod/Parser.pm, requires Symbol.pm, which it finds in mod_perl-1.29/Symbol, but that's a wrong Symbol.pm. That's why you get this error. You really want to get rid of that misplaced '.' in your @INC. Notice that "." must be the last entry in @INC, and you have it already.

Makefile.PL does:

  $ENV{PERL5LIB} = join ':', "$PWD/lib", $ENV{PERL5LIB};
  PERL5LIB => "PERL5LIB=$ENV{PERL5LIB}",

So it's your PERL5LIB setting that adds that '.' into the path. Fix it and the problem will go away. To fix either unset it or do a local override:

PERL5LIB="" perl Makefile.PL ...

Now can somebody explain to me why modperl has:

PERL5LIB => "PERL5LIB=$ENV{PERL5LIB}",

I can't see how is it going to work:

env PERL5LIB="PERL5LIB=/tmp" perl-5.8.1 -le 'print join "\n", @INC'
PERL5LIB=/tmp
/home/stas/perl/5.8.1/lib/5.8.1/i686-linux
/home/stas/perl/5.8.1/lib/5.8.1
/home/stas/perl/5.8.1/lib/site_perl/5.8.1/i686-linux
/home/stas/perl/5.8.1/lib/site_perl/5.8.1
/home/stas/perl/5.8.1/lib/site_perl
.

it doesn't really add /tmp to @INC. Do I miss somethng?

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


-- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html



Reply via email to