Versioning engines default location: the VMS case
authorRichard Levitte <levitte@openssl.org>
Wed, 6 Jul 2016 16:53:56 +0000 (18:53 +0200)
committerRichard Levitte <levitte@openssl.org>
Thu, 7 Jul 2016 13:07:32 +0000 (15:07 +0200)
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 <rsalz@openssl.org>
Configurations/descrip.mms.tmpl
VMS/openssl_shutdown.com.in
VMS/openssl_startup.com.in

index de25c81d695247851d224516b7281a00c801d149..8c29db30a32338fc1818cf39b9f019af262831f9 100644 (file)
@@ -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]
index 01971f3667d20b27c1af227f45b6ad253ea87ecb..f27d8556cde8b386d6c15a6f03066ffb4f3911b4 100644 (file)
@@ -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'
index b5570eecac0eb217c067af1748bab4bbd8ba1ed6..8ec35f0ef287e2757dea83f52ea57dd683d95288 100644 (file)
@@ -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]