From e8fb12957a68c8bf550ae9f5c96c6cc14fa47ee1 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Wed, 6 Jul 2016 18:53:56 +0200 Subject: [PATCH] Versioning engines default location: the VMS case OpenSSL engines are tied to the OpenSSL shared library versions, starting with OpenSSL 1.1. We therefore need to install them in directories which have the shared library version in it's name, to easily allow multiple OpenSSL versions to be installed at the same time. For VMS, the change is a bit more involved, primarly because the top installation directory was already versioned, *as well as* some of the files inside. That's a bit too much. Version numbering in files is also a bit different on VMS. The engines for shared library version 1.1 will therefore end up in OSSL$INSTROOT:[ENGINES0101.'arch'] ('arch' is the architecture we build for) Reviewed-by: Rich Salz --- Configurations/descrip.mms.tmpl | 38 +++++++++++++++++++-------------- VMS/openssl_shutdown.com.in | 25 ++++++++-------------- VMS/openssl_startup.com.in | 29 ++++++++++--------------- 3 files changed, 42 insertions(+), 50 deletions(-) diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl index de25c81d69..8c29db30a3 100644 --- a/Configurations/descrip.mms.tmpl +++ b/Configurations/descrip.mms.tmpl @@ -9,6 +9,9 @@ our $osslprefix = 'OSSL$'; (our $osslprefix_q = $osslprefix) =~ s/\$/\\\$/; + our $sover = sprintf "%02d%02d", $config{shlib_major}, $config{shlib_minor}; + our $osslver = sprintf "%02d%02d", split(/\./, $config{version}); + our $sourcedir = $config{sourcedir}; our $builddir = $config{builddir}; sub sourcefile { @@ -141,9 +144,8 @@ MISC_SCRIPTS=[.apps]CA.pl, [.apps]tsget.pl DESTDIR= # Do not edit this manually. Use Configure --prefix=DIR to change this! -INSTALLTOP={- my $x = sprintf "%02d%02d", split(/\./, $config{version}); - our $installtop = - catdir($config{prefix}) || "SYS\$COMMON:[OPENSSL$x]"; +INSTALLTOP={- our $installtop = + catdir($config{prefix}) || "SYS\$COMMON:[OPENSSL]"; $installtop -} SYSTARTUP={- catdir($installtop, '[.SYS$STARTUP]'); -} # This is the standard central area to store certificates, private keys... @@ -151,7 +153,7 @@ OPENSSLDIR={- catdir($config{openssldir}) || $config{prefix} ? catdir($config{prefix},"COMMON") : "SYS\$COMMON:[OPENSSL-COMMON]" -} # Where installed engines reside -ENGINESDIR={- $osslprefix -}ENGINES: +ENGINESDIR={- $osslprefix -}ENGINES{- $sover -}: CC= {- $target{cc} -} CFLAGS= /DEFINE=({- join(",", @{$target{defines}}, @{$config{defines}},"OPENSSLDIR=\"\"\"\$(OPENSSLDIR)\"\"\"","ENGINESDIR=\"\"\"\$(ENGINESDIR)\"\"\"") -}) {- $target{cflags} -} {- $config{cflags} -} @@ -284,8 +286,8 @@ install : install_sw install_ssldirs install_docs @ IF "$(DESTDIR)" .EQS. "" THEN - PIPE ( WRITE SYS$OUTPUT "Installation complete" ; - WRITE SYS$OUTPUT "" ; - - WRITE SYS$OUTPUT "Run @$(INSTALLTOP)openssl_startup to set up logical names" ; - - WRITE SYS$OUTPUT "then run @$(INSTALLTOP)openssl_setup to define commands" ; - + WRITE SYS$OUTPUT "Run @$(INSTALLTOP)openssl_startup{- $osslver -} to set up logical names" ; - + WRITE SYS$OUTPUT "then run @$(INSTALLTOP)openssl_utils{- $osslver -} to define commands" ; - WRITE SYS$OUTPUT "" ) @ IF "$(DESTDIR)" .NES. "" THEN - PIPE ( WRITE SYS$OUTPUT "Staging installation complete" ; - @@ -298,12 +300,12 @@ install : install_sw install_ssldirs install_docs WRITE SYS$OUTPUT "ends up in $(OPENSSLDIR)" ; - WRITE SYS$OUTPUT "" ; - WRITE SYS$OUTPUT "When in its final destination," ; - - WRITE SYS$OUTPUT "Run @$(SYSTARTUP)openssl_startup to set up logical names" ; - - WRITE SYS$OUTPUT "then run @$(SYSTARTUP)openssl_utils to define commands" ; - + WRITE SYS$OUTPUT "Run @$(SYSTARTUP)openssl_startup{- $osslver -} to set up logical names" ; - + WRITE SYS$OUTPUT "then run @$(SYSTARTUP)openssl_utils{- $osslver -} to define commands" ; - WRITE SYS$OUTPUT "" ) check_install : - spawn/nolog @ossl_installroot:[SYSTEST]openssl_ivp.com + spawn/nolog @ossl_installroot:[SYSTEST]openssl_ivp{- $osslver -}.com uninstall : uninstall_docs uninstall_sw @@ -392,7 +394,7 @@ install_runtime : check_INSTALLTOP @ ! Install the main program - CREATE/DIR ossl_installroot:[EXE.'arch'] COPY/PROT=W:RE [.APPS]openssl.EXE - - ossl_installroot:[EXE.'arch']openssl{- sprintf "%02d%02d", split(/\./, $config{version}) -}.EXE + ossl_installroot:[EXE.'arch']openssl{- $osslver -}.EXE @ ! Install scripts - CREATE/DIR ossl_installroot:[EXE] COPY/PROT=W:RE $(BIN_SCRIPTS) ossl_installroot:[EXE] @@ -401,22 +403,26 @@ install_runtime : check_INSTALLTOP install_engines : check_INSTALLTOP @ {- output_off() unless scalar @{$unified_info{engines}}; "" -} ! @ WRITE SYS$OUTPUT "*** Installing engines" - - CREATE/DIR ossl_installroot:[ENGINES.'arch'] + - CREATE/DIR ossl_installroot:[ENGINES{- $sover -}.'arch'] {- join("\n ", - map { "COPY/PROT=W:RE $_.EXE ossl_installroot:[ENGINES.'arch']" } + map { "COPY/PROT=W:RE $_.EXE ossl_installroot:[ENGINES$sover.'arch']" } grep(!m|ossltest$|i, @{$unified_info{engines}})) -} @ {- output_on() unless scalar @{$unified_info{engines}}; "" -} ! install_startup : [.VMS]openssl_startup.com [.VMS]openssl_shutdown.com - [.VMS]openssl_utils.com, check_INSTALLTOP - CREATE/DIR ossl_installroot:[SYS$STARTUP] - COPY/PROT=W:RE [.VMS]openssl_startup.com ossl_installroot:[SYS$STARTUP] - COPY/PROT=W:RE [.VMS]openssl_shutdown.com ossl_installroot:[SYS$STARTUP] - COPY/PROT=W:RE [.VMS]openssl_utils.com ossl_installroot:[SYS$STARTUP] + COPY/PROT=W:RE [.VMS]openssl_startup.com - + ossl_installroot:[SYS$STARTUP]openssl_startup{- $osslver -}.com + COPY/PROT=W:RE [.VMS]openssl_shutdown.com - + ossl_installroot:[SYS$STARTUP]openssl_shutdown{- $osslver -}.com + COPY/PROT=W:RE [.VMS]openssl_utils.com - + ossl_installroot:[SYS$STARTUP]openssl_utils{- $osslver -}.com install_ivp : [.VMS]openssl_ivp.com check_INSTALLTOP - CREATE/DIR ossl_installroot:[SYSTEST] - COPY/PROT=W:RE [.VMS]openssl_ivp.com ossl_installroot:[SYSTEST] + COPY/PROT=W:RE [.VMS]openssl_ivp.com - + ossl_installroot:[SYSTEST]openssl_ivp{- $osslver -}.com [.VMS]openssl_startup.com : vmsconfig.pm {- sourcefile("VMS", "openssl_startup.com.in") -} - CREATE/DIR [.VMS] diff --git a/VMS/openssl_shutdown.com.in b/VMS/openssl_shutdown.com.in index 01971f3667..f27d8556cd 100644 --- a/VMS/openssl_shutdown.com.in +++ b/VMS/openssl_shutdown.com.in @@ -30,29 +30,22 @@ $ v := {- sprintf "%02d%02d", split(/\./, $config{version}) -} $ sv := {- sprintf "%02d%02d", $config{shlib_major}, $config{shlib_minor} -} $ pz := {- $config{pointer_size} -} $ -$ DEAS OSSL$ROOT'v' -$ DEAS OSSL$INCLUDE'v' -$ DEAS OSSL$LIB'v' -$ DEAS OSSL$SHARE'v' -$ DEAS OSSL$ENGINES'v' -$ DEAS OSSL$EXE'v' -$ DEAS OSSL$LIBCRYPTO'pz''v' -$ DEAS OSSL$LIBSSL'pz''v' +$ DEAS OSSL$INSTROOT +$ DEAS OSSL$INCLUDE +$ DEAS OSSL$LIB +$ DEAS OSSL$SHARE +$ DEAS OSSL$ENGINES'sv' +$ DEAS OSSL$EXE +$ DEAS OSSL$LIBCRYPTO'pz' +$ DEAS OSSL$LIBSSL'pz' $ DEAS OSSL$LIBCRYPTO'sv'_SHR'pz' $ DEAS OSSL$LIBSSL'sv'_SHR'pz' $ IF P2 .NES. "NOALIASES" $ THEN -$ DEAS OSSL$ROOT -$ DEAS OSSL$INCLUDE -$ DEAS OSSL$LIB -$ DEAS OSSL$SHARE $ DEAS OSSL$ENGINES -$ DEAS OSSL$EXE -$ DEAS OPENSSL -$ DEAS OSSL$LIBCRYPTO'pz' -$ DEAS OSSL$LIBSSL'pz' $ DEAS OSSL$LIBCRYPTO_SHR'pz' $ DEAS OSSL$LIBSSL_SHR'pz' +$ DEAS OPENSSL $ ENDIF $ $ EXIT 'status' diff --git a/VMS/openssl_startup.com.in b/VMS/openssl_startup.com.in index b5570eecac..8ec35f0ef2 100644 --- a/VMS/openssl_startup.com.in +++ b/VMS/openssl_startup.com.in @@ -84,26 +84,19 @@ $ v := {- sprintf "%02d%02d", split(/\./, $config{version}) -} $ sv := {- sprintf "%02d%02d", $config{shlib_major}, $config{shlib_minor} -} $ pz := {- $config{pointer_size} -} $ -$ DEFT OSSL$INSTROOT'v' 'INSTALLTOP_'] -$ DEFT OSSL$INCLUDE'v' 'INSTALLTOP_'INCLUDE.] -$ DEF OSSL$LIB'v' OSSL$INSTROOT'v':[LIB.'arch'] -$ DEF OSSL$SHARE'v' OSSL$INSTROOT'v':[LIB.'arch'] -$ DEF OSSL$ENGINES'v' OSSL$INSTROOT'v':[ENGINES.'arch'] -$ DEF OSSL$EXE'v' OSSL$INSTROOT'v':[EXE.'arch'] -$ DEF OSSL$LIBCRYPTO'pz''v' OSSL$LIB'v':OSSL$LIBCRYPTO'pz'.OLB -$ DEF OSSL$LIBSSL'pz''v' OSSL$LIB'v':OSSL$LIBSSL'pz'.OLB -$ DEF OSSL$LIBCRYPTO'sv'_SHR'pz' OSSL$SHARE'v':OSSL$LIBCRYPTO'sv'_SHR'pz'.EXE -$ DEF OSSL$LIBSSL'sv'_SHR'pz' OSSL$SHARE'v':OSSL$LIBSSL'sv'_SHR'pz'.EXE +$ DEFT OSSL$INSTROOT 'INSTALLTOP_'] +$ DEFT OSSL$INCLUDE 'INSTALLTOP_'INCLUDE.] +$ DEF OSSL$LIB OSSL$INSTROOT:[LIB.'arch'] +$ DEF OSSL$SHARE OSSL$INSTROOT:[LIB.'arch'] +$ DEF OSSL$ENGINES'sv' OSSL$INSTROOT:[ENGINES'sv'.'arch'] +$ DEF OSSL$EXE OSSL$INSTROOT:[EXE.'arch'] +$ DEF OSSL$LIBCRYPTO'pz' OSSL$LIB:OSSL$LIBCRYPTO'pz'.OLB +$ DEF OSSL$LIBSSL'pz' OSSL$LIB:OSSL$LIBSSL'pz'.OLB +$ DEF OSSL$LIBCRYPTO'sv'_SHR'pz' OSSL$SHARE:OSSL$LIBCRYPTO'sv'_SHR'pz'.EXE +$ DEF OSSL$LIBSSL'sv'_SHR'pz' OSSL$SHARE:OSSL$LIBSSL'sv'_SHR'pz'.EXE $ IF P2 .NES. "NOALIASES" $ THEN -$ DEF OSSL$INSTROOT OSSL$INSTROOT'v' -$ DEF OSSL$INCLUDE OSSL$INCLUDE'v' -$ DEF OSSL$LIB OSSL$LIB'v' -$ DEF OSSL$SHARE OSSL$SHARE'v' -$ DEF OSSL$ENGINES OSSL$ENGINES'v' -$ DEF OSSL$EXE OSSL$EXE'v' -$ DEF OSSL$LIBCRYPTO'pz' OSSL$LIBCRYPTO'pz''v' -$ DEF OSSL$LIBSSL'pz' OSSL$LIBSSL'pz''v' +$ DEF OSSL$ENGINES OSSL$ENGINES'sv' $ DEF OSSL$LIBCRYPTO_SHR'pz' OSSL$LIBCRYPTO'sv'_SHR'pz' $ DEF OSSL$LIBSSL_SHR'pz' OSSL$LIBSSL'sv'_SHR'pz' $ DEF OPENSSL OSSL$INCLUDE:[OPENSSL] -- 2.34.1