--- a/cpan/podlators/Makefile.PL +++ b/cpan/podlators/Makefile.PL @@ -18,6 +18,19 @@ use Config; use ExtUtils::MakeMaker; use File::Spec; +foreach (glob('scripts/pod*.PL')) { + # The various pod*.PL extractors change directory. Doing that with relative + # paths in @INC breaks. It seems the lesser of two evils to copy (to avoid) + # the chdir doing anything, than to attempt to convert lib paths to + # absolute, and potentially run into problems with quoting special + # characters in the path to our build dir (such as spaces) + require File::Copy; + + my $temp = $_; + $temp =~ s!scripts/!!; + File::Copy::copy($_, $temp) or die "Can't copy $temp to $_: $!"; +} + # Generate full paths for scripts distributed in the bin directory. Appends # the .com extension to scripts on VMS, unless they already have the .PL # extension. @@ -28,7 +41,7 @@ use File::Spec; # (Scalar) Space-separated relative paths from top of distribution sub scripts { my (@scripts) = @_; - my @paths = map { File::Spec->catfile('scripts', $_) } @scripts; + my @paths = @scripts; if ($^O eq 'VMS') { @paths = map { m{ [.] PL \z }xms ? $_ : $_ . '.com' } @paths; } @@ -77,8 +90,8 @@ my %metadata = ( # Override the files that generate section 1 man pages. MAN1PODS => { - man1pod('scripts', 'pod2man.PL'), - man1pod('scripts', 'pod2text.PL'), + man1pod('.', 'pod2man.PL'), + man1pod('.', 'pod2text.PL'), # Perl core uses a separate copy in the top-level pod directory. ($ENV{PERL_CORE} ? () : man1pod('pod', 'perlpodstyle.pod')),