Files
pxe-server/playbook/preinstall/opentext
cproudlock cd00d6d2e1 OpenText: track Setup-OpenText scripts in repo, opt-in KillAfterDetection
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>
2026-04-09 12:08:07 -04:00
..

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.