Two related fixes from a debugging round on the test PC:
1. PreInstall runner: detection-during-install kill is now opt-in via
"KillAfterDetection: true" on JSON entries that need it. Old behavior
killed any installer as soon as its detection passed - which broke
Oracle: Oracle creates its registry key partway through install,
the runner detected it at the 25s poll, killed msiexec mid-install,
and msiserver was still doing rollback when the next install (VC++
2008) started - so VC++ 2008 hit ERROR_INSTALL_ALREADY_RUNNING
(1618). Only UDC needs the detection-kill (its installer spawns a
hidden WPF window and never exits). Other installers exit cleanly
on their own and shouldn't be killed.
2. Track Setup-OpenText scripts in git. The bundled OpenText install
scripts (Setup-OpenText.ps1, Setup-OpenText.cmd, version.txt) live
at runtime in /home/camp/pxe-images/main/dependencies/opentext/
alongside the binary install files (~106 MB of MSI/CAB/MSP/MST plus
profile content). The binaries stay outside git but the script
logic and version stamp are mirrored into playbook/preinstall/
opentext/ here so git history captures changes to the install
logic and version bumps. README.md explains the workflow.
Latest Setup-OpenText.ps1 includes:
- $SourceDir default moved into script body (PowerShell evaluates
param([string]$X = $PSScriptRoot) defaults at parameter-binding
time, when $PSScriptRoot may not yet be populated, so the
default came out as empty string and Join-Path crashed)
- Logging set up FIRST so any startup error gets captured
- REBOOT=ReallySuppress dropped from both msiexec calls (base MSI
and SP1 patch) - OpenText installs shell extensions that hook
explorer.exe, and Restart Manager closes explorer to replace
the shell DLLs. With REBOOT=ReallySuppress, RM closed explorer
but interpreted the relaunch as a "reboot action" and refused
to do it, leaving the user with no desktop. /norestart on its
own prevents the actual Windows reboot but lets RM cleanly
close-and-relaunch explorer mid-install.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
# OpenText HostExplorer ShopFloor — install scripts
|
|
|
|
These three files are git-tracked snapshots of what lives at runtime
|
|
in `/home/camp/pxe-images/main/dependencies/opentext/`. The full
|
|
runtime tree also contains the bundled installer binaries (~106 MB
|
|
total) which are intentionally NOT in git:
|
|
|
|
```
|
|
OpenTextHostExplorer15x64.msi ~16 MB
|
|
OpenTextHostExplorer15x64.cab ~86 MB
|
|
OpenTextHostExplorer15x64_ServicePack1.msp ~4.4 MB
|
|
ShopFloorx64.mst ~20 KB
|
|
Profile/ 5 .hep connection profiles
|
|
Accessories/EB/ 6 .ebs/.ebx macros
|
|
HostExplorer/Keymap/ 2 .kmv keymaps
|
|
HostExplorer/Menu/ 2 .hmv menu layouts
|
|
W10shortcuts/ 4 .lnk public-desktop shortcuts
|
|
```
|
|
|
|
The canonical source for everything (scripts AND binaries) is
|
|
`/home/camp/pxe-images/main/dependencies/opentext/`. The files in
|
|
this dir are mirrors that exist so changes to the install logic and
|
|
the version stamp end up in git history. When editing:
|
|
|
|
1. Edit `/home/camp/pxe-images/main/dependencies/opentext/Setup-OpenText.ps1`
|
|
(or `.cmd` / `version.txt`)
|
|
2. Re-run `bash playbook/sync-preinstall.sh` to push the runtime tree
|
|
to the live PXE server
|
|
3. `cp` the changed file(s) into `playbook/preinstall/opentext/` here
|
|
so git picks up the change
|
|
4. Re-upload the changed file(s) to Azure Blob at
|
|
`prod/main/dependencies/opentext/<filename>`
|
|
|
|
To bump OpenText version: edit `version.txt` only - the value flows
|
|
through to Setup-OpenText.ps1 (which reads it at runtime), to
|
|
Install-OpenText.ps1 (the DSC wrapper, which downloads version.txt
|
|
first as a cheap detection check), and to the registry marker at
|
|
`HKLM:\SOFTWARE\GE\OpenText\Installed`.
|