[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: dev-unsubscr...@perl.apache.org For additional commands, e-mail: dev-h...@perl.apache.org