mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-25 21:20:00 +00:00
cce5ca2a7e
The non-required **Unified Agent Native Verification** workflow has failed on `main` (and most PRs) in both macOS jobs since 12 Oct (first failing main run 38285211868 on c3524d373a; last green 38273335159 on552e838749). The single cause is `TestInstallSHUpstartTeardownRequiresObservedQuiescence`: 13 Python subtests in `agent_upstart_teardown.py` fail with `ln: illegal option -- T`. `scripts/install.sh` uses `ln -T -- <pending> <override>` and `ln -T -- <retired> <conf>` in the DSM Upstart teardown (added in the DSM retirement series,a7271f5840/b7b0eb0b01). That path only runs on Synology DSM (Linux), so the installer is correct. The harness runs those functions with the host `ln`, which on macOS runners is BSD `ln` without `-T`. The workflow already supplies GNU `stat/chmod/chown/mv/tar` (plus Bash 5) for Linux-only installer fixtures on macOS. This adds `ln` to that set and extends `TestNativeInstallerFixtureToolsAreRealAndStepLocal` to require it (missing/non-GNU scenarios, PATH binding, and real `ln -T` no-replacement checks against file and directory targets). Verification: - Reproduced locally on macOS: the harness fails 13/15 with BSD `ln` and passes 15/15 when `ln -T` is available. - `TestNativeInstallerFixtureToolsAreRealAndStepLocal`: fails against the old workflow (real tools, missing ln, non-GNU ln) and passes with this change (Linux). - The macOS jobs themselves are only exercised by this PR's CI run.