From: Richard Levitte Date: Mon, 11 Jan 2021 07:31:21 +0000 (+0100) Subject: Configurations/descrip.mms.tmpl: avoid enormous PIPE commands X-Git-Tag: OpenSSL_1_1_1j~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1881643499c4fa149177075bd2255efa6e6ebc56;p=thirdparty%2Fopenssl.git 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 (Merged from https://github.com/openssl/openssl/pull/13834) --- diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl index 399f34b3eea..04c93222cce 100644 --- a/Configurations/descrip.mms.tmpl +++ b/Configurations/descrip.mms.tmpl @@ -377,8 +377,13 @@ NODEBUG=@ $(NODEBUG) ! $(NODEBUG) ! Installation logical names $(NODEBUG) ! - $(NODEBUG) installtop = F$PARSE(staging_instdir,"$(INSTALLTOP)","[]A.;",,"SYNTAX_ONLY,NO_CONCEAL") - ".][000000" - "[000000." - "][" - "]A.;" + ".]" - $(NODEBUG) datatop = F$PARSE(staging_datadir,"$(OPENSSLDIR)","[]A.;",,"SYNTAX_ONLY,NO_CONCEAL") - ".][000000" - "[000000." - "][" - "]A.;" + ".]" + $(NODEBUG) ! This also creates a few DCL variables that are used for + $(NODEBUG) ! the "install_msg" target. + $(NODEBUG) ! + $(NODEBUG) installroot = F$PARSE(staging_instdir,"$(INSTALLTOP)","[]A.;",,"SYNTAX_ONLY,NO_CONCEAL") - ".][000000" - "[000000." - "][" - "]A.;" + $(NODEBUG) installtop = installroot + ".]" + $(NODEBUG) dataroot = F$PARSE(staging_datadir,"$(OPENSSLDIR)","[]A.;",,"SYNTAX_ONLY,NO_CONCEAL") - ".][000000" - "[000000." - "][" - "]A.;" + $(NODEBUG) datatop = dataroot + ".]" $(NODEBUG) DEFINE ossl_installroot 'installtop' $(NODEBUG) DEFINE ossl_dataroot 'datatop' $(NODEBUG) ! @@ -455,30 +460,19 @@ list-tests : @ WRITE SYS$OUTPUT "Tests are not supported with your chosen Configure options" @ ! {- output_on() if !$disabled{tests}; "" -} -install : install_sw install_ssldirs install_docs +install : install_sw install_ssldirs install_docs install_msg + @ ! + +install_msg : @ WRITE SYS$OUTPUT "" @ WRITE SYS$OUTPUT "######################################################################" @ WRITE SYS$OUTPUT "" @ IF "$(DESTDIR)" .EQS. "" THEN - - PIPE ( WRITE SYS$OUTPUT "Installation complete" ; - - WRITE SYS$OUTPUT "" ; - - 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 "" ) + @{- sourcefile("VMS", "msg_install.com") -} "$(SYSTARTUP)" "{- $osslver -}" @ IF "$(DESTDIR)" .NES. "" THEN - - PIPE ( WRITE SYS$OUTPUT "Staging installation complete" ; - - WRITE SYS$OUTPUT "" ; - - WRITE SYS$OUTPUT "Finish or package in such a way that the contents of the directory tree" ; - - WRITE SYS$OUTPUT staging_instdir ; - - WRITE SYS$OUTPUT "ends up in $(INSTALLTOP)," ; - - WRITE SYS$OUTPUT "and that the contents of the contents of the directory tree" ; - - WRITE SYS$OUTPUT staging_datadir ; - - 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{- $osslver -} to set up logical names" ; - - WRITE SYS$OUTPUT "then run @$(SYSTARTUP)openssl_utils{- $osslver -} to define commands" ; - - WRITE SYS$OUTPUT "" ) + @{- sourcefile("VMS", "msg_staging.com") -} - + "''installroot']" "''dataroot']" "$(INSTALLTOP)" "$(OPENSSLDIR)" - + "$(SYSTARTUP)" "{- $osslver -}" check_install : spawn/nolog @ossl_installroot:[SYSTEST]openssl_ivp{- $osslver -}.com diff --git a/VMS/msg_install.com b/VMS/msg_install.com new file mode 100644 index 00000000000..d1eec7c982d --- /dev/null +++ b/VMS/msg_install.com @@ -0,0 +1,19 @@ +$ ! Used by the main descrip.mms to print the installation complete +$ ! message. +$ ! Arguments: +$ ! P1 startup / setup / shutdown scripts directory +$ ! P2 distinguishing version number ("major version") +$ +$ systartup = p1 +$ osslver = p2 +$ +$ WRITE SYS$OUTPUT "Installation complete" +$ WRITE SYS$OUTPUT "" +$ WRITE SYS$OUTPUT "The following commands need to be executed to enable you to use OpenSSL:" +$ WRITE SYS$OUTPUT "" +$ WRITE SYS$OUTPUT "- to set up OpenSSL logical names:" +$ WRITE SYS$OUTPUT " @''systartup'openssl_startup''osslver'" +$ WRITE SYS$OUTPUT "" +$ WRITE SYS$OUTPUT "- to define the OpenSSL command" +$ WRITE SYS$OUTPUT " @''systartup'openssl_utils''osslver'" +$ WRITE SYS$OUTPUT "" diff --git a/VMS/msg_staging.com b/VMS/msg_staging.com new file mode 100644 index 00000000000..11cd80870d7 --- /dev/null +++ b/VMS/msg_staging.com @@ -0,0 +1,37 @@ +$ ! Used by the main descrip.mms to print the statging installation +$ ! complete +$ ! message. +$ ! Arguments: +$ ! P1 staging software installation directory +$ ! P2 staging data installation directory +$ ! P3 final software installation directory +$ ! P4 final data installation directory +$ ! P5 startup / setup / shutdown scripts directory +$ ! P6 distinguishing version number ("major version") +$ +$ staging_instdir = p1 +$ staging_datadir = p2 +$ final_instdir = p3 +$ final_datadir = p4 +$ systartup = p5 +$ osslver = p6 +$ +$ WRITE SYS$OUTPUT "Staging installation complete" +$ WRITE SYS$OUTPUT "" +$ WRITE SYS$OUTPUT "Finish or package in such a way that the contents of the following directory" +$ WRITE SYS$OUTPUT "trees end up being copied:" +$ WRITE SYS$OUTPUT "" +$ WRITE SYS$OUTPUT "- from ", staging_instdir +$ WRITE SYS$OUTPUT " to ", final_instdir +$ WRITE SYS$OUTPUT "- from ", staging_datadir +$ WRITE SYS$OUTPUT " to ", final_datadir +$ WRITE SYS$OUTPUT "" +$ WRITE SYS$OUTPUT "When in its final destination, the following commands need to be executed" +$ WRITE SYS$OUTPUT "to use OpenSSL:" +$ WRITE SYS$OUTPUT "" +$ WRITE SYS$OUTPUT "- to set up OpenSSL logical names:" +$ WRITE SYS$OUTPUT " @''systartup'openssl_startup''osslver'" +$ WRITE SYS$OUTPUT "" +$ WRITE SYS$OUTPUT "- to define the OpenSSL command" +$ WRITE SYS$OUTPUT " @''systartup'openssl_utils''osslver'" +$ WRITE SYS$OUTPUT ""