[Replying with the Outlook QuoteFix macro installed at last :-) ...] Torsten Förtsch wrote on 2012-02-18: > Hi, > > I am starting a new thread here because a) this is about RC2 not RC1 > and b) the RC1 thread is already too long for me to cope with. > > To summarize the current state as I see it. We have a RC2 at > > http://people.apache.org/~phred/mod_perl-2.0.6-rc2.tar.gz > It got 2 +1 for linux (me) and osx (fred). > > On windows Steve reported another problem with recursive "make" > invocations. He also sent a patch to the list but didn't commit it for > some reason. If I understood the patch correctly the problem are the > hard-wired "make" options (-k and -C). So, I committed a slightly > different patch (more makeish I think). > > Steve, could you please confirm that revision 1245946 works for you? >
I didn't commit because we're in the middle of making a release so I thought it
wouldn't be appropriate without the RM's approval. Anyway, I like your patch
better, and I can confirm that it works for me :-)
> I have also just committed revision 1290839 to have our top-level
> Makefile.PL pass on MP_APXS and MP_AP_PREFIX as environment variables.
> At least this patch doesn't disturb anything here. But I doubt that it
> solves Steve's Apache- Reload problem.
Indeed it doesn't solve my problem. As I wrote before, even setting the MP_APXS
environment variable myself before running Makefile.PL didn't help.
>
> The A::R Makefile.PL reads:
>
> ...
> if ($ENV{MOD_PERL_2_BUILD}) {
> push @ARGV, "-apxs $ENV{MP_APXS}";
> my $mp_gen = satisfy_mp_generation(2);
> }
> ...
>
> So the string "-apxs ..." is pushed to @ARGV as a single argument. I
> think that should rather read
>
> push @ARGV, "-apxs", $ENV{MP_APXS};
Yes, and hence we do indeed need to pass MP_APXS through in the environment, as
you've now done in revision 1290839, plus I need to run "perl Makefile.PL
MP_APXS=..." now (as per the INSTALL file!), rather than "perl Makefile.PL
MP_AP_PREFIX=..." (as I've always done). I'm ok with that, but see later:
> Steve, if you want to play with it remember to change the place where
> the additional parameter is removed from @ARGV later, as well. Around
> line 50 it
> reads:
>
> if ($ENV{MOD_PERL_2_BUILD}) {
> pop @ARGV; # that should now be 2 times pop or a
> splice
> }
> These lines of code are also present in A::SL and have their origin
> there. They appeared in revision 441414.
Pushing two args onto @ARGV as you suggest works for me, but splicing them off
again (splice @ARGV, -2) doesn't! It gives the error "Modification of
non-creatable array value attempted", due to check_for_apache_test() calling
Apache::TestMM::filter_args(), which actually assigns a new value to @ARGV (in
my case, an empty array!). Given that @ARGV is getting rewritten anyway, I
think it is simplest to not worry about trying pop the pushed values off again,
so the attached patch simply deletes the pop lines.
>
> Hopefully RC3 will then get 3 +1. I'd really like to get it over with
> before my vacation starting mid-next week but hope is weak.
>
>
> $ svn diff -c 1245946 Index: Makefile.PL
> =================================================================== ---
> Makefile.PL (revision 1245945) +++ Makefile.PL (revision 1245946) @@
> -789,24 +789,23 @@
> $(PASSENV) \
> $(FULLPERL) -I$(INST_ARCHLIB) -I$(INST_LIB) \
> t/TEST -bugreport -verbose=$(TEST_VERBOSE) $(TEST_FILES)
> - $(MAKE) -k run_subtests
>
> run_subtests ::
> - $(MAKE) -C ModPerl-Registry test
> + cd ModPerl-Registry && $(MAKE) test
>
> run_subtests ::
> - $(MAKE) -C Apache-Reload test
> + cd Apache-Reload && $(MAKE) test
>
> EOF
> $preamble .= <<'EOF' unless $build->mpm_is_threaded();
> run_subtests ::
> - $(MAKE) -C Apache-SizeLimit test
> + cd Apache-SizeLimit && $(MAKE) test
>
> EOF
> $preamble .= <<'EOF';
> -test :: pure_all run_tests test_clean
> +test :: pure_all run_tests run_subtests
> EOF
> return $preamble;
>
> Another funny discovery I made in our top-level Makefile.PL. There is a
> function named win32_fetch_apxs which is called almost first thing if we
> run on WIN32. It looks for a win32_fetch_apxs executable. I found such a
> script in build/. It tries to fetch the archive
> http://perl.apache.org/dist/win32- bin/apxs_win32.tar.gz via LWP. The
> newest files in this directory from 2007-04-18 03:32. Do we really need
> this?
I didn't realize that the top-level Makefile.PL actually fetches apxs for you
if you don't have it, but it seems worth leaving in if I understand things
correctly:
My understanding is that apxs is required for building modules likes mod_perl
and libapreq and that it normally gets installed with Apache httpd but doesn't
get installed on Win32, hence the existence of that separate apxs_win32.tar.gz
package. It was created by the sadly departed Randy Kobes, and has not been
updated since but currently still works.
I've always installed it manually first, and then built mod_perl, but it looks
like the mod_perl build will fetch it if it's missing, installing it into the
MP_AP_PREFIX location (if given on the command-line). Having said that, the
build currently doesn't work correctly on Win32 if you only specify
MP_AP_PREFIX as I've done up until now: we now need MP_APXS to be specified
too. Therefore, the attached patch also modifies the fetch function to set
$build->{MP_APXS}, akin to what prompt_for_apxs() does.
I'm curious how the build *does* work on other platforms, though: why has
nobody else hit the same problem with Apache-Reload's tests not getting run? Is
everyone else using MP_APXS rather than MP_AP_PREFIX anyway? If so then should
be drop the MP_AP_PREFIX argument?
(I again haven't applied my patch myself because I'm not sure how to go about
patching Reload and SizeLimit. I see they're downloaded into my mod_perl
working copy as "externals", but can I commit changes from there? Also, the
version of Reload in that working copy seems to be newer than what's in our
RC2. Is that intentional? My working copy of mod_perl (Trunk) contains Reload
0.12-dev, with a changes file saying that the last thing added to 0.11 was an
Apache-Test 1.34 dependency, but RC2 contains what purports to be 0.11 and yet
it doesn't contain that Apache-Test 1.34 dependency...)
apxs.patch
Description: apxs.patch
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
