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