-
Notifications
You must be signed in to change notification settings - Fork 30k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow creating MSI installers for Windows ARM64 #33689
Allow creating MSI installers for Windows ARM64 #33689
Conversation
Adds configuration to allow building an MSI installer for Windows ARM64. MSI can be created by running `vcbuild.bat release msi arm64` Refs: nodejs#25998 Refs: nodejs#32582
@nodejs/platform-windows |
@dennisameling thanks for opening this PR and moving ARM64 support forward! The approach here generally LGTM. We have WiX 3.11 in the machines that build Node, we get it from https://chocolatey.org/packages/wixtoolset. To move forward with ARM64 support I'll have to look into the best way to overcome this, but for now, since ARM64 is experimental, this does not block this PR unless there is some conflict with WiX 3.11 when building the supported architectures. These files have been in place for a while, and for big changes we should test upgrade scenarios. To avoid that, I'd be more confident landing this if you could remove the unrelated changes you mentioned above, if building still works. Minor nit, there's a change in the last line of the We need to start a test build of the final version of this before landing, to ensure there are no regressions with the current release system. |
@joaocgreis thanks for the feedback! Will update the PR in the coming days 😊 |
@joaocgreis PR updated, deleted unrelated changes. The MSI build and installation still work as expected, so that's good 😊 I don't expect this to cause any issues with WiX 3.11 and the existing build process, because it should only try to find WiX's ARM64 files when an ARM64 build is explicitly requested. If you could start a test build of the final version that'd be fantastic, I'm curious if it will work as expected. One last thing I'm not sure about, is the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
Test build completed successfully: https://nodejs.org/download/test/v15.0.0-test20200608f03c158f25/
About the changes in vcbuild, I'd rather leave that for another PR and land this PR as is. For node-chakracore, I once did nodejs/node-chakracore@efeaf88. Having a way to automatically download the latest node.exe would be good, but we need to make it very hard for that executable to be used unintentionally in the tests. So, download to a new subdirectory (to be added to .gitignore) and possibly rename the file. We still need a way like in the commit above to pass a variable and not download, so that the CI machines don't have to download every time. Something like this would go very well with our CI/release system:
if not defined native_node_exe set "native_node_exe=%~dp0native-bin\native-node.exe"
if not exist "%native_node_exe%" DOWNLOAD
The |
Landed in 35871c3 |
Adds configuration to allow building an MSI installer for Windows ARM64.
MSI can be created by running
vcbuild.bat release msi arm64
IMPORTANT: when building an MSI for ARM64, WIX 3.14 or higher is required, as that version includes support for ARM64.
I created a test release with a ZIP and MSI for Windows ARM64: https://github.com/dennisameling/node/releases/tag/15-arm64win
I only got
Failed to generate license.rtf
because the generatednode.exe
file is an ARM64 exe which can't be executed on a x64 host. When I skipped that part, the build was packaged successfully. We could try to find a solution for this either in this PR or in another PR.Refs: #25998
Refs: #32582
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes --> didvcbuild test arm64
but didn't work on host x64 machine as it's not capable of running arm64 exe files.