Hello,
Yesterday I downloaded Perl 5.8.0 onto an AlphaServer ES40 running OpenVMS V7.3-1.
My compiler is Compaq C V6.4-008.
I am using an ODS-2 volume on a fibre channel SAN.
I then ran
$ @configure "des"
$ mmk
This built cleanly.
$ mmk test
@[.VMS]Test.Com ".exe" ""
%COPY-E-OPENOUT, error opening DVL_DSK1:[PERL.PERL-5_8_0.T]PERL.; as output
-RMS-E-PRV, insufficient privilege or file protection violation
Reset protections (everything still owned by SYSTEM)
$ set prot=w:rwed [...]*.dir
$ mmk test
subprocess in infinite loop
Downloaded and linked MMK V3.9-6
$ mmk test
t/base/cond..........................FAILED at test 0
Failed a basic test--cannot continue.
The problem here was the fact that I had modified PERL_SETUP.COM (see at end).
The existence of SYSTEM logicals was upsetting [.VMS]Test.Com.
The easiest thing to do at this stage was to deassign ALL logicals "*perl*".
Retry.
$ mmk test
lib/File/Find/t/find.................FAILED at test 1
lib/File/Find/t/taint................FAILED at test 1
lib/vmsish...........................FAILED at test 22
Failed 3 test scripts out of 633, 99.53% okay.
$ @[.VMS]TEST .exe "" "-v" [-.lib.File.Find.t]find.t
showed " not owner"
$ set file/own=[pkeirnan] dvl_dsk1:[perl...]*.*;*
This fixed the first two, leaving ...
$ @[.VMS]TEST .exe "" "-v" [-.lib]vmsish.t
ok 21 - use vmsish qw(time)
not ok 22 - (time) UTC:1038445842 VMS:1038445842
LIB/VMSISH....FAILED at test 22
Looking at the code in vmsish.t, I don't understand lines 115-125
{
use_ok('vmsish qw(time)');
$vmstime = time;
@vmslocal = localtime($vmstime);
@vmsgmtime = gmtime($vmstime);
$vmsmtime = (stat $0)[9];
}
$utctime = time;
@utclocal = localtime($vmstime);
@utcgmtime = gmtime($vmstime);
$utcmtime = (stat $0)[9];
$vmstime and $utctime end up with the same value,
so line 133 will fail if SYS$TIMEZONE_DIFFERENTIAL is greater than 10 seconds.
And, $vmsmtime and $utcmtime end up as undefined.
Also line 133 should really be testing an absolute result
i.e. abs($vmsval - $utcval + $offset) <= 10
Overall, quite successful, and as a Perl novice I learnt a fair bit about how the build environment is put together.
Regards,
Paul Keirnan
====================================================================
Could I suggest for README.VMS
After the line reading
we're not sure. MMK is free though, so go ahead and use that.
add a line
Note: OpenVMS 7.3-1 or later requires MMK V3.9-6 or later.
Add to the list of dangerous logicals
SYS "LOGICAL"
UTIL "LOGICAL"
Under "Testing" or "CAVEATS" add something like
Some tests will fail if the directory structure is not owned by the process doing the tests.
AND
If you have SYSTEM defined logicals for PERL_ROOT and PERLSHR, then these will interfere with the test phase. It is easiest to deassign all logicals '*PERL*'.
=========================================================================
The following was modified so that the same command file could be used by SYSTEM at system startup, and by SYLOGIN.COM for a user login.
$!
$! Perl_Setup.com Thu Sep 27 10:04:30 UTC+10:00 2001
$! This perl configured & administered by system
$!
$ if f$edit(p1,"lowercase,collapse").nes."system" then goto symbols_only
$!
$ defse == "define/system/exec"
$ defse/translation=concealed perl_root DSA0:[SYS1.SYSCOMMON.PERL5_005_03.]
$ ext = ".exe"
$ defse perl perl_root:[000000]Perl'ext'
$ defse PerlShr perl_root:[000000]PerlShr'ext'
$ install repl Perl/head
$ install repl PerlShr/open/head/share
$ defse/nolog pod2text perl_root:[lib.pod]pod2text.com
$ defse/nolog pod2html perl_root:[lib.pod]pod2html.com
$ defse/nolog pod2man perl_root:[lib.pod]pod2man.com
$!
$! define SYS$TIMEZONE_DIFFERENTIAL 36000
$!
$ SYMBOLS_ONLY:
$!
$ perl :== $perl_root:[000000]Perl'ext'
$!
$! Symbols for commonly used scripts:
$!
$ Perldoc == "''Perl' perl_root:[lib.pod]Perldoc.com -t"
$ pod2text == "''Perl' pod2text"
$ pod2html == "''Perl' pod2html"
$ pod2latex == "''Perl' perl_root:[lib.pod]pod2latex.com"
$!pod2man == "''Perl' pod2man"
$!Perlbug == "''Perl' perl_root:[lib]Perlbug.com"
$ c2ph == "''Perl' perl_root:[utils]c2ph.com"
$ h2ph == "''Perl' perl_root:[utils]h2ph.com"
$ h2xs == "''Perl' perl_root:[utils]h2xs.com"
$!perlcc == "''Perl' perl_root:[utils]perlcc.com"
$ splain == "''Perl' perl_root:[utils]splain.com"