Commit e8fb1295 authored by Richard Levitte's avatar Richard Levitte
Browse files

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: default avatarRich Salz <rsalz@openssl.org>
parent b2de11c5
Loading
Loading
Loading
Loading
+22 −16
Original line number Diff line number Diff line
@@ -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]
+9 −16
Original line number Diff line number Diff line
@@ -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$LIBCRYPTO'sv'_SHR'pz'
$	DEAS OSSL$LIBSSL'sv'_SHR'pz'
$	IF P2 .NES. "NOALIASES"
$	THEN
$	    DEAS OSSL$ROOT
$	DEAS OSSL$INSTROOT
$	DEAS OSSL$INCLUDE
$	DEAS OSSL$LIB
$	DEAS OSSL$SHARE
$	    DEAS OSSL$ENGINES
$	DEAS OSSL$ENGINES'sv'
$	DEAS OSSL$EXE
$	    DEAS OPENSSL
$	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$ENGINES
$	    DEAS OSSL$LIBCRYPTO_SHR'pz'
$	    DEAS OSSL$LIBSSL_SHR'pz'
$	    DEAS OPENSSL
$	ENDIF
$
$	EXIT 'status'
+11 −18
Original line number Diff line number Diff line
@@ -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]