Re: Requst for VMS testing help

"Craig A. Berry" <[email protected]> Sat, 02 Oct 2010 16:01:15 -0500
Newsgroups gmane.comp.lang.perl.ports.vms
Message-ID <[email protected]>
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:[email protected]

"... getting out of a sonnet is much more
  difficult than getting in."
                  Brad Leithauser