[0001]
[0002]
[0003]
[0004]
[0005]
[0006]
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
[0055]
[0056]
[0057]
[0058]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
[0076]
[0077]
[0078]
[0079]
[0080]
[0081]
[0082]
[0083]
[0084]
[0085]
[0086]
[0087]
[0088]
[0089]
[0090]
[0091]
[0092]
[0093]
[0094]
[0095]
[0096]
[0097]
[0098]
[0099]
[0100]
[0101]
[0102]
[0103]
[0104]
[0105]
[0106]
[0107]
[0108]
[0109]
[0110]
[0111]
[0112]
[0113]
[0114]
[0115]
[0116]
[0117]
[0118]
[0119]
[0120]
[0121]
[0122]
[0123]
[0124]
[0125]
[0126]
[0127]
[0128]
[0129]
[0130]
[0131]
[0132]
[0133]
[0134]
[0135]
[0136]
[0137]
[0138]
[0139]
[0140]
[0141]
[0142]
[0143]
[0144]
[0145]
[0146]
[0147]
[0148]
[0149]
[0150]
[0151]
[0152]
[0153]
[0154]
[0155]
[0156]
[0157]
[0158]
[0159]
[0160]
[0161]
[0162]
[0163]
[0164]
[0165]
[0166]
[0167]
[0168]
[0169]
[0170]
[0171]
[0172]
[0173]
[0174]
[0175]
[0176]
[0177]
[0178]
[0179]
[0180]
[0181]
[0182]
[0183]
[0184]
[0185]
[0186]
[0187]
[0188]
[0189]
[0190]
[0191]
[0192]
[0193]
[0194]
[0195]
[0196]
[0197]
[0198]
[0199]
[0200]
[0201]
[0202]
[0203]
[0204]
[0205]
[0206]
[0207]
[0208]
[0209]
[0210]
[0211]
[0212]
[0213]
[0214]
[0215]
[0216]
[0217]
[0218]
[0219]
[0220]
[0221]
[0222]
[0223]
[0224]
[0225]
[0226]
[0227]
[0228]
[0229]
[0230]
[0231]
[0232]
[0233]
[0234]
[0235]
[0236]
[0237]
[0238]
[0239]
[0240]
[0241]
[0242]
[0243]
[0244]
[0245]
[0246]
[0247]
[0248]
[0249]
[0250]
[0251]
[0252]
[0253]
[0254]
[0255]
[0256]
[0257]
[0258]
[0259]
[0260]
[0261]
[0262]
[0263]
[0264]
$!-----------------------------------------------------------------'f$verify(0)
$! INSTALL.COM
$!
$! Copyright (C) 1996-2021 Mark G.Daniel.
$!
$! Licensed under the Apache License, Version 2.0 (the "License");
$! you may not use this file except in compliance with the License.
$! You may obtain a copy of the License at
$!
$!    http://www.apache.org/licenses/LICENSE-2.0
$!
$! Unless required by applicable law or agreed to in writing, software
$! distributed under the License is distributed on an "AS IS" BASIS,
$! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
$! See the License for the specific language governing permissions and
$! limitations under the License.
$!
$! Install the WASD Hypertext Services Package.
$!
$! @INSTALL INSTALL  !overrides the 'already-installed' check and exit!
$!
$ INSTALL_VERSION = "v12.0.0"
$!
$! 18-DEC-2020  MGD  VAX is not longer implemented
$! 10-DEC-2014  MGD  check required privilege
$! 07-NOV-2009  MGD  v10.0.0, logical naming schema
$! 14-SEP-2007  MGD  up-case procedure spec to avoid mixed-case issues
$! 19-JUL-2007  MGD  bugfix; parse of HT_ROOT with rooted logical (Tim Sneddon)
$! 13-MAR-2006  MGD  v9.1.4, shutdown.com
$! 07-DEC-2002  MGD  v8.1, major revision
$! 07-JUN-2002  MGD  v8.0, new version
$! 03-NOV-2001  MGD  v7.2.1, PERSONA_MACRO build
$! 12-MAY-2001  MGD  v7.2, adjust HTTP$SERVER account quotas upwards
$! 01-SEP-2000  MGD  v7.1, adjust disk quota upwards
$! 20-MAY-2000  MGD  v7.0, new version
$! 30-NOV-1999  MGD  v6.1, remove NETLIB support,
$!                         compile+link or link-only
$!                         bugfix; HT_ROOT derived from concealed device
$! 18-MAY-1999  MGD  v6.0
$! 14-NOV-1998  MGD  v5.3, new server startup procedure
$! 03-SEP-1998  MGD  v5.2
$! 28-JUL-1998  MGD  allow for enabled disk quotas
$! 27-JUN-1998  MGD  initial, v5.1 (and some would say long overdue!)
$!-----------------------------------------------------------------------------
$!
$ if f$trnlnm("INSTALL$DBUG") .nes. "" then set verify
$!
$ ss$_abort = 44
$ ss$_bugcheck = 676
$ P1 = f$edit(P1,"upcase")
$ P2 = f$edit(P2,"upcase")
$ delete = "delete"
$ copy = "copy"
$ say = "write sys$command"
$ vms_version = f$integer(f$extract(1,1,f$getsyi("version"))) * 10 +-
                f$integer(f$extract(3,1,f$getsyi("version")))
$ if vms_version .ge. 72 then set process /parse=traditional
$ archName = f$edit(f$getsyi("ARCH_NAME"),"UPCASE")
$ if archName .eqs. "ALPHA" then archName = "AXP"
$ set control=Y
$ on controly then exit ss$_abort
$!
$ if (f$trnlnm("WASD_ROOT","LNM$SYSTEM") .nes. "" .or. -
      f$trnlnm("HT_ROOT","LNM$SYSTEM") .nes. "") .and. -
      (P1 .nes. "INSTALL" .and. P2 .nes. "INSTALL")
$ then
$    type SYS$INPUT

                  *****************************************
                  *   "WASD_ROOT" LOGICAL NAME DETECTED.  *
                  *  THIS DOES NOT LOOK LIKE AN INSTALL!  *
                  *****************************************

$    exit
$ endif
$!
$ if f$trnlnm("WASD_ROOT","LNM$JOB") .eqs. ""
$ then
$!   (subprocess to do the actual work, define local logicals)
$    procCom = f$edit(f$environment("PROCEDURE"),"UPCASE")
$    wasdRoot = f$parse(procCom,,,"DEVICE","NO_CONCEAL") + -
              f$parse(procCom,,,"DIRECTORY","NO_CONCEAL") - -
              "][" - ".000000" - "000000." - ".INSTALL]" + ".]"
$    define /job /nolog /translation=concealed WASD_ROOT 'wasdRoot'
$    wasdExe = "WASD_ROOT:[''archName']"
$    define /job /nolog WASD_EXE 'wasdExe'
$    define /job /nolog HT_EXE 'wasdExe'
$!   (spawn a subprocess to do the actual install ensures job logical deletion)
$    set noon
$    spawn /wait @'procCom' "''P1'" "''P2'"
$    set on
$    deassign /job WASD_ROOT
$    deassign /job WASD_EXE
$    deassign /job HT_EXE
$    exit
$ endif
$!
$ currentDefault = f$environment("DEFAULT")
$!
$! (remove once requirement for IA64-hosted X86 cross-compilers unnecessary)
$ deassign /nolog /process XCC$WASD
$!
$ @wasd_root:[install]copyright.com
$!
$ say "                 *******************************************
$ say "                 *  INSTALL WASD VMS Web Services ''INSTALL_VERSION'  *"
$ say "                 *******************************************
$ type sys$input

All sections may be individually declined before making any modifications.
In this sense the install may be undertaken step-by-step or sections repeated.
The first section is COMPILING/LINKING, after which you will be able to quit.
In a mixed architecture cluster (including both Alpha and VAX systems) the
compile/link section must be performed on both!

$ read sys$command response /prompt="Press RETURN to continue: "
$ say ""
$!
$ if .not. f$privilege("SYSPRV")
$ then
$    type sys$input
                        *****************************
                        *  requires SYSPRV enabled  *
                        *****************************

$    exit ss$_abort
$ endif
$!
$ if f$search("WASD_ROOT:[000000]*.*") .eqs. ""
$ then
$    type sys$input
          ***********************************************************
          *  APPEARS TO BE A PROBLEM WITH THE "WASD_ROOT" LOGICAL!  *
          ***********************************************************

$    exit ss$_abort
$ endif
$!                         ***********************
$!                         *  BUILD EXECUTABLES  *
$!                         ***********************
$!
$ @WASD_ROOT:[INSTALL]BUILD.COM
$!
$ type sys$input
                          ************************
                          *  SERVER QUICK-CHECK  *
                          ************************

This executes the package demonstration procedure, allowing the basic package
to be evaluated or checked.  You may run this at any time to again check the
package for basic functionality using @WASD_ROOT:[INSTALL]DEMO.COM

$ response = ""
$ read sys$command response /prompt="Execute the demonstration procedure? [NO]: "
$ say ""
$ if response
$ then
$    @WASD_ROOT:[INSTALL]DEMO.COM
$ endif
$!
$ type sys$input
                        ****************************
                        *  CONTINUE INSTALLATION?  *
                        ****************************

$ response = ""
$ read sys$command response /prompt="Continue the installation? [NO]: "
$ say ""
$ if .not. response then exit
$!
$ if f$search("WASD_ROOT:[WASDPC]CHECK.COM") .nes. ""
$ then
$    type sys$input
                         **************************
                         *  CHECK DOCUMENTATION?  *
                         **************************

$    response = ""
$    read sys$command response /prompt="Check [WASDOC] content? [NO]: "
$    say ""
$    if response then @WASD_ROOT:[WASDOC]CHECK.COM
$ endif
$!
$!(create accounts)
$ @WASD_ROOT:[INSTALL]ACCOUNTS INSTALL
$ if .not. $status then exit $status
$!
$!(ensure WASD_ROOT.DIR has required file protections)
$ wasdRootDir = f$trnlnm("wasd_root",,"no_conceal") - ".]" + ".-]WASD_ROOT.DIR"
$ set file /owner=SYSTEM /protection=(s:rwed,o:rwed,g:re,w:re) 'wasdRootDir'
$!
$!(secure the package tree)
$ @WASD_ROOT:[INSTALL]SECURE INSTALL
$ if .not. $status then exit $status
$!
$ type sys$input
                          *************************
                          *  HTTPD SUPPORT FILES  *
                          *************************

Copies files from WASD_ROOT:[EXAMPLE]

  STARTUP.COM           to    WASD_ROOT:[STARTUP]
  SHUTDOWN.COM          to    WASD_ROOT:[STARTUP]
  STARTUP_DECNET.COM    to    WASD_ROOT:[STARTUP]
  STARTUP_LOCAL.COM     to    WASD_ROOT:[STARTUP]
  STARTUP_SERVER.COM    to    WASD_ROOT:[STARTUP]
  WASD_FILE_DEV.COM     to    WASD_ROOT:[000000]

  WASD_CONFIG_AUTH.CONF       to    WASD_ROOT:[LOCAL]
  WASD_CONFIG_CONFIG.CONF     to    WASD_ROOT:[LOCAL]
  WASD_CONFIG_MAP.CONF        to    WASD_ROOT:[LOCAL]
  WASD_CONFIG_MSG.CONF        to    WASD_ROOT:[LOCAL]
  WASD_CONFIG_SERVICE.CONF    to    WASD_ROOT:[LOCAL]

$ response = ""
$ read sys$command response /prompt="Copy the files? [NO]: "
$ say ""
$ if response
$ then
$    copy = "copy/log"
$    copy wasd_root:[example]startup.com               wasd_root:[startup]
$    copy wasd_root:[example]shutdown.com              wasd_root:[startup]
$    copy wasd_root:[example]startup_decnet.com        wasd_root:[startup]
$    copy wasd_root:[example]startup_local.com         wasd_root:[startup]
$    copy wasd_root:[example]startup_server.com        wasd_root:[startup]
$    copy wasd_root:[example]wasd_file_dev.com         wasd_root:[000000]
$    copy wasd_root:[example]wasd_config_auth.conf     wasd_root:[local]
$    copy wasd_root:[example]wasd_config_global.conf   wasd_root:[local]
$    copy wasd_root:[example]wasd_config_map.conf      wasd_root:[local]
$    copy wasd_root:[example]wasd_config_msg.conf      wasd_root:[local]
$    copy wasd_root:[example]wasd_config_service.conf  wasd_root:[local]
$    say ""
$ endif
$!
$ type sys$input
                        *****************************
                        *  INSTALL PACKAGE SCRIPTS  *
                        *****************************

The procedure WASD_ROOT:[INSTALL]SCRIPTS.COM installs package scripts.
It prompts for selected groups of scripts to be installed or removed.  More
information is available when using the procedure.  Scripts available with this
release of the package will not be available for use by the server until this
procedure is performed.

You can execute the procedure now or do it later manually.

$ response = ""
$ read sys$command response /prompt="Execute the procedure now? [NO]: "
$ say ""
$ if response
$ then
$    @WASD_ROOT:[INSTALL]SCRIPTS.COM
$!   'f$verify(0)
$    set default 'currentDefault'
$ endif
$!
$ type sys$input
                       ******************************
                       *  INSTALL  C O M P L E T E  *
                       ******************************

$!-----------------------------------------------------------------------------