x86 and arm64 installer packages #10

Closed
opened 2026-10-14 01:26:55 -05:00 by jeff · 1 comment
Owner

Parent

Part of #1

What to build

-a x86, -a x64 and -a arm64, with x64 the default. The architecture sets the summary information template and minimum installer version, marks components 64-bit in x64 and arm64 installer packages, and is visible to WiX sources as $(sys.BUILDARCH). Every VM test fixture is built for each architecture the reference implementation supports.

Acceptance criteria

  • Seam 1 tests: the template, installer version and component attributes for each architecture.
  • Seam 2 test: $(sys.BUILDARCH) expands to x86, x64 or arm64 as -a says, in a conditional.
  • An unknown architecture is an error naming the ones supported.
  • VM test: every fixture's tables match the reference implementation's for each architecture, with generated columns masked.
  • VM test: the x86 and x64 builds of a fixture install under Wine into Program Files (x86) and Program Files respectively.
## Parent Part of #1 ## What to build `-a x86`, `-a x64` and `-a arm64`, with x64 the default. The architecture sets the summary information template and minimum installer version, marks components 64-bit in x64 and arm64 installer packages, and is visible to WiX sources as `$(sys.BUILDARCH)`. Every VM test fixture is built for each architecture the reference implementation supports. ## Acceptance criteria - [ ] Seam 1 tests: the template, installer version and component attributes for each architecture. - [ ] Seam 2 test: `$(sys.BUILDARCH)` expands to `x86`, `x64` or `arm64` as `-a` says, in a conditional. - [ ] An unknown architecture is an error naming the ones supported. - [ ] VM test: every fixture's tables match the reference implementation's for each architecture, with generated columns masked. - [ ] VM test: the x86 and x64 builds of a fixture install under Wine into `Program Files (x86)` and `Program Files` respectively.
jeff self-assigned this 2026-10-14 04:03:53 -05:00
Author
Owner

Done in 7a909cb; CI run 8 is green.

  • What changed: a package without InstallerVersion now gets its architecture's minimum: 100 for x86, 200 for x64, 500 for arm64. A lower one is an error. -a intel is accepted as wixl's alias for x86.
  • Seam 1: the template, minimum installer version and 64-bit component attribute for each architecture, and $(sys.BUILDARCH) choosing the program files folder.
  • End to end: every fixture chooses ProgramFilesFolder or ProgramFiles64Folder with $(sys.BUILDARCH), and is now checked for x86, x64 and arm64:
    • x86 and x64 are compared with wixl and installed under Wine, an x86 package into Program Files (x86) and registered in the 32-bit registry view.
    • arm64 is checked for reproducibility and with msiinfo and cabextract only, since msitools 0.106 rejects arm64 outright and this Wine can't install it.
Done in 7a909cb; CI run 8 is green. - **What changed:** a package without `InstallerVersion` now gets its architecture's minimum: 100 for x86, 200 for x64, 500 for arm64. A lower one is an error. `-a intel` is accepted as wixl's alias for x86. - **Seam 1:** the template, minimum installer version and 64-bit component attribute for each architecture, and `$(sys.BUILDARCH)` choosing the program files folder. - **End to end:** every fixture chooses `ProgramFilesFolder` or `ProgramFiles64Folder` with `$(sys.BUILDARCH)`, and is now checked for x86, x64 and arm64: - **x86 and x64** are compared with wixl and installed under Wine, an x86 package into `Program Files (x86)` and registered in the 32-bit registry view. - **arm64** is checked for reproducibility and with `msiinfo` and `cabextract` only, since msitools 0.106 rejects arm64 outright and this Wine can't install it.
jeff closed this issue 2026-10-14 04:44:45 -05:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
jeff/zixl#10
No description provided.