perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin A. McGrail" <KMcGr...@PCCC.com>
Subject Re: mod_perl and httpd-2.4
Date Tue, 05 Jun 2012 00:21:21 GMT
On 6/4/2012 7:46 AM, Jan Kaluža wrote:
> On 05/09/2012 09:40 AM, Jan Kaluža wrote:
>> Right, those patches only hardcodes it for httpd-2.4. The next step
>> should be to probably put #ifdefs around remote_ip. Other things should
>> be done by source_scan script I believe.
>>
>
> I've splitted the patch into separate patches. This is against 
> mod_perl-2.0.6. With those patches, mod_perl compiles against 
> httpd-2.2 and also against httpd-2.4. It's based on the Stefan's work.
>
> http://jkaluza.fedorapeople.org/mod_perl/ 
I can't repeat your success because I can't compile against 2.4.

Specifically, Compiling against Apache 2.4.1 from source, I've tried the 
mod_perl 2.0.6 release with these patches on a CentOS 6.2 x64 system 
with a little bit of trouble.

Your patches apply cleanly but I throw this error trying to make based 
on the following config command: perl Makefile.PL 
MP_APXS=/usr/local/apache2/bin/apxs 
MP_APR_CONFIG=/usr/local/apache2/bin/apr-1-config

modperl_constants.c: In function 'modperl_constants_lookup_apache2_const':
modperl_constants.c:809: error: 'OPT_INCNOEXEC' undeclared (first use in 
this function)
modperl_constants.c:809: error: (Each undeclared identifier is reported 
only once
modperl_constants.c:809: error: for each function it appears in.)
make[1]: *** [modperl_constants.lo] Error 1
make[1]: Leaving directory `/usr/src/mod_perl-2.0.6/src/modules/perl'
make: *** [modperl_lib] Error 2

Looking at  ./src/modules/perl/modperl_constants.c has two references to 
OPT_INCNOEXEC.

This comes from ./xs/tables/current/Apache2/ConstantsTable.pm referring 
to OPT_INCNOEXEC.  If I remove that entry I get a lot further until I 
get to this error:

Connection.xs: In function 'XS_Apache2__Connection_remote_addr':
Connection.xs:117: error: 'conn_rec' has no member named 'remote_addr'
Connection.xs: In function 'XS_Apache2__Connection_remote_ip':
Connection.xs:134: error: 'conn_rec' has no member named 'remote_ip'
Connection.xs:138: error: 'conn_rec' has no member named 'remote_ip'
make[3]: *** [Connection.o] Error 1
make[3]: Leaving directory 
`/usr/src/mod_perl-2.0.6/WrapXS/Apache2/Connection'
make[2]: *** [subdirs] Error 2
make[2]: Leaving directory `/usr/src/mod_perl-2.0.6/WrapXS/Apache2'
make[1]: *** [subdirs] Error 2
make[1]: Leaving directory `/usr/src/mod_perl-2.0.6/WrapXS'
make: *** [subdirs] Error 2

To fix those, I edited  apache2_structures.map &  StructureTable.pm  to 
change remote_addr and remote_ip to client_addr and client_ip

That got me to:

ServerRec.xs: In function 'XS_Apache2__ServerRec_loglevel':
ServerRec.xs:160: error: 'server_rec' has no member named 'loglevel'
ServerRec.xs:164: error: 'server_rec' has no member named 'loglevel'
make[3]: *** [ServerRec.o] Error 1
make[3]: Leaving directory 
`/usr/src/mod_perl-2.0.6/WrapXS/Apache2/ServerRec'
make[2]: *** [subdirs] Error 2
make[2]: Leaving directory `/usr/src/mod_perl-2.0.6/WrapXS/Apache2'
make[1]: *** [subdirs] Error 2
make[1]: Leaving directory `/usr/src/mod_perl-2.0.6/WrapXS'
make: *** [subdirs] Error 2

To fix that, I changed the /xs/tables/current/Apache2/StructureTable.pm 
to point to log.level instead of loglevel.

That got me compiled.  A make test fails pretty badly though so not sure 
what state tests are in.

[warning] setting ulimit to allow core files
ulimit -c unlimited; /usr/bin/perl /usr/src/mod_perl-2.0.6/t/TEST 
-bugreport -verbose=0
/usr/local/apache2/bin/httpd  -d /usr/src/mod_perl-2.0.6/t -f 
/usr/src/mod_perl-2.0.6/t/conf/httpd.conf -D APACHE2 -D PERL_USEITHREADS
using Apache/2.4.1 (event MPM)

waiting 300 seconds for server to start: .[Mon Jun 04 20:00:02.886169 
2012] [env:warn] [pid 2704:tid 139952181413632] AH01506: PassEnv 
variable LD_LIBRARY_PATH was undefined
[  error] oh crap, server dumped core
[  error] for stacktrace, run: gdb /usr/local/apache2/bin/httpd -core 
/usr/src/mod_perl-2.0.6/core.2704
[  error]
server has died with status 255 (t/logs/error_log wasn't created, start 
the server in the debug mode)
[  error] oh jeez, server dumped core
[  error] for stacktrace, run: gdb /usr/local/apache2/bin/httpd -core 
/usr/src/mod_perl-2.0.6/core.2704
sh: line 1:  2599 Terminated              /usr/bin/perl 
/usr/src/mod_perl-2.0.6/t/TEST -bugreport -verbose=0
make: *** [run_tests] Error 143

Patch with the extra changes I needed are attached.  Perhaps it can 
help.  If someone can give me direction I can perform more testing, etc.

regards,
KAM

Mime
View raw message