File::Copy::Recursive broken on FreeBSD and other OSes; working on replacement

[email protected] (James E Keenan) Wed, 18 Apr 2018 13:25:14 -0400
Newsgroups perl.cpan.workers
Message-ID <[email protected]>
This message is intended for people working on the Perl toolchain and, 
in particular, for attendees at the Perl Toolchain Summit starting 
tomorrow in Oslo.

The test-against-dev work I have been conducting for several months has 
identified at least one CPAN distro, high up in the toolchain, which is 
broken on non-Linux operating systems.  The reasons for this breakage 
are sub-optimal code in modules or test suites, not "Blead Breaks CPAN." 
  Such breakage prevents the distro from being installed and means that 
its revdeps are never reached during the following cases:

* Installation via 'cpan' shell:  Distro fails and is graded as FAIL and 
reported to metabase.  Assuming on 'force install' is attempted on 
distro, revdep is graded as DISCARD and no report is sent to metabase or 
to revdep's maintainers.

* Installation via 'cpanm':  Distro fails and is graded as FAIL.  Revdep 
is not attempted and is not graded anywhere.  You have to examine 
build.log for messages reporting "Bailing out ...."  No report is sent 
to metabase or to maintainers.

* Because test-against-dev relies on 'cpanm', if a distro in, say, the 
top 1000 of the CPAN river fails, its revdeps are never reached, meaning 
their code does not get exercised against the latest monthly development 
release.

The CPAN distro of greatest concern right now is 
File-Copy-Recursive(http://search.cpan.org/~dmuey/File-Copy-Recursive-0.40/), 
currently ranked about #128 in the CPAN river.  On FreeBSD (and perhaps 
other OSes), FCR's current version (0.40 as of Apr 17 2018) has an 
unfixed bug (https://rt.cpan.org/Ticket/Display.html?id=123964) leading 
to test failures and failure to install.  Unless a user chooses to 
'--force' install FCR, that prevents its revdeps from being installed in 
an automated manner or tested against dev/blead.

Over 6000 CPAN distributions have direct or indirect dependencies on 
FCR, including CPAN-Reporter, Test-File-ShareDir, DateTime, Dist-Zilla 
and Catalyst-Devel.  So thousands of CPAN distros cannot be installed on 
FreeBSD and other systems.

The author of FCR is aware of the bug ticket and Tom Hukins provided a 
patch which I have tested successfully on FreeBSD.  But the patch has 
not been applied as of yesterday.  As we are now in the countdown to 
perl-5.28.0, we really need to be able to assess the impact of release 
candidates on CPAN -- and not just on Linux.

Earlier this week I wanted to resume sending CPANtesters reports from 
FreeBSD-11.1.  I tried to install CPAN-Reporter but could not, due to 
the bug in its dependency, FCR.  To address that I have uploaded to CPAN 
a new CPAN distro, File-Copy-Recursive-Reduced (FCR2), which provides 
stripped-down versions of 2 FCR subroutines, fcopy() and dircopy(), 
which are used in the CPAN-Reporter test suite.  I then branched 
CPAN-Reporter to create a version which uses the FCR2 versions of these 
functions rather than FCR.  That makes CPAN-Reporter installable again. 
I have therefore filed:

https://github.com/cpan-testers/CPAN-Reporter/issues/88
and
https://github.com/cpan-testers/CPAN-Reporter/pull/90 (a better p.r. 
than my earlier /89)

I hope that during the PTS you can review and apply this p.r. and upload 
a new version of CPAN-Reporter.  This will once again permit automated 
installation on FreeBSD and other non-Linux operating systems.  It will 
also help us to assess perl-5.28's possible impact on that distro and 
its revdeps.

Thank you very much.
Jim Keenan