hi,

i just ran into a *possible* bug in Makefile.PL:

if one wants to seamlessly build apache, mod_perl and other modules
using apaci with Makefile.PL, there is no way to *activate* other
modules, because they only get *enabled*:

perl Makefile.PL USE_APACI=1 ADD_MODULE=src/modules/fastcgi/libfastcgi.a
APACHE_PREFIX=/usr/local/httpd.fcgi

results in:

[...]
PerlConnectionApi...........enabled
PerlServerApi...............enabled
PerlSections................disabled (enable with PERL_SECTIONS=1)
 
PerlSSI.....................disabled (enable with PERL_SSI=1)
 
Will run tests as User: 'nobody' Group: 'root'
(cd ../apache_1.3.9 && CC="cc" ./configure
--activate-module=src/modules/perl/libperl.a
--prefix=/usr/local/httpd.fcgi --enable-module=src)
Configuring for Apache, Version 1.3.9
 + using installation path layout: Apache (config.layout)
 + activated perl module (modules/perl/libperl.a)
configure:Error: No such module named 'src' 
[...]

the problem apprears to be the following if/else statement in lines
912-917 of Makefile.PL:

               if(/([a-zA-Z0-9][a-zA-Z0-9_]*)/) {
                    $cmd .= " --enable-module=$1";
                }
                elsif(m:(src/modules/[^/]+/[a-zA-Z0-9][a-zA-Z0-9_]*):) {
                    $cmd .= " --activate-module=$1";
                }

obviously the evaluation should be turned around, because the
([a-zA-Z0-9][a-zA-Z0-9_]*) evaluates true every time:

                if(m:(src/modules/[^/]+/[a-zA-Z0-9][a-zA-Z0-9_]*):) {
                    $cmd .= " --activate-module=$1";
                }
                elsif(/([a-zA-Z0-9][a-zA-Z0-9_]*)/) {
                    $cmd .= " --enable-module=$1";
                }

... which results in a successful build.

greets

Udo Rader
begin:vcard 
n:Rader;Udo
tel;fax:+43 512 341934 20
tel;work:+43 512 341934 33
x-mozilla-html:TRUE
org:proFILE Computersysteme GmbH;R&D
adr:;;Eduard-Bodem-Gasse 6;Innsbruck;Austria;A-6020;
version:2.1
email;internet:[EMAIL PROTECTED]
title:developer
x-mozilla-cpt:;-3328
fn:Udo Rader
end:vcard

Reply via email to