[Info-vax] Extended file spec support on CSWS & PHP7
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Fri Aug 28 11:29:23 EDT 2020
On 2020-08-28 09:36:30 +0000, issinoho said:
> I've done some more testing and I now DON'T think this is restricted to
> extended file names, as I renamed the file and the code to a
> traditional format and it still can't find it.
Guess...
Smells vaguely like C RTL logical names. One of my favorite code
smells, performing app settings management via an unbounded list of
arcanely-named logical names.
For reproducible app startups, we are seemingly intended to add ~forty
logical name definitions into our app startup logic or app startup
files, either in associated DCL or in a screwy initialization program
section (lib$initialize psect) needed during app launch, this for
reproducible app launches, because of compatibility. And new logical
names can and occasionally get added to the list of what we should
configure on launch. Bad idea this design, but here we are.
And for those of you that think you're immune to this because not using
C, are you sure there's not a C dependency underneath your app
somewhere, and are you sure that a dependency will never be added?
Here's what was once suggested specifically for using CSWS php on OpenVMS:
$ DEFINE /NoLog DECC$EFS_CASE_PRESERVE ENABLED
$ DEFINE /NoLog DECC$EFS_CASE_SPECIAL ENABLED
$ DEFINE /NoLog DECC$EFS_CHARSET ENABLED
$ DEFINE /NoLog DECC$FILE_SHARING ENABLED
The C manual suggests the following be defined (though oddly doesn't
provide recommended settings!):
DECC$EFS_CHARSET, DECC$DISABLE_TO_VMS_LOGNAME_TRANSLATION,
DECC$FILENAME_UNIX_NO_VERSION, DECC$FILENAME_UNIX_REPORT,
DECC$READDIR_DROPDOTNOTYPE, DECC$RENAME_NO_INHERIT
Details:
https://vmssoftware.com/docs/VSI_OpenVMS_BaseOS/VSI_C_RTL_REF_MAN.pdf
Pragmatically, defining all ~40 feature logical names is probably the
safest approach. That will avoid feature-related surprises. At least
until a new feature is invented. Either in the app startup, or in
lib$initialize psect "fun". (And yes, lib$initialize reportedly can't
fix everything here, due to the details of the app launch sequencing.)
Poke around in the depths of Apache startup or maybe in the available
Apache source code, and you may well be able to find the list of
logical names that's using at run-time.
This whole logical-names-for-management idea can't be tossed in the
memory hole soon enough, but the hypothetical eventual replacement of
this scheme means updating the OpenVMS image activator, and hopefully
also adding room for if not support for code-signing and code
entitlements and related checks and related functions currently missing
on OpenVMS. Which is obviously a larger product than adding and
translating logical names.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list