Subject: Apache2 + mod_perl headache.
To: None <pkgsrc-users@netbsd.org>
From: Johan Ihren <johani@johani.org>
List: pkgsrc-users
Date: 02/13/2007 16:33:01
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,

I have something that looks like a circular dependency confusion wrt  
mod_perl and Apache2::Request. I've tried everything I can think of  
to sort this out, but to no avail.

Details:

This is a freshly configured machine running NetBSD 3.1 + apache  
2.0.59nb1 + perl5.8.8nb3 + p5-libapreq2-2.0.7 (and various other  
sundry perl modules) all installed via pkg_add from the 2006-Q3 branch.

In httpd.conf I have:

LoadModule apreq_module lib/httpd/mod_apreq2.so
LoadModule perl_module lib/httpd/mod_perl.so

The httpd.conf does load the Apache2::Request and mod_perl modules as  
signalled by the apachec greeting message:

[notice] Apache/2.0.59 (Unix) mod_ssl/2.0.59 OpenSSL/0.9.d DAV/2  
mod_apreq2-20051231/2.5.7 mod_perl/2.0.1 Perl/v5.8.8 configured --  
resuming normal operations

On this machine I have a piece of code that starts like this:

- ----
use strict;
use mod_perl;
use Apache2::Request;
...
- ----
Everything needed to run this should be installed. The problem is  
that when I try to execute this code I get the following error:

[date] [error] [client 10.0.0.1] /usr/pkg/lib/perl5/vendor_perl/5.8.0/ 
i386-netbsd-thread-multi/auto/APR/Request/Apache2/Apache2.so:  
Undefined PLT symbol "modperl_xs_sv2request_rec" (symnum = 38),  
referer: http://www.foo.bar/

Ok, so this is Apache2::Request not being able to find the  
modperl_xs_sv2request_rec. This object is defined in /usr/pkg/lib/ 
httpd/mod_perl.so:

# nm -B /usr/pkg/lib/httpd/mod_perl.so | grep modperl_xs_sv2req
00013929 T modperl_xs_sv2request_rec

But according to the apache greeting message it does load mod_perl  
(and other mod_perl dependent things work). So what's going on here?

Johan

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)

iD8DBQFF0dowKJmr+nqSTbYRAmvEAJ4i1BqI9JHhq4OvHzMQyTE1mv3buACgiOBr
qSr1z30hmafvYgviN7TgfSQ=
=jfKQ
-----END PGP SIGNATURE-----