[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]
|1Update|

|0Before Updating|

|bullet|

|item| Review the original installation instructions to refresh the various
considerations involved.

|item| Some |/insurance| on the directory tree is recommended in case
the update should fail or otherwise be unusable or problematic (of course, this
is good advice whenever about to make major changes to anything!)  This may be
in the format of a regular site backup, special pre-update backup, or special
pre-update ZIP archive of the directory tree.  The latter two could be
accomplished using commands similar to the following:

|code|
$ BACKUP WASD_ROOT:[000000...] location:WASDROOT.BCK/SAVE/VERIFY

$ ZIP "-V" location:WASDROOT.ZIP device:[WASD_ROOT...]*.*
$ ZIP "-T" location:WASDROOT.ZIP
|!code|

|^ If using ZIP then ensure that a previous version of the target ZIP file
does not already exist.  If it does then that version is updated, a new
version is not created.

|item| For existing files a new version is created (the first time this is about
to occur the UNZIPper requests permission |-| either "A" for all, or
"y" or "n" or a per-file basis).

|item| It is possible to |/selectively| extract portions of a tree if
something has become damaged.  This would be accomplished by specifying what
needs to be extracted from the archive (instead of the default
|/all||), as illustrated by the following example where only the Alpha
object modules are extracted.

|code|
$ SET DEFAULT device:[000000]
$ UNZIP device:[dir]archive-AXP.ZIP ht_root/src/httpd/obj_axp/*.*
|!code|

|!bullet|

|2Package UNZIP|

|^ Updating a package follows a similar process to installation.

|^ The ZIP archive will contain brief installation instructions.  Use the
following command to read this and any other information provided.

|code|
$ UNZIP -z device:[dir]archive.ZIP
|!code|

|^ It is recommended to check the integrity of, then list the contents of, the
archive before UNZIPing.

|code|
$ UNZIP -t device:[dir]archive.ZIP
$ UNZIP -l device:[dir]archive.ZIP
|!code|

|^ The archive contains the complete directory tree.  Hence it is necessary
to SET DEFAULT into the parent directory of the WASD_ROOT logical name, as with
the following example.

|code|
$ SHOW LOGICAL WASD_ROOT
   "WASD_ROOT" = "DKA100:[WASD_ROOT.]" (LNM$SYSTEM_TABLE)
$ SET DEFAULT DKA100:[000000]
$ UNZIP device:[dir]archive.ZIP
|!code|

|note|
|0Updating From v9.3 or Earlier|
|*Before UNZIPing| the v11 package and when updating an existing v9.3 or
earlier installation the |*root directory must be renamed from HT_ROOT.DIR to
WASD_ROOT.DIR||.  The v10 and later packages use [WASD_ROOT] as the top-level
directory in line with other naming schema changes employing "WASD".  Remember
to modify local startup procedures in-line with this new top-level directory
name.  Also note that the v11 package is not suitable for updating from
existing v8.0 or earlier installation.
|!note|

|0Source Archive, Object Module Archives|

|^ If a complete build is planned then only the main archive is required.  If
a link-only build then an additional archive for each architecture must be
UNZIPed.

|0WASD OpenSSL Archive|

|^ WASD SSL is discussed in detail in
|link%|../features/##Transport Layer Security++of++WASD Features and Facilities||.

|note|
The WASD OpenSSL kit is designed as an update to an existing WASD installation
and so expects to be UNZIPed under the root directory.  Note the use of the
"-d" switch in the following example.
|!note|

|code|
$ UNZIP -d [.WASD_ROOT] device:[dir]OPENSSLWASD|/nnn-arch||.ZIP
|!code|

|99DCL Procedure UPDATE.COM|
|2UPDATE.COM Procedure|

|^ The UPDATE.COM procedure assists with subsequent updates of WASD. 
It assumes a |/vanilla| setup, using the standard directories and
account  environment described in this document.  All sections prompt before
performing any action and generally default to "no".  Read the questions
carefully!

|^ Of course it is best (read mandatory) for the server to be shut down during
an update!

|code|
$ HTTPD/DO=EXIT/ALL
|!code|

|^ After UNZIPing the updated package do the following:

|code|
$ SET DEFAULT WASD_ROOT:[000000]
$ @UPDATE
|!code|

|^ It provides the following functions:

|number|

|item| |*Build Executables |-| |
Either compile sources and link, or just link package object code to produce
images for the local version of VMS.  If the system has a suitable SSL toolkit
the installer is requested whether an SSL enabled version be built.

|item| |*Server Quick-Check |-| |
Executes a procedure that runs up the HTTPd in demonstration mode.  Allows
evaluation/checking of the basic package (|link|Quick-Check||).

|item| |*Server Support/Configuration Files |-| |
Copies changed example HTTP server configuration and support files from the
[EXAMPLE] directory to the [HTTP$SERVER], [LOCAL] and [STARTUP] directories. 

|item| |*Update Scripts |-| |
Selectively copy groups of scripts from package build directories into the
scripting directories.

|item| |*Reapply Package Security |-| |
This section traverses the updated tree and sets all package directories and
files to required levels of access.  For directory settings see
|link%|../config/##Recommended Package Security++in++WASD Configuration||.

|item| |*Post-Update Cleanup |-| |
Prompts for permission to execute the post-update procedure described below.

|item| |*Purge Files |-| |
Prompts for permission to purge the entire WASD_ROOT:[000000...] tree.

|!number|

|^ If declined during the update procedure the post-update steps 6 and 7 can
be performed at any subsequent time using

|code|
$ SET DEFAULT WASD_ROOT:[000000]
$ @UPDATE CLEANUP
$ PURGE [...]
|!code|

|2Re-Linking|

|^ After a major update to the operating system the package may refuse to
start, reporting the message

|code|
%DCL-W-ACTIMAGE, error activating image WHATEVER
-CLI-E-IMGNAME, image file DKA0:[SYS0.SYSCOMMON.][SYSLIB]WHATEVER_SHR.EXE
-SYSTEM-F-SHRIDMISMAT, ident mismatch with shareable image
|!code|

|^ This implies the executables require re-linking for your particular version
of VMS.  This can be accomplished quite simply, perform the linking section
only of the UPDATE.COM Procedure.