Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: ModPerl: Dev
RE: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2
 

Index | Next | Previous | View Flat


SteveHay at planit

Feb 18, 2012, 4:03 PM


Views: 950
Permalink
RE: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 [In reply to]

[.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...)
Attachments: apxs.patch (2.19 KB)

Subject User Time
[RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 torsten.foertsch at gmx Feb 18, 2012, 11:25 AM
    RE: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 SteveHay at planit Feb 18, 2012, 4:03 PM
    Re: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 torsten.foertsch at gmx Feb 19, 2012, 10:25 AM
        Re: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 fred at redhotpenguin Feb 19, 2012, 10:31 AM
        RE: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 SteveHay at planit Feb 19, 2012, 2:35 PM
    Re: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 fred at redhotpenguin Feb 19, 2012, 10:34 AM
    RE: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 SteveHay at planit Feb 19, 2012, 2:41 PM
    RE: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 SteveHay at planit Feb 19, 2012, 2:41 PM
    Re: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 torsten.foertsch at gmx Feb 20, 2012, 3:36 AM
        Re: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 fred at redhotpenguin Feb 20, 2012, 11:32 PM
    RE: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 SteveHay at planit Feb 21, 2012, 12:24 AM
    RE: [RELEASE CANDIDATE]: mod_perl-2.0.6 RC2 SteveHay at planit Feb 21, 2012, 1:06 AM

  Index | Next | Previous | View Flat
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.