solenv/bin/modules/installer/windows/msiglobal.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
New commits: commit 816bd7171742163911986a77812a3e8151f6fe10 Author: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> AuthorDate: Mon Aug 18 14:04:33 2025 +0200 Commit: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> CommitDate: Mon Aug 18 16:53:57 2025 +0200 tdf#166947 properly fix windows installation sets for aarch64 While https://learn.microsoft.com/en-us/windows/win32/msi/template-summary says that the value should be Arm64 for aarch64, the installsets created by the baseline fail to install/produce error 1620 on installation. The missing bit was that for that to work properly the msi summary information table must be at least schema version 500. That is mentioned here: https://learn.microsoft.com/en-us/windows/win32/msi/using-64-bit-windows-installer-packages Thanks a lot to Mike Kaganski for that pointer Change-Id: I5fc84f877c6af98c78107ff99920def7053a3950 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189868 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+libreoff...@googlemail.com> diff --git a/solenv/bin/modules/installer/windows/msiglobal.pm b/solenv/bin/modules/installer/windows/msiglobal.pm index ecc8fbe63912..0c4327afe1e1 100644 --- a/solenv/bin/modules/installer/windows/msiglobal.pm +++ b/solenv/bin/modules/installer/windows/msiglobal.pm @@ -504,8 +504,7 @@ sub get_template_for_sis if (( $allvariables->{'64BITPRODUCT'} ) && ( $allvariables->{'64BITPRODUCT'} == 1 )) { $architecture = "x64"; } - # Windows is not happy when setting this on baseline/gives error 1620 when trying to launch the installer - # $architecture = "Arm64" if($ENV{'RTL_ARCH'} eq "AARCH64"); + $architecture = "Arm64" if($ENV{'RTL_ARCH'} eq "AARCH64"); my $value = "\"" . $architecture . ";" . $windowslanguage; # adding the Windows language @@ -551,7 +550,9 @@ sub write_summary_into_msi_database my $msiinfo = "msiinfo.exe"; # Has to be in the path - my $msiversion = 200; + # schema version needs to be at least 500 to support 64bit packages on Arm64 + # see https://learn.microsoft.com/en-us/windows/win32/msi/using-64-bit-windows-installer-packages + my $msiversion = 500; my $codepage = 0; # PID_CODEPAGE summary property in a signed short, therefore it is impossible to set 65001 here. my $template = get_template_for_sis($language, $allvariableshashref); my $guid = get_packagecode_for_sis();