You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Fred Moyer <fr...@redhotpenguin.com> on 2008/06/21 02:11:01 UTC

Apache::Bootstrap 0.02

Hacking away on this some more.

http://people.apache.org/~phred/Apache-Bootstrap-0.02.tar.gz

As I tested this out with Apache::Dispatch today, I came to the 
realization that Apache::Bootstrap itself must be bootstrapped in the 
Makefile.PL.  Here's how I did it in Apache::Dispatch, parts ripped off 
from ExtUtil::MakeMaker.  I'm still fuzzy on the details of how not to 
cause CPAN testers failures.

Any thoughts here welcome - still bootstrapping this (no pun intended :)

BEGIN {
     my $AB_VER = 0.02;
     my $fail_msg = "Warning: prerequisite Apache::Bootstrap $AB_VER not 
found.";

     eval { require Apache::Bootstrap };
     die $fail_msg . "\n" if $@;

     die $fail_msg . " We have $Apache::Bootstrap::VERSION.\n"
         if $Apache::Bootstrap::VERSION < $AB_VER;
}

... some code

my $mp_gen = Apache::Bootstrap->satisfy_mp_generation(2);

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: Apache::Bootstrap 0.02

Posted by Fred Moyer <fr...@redhotpenguin.com>.
Philip M. Gollucci wrote:
> Fred Moyer wrote:
>> http://people.apache.org/~phred/Apache-Bootstrap-0.02.tar.gz
>>
>> As I tested this out with Apache::Dispatch today, I came to the 
>> realization that Apache::Bootstrap itself must be bootstrapped in the 
>> Makefile.PL.  Here's how I did it in Apache::Dispatch, parts ripped 
>> off from ExtUtil::MakeMaker.  I'm still fuzzy on the details of how 
>> not to cause CPAN testers failures.
>>
>> Any thoughts here welcome - still bootstrapping this (no pun intended :)
>>
>> BEGIN {
>>     my $AB_VER = 0.02;
>>     my $fail_msg = "Warning: prerequisite Apache::Bootstrap $AB_VER 
>> not found.";
>>
>>     eval { require Apache::Bootstrap };
>>     die $fail_msg . "\n" if $@;
>>
>>     die $fail_msg . " We have $Apache::Bootstrap::VERSION.\n"
>>         if $Apache::Bootstrap::VERSION < $AB_VER;
>> }
>>
>> ... some code
>>
>> my $mp_gen = Apache::Bootstrap->satisfy_mp_generation(2);
> I haven't read the code more than you put here, but this doesn't seem 
> quite right.
> It seems cyclic.  I know perl is one of those languages that let you get 
> away with it if you are clever, but I don't know many cases where its 
> right idea....

Bootstrapping is cyclic to some degree, but I don't think this code is 
quite where I want it to be.  I have my head fairly well wrapped around 
most of the issues now.  This module is really intended to provide 
information about existing mod_perl and apache::test installs so that 
the build program (Makefile.PL) can make decisions on whether to use 
ExtUtils::MakeMaker (mp1) vs ModPerl::MM (mp2).

I think for simplicity the bootstrapping stuff should remain thin.  I 
looked at some of the CPAN tester failures for my modules, and I am 
following the path of making build failures due to dependencies result 
in NA cpan tester report, vs fail.  If the dependencies aren't 
installed, the test should not be run the result should be NA as opposed 
to Fail.  If you want to see details of what I mean, go find the test 
results for RHP::Timer on cpan testers and you'll see NA entries where 
the required version of perl is not installed, as opposed to Fail.

I'm going to make another iteration and have the bootstrap process fail 
at compile time if it cannot find any mod_perl installation, just like 
build will fail if the required version of perl cannot be found. 
Without a mod_perl install, we should assume the module cannot be built. 
  Does that sound like a good assumption?

> I haven't done any of the work though, so I'll defer to you unless I get 
> my act in gear.

Thanks for the feedback, it is helpful.  If this works, it should make 
shipping dual life modules fairly painless (crosses fingers).

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org