On Oct 1, 2010, at 10:37 AM, Nicholas Clark wrote:
I don't have access to a VMS system.
I'd like to rearrange some of the build system for core perl, but I
don't want
to break VMS in the process.
I'm guessing you want to take the pod2xxx.PL utility generators out of
pod/ and put them under cpan/ with the modules they belong to?
Would someone be able to test install 3 Pod related modules on VMS:
None of them will even build on VMS, details below. In two cases they
seem unaware that the command-line utility being built will have
a .com extension, and in the other case (Pod::Parser) it knows it
wants podselect.com but doesn't know how to generate it.
Pod::Parser seemed closest to workable so I fiddled with it a bit. I
got it to build by this tweak to Makefile.PL:
$ gdiff -pu "Makefile.PL;-0" "Makefile.PL"
--- Makefile.PL;-0 2009-02-05 09:26:23 -0600
+++ Makefile.PL 2010-10-02 15:31:32 -0500
@@ -38,13 +38,8 @@ $DISTMOD = 'Pod::Parser'; ## The "tit
pod2usage
);
sub script($) { File::Spec->catfile ('scripts', @_) }
-my @EXE_FILES = ();
-if ( $^O eq 'VMS' ) {
- @EXE_FILES = map { script "$_.com" } @SCRIPTS;
-}
-else {
- @EXE_FILES = map { script $_ } @SCRIPTS;
-}
+my $script_ext = $^O eq 'VMS' ? '.com' : '';
+my @EXE_FILES = map { script "$_$script_ext" } @SCRIPTS;
## The test-script to execute regression tests (note that the
## 'xtra' directory might not exist for some installations)
@@ -75,7 +70,7 @@ WriteMakefile(
DISTNAME => $DISTNAME,
VERSION => '1.38',
INSTALLDIRS => ($] >= 5.006 ? 'perl' : 'site'),
- PL_FILES => { map { (script("$_.PL") => script($_)) }
@SCRIPTS },
+ PL_FILES => { map { (script("$_.PL") => script("$_
$script_ext")) } @SCRIPTS },
EXE_FILES => [ @EXE_FILES ],
dist => { COMPRESS => 'gzip', SUFFIX => 'gz' },
clean => { FILES => "@EXE_FILES" },
[end]
but installing did not do anything with any of the generated .com
files. This could be MakeMaker's fault; I don't think I've ever built
a module that installed a standalone program outside the core, so that
capability may never have been tested (or may have gotten broken).
http://www.cpan.org/modules/by-authors/id/T/TJ/TJENNESS/Pod-LaTeX-0.58.tar.gz
$ perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Descrip.MMS for Pod::LaTeX
$ mmk
cp latex.pm [.blib.lib.pod]latex.pm
MCR dsa0:[craig.perl-5_12_2-rc1_root]perl.exe.1 "-Iperl_root:[lib]" "-
Iperl_root:[lib.VMS_IA64.5_12_2]" "-I[.blib.arch]" "-I[.blib.l
ib]" pod2latex.pl pod2latex
Extracting pod2latex.com (with variable substitutions)
MCR dsa0:[craig.perl-5_12_2-rc1_root]perl.exe.1 "-Iperl_root:[lib]" "-
Iperl_root:[lib.VMS_IA64.5_12_2]" "-MExtUtils::Command" -e "cp
" "--" pod2latex [.blib.script]pod2latex
MCR dsa0:[craig.perl-5_12_2-rc1_root]perl.exe.1 "-Iperl_root:[lib]" "-
Iperl_root:[lib.VMS_IA64.5_12_2]" "-MExtUtils::MY" -e "MY->fix
in(shift)" "--" [.blib.script]pod2latex
Can't process '[.blib.script]pod2latex': no such file or directory at -
e line 1
%SYSTEM-F-ABORT, abort
%MMK-F-ERRUPD, error status %X0000002C occurred when updating target
[.BLIB.SCRIPT]POD2LATEX
http://www.cpan.org/modules/by-authors/id/M/MA/MAREKR/Pod-Parser-1.38.tar.gz
$ perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Descrip.MMS for Pod::Parser
$ mmk
cp [.lib.pod]checker.pm [.blib.lib.pod]checker.pm
cp [.lib.pod]parser.pm [.blib.lib.pod]parser.pm
cp [.lib.pod]inputobjects.pm [.blib.lib.pod]inputobjects.pm
cp [.lib.pod]parseutils.pm [.blib.lib.pod]parseutils.pm
cp [.lib.pod]usage.pm [.blib.lib.pod]usage.pm
cp [.lib.pod]find.pm [.blib.lib.pod]find.pm
cp [.lib.pod]select.pm [.blib.lib.pod]select.pm
cp [.lib.pod]plaintext.pm [.blib.lib.pod]plaintext.pm
%MMK-F-CANTUPD, cannot update target [.SCRIPTS]PODSELECT.COM - sources
unknown
http://www.cpan.org/modules/by-authors/id/R/RR/RRA/podlators-2.3.1.tar.gz
$ perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Descrip.MMS for Pod
$ mmk
cp [.lib.pod.text]termcap.pm [.blib.lib.pod.text]termcap.pm
cp [.lib.pod]parselink.pm [.blib.lib.pod]parselink.pm
cp [.lib.pod.text]color.pm [.blib.lib.pod.text]color.pm
cp [.lib.pod]man.pm [.blib.lib.pod]man.pm
cp [.lib.pod]text.pm [.blib.lib.pod]text.pm
cp [.lib.pod.text]overstrike.pm [.blib.lib.pod.text]overstrike.pm
MCR dsa0:[craig.perl-5_12_2-rc1_root]perl.exe.1 "-Iperl_root:[lib]" "-
Iperl_root:[lib.VMS_IA64.5_12_2]" "-I[.blib.arch]" "-I[.blib.l
ib]" [.scripts]pod2man.PL [.scripts]pod2man
Extracting pod2man.com (with variable substitutions)
MCR dsa0:[craig.perl-5_12_2-rc1_root]perl.exe.1 "-Iperl_root:[lib]" "-
Iperl_root:[lib.VMS_IA64.5_12_2]" "-MExtUtils::Command" -e "cp
" "--" [.scripts]pod2man [.blib.script]pod2man
MCR dsa0:[craig.perl-5_12_2-rc1_root]perl.exe.1 "-Iperl_root:[lib]" "-
Iperl_root:[lib.VMS_IA64.5_12_2]" "-MExtUtils::MY" -e "MY->fix
in(shift)" "--" [.blib.script]pod2man
Can't process '[.blib.script]pod2man': no such file or directory at -e
line 1
%SYSTEM-F-ABORT, abort
%MMK-F-ERRUPD, error status %X0000002C occurred when updating target
[.BLIB.SCRIPT]POD2MAN
Specifically, I believe that the perl core currently installs to the
same
location as the perl binary, 6 perl scripts suitably wrapped for
VMS, as
pod2latex.com
pod2man.com
pod2text.com
pod2usage.com
podchecker.com
podselect.com
The current core build installs them to perl_root:[utils] .
(pod2html.com comes from Pod::HTML, which is not a distribution on
CPAN)
Do the above 3 modules correctly install their respective scripts
when built
on VMS? From looking at Makefile.PL in each, I'm not convinced that
all
correctly get the "install" part right.
Nicholas Clark
________________________________________
Craig A. Berry
mailto:craigbe...@mac.com
"... getting out of a sonnet is much more
difficult than getting in."
Brad Leithauser