Fix VMS installation - update vmsconfig.pm for consistency An effort was made to update the VMS installation data to align with configuration data. This touched the script templates in VMS/, but didn't update the generation of vmsconfig.pm to match... and also missed a spot. This change adds the missing updates Ref: https://github.com/openssl/openssl/pull/16842 Fixes #22899 Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> (Merged from https://github.com/openssl/openssl/pull/23081) (cherry picked from commit 4058e121cbc6818235b0dcb618e636ce3c4d1f2f)
Fix VMS installation - Check the presence of providers in the IVP script Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16842) (cherry picked from commit fe27680fc6395f661f3949e9e1ef0a83e499e87b)
Fix VMS installation - deassign the same logical names that were defined The logical name for the engines directory is named one way in VMS/openssl_startup.com.in, but a different name was deassigned in VMS/openssl_shutdown.com.in. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16842) (cherry picked from commit 73e47e39a52d8e1c7515e140b8613304b8abe7ac)
Fix VMS installation - use platform->shlib_version_as_filename() consistently It's used in Configurations/descrip.mms.tmpl, but was forgotten in the VMS installation scripts. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16842) (cherry picked from commit 883008b21ba076b7d87aa8bec1419e8036539a3e)
Fix VMS installation - Define the logical name OSSL$MODULES Also, the modules installation directory is version agnostic on other platforms, there's no real reason why it shouldn't be on VMS. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16842) (cherry picked from commit a4f1e23e6cffdf2ef1aadf96572c251e07869787)
Fix VMS installation - $config{pointer_size} -> $target{pointer_size} Configurations/descrip.mms.tmpl uses $target{pointer_size}, not $config{pointer_size}, so the same should be used in installation scripts, for consistency. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16842) (cherry picked from commit e30545e9bd84e3ace70fb1e1c5ad6d824545fe36)
Fix VMS installation - consistent program names with version info The program name version info is supposed to be the major release version number. This was forgotten when the versioning scheme was changed for 3.0, so the minor release version number slipped in as well. Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16842) (cherry picked from commit 3c9293b4715229dc7ea2116d22c623c2a92ac69a)
Configurations/descrip.mms.tmpl: avoid enormous PIPE commands DCL has a total command line limitation that's too easily broken by them. We solve them by creating separate message scripts and using them. Fixes #13789 Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/13835)
Switch to MAJOR.MINOR.PATCH versioning and version 3.0.0-dev We're strictly use version numbers of the form MAJOR.MINOR.PATCH. Letter releases are things of days past. The most central change is that we now express the version number with three macros, one for each part of the version number: OPENSSL_VERSION_MAJOR OPENSSL_VERSION_MINOR OPENSSL_VERSION_PATCH We also provide two additional macros to express pre-release and build metadata information (also specified in semantic versioning): OPENSSL_VERSION_PRE_RELEASE OPENSSL_VERSION_BUILD_METADATA To get the library's idea of all those values, we introduce the following functions: unsigned int OPENSSL_version_major(void); unsigned int OPENSSL_version_minor(void); unsigned int OPENSSL_version_patch(void); const char *OPENSSL_version_pre_release(void); const char *OPENSSL_version_build_metadata(void); Additionally, for shared library versioning (which is out of scope in semantic versioning, but that we still need): OPENSSL_SHLIB_VERSION We also provide a macro that contains the release date. This is not part of the version number, but is extra information that we want to be able to display: OPENSSL_RELEASE_DATE Finally, also provide the following convenience functions: const char *OPENSSL_version_text(void); const char *OPENSSL_version_text_full(void); The following macros and functions are deprecated, and while currently existing for backward compatibility, they are expected to disappear: OPENSSL_VERSION_NUMBER OPENSSL_VERSION_TEXT OPENSSL_VERSION OpenSSL_version_num() OpenSSL_version() Also, this function is introduced to replace OpenSSL_version() for all indexes except for OPENSSL_VERSION: OPENSSL_info() For configuration, the option 'newversion-only' is added to disable all the macros and functions that are mentioned as deprecated above. Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/7724)
Simplify the handling of shared library version numbers $(SHLIB_MAJOR).$(SHLIB_MINOR) is really a synonym for $(SHLIB_VERSION_NUMBER), and is therefore an added complexity, so better to use $(SHLIB_VERSION_NUMBER) directly. SHLIB_MAJOR and SHLIB_MINOR are now unused, but are kept around purely as information in case someone relies on their existence. At the same time, add support for custom shared library extensions with the three new Makefile variables SHLIB_EXT, SHLIB_EXT_SIMPLE and SHLIB_EXT_IMPORT. By default, they hold the variants of shared library extensions we support. On mingw and cygwin, SHLIB_EXT_IMPORT is defined; on all other Unix platforms, it's empty. An example to get shared libraries with a slightly different SOVER name: $ make SHLIB_EXT='.$(SHLIB_VERSION_NUMBER).so' Fixes #3902 Reviewed-by: Andy Polyakov <appro@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3964)
VMS: Adjust the engines directory by adding the pointer size to its name With OpenSSL 1.1 and on, the engines are tightly tied to the shared library they're to be used with. That makes them depend on the pointer size as well as the shared library version, and this gets reflected in the name of the directory they're installed in. Reviewed-by: Rich Salz <rsalz@openssl.org>
VMS: OSSL$EXE: needs to reflect that programs are installed in two places We're installing architecture dependent (compiled) programs in architecture specific directories, while architecture independent programs (scripts) get installed in the general programs directory. OSSL$EXE: reflects that by having two values. Reviewed-by: Rich Salz <rsalz@openssl.org>