I did a grep on the use of apxs in the modperl pm files and
found that it is used to extract 4 different variables (includedir,
prefix, cflags, libexecdir).
if $build->apxs (Apache::Build::apxs) was not used, the same
functionality could be achieved that storing those values in the $build
hash.
The apxs script in the apache bin directory, works by reading the file
"config_vers.mk"
and converting the variables into a hash, and extracting the targeted
parameter value.
when modperl is built the Makefile.PL asks if the "../httpd-2.0" or
similar path should
be used to configure ModPerl. I think the intent is to use that specfic
instance of apache to extract these specfic variables. As near as I can
tell, only the apxs function (these 4 variables) are the only use of this
configuration path.
so either we change the Makefile.PL functionality to point to an
"installed apache" directory _or_ we change the build::apxs function
to not use the non-functional apxs script.
In the current build::apxs code the function tries to guess where a
functioning apxs script resides. the array @trys contains the list
of potiential target directories
my @trys = ($Apache::Build::APXS,
$self->{MP_APXS},
$ENV{MP_APXS});
and
push @trys,
Apache::TestConfig::which('apxs'),
'/usr/local/apache/bin/apxs';
as nears as I can tell, the last option is a hard-code hack that will
fail for most sites
None of these options will include $build->dir path that was set by
Makefile.PL
so we can add the source tree for Apache2 to this list of directories
to try and keep
some part of the apxs function, or we replace the apxs function with a
function that
extracts the variables from the equivalent config file.
(source tree: apxs exists in the support sub directory )
(installed tree apxs exists in the bin directory) in both cases
apxs trys to read
get_config_vars("$installbuilddir'config_vers.mk")
---
Summary: current instance of $build->apxs is used for only four
variables, but attempts to guess a location for apxs. Current design
ignores the explict path of the preinstalled apache source tree to
determine which config_variable file to read.
under some circumstances this would cause mp2 configuration to read
apache1.0 parameters, even when there exists target apache2
configuration data. further it does not allow for multiple apache2
installs.
and no I don't know enough context ...yet.. to know the right way to
solve this
but TMTOWTDI.
--
Kermit Tensmeyer
[EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]