scp2/source/ooo/ucrt.scp                                      |   12 +++++-----
 setup_native/source/win32/customactions/inst_msu/inst_msu.cxx |    2 -
 solenv/bin/modules/installer/windows/binary.pm                |    3 +-
 3 files changed, 9 insertions(+), 8 deletions(-)

New commits:
commit 8a24efd16d1515ff806406d37d234e4ac7940c45
Author:     kubak <[email protected]>
AuthorDate: Tue Apr 23 23:45:54 2024 +0200
Commit:     Mike Kaganski <[email protected]>
CommitDate: Fri Apr 26 13:11:34 2024 +0200

    MSI: Fix use of illegal character in table Binary
    
    ICE03 ERROR Invalid identifier; Table: Binary, Column: Name, Key(s): 
Windows61-KB2999226-x64msu
    ICE03 ERROR Invalid identifier; Table: Binary, Column: Name, Key(s): 
Windows81-KB2999226-x64msu
    ICE03 ERROR Invalid identifier; Table: Binary, Column: Name, Key(s): 
Windows8-RT-KB2999226-x64msu
    
    We use the illegal "-" character.
    
    https: //learn.microsoft.com/en-us/windows/win32/msi/binary-table
    https: //learn.microsoft.com/en-us/windows/win32/msi/identifier
    Change-Id: I44aea358964c085599ab42f134535fa97840dd26
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166567
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <[email protected]>

diff --git a/scp2/source/ooo/ucrt.scp b/scp2/source/ooo/ucrt.scp
index b945523fe961..7f4ec8195870 100644
--- a/scp2/source/ooo/ucrt.scp
+++ b/scp2/source/ooo/ucrt.scp
@@ -92,7 +92,7 @@ WindowsCustomAction gid_Customaction_check_win7x64_ucrt
        Name = "check_win7x64_ucrt";
        Typ = "51";
        Source = "InstMSUBinary";
-       Target = "KB2999226|Windows61-KB2999226-x64msu";
+       Target = "KB2999226|Windows61_KB2999226_x64msu";
        Inbinarytable = 0;
        Assignment1 = ("InstallExecuteSequence", "Not Installed And VersionNT = 
601 And VersionNT64", "FileCost");
        Styles = "NO_FILE";
@@ -102,7 +102,7 @@ WindowsCustomAction gid_Customaction_check_win8x64_ucrt
        Name = "check_win8x64_ucrt";
        Typ = "51";
        Source = "InstMSUBinary";
-       Target = "KB2999226|Windows8-RT-KB2999226-x64msu";
+       Target = "KB2999226|Windows8_RT_KB2999226_x64msu";
        Inbinarytable = 0;
        Assignment1 = ("InstallExecuteSequence", "Not Installed And VersionNT = 
602 And VersionNT64", "check_win7x64_ucrt");
        Styles = "NO_FILE";
@@ -112,7 +112,7 @@ WindowsCustomAction gid_Customaction_check_win81x64_ucrt
        Name = "check_win81x64_ucrt";
        Typ = "51";
        Source = "InstMSUBinary";
-       Target = "KB2999226|Windows81-KB2999226-x64msu";
+       Target = "KB2999226|Windows81_KB2999226_x64msu";
        Inbinarytable = 0;
        Assignment1 = ("InstallExecuteSequence", "Not Installed And VersionNT = 
603 And (Not WINMAJORVER Or WINMAJORVER = \"#6\") And VersionNT64", 
"check_win8x64_ucrt");
        Styles = "NO_FILE";
@@ -128,7 +128,7 @@ WindowsCustomAction gid_Customaction_check_win7x32_ucrt
        Name = "check_win7x32_ucrt";
        Typ = "51";
        Source = "InstMSUBinary";
-       Target = "KB2999226|Windows61-KB2999226-x86msu";
+       Target = "KB2999226|Windows61_KB2999226_x86msu";
        Inbinarytable = 0;
        Assignment1 = ("InstallExecuteSequence", "Not Installed And VersionNT = 
601 And Not VersionNT64", "check_win81x64_ucrt");
        Styles = "NO_FILE";
@@ -138,7 +138,7 @@ WindowsCustomAction gid_Customaction_check_win8x32_ucrt
        Name = "check_win8x32_ucrt";
        Typ = "51";
        Source = "InstMSUBinary";
-       Target = "KB2999226|Windows8-RT-KB2999226-x86msu";
+       Target = "KB2999226|Windows8_RT_KB2999226_x86msu";
        Inbinarytable = 0;
        Assignment1 = ("InstallExecuteSequence", "Not Installed And VersionNT = 
602 And Not VersionNT64", "check_win7x32_ucrt");
        Styles = "NO_FILE";
@@ -148,7 +148,7 @@ WindowsCustomAction gid_Customaction_check_win81x32_ucrt
        Name = "check_win81x32_ucrt";
        Typ = "51";
        Source = "InstMSUBinary";
-       Target = "KB2999226|Windows81-KB2999226-x86msu";
+       Target = "KB2999226|Windows81_KB2999226_x86msu";
        Inbinarytable = 0;
        Assignment1 = ("InstallExecuteSequence", "Not Installed And VersionNT = 
603 And (Not WINMAJORVER Or WINMAJORVER = \"#6\") And Not VersionNT64", 
"check_win8x32_ucrt");
        Styles = "NO_FILE";
diff --git a/setup_native/source/win32/customactions/inst_msu/inst_msu.cxx 
b/setup_native/source/win32/customactions/inst_msu/inst_msu.cxx
index 8adffbba6228..d890f2628193 100644
--- a/setup_native/source/win32/customactions/inst_msu/inst_msu.cxx
+++ b/setup_native/source/win32/customactions/inst_msu/inst_msu.cxx
@@ -456,7 +456,7 @@ extern "C" __declspec(dllexport) UINT __stdcall 
UnpackMSUForInstall(MSIHANDLE hI
         CheckWin32Error("MsiGetPropertyW",
                         MsiGetPropertyW(hInstall, L"InstMSUBinary", 
sInstMSUBinary, &nCCh));
         WriteLog(hInstall, "Got InstMSUBinary value:",
-                 sInstMSUBinary); // KB2999226|Windows61-KB2999226-x64msu
+                 sInstMSUBinary); // KB2999226|Windows61_KB2999226_x64msu
         const wchar_t* sBinaryName = wcschr(sInstMSUBinary, L'|');
         if (!sBinaryName)
             throw std::exception("No KB number in InstMSUBinary!");
diff --git a/solenv/bin/modules/installer/windows/binary.pm 
b/solenv/bin/modules/installer/windows/binary.pm
index 2c63b7bdf799..e6ae7043a1d3 100644
--- a/solenv/bin/modules/installer/windows/binary.pm
+++ b/solenv/bin/modules/installer/windows/binary.pm
@@ -48,7 +48,8 @@ sub update_binary_table
         my $binaryfilename = $binaryfile->{'Name'};
         my $binaryfiledata = $binaryfilename;
 
-        $binaryfilename =~ s/\.//g;  # removing "." in filename: "abc.dll" to 
"abcdll" in name column
+        $binaryfilename =~ s/\.//g;     # removing "." in filename: 
"a-b-c.dll" to "a-b-cdll" in name column
+        $binaryfilename =~ s/\-/\_/g;   # converting "-" to "_" in filename: 
"a-b-cdll" to "a_b_cdll" in name column
 
         my %binary = ();
 

Reply via email to