Michael G Schwern wrote:
> Nicholas Clark wrote:
>> So how do the smokers' systems differ from the clean 5.8.8 that it won't pass
>> tests on?
> 
> It looks like they all have an upgraded ExtUtils::Install, which one would
> have if they've installed MakeMaker lately.  None are clean builds (I can't
> tell for most of Bingos' as they aren't reporting deps).
> 
> I would guess this is because individual smokers simply installed the alphas
> in a CPAN shell with a dirty 5.8.8 rather than running them through a full
> clean smoke, which is about all I can expect.  It looks like Bingos ran a few
> through a real smoke run so I don't know what happened there.

Turns out it *was* working on 5.8.8, a totally clean 5.8.8 or 5.6.1 will work
IF you just unpacked a fresh tarball or ran a "make clean".  Why?

The pm_to_blib target rebuilds blib.  It only fires if any of the pm files
have changed since the last pm_to_blib run.  It doesn't depend on anything else.

So, install MakeMaker on 5.10 or something which already has an up to date
ExtUtils::Install and it will copy things to blib, but not ExtUtils::Install.
 Its already up to date.

Then, without running clean, rerun Makefile.PL with 5.8.8 and run the tests
WITHOUT RUNNING MAKE.  None of the pm files have changed to blib does not get
rebuilt.  ExtUtils::Install is not copied into blib and the tests fail.

To replicate:

    make realclean
    perl5.10.0 Makefile.PL
    make
    perl5.8.8 Makefile.PL
    make
    make test

Solution:

Have pm_to_blib depend on the Makefile.  If the Makefile gets rebuilt so does
blib.  This will probably fix a number of other subtle bugs.


Also smoke testing would not have caught this, they're too clean.  That
explains why there were no failures from Bingos.


-- 
Reality is that which, when you stop believing in it, doesn't go away.
    -- Phillip K. Dick

Reply via email to