Some answers: [some text edited]
> So, general questions > > 1: Is there any easy way to get an scp2 client for Unix, so that I can scp > to them? (And use editors remotely) SCP clients definitely work to VMS systems as I use them extensively. It has been awhile since I set up a TCPIP Services system (I use Multinet myself) but, if you have any error messages or log files, especially from the VMS side, I may be able to help. > 2: Does rsync exist for VMS? > 3: Does ccache exist for VMS? > 4: What is the ls command, and how do I escape from it when I run it > accidentally? LS is short for LSE, the language-sensitive editor on VMS. Simply press ^Z if you get into accidentally to exit it. > 5: What's the DCL equivalent of rm -rf? Is it really a Perl 1-liner with > File::Path::remove_tree()? That depends on what version of VMS you are running. If it V8.4 or later, $ DELETE/TREE [.DIRNAME…]*.*;* If it is an earlier version (or also V8.4), $ DFU DELETE/DIR/TREE DIRNAME.DIR If DFU is not installed on the system, you may need that perl one-liner. Note that DELETE/TREE does not delete the top-level directory name but DFU does. > 6: How do I deal with filenames with ^. (etc) in them from DCL? Without > resorting to bash? Is it really the only option to rename directory names > to remove the .s? I don't follow this question. For the first part: Issue the command $ SET PROCESS/PARSE_STYLE=EXTENDED to be able to use filenames with ^ in them. I recommend putting this command in your LOGIN.COM file (let me know if this needs further explaining). If the filename in question is a directory reference you must type the filename as is, including the ^ characters, e.g. [.perl-5^.14^.2] If the filename is a regular file, you can type it in with or without the ^ characters, e.g. file^.c.orig or file.c.orig. I don't know what the .s refers to. Can you provide an example? > > This might need more knowledge of the machine than the above -v and -V > reveal > > 7: How do I actually use the libraries of that installed perl 5.8.6? The directory tree where perl is installed will be pointed to by the logical name PERL_ROOT. Try $ DIR PERL_ROOT:[LIB] as a starter. The perl sharable image that one must link to will be pointed to by the logical name PERLSHR. Simply use the name PERLSHR in any link procedure to link to that library. These logical names may be redefined in your process to point to a completely different version of perl, if desired. Example: The following logical names are defined in the system-wide logical name table: "PERLSHR" = "PERL_ROOT:[000000]PERLSHR.EXE" "PERL_ROOT" = "$99$LDA9:[APERL-5_12_1.]" The following logical name in my process logical name table "PERL_ROOT" = "$99$LDA9:[APERL-5_14_2.]" This lets me work on getting all the extensions I use built for 5.14.2 while the rest of the system uses the existing 5.12.1. > > Actual build problems: > > 8: The Alpha machine fails the build because the target is converted to > uppercase. How come no-one else has this problem? > > ptac$dka0:[nclark.a.perl5160-rc2]miniperl.exe;2 "-I../../lib" "Makefile.PL" > "INS > T_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" "PERL_CORE=1" > Writing Descrip.MMS for Pod::Simple > > > %MMS-F-BADTARG, Specified target (CONFIG) does not exist in the description > file > . > %MMS-F-BADTARG, Specified target (CONFIG) does not exist in the description > file > . > > > MMS config /DESCRIPTION=descrip.mms /MACRO=("PERL_CORE=1") failed, continuing > a > nyway... > Making all in cpan/Pod-Simple > MMS all /DESCRIPTION=descrip.mms /MACRO=("PERL_CORE=1") > %MMS-F-BADTARG, Specified target (ALL) does not exist in the description file. > %MMS-F-BADTARG, Specified target (ALL) does not exist in the description file. > > > Unsuccessful make(cpan/Pod-Simple): code=1024 at make_ext.pl line 466. > %MMS-F-NOMSG, Message number 00EE826C > %MMS-F-ABORT, For target nonxsext, CLI returned abort status: %X00EE826C. > -MMS-F-BADTARG, Specified target (!AS) does not exist in the description file. > > > MMS says: > > $ mms/ident > %MMS-I-IDENT, MMS V3.8 © Copyright 2007 Hewlett-Packard Development Company, > L.P > . > > I think I can see how to fix it in make_ext.pl by using "" quotes, but what > else will it break? And how come no-one else has this problem. > > > 9: The IA64 machine *initially* fails like this: > > MCR PTAC$DKA0:[NCLARK.I.perl5160-RC2]miniperl.exe "-I[--.lib]" "-I[--.lib]" > "-ME > xtUtils::Command" -e "cp" "--" DYNALOADER.OPT > [--.LIB.AUTO.DYNALOADER]DYNALOADER > .OPT > %MMS-F-GWKNOACTS, Actions to update DL_VMS.C are unknown. > %MMS-F-GWKNOACTS, Actions to update DL_VMS.C are unknown. > > > I think I know why no-one else sees this - relates to Q10 as to why it's > hidden.. The generated descrip.mms is wrong, and presumably has been for > ages. DLSRC should be dl_vms.xs, not dl_vms.c. For example, on HP-UX: > > $ grep DLSRC ext/DynaLoader/Makefile > DLSRC = dl_hpux.xs > DynaLoader.xs: $(DLSRC) > > So, I think that that should change. If I work round it like this: > > $ set default [.ext.DynaLoader] > $ MMS all /MACRO=("DLSRC=dl_vms.xs") > $ set default [--] > > and restart the make, it then fails like this: > > MCR PTAC$DKA0:[NCLARK.I.PERL5160-RC2]miniperl.exe "-I[--.lib]" "-I[--.lib]" > "-ME > xtUtils::Command" -e "cp" "--" CWD.OPT [--.LIB.AUTO.CWD]CWD.OPT > %MMS-F-GWKNOACTS, Actions to update CWD.C are unknown. > %MMS-F-GWKNOACTS, Actions to update CWD.C are unknown. > > > Unsuccessful make(dist/Cwd): code=1024 at make_ext.pl line 466. > > Different mms: > > $ mms/ident > %MMS-I-IDENT, MMS V3.8-2 © Copyright 2007 Hewlett-Packard Development > Company, L > .P. > > 10: How come I'm seeing errors due to case sensitive treatment of .xs.c > suffix rules? How come no-one else hits this? > > (I unpacked the tarball with vmstar. It has created mixed case names: > > $ dir [.dist.cwd] > > Directory PTAC$DKA0:[NCLARK.I.perl5160-RC2.dist.Cwd] > > BLIB.DIR;1 CWD.OPT;1 Cwd.pm;1 Cwd.xs;1 > > Descrip.MMS;1 lib.DIR;1 MAKEFILE.PL;1 PM_TO_BLIB.TS;1 > > ppport.h;1 t.DIR;1 > > Total of 10 files. > Issue the command $ SHOW PROC/PARSE and make sure the parse style is set to extended. If not, issue the SET PROCESS command shown above to set it to extended. Both of these systems have older versions of MMS. The current version is 3.9. MMS will NOT work if any part of the filename has a ^ in it. This is because MMS still has a rule in it, that dates back to the VAX/VMS days, that a ^ in a source file means "consult VAX/CDD for this record". This is not a real problem for filenames since the filename can be placed in the MMS file without any ^ characters in it but is a problem for directory names. Directory names must retain the ^ character ([.perl-5^.14^.2]README.vms = ./perl-5.14.2/README.vms but [.perl-5.14.2]README.vms = ./perl-5/14/2/README.vms) so if this appears anywhere in the MMS file, it will error out trying to invoke VAX/CDD. This only place I have found this to be a problem is in the top-level directory name after unpacking perl. I usually do a $ RENAME PERL-5^.14^.2.DIR PERL-5_14_2 (or whatever version you are working with) to resolve this. MMS has another problem as well if you make use of object libraries. The C compiler creates a module ID name for each object file it produces that is the same name and case as the source file. When this object file is inserted into the object library, it is inserted using this name. Prior to the advent of extended filenames on VMS, this guaranteed that the module names within an object library were always uppercase. However, if perl is unpacked onto an ODS-5 filesystem, the resulting filenames will be mixed case. This means the object module names will be mixed case. MMS has still not been updated to recognize anything but an all uppercase name in a library file. This usually manifests itself as an "action did not update target" error from MMS. The build will still complete correctly but MMS will keep performing these steps each time you invoke the build since it doesn't recognize that they have completed correctly. I have work-arounds for this if they are needed. Note that I avoid both of these problems by using MMK instead of MMS. I bought my system directly from Compaq/HP, with licenses, so I have no problem doing any form of development. If it will help, you are welcome to an account here. Mark Berryman