Sun Jun 08 05:09:33 2014: Request 96291 was acted upon. Transaction: Correspondence added by sisyph...@optusnet.com.au Queue: Inline Subject: Re: [rt.cpan.org #96291] t/08taint.t fails on perl 5.20.0 Broken in: 0.55 Severity: (no value) Owner: Nobody Requestors: e...@cpan.org Status: open Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=96291 >
-----Original Message----- From: Ed . via RT > Per the discussion with mst on #perl (ex pumpkin holder), I propose (and > will do if you haven't already) that at the top of 08taint.t: > 1. Check for existence of $ENV{PATH} > 2. If not, set to '/bin:/usr/bin' > 3. Test in $ENV{PATH} for 'make' and $Config{cc} > 4. If found, continue; if not, skip (since there's nothing else reasonable > to do, and I prefer not to make people force install) Yes, CPAN.pm and friends are quite deficient in the way they handle test failures. I don't like them and avoid them (except for very long dependency chains) for that and other reasons. IMO, if there's a test failure, they should prompt you as to whether the module should be installed - not just make you re-run the process with force. Perhaps there's already an option for them to do that. If there's not such an option, then maybe you should complain to the developers of those modules. > Do you approve of this strategy? Not sure about step 2. If the test succeeds only because 08taint.t sets $PATH to '/bin:/usr/bin', then it has passed because we've rigged the test. We have deceived the user into thinking that taint enabling in Inline works straight out of the box - which is not the case (as he must first set $PATH appropriately). Can we do just steps 3 and 4 ? If we can detect that the 08taint.t test is bound to fail because 'make' and/or $Config{cc} are not going to be found, then I'll accept that we skip the test. If you've got a patch that performs that detection and then skips the tests, send it out and I'll apply it. In those cases where 08taint.t is then skipped, we need to bellow out that "INLINE WILL NOT RUN UNDER -T ON THIS SYSTEM" ... and we probably also need to alter the documentation. But I can take care of those aspects. It's not really the right thing to do. I mean, the idea is that if 08taint.t fails then the user should make the call on whether the module gets installed. With your proposed changes, the decision to install has already been made for him .... and he doesn't even know that his Inline is not capable of running under -T (unless he was paying close attention to the build output). But I'm ready to go with that approach anyway :-) Alternatively, if you like, I'm now prepared to turn off the 08taint.t by default, and have it run only if $ENV{INLINE_TT_ON} is set. That's not the right thing to do either, but I simply don't want to continue having to devote attention to a feature of Inline that no-one uses, and that should never have been created in the first place. It has been ongoing for way too long. Cheers, Rob