Skip to content

Windows arm64/x86 installer - #24

Open
quarckster wants to merge 8 commits into
mainfrom
windows-arm64-installer
Open

quarckster wants to merge 8 commits into
mainfrom
windows-arm64-installer

Conversation

@quarckster

Copy link
Copy Markdown
Member

No description provided.

quarckster and others added 3 commits September 11, 2026 17:12
New ExeBuild_arm64/MsiBuild_arm64 builds (ARM64 package type) from a
VC-WIN64-ARM tree, per-architecture features for the arch-suffixed
libcrypto/libssl DLLs, and a bundled VC_redist.arm64.exe prerequisite.
Tests learn the installer architecture from the artifact name.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
ExeBuild_x86/MsiBuild_x86 and their hybridCRT twins from VC-WIN32 trees:
x86 package type, 32-bit Program Files, unsuffixed libcrypto/libssl DLL
names, bundled VC_redist.x86.exe. Tests get per-arch install root,
registry paths and DLL suffix.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Per-architecture FIPS and installer builds, arm64 test entries, and
vswhere-based Visual Studio lookup instead of a hard-coded path.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@quarckster
quarckster requested a review from jogme September 11, 2026 15:26
quarckster and others added 4 commits September 11, 2026 17:32
MD4 does not build on Windows arm64.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…build names

On windows-11-arm uv picked an x86_64 CPython, so the tests drove Windows
Installer from an emulated process; use the image's native arm64 Python.
msiexec now writes a verbose log whose tail is printed on failure.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Arm64 packages must declare schema 500 (Summary Page Count); with 450
msiexec rejects the package with 1620 before running any action.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The ARM64 runtime does not write the DevDiv servicing key, so the test
and the arm64 prerequisite search use VisualStudio\14.0\VC\Runtimes\<arch>.
EXE installs pass /exelog and /l*v and print both log tails on failure.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@jogme jogme changed the title Windows arm64 installer Windows arm64/x86 installer Sep 15, 2026

@jogme jogme left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

first round

Comment thread windows-installer/openssl.aip Outdated
Comment thread windows-installer/openssl.aip Outdated
<ROW BuildKey="DefaultBuild" BuildName="ExeBuild" BuildOrder="1" BuildType="0" PackageFolder="..\build-target\Installer64" PackageFileName="OpenSSL-x64-VS-[|ProductVersion]" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExeIconPath="resources\logo.ico" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" UseLargeSchema="true" Unicode="true" ExeName="OpenSSL-x64-VS-[|ProductVersion]" MsiPackageType="x64"/>
<ROW BuildKey="ExeBuild_1" BuildName="ExeBuild_hybrid" BuildOrder="4" BuildType="0" PackageFolder="..\build-target\Installer64" PackageFileName="OpenSSL-x64-hybridCRT-[|ProductVersion]" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExeIconPath="resources\logo.ico" SummInfoMetadata="Page Count:450" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" UseLargeSchema="true" Unicode="true" ExeName="OpenSSL-x64-hybridCRT-[|ProductVersion]" MsiPackageType="x64"/>
<ROW BuildKey="MsiBuild_1" BuildName="MsiBuild_hybrid" BuildOrder="3" BuildType="0" PackageFolder="..\build-target\Installer64" PackageFileName="OpenSSL-x64-hybridCRT-[|ProductVersion]" Languages="en" InstallationType="4" SummInfoMetadata="Page Count:450" UseLargeSchema="true" Unicode="true" MsiPackageType="x64"/>
<ROW BuildKey="ExeBuild_arm64" BuildName="ExeBuild_arm64" BuildOrder="5" BuildType="0" PackageFolder="..\build-target\Installer64" PackageFileName="OpenSSL-arm64-VS-[|ProductVersion]" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExeIconPath="resources\logo.ico" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" UseLargeSchema="true" Unicode="true" ExeName="OpenSSL-arm64-VS-[|ProductVersion]" MsiPackageType="Arm64"/>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this does not add hybrid version. It might be worth considering dropping VS entirely and doing only hybrid with arm

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no VC-WIN64-ARM-HYBRIDCRT target in OpenSSL

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Windows on ARM64 starts at Windows 10, so the predefined "cannot be
installed on Windows 9x/NT 4.0/2000/XP/2003/Vista" conditions and their
display-name properties can never fire there. They were copied over with
the rest of the x64 build settings; remove them from ExeBuild_arm64,
leaving the arm64 packages with the same set MsiBuild_arm64 already had.

The 32-bit guard (NoNT) and the bootstrapper guard stay, as on x64.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants