https://bz.apache.org/SpamAssassin/show_bug.cgi?id=7666
--- Comment #4 from Sidney Markowitz <[email protected]> --- The test scripts have been worked on to ensure that they all can run in taint mode. Also, I've been checking on the results of CPAN testers and haven't seen this particular problem in recent versions. I have reproduced the problem shown in the Docker file, in my case reproducing it on a minimal Ubuntu 20.04 VirtualBox VM. The code we have is the result of the fix to bug 5908 which I now think was a misinterpretation of the following language in CPAN Authors FAQ (now at http://cpanwiki.grango.org/wiki/CPANAuthorNotes instead of the old link that has a broken redirect): > "How can I stop getting FAIL reports for missing libraries or other > non-Perl dependencies?" > If you have some special dependencies and don't want to get CPAN Testers > reports if a dependency is not available, just exit from the Makefile.PL or > Build.PL normally (with an exit code of 0) before the Makefile or Build file > is created. > > exit 0 unless some_dependency_is_met(); Notice that the FAQ is not referring to dependencies on Perl modules. It looks like we are supposed to build the Makefile even when a required module is missing so that CPAN testers can notice the missing dependency, add the module, and continue testing the Makefile. Then we are supposed to fail in the Makefile in a way that will not generate a failure report email. There seems like to be some way to do that, as another FAQ entry says > "Why am I getting a FAIL/UNKNOWN/NA report when prerequisites are not met?" > Some early versions of CPAN Testers tools had bugs that did not properly > catch when prerequisites were specified but not met. Please just ignore > these reports. In https://metacpan.org/pod/CPAN::Reporter::FAQ it says > Why was a report sent if a prerequisite is missing? > As of CPAN::Reporter 0.46, FAIL and UNKNOWN reports with unsatisfied > prerequisites are discarded. Earlier versions may have sent these reports > out by mistake as either an NA or UNKNOWN report. > > PASS reports are not discarded because it may be useful to know when > tests passed despite a missing prerequisite. NA reports are sent because > information about the lack of support for a platform is relevant > regardless of prerequisites. When I test simply removing the exit 0, running the cpan -t command as in the docker file tries to install the missing dependencies before running the generated Makefile. That seems to be the correct and expected result of installing a CPAN module - It automatically fetches and installs dependencies. This does not work well on Ubuntu, because for some reason Net::DNS does not install properly from cpan, it has to be installed using Ubuntu's apt package for it. But having Makefile.PL exit without producing the Makefile breaks the ability to let cpan automatically handle the module dependencies. I'm going to generate a trial package that removes the exit(0) from Makefile.PL to see if the current CPAN test machines generate any reports for it. If they don't, I will propose that as our fix. If we ever do have non-module library non-optional dependencies, we can look at having a hard exit from Makefile.PL for them. -- You are receiving this mail because: You are the assignee for the bug.
