Fix missing build dependency for pods
authorDan Dedrick <ddedrick@lexmark.com>
Fri, 13 Oct 2017 01:49:39 +0000 (21:49 -0400)
committerAaron Crane <arc@cpan.org>
Wed, 14 Nov 2018 11:44:46 +0000 (11:44 +0000)
When building perl with highly parallel options (e.g. -j 32) on a machine
with many cores (e.g. 32) ocassionaly it fails with the following type
of error.

make[1]: Entering directory '.../cpan/podlators'
Can't locate Getopt/Long.pm in @INC (you may need to install the Getopt::Long module) (@INC contains: .../cpan/AutoLoader/lib .../dist/Carp/lib .../dist/PathTools .../dist/PathTools/lib .../cpan/ExtUtils-Install/lib .../cpan/ExtUtils-MakeMaker/lib .../cpan/ExtUtils-Manifest/lib .../cpan/File-Path/lib .../ext/re .../dist/Term-ReadLine/lib .../dist/Exporter/lib .../ext/File-Find/lib .../cpan/Text-Tabs/lib .../dist/constant/lib .../cpan/version/lib .../lib ../../lib .) at .../cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm line 109.
Makefile:445: recipe for target 'manifypods' failed
make[1]: *** [manifypods] Error 2

The scripts pod2man, pod2text, podchecker, podselect, and pod2usage all use
Getopt-Long and since they are all part of nonxs modules this needs to be
added here to prevent these build races.

AUTHORS
write_buildcustomize.pl

diff --git a/AUTHORS b/AUTHORS
index 9c09813..709a7fc 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -278,6 +278,7 @@ Dan Boorstein                       <dan_boo@bellsouth.net>
 Dan Brook                      <dbrook@easyspace.com>
 Dan Collins                    <dcollinsn@gmail.com>
 Dan Dascalescu                 <bigbang7@gmail.com>
+Dan Dedrick                    <ddedrick@lexmark.com>
 Dan Hale                       <danhale@us.ibm.com>
 Dan Jacobson                   <jidanni@jidanni.org>
 Dan Kogai                      <dankogai@dan.co.jp>
index 8666a6b..e82f931 100644 (file)
@@ -22,6 +22,8 @@ if ( @ARGV ) {
 # needed to build the nonxs modules
 # After which, all nonxs modules are in lib, which was always sufficient to
 # allow miniperl to build everything else.
+# Getopt::Long is here because it's used by podlators, which is one of the
+# nonxs modules.
 # Term::ReadLine is not here for building but for allowing the debugger to
 # run under miniperl when nothing but miniperl will build :-(.
 
@@ -39,6 +41,7 @@ my @toolchain = qw(cpan/AutoLoader/lib
                    cpan/Text-Tabs/lib
                   dist/constant/lib
                   cpan/version/lib
+                  cpan/Getopt-Long/lib
                   );
 
 # Text-ParseWords used only in ExtUtils::Liblist::Kid::_win32_ext()
@@ -47,7 +50,6 @@ my @toolchain = qw(cpan/AutoLoader/lib
 push @toolchain, qw(
        cpan/Text-ParseWords/lib
        dist/ExtUtils-ParseXS/lib
-       cpan/Getopt-Long/lib
        cpan/parent/lib
        cpan/ExtUtils-Constant/lib
 ) if $^O eq 'MSWin32';