diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2018-04-11 21:30:20 +0300 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2018-04-12 10:45:14 +0200 |
commit | 8faa1bc61fa8f09365d483364aea2b1c2751b587 (patch) | |
tree | c61bce5ec8f9652ac73a8750b5797aeb9d1927bf | |
parent | cac80ccacf917e7e80f75c3574cc2a300f1d775a (diff) |
tdf#108580 related: check for Windows 8.1 April 2014 update rollup
... since it's the required prerequisite for Universal CRT.
This moves Windows version check to LaunchCondition table; and adds a
check for kernel32.dll version associated with the said update level.
Change-Id: I1de84dc47c9392fcb7122e1a877db2e99eae2415
Reviewed-on: https://gerrit.libreoffice.org/52743
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
13 files changed, 47 insertions, 9 deletions
diff --git a/instsetoo_native/inc_ooohelppack/windows/msi_templates/Control.idt b/instsetoo_native/inc_ooohelppack/windows/msi_templates/Control.idt index 55f1fcfe6b20..24c02f85f7b8 100644 --- a/instsetoo_native/inc_ooohelppack/windows/msi_templates/Control.idt +++ b/instsetoo_native/inc_ooohelppack/windows/msi_templates/Control.idt @@ -249,7 +249,7 @@ SetupError I PushButton 192 80 66 17 3 OOO_CONTROL_207 SetupError N PushButton 192 80 66 17 3 OOO_CONTROL_208 SetupError O PushButton 192 80 66 17 3 OOO_CONTROL_209 SetupError R PushButton 192 80 66 17 3 OOO_CONTROL_210 -SetupError WarningIcon Icon 15 15 24 24 5242881 CautionIco +SetupError ErrorIcon Icon 15 15 24 24 5242881 CautionIco SetupError Y PushButton 192 80 66 17 3 OOO_CONTROL_211 SetupInitialization ActionData Text 135 125 228 12 65539 SetupInitialization ActionText Text 135 109 220 36 65539 diff --git a/instsetoo_native/inc_openoffice/windows/msi_languages/CustomAc.ulf b/instsetoo_native/inc_openoffice/windows/msi_languages/CustomAc.ulf index 742cb8cbfb84..1038d6ca5679 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_languages/CustomAc.ulf +++ b/instsetoo_native/inc_openoffice/windows/msi_languages/CustomAc.ulf @@ -21,6 +21,3 @@ en-US = "A newer version of [ProductName] was found. To install an older versio [OOO_CUSTOMACTION_2] en-US = "The same version of this product is already installed." - -[OOO_CUSTOMACTION_5] -en-US = "[ProductName] cannot be installed on this Windows version. [WindowsMinVersionText] or newer is required." diff --git a/instsetoo_native/inc_openoffice/windows/msi_languages/LaunchCo.ulf b/instsetoo_native/inc_openoffice/windows/msi_languages/LaunchCo.ulf index e3f6f7fa8f53..5e57eb1c3c0e 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_languages/LaunchCo.ulf +++ b/instsetoo_native/inc_openoffice/windows/msi_languages/LaunchCo.ulf @@ -1,2 +1,6 @@ [OOO_LAUNCH_1] en-US = "The Installation Wizard cannot be run properly because you are logged in as a user without sufficient administrator rights for this system." +[OOO_LAUNCH_2] +en-US = "[ProductName] cannot be installed on this Windows version. [WindowsMinVersionText] or newer is required." +[OOO_LAUNCH_3] +en-US = "To install [ProductName] on Windows 8.1, at least April 2014 update rollup (MS KB 2919355) must be installed." diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt index 095cf907bf46..60793dd69ded 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt @@ -7,3 +7,4 @@ INSTALLLOCATION installmachine INSTALLLOCATION installmachine_ VCREDISTINSTALLED_X86 VCREDISTINSTALLED_X86 VCREDISTINSTALLED_X64 VCREDISTINSTALLED_X64 +WIN81S14 win81s14 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/Control.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/Control.idt index f90d76f5717b..9871b7d3b8cd 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/Control.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/Control.idt @@ -253,7 +253,7 @@ SetupError I PushButton 192 80 66 17 3 OOO_CONTROL_207 SetupError N PushButton 192 80 66 17 3 OOO_CONTROL_208 SetupError O PushButton 192 80 66 17 3 OOO_CONTROL_209 SetupError R PushButton 192 80 66 17 3 OOO_CONTROL_210 -SetupError WarningIcon Icon 15 15 24 24 5242881 CautionIco +SetupError ErrorIcon Icon 15 15 24 24 5242881 CautionIco SetupError Y PushButton 192 80 66 17 3 OOO_CONTROL_211 SetupInitialization ActionData Text 135 125 228 12 65539 SetupInitialization ActionText Text 135 109 220 36 65539 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt index 8aa06a155b46..d010a0bd2279 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt @@ -7,7 +7,6 @@ setUserProfile 51 USERPROFILE [%USERPROFILE] SetARPInstallLocation 51 ARPINSTALLLOCATION [INSTALLLOCATION] NewProductFound 19 OOO_CUSTOMACTION_1 SameProductFound 19 OOO_CUSTOMACTION_2 -WrongWindowsVersion 19 OOO_CUSTOMACTION_5 SetLanguageSelected 51 LANG_SELECTED 1 ResetLanguageSelected 51 LANG_SELECTED 0 SetApplicationSelected 51 APP_SELECTED 1 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/DrLocato.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/DrLocato.idt new file mode 100644 index 000000000000..589ab7c52806 --- /dev/null +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/DrLocato.idt @@ -0,0 +1,4 @@ +Signature_ Parent Path Depth +s72 S72 S255 I2 +DrLocator Signature_ Parent Path +win81s14 [SystemFolder] diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt index 722bb463629d..336d322052e7 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt @@ -69,4 +69,3 @@ ValidateProductID 300 WriteEnvironmentStrings 2500 WriteIniValues 2450 WriteRegistryValues 2400 -WrongWindowsVersion (VersionNT < WindowsMinVersionNumber) OR ((VersionNT = WindowsMinVersionNumber) AND (ServicePackLevel < WindowsMinSPNumber)) 10 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/InstallU.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/InstallU.idt index 3bb2a5191d20..642eac064bee 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/InstallU.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/InstallU.idt @@ -28,4 +28,3 @@ SetupProgress 800 SetupResume Installed And (RESUME Or Preselected) And Not PATCH 700 setUserProfile 510 ValidateProductID 350 -WrongWindowsVersion (VersionNT < WindowsMinVersionNumber) OR ((VersionNT = WindowsMinVersionNumber) AND (ServicePackLevel < WindowsMinSPNumber)) 10 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt index e4d3f330b006..2d72ac2d05c4 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt @@ -2,3 +2,5 @@ Condition Description s255 l255 65001 LaunchCondition Condition Privileged OOO_LAUNCH_1 +VersionNT > WindowsMinVersionNumber Or (VersionNT = WindowsMinVersionNumber And ServicePackLevel >= WindowsMinSPNumber) OOO_LAUNCH_2 +VersionNT <> 603 Or WIN81S14 OOO_LAUNCH_3 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/Signatur.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/Signatur.idt index 5004a55863ba..d5abd9769125 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/Signatur.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/Signatur.idt @@ -1,3 +1,7 @@ Signature FileName MinVersion MaxVersion MinSize MaxSize MinDate MaxDate Languages s72 s255 S20 S20 I4 I4 I4 I4 S255 Signature Signature +# Since it's impossible to match minimal version in Signature table independent of +# 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 diff --git a/instsetoo_native/inc_sdkoo/windows/msi_templates/Control.idt b/instsetoo_native/inc_sdkoo/windows/msi_templates/Control.idt index 9bc37a8ed840..d9ac9d1a550a 100644 --- a/instsetoo_native/inc_sdkoo/windows/msi_templates/Control.idt +++ b/instsetoo_native/inc_sdkoo/windows/msi_templates/Control.idt @@ -236,7 +236,7 @@ SetupError I PushButton 192 80 66 17 3 OOO_CONTROL_207 SetupError N PushButton 192 80 66 17 3 OOO_CONTROL_208 SetupError O PushButton 192 80 66 17 3 OOO_CONTROL_209 SetupError R PushButton 192 80 66 17 3 OOO_CONTROL_210 -SetupError WarningIcon Icon 15 15 24 24 5242881 CautionIco +SetupError ErrorIcon Icon 15 15 24 24 5242881 CautionIco SetupError Y PushButton 192 80 66 17 3 OOO_CONTROL_211 SetupInitialization ActionData Text 135 125 228 12 65539 SetupInitialization ActionText Text 135 109 220 36 65539 diff --git a/solenv/bin/modules/installer/windows/msiglobal.pm b/solenv/bin/modules/installer/windows/msiglobal.pm index 46b131fa7724..f830c6eb0598 100644 --- a/solenv/bin/modules/installer/windows/msiglobal.pm +++ b/solenv/bin/modules/installer/windows/msiglobal.pm @@ -1009,6 +1009,7 @@ sub set_uuid_into_component_table # Adding final 64 properties into msi database, if required. # RegLocator : +16 in type column to search in 64 bit registry. # All conditions: "VersionNT" -> "VersionNT64" (several tables). +# DrLocator: "SystemFolder" -> "System64Folder" # Already done: "+256" in Attributes column of table "Component". # Still following: Setting "x64" instead of "Intel" in Summary # Information Stream of msi database in "get_template_for_sis". @@ -1099,6 +1100,34 @@ sub prepare_64bit_database } } } + + # 3. Replacing all occurrences of "SystemFolder" by "System64Folder" in "DrLocato.idt" + + my $drlocatofilename = $basedir . $installer::globals::separator . "DrLocato.idt"; + if ( -f $drlocatofilename ) + { + my $saving_required = 0; + my $drlocatofile = installer::files::read_file($drlocatofilename); + + for ( my $i = 3; $i <= $#{$drlocatofile}; $i++ ) # ignoring the first three lines + { + my $oneline = ${$drlocatofile}[$i]; + + if ( $oneline =~ /\bSystemFolder\b/ ) + { + ${$drlocatofile}[$i] =~ s/\bSystemFolder\b/System64Folder/g; + $saving_required = 1; + } + } + + if ( $saving_required ) + { + # Saving the files + installer::files::save_file($drlocatofilename ,$drlocatofile); + $infoline = "Making idt file 64 bit conform: $drlocatofilename\n"; + push(@installer::globals::logfileinfo, $infoline); + } + } } } |