Story: Hotfix: macOS debug CPack packaging fails with Xcode 16 strip regression
Table of Contents
This page documents a story in Sprint 21. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Restore the macOS debug CI build after it started failing during CPack Bundle packaging when
Xcode 16 was selected (PR #1325). build/cpack/CMakeLists.txt sets CPACK_STRIP_FILES YES
unconditionally; combined with the macOS Bundle generator this causes strip to run on every
installed binary. Xcode 16.2's strip has a regression where it aborts if the
LC_DYLD_EXPORTS_TRIE export trie grows larger after pruning — which occurs for
ores.refdata.service.
The fix mirrors the existing Windows-debug pattern in CTest.cmake: skip the package target
for macOS debug (use all instead), so strip is never invoked on unstripped debug binaries.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 21 |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-06-27 |
Acceptance
- macOS debug CI run completes without
striperror. - The
packagetarget is skipped for macOS debug (build target isall), consistent with the Windows debug pattern. - macOS release CI is unaffected.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Scaffold story: Hotfix: macOS debug CPack packaging fails with Xcode 16 strip regression | DONE | 2026-06-26 | 2026-06-27 | Story scaffolding rides this task: documents, sprint wiring, and the scaffold PR. Close it before merging that PR. |
| Implement Hotfix: macOS debug CPack packaging fails with Xcode 16 strip regression | DONE | 2026-06-26 | 2026-06-27 | Skip CPack packaging for macOS debug in CTest.cmake to avoid Xcode 16.2 strip regression. |
Decisions
- Skip macOS debug packaging (Option A) rather than disabling strip in CMakeLists.txt (Option B) because debug DMGs are not useful build artifacts, the change is a single condition in CTest.cmake mirroring the existing Windows-debug guard, and it avoids touching the packaging configuration which is shared with release.
Out of scope
- Fixing the upstream Xcode 16.2
stripregression. - Disabling stripping on macOS release.