diff options
7 files changed, 27 insertions, 10 deletions
diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt index 60793dd69ded..23c2a77c9f5d 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt @@ -5,6 +5,6 @@ INSTALLLOCATION installuser INSTALLLOCATION installuser_ INSTALLLOCATION installmachine INSTALLLOCATION installmachine_ -VCREDISTINSTALLED_X86 VCREDISTINSTALLED_X86 -VCREDISTINSTALLED_X64 VCREDISTINSTALLED_X64 WIN81S14 win81s14 +UCRT_DETECTED ucrt_detected +UCRT_DETECTED ucrt_on_win10 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/DrLocato.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/DrLocato.idt index 589ab7c52806..399011e166ca 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/DrLocato.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/DrLocato.idt @@ -2,3 +2,5 @@ Signature_ Parent Path Depth s72 S72 S255 I2 DrLocator Signature_ Parent Path win81s14 [SystemFolder] +ucrt_detected [SystemFolder] +ucrt_on_win10 [SystemFolder] diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt index f8eeaf25c105..2b633b8eb37a 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt @@ -44,7 +44,7 @@ ProgressType3 installs Quickstarterlinkname QUICKSTARTERLINKNAMETEMPLATE RebootYesNo Yes ReinstallModeText omus -SecureCustomProperties NEWPRODUCTS;OLDPRODUCTS +SecureCustomProperties NEWPRODUCTS;OLDPRODUCTS;VCRUNTIME_DETECTED SetupType Typical SELECT_WORD 0 SELECT_EXCEL 0 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt index 7e59ef3c6663..c082322086ad 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt @@ -5,5 +5,3 @@ installuser 1 Software\LibreOffice\Layers\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION] installuser_ 1 Software\LibreOffice\Layers_\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION] INSTALLLOCATION 2 installmachine 2 Software\LibreOffice\Layers\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION] INSTALLLOCATION 2 installmachine_ 2 Software\LibreOffice\Layers_\[DEFINEDPRODUCT]\[BRANDPACKAGEVERSION] INSTALLLOCATION 2 -VCREDISTINSTALLED_X86 2 Software\Microsoft\VisualStudio\14.0\VC\Runtimes\x86 Version 2 -VCREDISTINSTALLED_X64 2 Software\Microsoft\VisualStudio\14.0\VC\Runtimes\x64 Version 2 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/Signatur.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/Signatur.idt index d5abd9769125..53615298dc6d 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/Signatur.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/Signatur.idt @@ -5,3 +5,12 @@ Signature Signature # language, and we need language-independent comparison, we use a value that is at # least 1 less (see note at https://msdn.microsoft.com/en-us/library/aa371853). win81s14 kernel32.dll 6.3.9600.17030 +ucrt_detected ucrtbase.dll 10.0.10240.0 +# The great feature of all recent Windows is that they make it incredibly hard to find their +# actual versions. Win 10 makes the next step in that direction: not only it tells you that +# its version is 6.3 (VersionNT is 603), but also it disallows you to get real version of a +# file during installation, if the version is greater than 6.3. So, for ucrt DLLs versioned +# by MS as 10.0.x.y, it returns 6.3.x.y, pretending to have a lower version than on Win8.1. +# Here we check for this, knowing that we get a version below 7.0 for UCRT that never had a +# version below 10.0, then it's Win10+ that is lying to us. +ucrt_on_win10 ucrtbase.dll 7.0.0.0 diff --git a/scp2/source/ooo/vc_redist.scp b/scp2/source/ooo/vc_redist.scp index 9b414b8e39fa..921a9433e820 100644 --- a/scp2/source/ooo/vc_redist.scp +++ b/scp2/source/ooo/vc_redist.scp @@ -93,11 +93,7 @@ WindowsCustomAction gid_Customaction_InstallVCRedist Source = VCREDIST_EXE_NAME; Target = "/repair /norestart /passive"; Inbinarytable = 1; -#if defined WINDOWS_X64 - Assignment1 = ("InstallUISequence", "Not Installed And ( Not VCREDISTINSTALLED_X64 Or VCREDISTINSTALLED_X64 < \"v14.0.24215.0\" )", "behind_ExecuteAction"); -#else - Assignment1 = ("InstallUISequence", "Not Installed And ( Not VCREDISTINSTALLED_X86 Or VCREDISTINSTALLED_X86 < \"v14.0.24215.0\" )", "behind_ExecuteAction"); -#endif + Assignment1 = ("InstallUISequence", "Not Installed And Not ( VCRUNTIME_DETECTED And UCRT_DETECTED ) And VC_REDIST = 1", "behind_ExecuteAction"); End #endif diff --git a/solenv/bin/modules/installer/windows/upgrade.pm b/solenv/bin/modules/installer/windows/upgrade.pm index 54838212404c..9e0d7ea79fb7 100644 --- a/solenv/bin/modules/installer/windows/upgrade.pm +++ b/solenv/bin/modules/installer/windows/upgrade.pm @@ -45,6 +45,18 @@ sub create_upgrade_table $newline = $installer::globals::upgradecode . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "\t" . "2" . "\t" . "\t" . "NEWPRODUCTS" . "\n"; push(@upgradetable, $newline); + # Detecting if VC Runtime is installed on system + $newline = "VCRUNTIME_UPGRADE_CODE" . "\t" . "14.0.24215" . "\t" . "15.0.0" . "\t" . "" . "\t" . "258" . "\t" . "" . "\t" . "VCRUNTIME_DETECTED"; + if ( $installer::globals::cpuname eq 'X86_64' ) + { + $newline =~ s/VCRUNTIME_UPGRADE_CODE/{36F68A90-239C-34DF-B58C-64B30153CE35}/; + } + else + { + $newline =~ s/VCRUNTIME_UPGRADE_CODE/{65E5BD06-6392-3027-8C26-853107D3CF1A}/; + } + push(@upgradetable, $newline); + # Saving the file my $upgradetablename = $basedir . $installer::globals::separator . "Upgrade.idt"; |