From 913c807142f089c9510cabb03c91e44045fce7f1 Mon Sep 17 00:00:00 2001 From: cproudlock Date: Thu, 4 Jun 2026 07:40:11 -0400 Subject: [PATCH] preinstall: OpenText + serial drivers on all PC types; Oracle on DNC bays + CMM - Shopfloor Serial Drivers: PCTypes ["Standard"] -> ["*"]. Serial hardware appears across bays; a driver where the hardware is absent is harmless (sits in the driver store). PartMarker/HeatTreat were getting skipped. - OpenText HostExplorer ShopFloor: PCTypes -> ["*"]. Every shopfloor PC type should get HostExplorer + its profiles/EB/keymaps/menus + desktop shortcuts. - Oracle Client 11.2: scoped to the DNC-bearing types (collections, nocollections, partmarker, heattreat) + CMM (metrology tooling links the Oracle home). Dropped Genspect/Keyence/WaxAndTrace/Display/Timeclock, which have no DNC and don't need the Oracle client. Co-Authored-By: Claude Opus 4.8 (1M context) --- playbook/preinstall/preinstall.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/playbook/preinstall/preinstall.json b/playbook/preinstall/preinstall.json index a5f930d..5d8f356 100644 --- a/playbook/preinstall/preinstall.json +++ b/playbook/preinstall/preinstall.json @@ -14,7 +14,7 @@ "PCTypes": ["*"] }, { - "_comment": "Oracle Client 11.2 Administrator - installed first because downstream apps (eDNC/NTLARS/UDC and CMM tooling) link against the Oracle home and fail cold if it's missing. Installer is a .cmd wrapper (Type=EXE is the preinstall runner's shim for non-MSI launchers, same pattern as OpenText Setup-OpenText.cmd). The wrapper expects Oracle_OracleDatabase_11r2_V03.zip (686 MB) staged next to it, unpacks to %TEMP%, runs Oracle Universal Installer silently with ge_client_install.rsp, then cleans up the staging dir. OUI exit 3 is treated as success (warnings-but-ok). Detection via the registered home key; downstream upgrades or version pins are handled by the runtime enforcer's Oracle Client 11.2 manifest entry in common/manifest.json.", + "_comment": "Oracle Client 11.2 Administrator - installed first because downstream apps (eDNC/NTLARS/UDC and CMM tooling) link against the Oracle home and fail cold if it's missing. Installer is a .cmd wrapper (Type=EXE is the preinstall runner's shim for non-MSI launchers, same pattern as OpenText Setup-OpenText.cmd). The wrapper expects Oracle_OracleDatabase_11r2_V03.zip (686 MB) staged next to it, unpacks to %TEMP%, runs Oracle Universal Installer silently with ge_client_install.rsp, then cleans up the staging dir. OUI exit 3 is treated as success (warnings-but-ok). Detection via the registered home key; downstream upgrades or version pins are handled by the runtime enforcer's Oracle Client 11.2 manifest entry in common/manifest.json. Scoped to the DNC-bearing PC types (collections, nocollections, partmarker, heattreat) plus CMM, whose metrology tooling links the Oracle home; non-DNC types (Genspect, Keyence, WaxAndTrace, Display, Timeclock, Lab) do not get it.", "Name": "Oracle Client 11.2", "Installer": "oracle\\Install-Oracle11r2.cmd", "Type": "EXE", @@ -24,7 +24,7 @@ "DetectionPath": "HKLM:\\SOFTWARE\\WOW6432Node\\Oracle\\KEY_OraClient11g_home1", "DetectionName": "ORACLE_HOME_NAME", "DetectionValue": "OraClient11g_home1", - "PCTypes": ["Standard", "CMM", "Genspect", "Keyence", "WaxAndTrace", "Display", "gea-shopfloor-partmarker", "gea-shopfloor-heattreat"] + "PCTypes": ["gea-shopfloor-collections", "gea-shopfloor-nocollections", "gea-shopfloor-partmarker", "gea-shopfloor-heattreat", "gea-shopfloor-cmm"] }, { "_comment": "VC++ 2008 SP1 x86 - the bootstrapper (vcredist2008_x86.exe) ignores /norestart and triggers an immediate Windows reboot when files are in use (per Aaron Stebner's MSDN docs). Fix: install the extracted vc_red.msi directly with REBOOT=ReallySuppress, which IS hard-honored by Windows Installer. msiexec may return 3010 (would-have-rebooted-but-suppressed) but won't actually reboot. cab name 'vc_red.cab' is hardcoded in the MSI's Media table - do not rename.", @@ -164,7 +164,7 @@ "Type": "EXE", "InstallArgs": "", "LogFile": "C:\\Logs\\PreInstall\\Setup-OpenText.log", - "PCTypes": ["Standard", "CMM", "Keyence", "Genspect", "WaxAndTrace", "Lab", "Heattreat", "PartMarker", "gea-shopfloor-partmarker"] + "PCTypes": ["*"] }, { "_comment": "UDC_Setup.exe spawns a hidden WPF window (UDC.exe) after install and never exits, so the runner needs KillAfterDetection: true to terminate UDC_Setup.exe + UDC.exe once the registry detection passes. This is an OPT-IN flag - normal installers should NOT set it because killing msiexec mid-install leaves msiserver holding the install mutex and the next msiexec call returns 1618 (Oracle hit this exact bug).", @@ -199,7 +199,7 @@ "PCTypes": ["*"] }, { - "_comment": "Shopfloor Standard serial-port drivers: StarTech PCIe serial adapter (MosChip-based) + Prolific PL2303 USB-to-serial. Install-Drivers.cmd runs pnputil /add-driver with /subdirs /install so every bundled INF under drivers/ lands in the Windows driver store and auto-binds to matching hardware present now or plugged in later. Scoped to Standard PCs (both Machine + Timeclock) because the PCTypes filter is type-level only; installing a serial driver on a Timeclock without the hardware is harmless - it just sits in the driver store.", + "_comment": "Shopfloor Standard serial-port drivers: StarTech PCIe serial adapter (MosChip-based) + Prolific PL2303 USB-to-serial. Install-Drivers.cmd runs pnputil /add-driver with /subdirs /install so every bundled INF under drivers/ lands in the Windows driver store and auto-binds to matching hardware present now or plugged in later. Installed on every PC type (PCTypes ['*']) because serial hardware turns up across bays; a serial driver on a PC without the hardware is harmless - it just sits in the driver store until matching hardware is plugged in.", "Name": "Shopfloor Serial Drivers", "Installer": "drivers\\Install-Drivers.cmd", "Type": "EXE", @@ -207,7 +207,7 @@ "LogFile": "C:\\Logs\\PreInstall\\Install-Drivers.log", "DetectionMethod": "File", "DetectionPath": "C:\\ProgramData\\PXEDrivers\\drivers-installed.marker", - "PCTypes": ["Standard"] + "PCTypes": ["*"] } ] }