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

Reply via email to