Chuck Lane wrote:

> Well, as far as I can tell the *only* place having VMSPIPE.COM in
> PERL_ROOT:[000000] could *maybe* be an issue is during the Perl
> build/test/install.
> 
> But that all occurs in what (should be) a rather well controlled
> environment.  As has been mentioned, MMK and MMS do their stuff in
> a subprocess...we can set a process logical to make the build/test/install
> work okay without mucking about with the main process logicals.
> 
> (this may also be a good thing for dealing with "dangerous
> logicals/symbols" that we currently just check for in CONFIGURE.COM:
> delete 'em all except for the ones we need)
> Depending on @INC to find VMSPIPE, whatever the "last chance
> defaults", means that when running perl in an *uncontrolled*
> environment (i.e, Joe User running a script) we'll be vulnerable to
> odd behavior with the system() function and piped i/o (ex: a user's
> @INC points to his local directory with a VMSPIPE.COM that does
> something different, or can't be read because of protections).
> ....
> and when you do a "subprocess of a subprocess" (like during some of
> the tests) and you *don't* have PERL_ROOT defined, do you *always*
> pass the correct "-I..."  flag?  Even when it's for a subprocess that
> doesn't use modules?
> 
> How about this as an alternative for finding VMSPIPE.COM:
> 
>     translate logical PERL_VMSPIPE_DURING_MAKE in LNM$PROCESS,
>           and if present, use it.
>     else look for a readable PERL_ROOT:[000000]VMSPIPE.COM, if found use it.
>     ...otherwise, just fail with a suitable message.
> 
> You still set a logical during build/test/install, but it doesn't have
> to be PERL_ROOT.
> 
> You test for PERL_VMSPIPE_DURING_MAKE first, since there may be a
> (LNM$GROUP/LNM$SYSTEM) old PERL_ROOT hanging around.  It has to be in
> LNM$PROCESS so that you're sure it's really from "the current MMK
> run", rather than some weird leftover in some another table.  And it
> would be inherited by "subprocesses of subprocesses".


Here is an example of me logging into an Alpha that has a call to
"$ @sys$common:[perl]perl_setup.com" in the system wide sylogin.com:

 $ set def dkb100:[perl-5_6_0]
 $ mcr sys$disk:[]miniperl -e "print $^X"
 dkb100:[perl-5_6_0]miniperl.exe;2
 $ sho log perl_root
    "PERL_ROOT" = "DKB100:[PERL5_005_02.]" (LNM$PROCESS_TABLE)

is that helpful?

Peter Prymmer


Reply via email to