perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <s...@stason.org>
Subject Re: resolving Apache::Test vs. Apache::test collision
Date Mon, 19 May 2003 22:43:44 GMT
David Wheeler wrote:
> On Tuesday, May 13, 2003, at 09:11  PM, Stas Bekman wrote:
> 
>> so that bug should be fixed in CPANPLUS, in any case new Apache/test 
>> will have a $VERSION
> 
> 
> Yes. I sent them a patch. We'll see if they apply it.
> 
>> So we probably should check whether UNINST=1 is on, and if not (and if 
>> we find another test.pm in @INC) die telling users to set it on.
> 
> 
> Yes.
> 
>> I've attached something that might work (apply against the current 
>> mod_perl 2.0 cvs). I've moved the real Apache::Test and Apache::test 
>> into different files. And replaced them with:
>>
>> Apache-Test/lib/Apache/test.pm
>> ---------------------
>> # this is a workaround for a collision we have on the case-insensitive
>> # platforms which may have Apache/test.pm from mod_perl 1.0
>> # installed.
>>
>> require Apache::TestReal;
>>
>> # this is a workaround for ExtUtils::MakeMaker::parse_version
>> $VERSION = do { require Apache::test_mp1; $Apache::test::VERSION };
>>
>> 1;
>> ---------------------
>>
>> and:
>>
>> Apache-Test/lib/Apache/test.pm
>> ---------------------
>> # this is a workaround for a collision we have on the case-insensitive
>> # platforms which may have Apache/test.pm from mod_perl 1.0
>> # installed.
>>
>> require Apache::test_mp1;
>>
>> # this is a workaround for ExtUtils::MakeMaker::parse_version
>> $VERSION = do { require Apache::TestReal; $Apache::Test::VERSION; };
>>
>> 1;
>> ---------------------
> 
> 
> I'm sure you meant those to be "test.pm" and "Test.pm", since that's 
> what's in the patch. 

Ooops, of course. The first one is Test.pm. The patch is correct.

> However, this won't work, because of course on 
> case-insensitive file systems, you can't have "test.pm" and "Test.pm" in 
> the same directory. If you put them into different directories, it might 
> work. But then you'd also have to put them into different directories in 
> @INC, too. :-(
> 
> Sorry to bring bad news.

That's the trick. Each of these files contains both Apache::test and 
Apache::Test (do you see that each has require() called twice?). So it doesn't 
matter which one gets overwritten. Give it a try.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


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


Mime
View raw message