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();
  • core.git: solenv/bin Christian Lohmaier (via logerrit)
    • core.git: solenv/bin Christian Lohmaier (via logerrit)

Reply via email to