diff options
19 files changed, 143 insertions, 18 deletions
diff --git a/instsetoo_native/inc_ooolangpack/windows/msi_languages/CustomAc.ulf b/instsetoo_native/inc_ooolangpack/windows/msi_languages/CustomAc.ulf new file mode 100644 index 000000000000..284aee68eebf --- /dev/null +++ b/instsetoo_native/inc_ooolangpack/windows/msi_languages/CustomAc.ulf @@ -0,0 +1,12 @@ +[OOO_CUSTOMACTION_1] +en-US = "A newer version of [ProductName] was found. To install an older version, the newer version needs to be removed first." + +[OOO_CUSTOMACTION_2] +en-US = "The same version of this product is already installed." + +[OOO_CUSTOMACTION_3] +en-US = "An older version of [ProductName] was found. To install a newer version, the older version needs to be removed first." + +[OOO_CUSTOMACTION_4] +en-US = "Please exit [DEFINEDPRODUCT] [DEFINEDVERSION] and the [DEFINEDPRODUCT] [DEFINEDVERSION] Quickstarter before you continue. If you are using a multi-user system, also make sure that no other user has [DEFINEDPRODUCT] [DEFINEDVERSION] open." + diff --git a/instsetoo_native/inc_ooolangpack/windows/msi_templates/CustomAc.idt b/instsetoo_native/inc_ooolangpack/windows/msi_templates/CustomAc.idt index d9971918d3f5..0399b8b46113 100644 --- a/instsetoo_native/inc_ooolangpack/windows/msi_templates/CustomAc.idt +++ b/instsetoo_native/inc_ooolangpack/windows/msi_templates/CustomAc.idt @@ -10,4 +10,4 @@ SetBasisInstallLocation 51 BASISINSTALLLOCATION [BASISDIRECTORYGID] SetUreInstallLocation 51 UREINSTALLLOCATION [UREDIRECTORYGID] NewProductFound 19 OOO_CUSTOMACTION_1 SameProductFound 19 OOO_CUSTOMACTION_2 -RunningOffice 19 OOO_CUSTOMACTION_4 +RunningOffice 19 "Please exit [DEFINEDPRODUCT] [DEFINEDVERSION] and the [DEFINEDPRODUCT] [DEFINEDVERSION] Quickstarter before you continue. If you are using a multi-user system, also make sure that no other user has [DEFINEDPRODUCT] [DEFINEDVERSION] open." diff --git a/instsetoo_native/inc_ooolangpack/windows/msi_templates/LaunchCo.idt b/instsetoo_native/inc_ooolangpack/windows/msi_templates/LaunchCo.idt index 7fa2df1562b1..35d78694a664 100644 --- a/instsetoo_native/inc_ooolangpack/windows/msi_templates/LaunchCo.idt +++ b/instsetoo_native/inc_ooolangpack/windows/msi_templates/LaunchCo.idt @@ -1,4 +1,4 @@ Condition Description s255 l255 WINDOWSENCODINGTEMPLATE LaunchCondition Condition -AdminUser OOO_LAUNCH_1 +Privileged OOO_LAUNCH_1 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt index 93411143a914..f2d5eb2b8829 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt @@ -41,10 +41,9 @@ SetOfficeInstallLocation 51 OFFICEINSTALLLOCATION [OFFICEDIRECTORYGID] SetBasisInstallLocation 51 BASISINSTALLLOCATION [BASISDIRECTORYGID] SetUreInstallLocation 51 UREINSTALLLOCATION [UREDIRECTORYGID] NewProductFound 19 OOO_CUSTOMACTION_1 -OldProductFound 19 OOO_CUSTOMACTION_3 SameProductFound 19 OOO_CUSTOMACTION_2 SetLanguageSelected 51 LANG_SELECTED 1 ResetLanguageSelected 51 LANG_SELECTED 0 SetApplicationSelected 51 APP_SELECTED 1 ResetApplicationSelected 51 APP_SELECTED 0 -RunningOffice 19 OOO_CUSTOMACTION_4 +RunningOffice 19 "Please exit [DEFINEDPRODUCT] [DEFINEDVERSION] and the [DEFINEDPRODUCT] [DEFINEDVERSION] Quickstarter before you continue. If you are using a multi-user system, also make sure that no other user has [DEFINEDPRODUCT] [DEFINEDVERSION] open." diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt index 80a81c1f7531..9459e79e283d 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt @@ -58,7 +58,6 @@ MoveFiles 1900 MsiPublishAssemblies 3025 MsiUnpublishAssemblies 875 NewProductFound NEWPRODUCTS 110 -OldProductFound OLDPRODUCTSSAMEMAJOR And (VersionNT > 599) 115 PatchFiles 2000 ProcessComponents 800 PublishComponents 3000 @@ -82,7 +81,7 @@ RemoveIniValues 1550 RemoveODBC 1200 RemoveRegistryValues 1300 RemoveShortcuts 1600 -RunningOffice OFFICERUNS="1" And VersionNT < 600 65 +RunningOffice OFFICERUNS="1" 135 RMCCPSearch Not CCP_SUCCESS And CCP_TEST 250 SameProductFound SAMEPRODUCTS 120 ScheduleReboot ISSCHEDULEREBOOT 3125 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/InstallU.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/InstallU.idt index 1ccec5fa5b0c..135987f108d3 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/InstallU.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/InstallU.idt @@ -15,7 +15,6 @@ LaunchConditions 50 MaintenanceWelcome Installed And Not RESUME And Not Preselected And Not PATCH 750 MigrateFeatureStates 600 NewProductFound NEWPRODUCTS 160 -OldProductFound OLDPRODUCTSSAMEMAJOR And (VersionNT > 599) 165 PatchWelcome Installed And PATCH And Not IS_MAJOR_UPGRADE 625 ResolveSource Not Installed And Not PATCH 525 RMCCPSearch Not CCP_SUCCESS And CCP_TEST 300 diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt index 7fa2df1562b1..35d78694a664 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt @@ -1,4 +1,4 @@ Condition Description s255 l255 WINDOWSENCODINGTEMPLATE LaunchCondition Condition -AdminUser OOO_LAUNCH_1 +Privileged OOO_LAUNCH_1 diff --git a/instsetoo_native/inc_sdkoo/windows/msi_templates/LaunchCo.idt b/instsetoo_native/inc_sdkoo/windows/msi_templates/LaunchCo.idt index 7fa2df1562b1..35d78694a664 100644 --- a/instsetoo_native/inc_sdkoo/windows/msi_templates/LaunchCo.idt +++ b/instsetoo_native/inc_sdkoo/windows/msi_templates/LaunchCo.idt @@ -1,4 +1,4 @@ Condition Description s255 l255 WINDOWSENCODINGTEMPLATE LaunchCondition Condition -AdminUser OOO_LAUNCH_1 +Privileged OOO_LAUNCH_1 diff --git a/instsetoo_native/inc_ure/windows/msi_templates/LaunchCo.idt b/instsetoo_native/inc_ure/windows/msi_templates/LaunchCo.idt index 7fa2df1562b1..35d78694a664 100644 --- a/instsetoo_native/inc_ure/windows/msi_templates/LaunchCo.idt +++ b/instsetoo_native/inc_ure/windows/msi_templates/LaunchCo.idt @@ -1,4 +1,4 @@ Condition Description s255 l255 WINDOWSENCODINGTEMPLATE LaunchCondition Condition -AdminUser OOO_LAUNCH_1 +Privileged OOO_LAUNCH_1 diff --git a/scp2/source/ooo/makefile.mk b/scp2/source/ooo/makefile.mk index 766ce6fdf681..18828834ea16 100644 --- a/scp2/source/ooo/makefile.mk +++ b/scp2/source/ooo/makefile.mk @@ -242,6 +242,10 @@ SCPDEFS+=-DSYSTEM_PYTHON SCPDEFS+=-DENABLE_SVCTAGS .ENDIF +.IF "$(WITH_VC_REDIST)" == "TRUE" +SCPDEFS+=-DWITH_VC_REDIST +.ENDIF + SCP_PRODUCT_TYPE=osl ICUVERSION_DEPENDENT_FILES= \ @@ -287,6 +291,7 @@ PARFILES += \ folderitem_ooo.par \ registryitem_ooo.par \ mergemodules_ooo.par \ + vc_redist.par \ windowscustomaction_ooo.par .ENDIF diff --git a/scp2/source/ooo/vc_redist.scp b/scp2/source/ooo/vc_redist.scp new file mode 100644 index 000000000000..afbbd452517f --- /dev/null +++ b/scp2/source/ooo/vc_redist.scp @@ -0,0 +1,48 @@ +/*************************************************************************
+*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2009 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: vc_redist.scp,v $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+************************************************************************/
+
+#include "macros.inc"
+
+#if defined(WITH_VC_REDIST)
+WindowsCustomAction gid_Customaction_InstallRuntime
+ Name = "InstallRuntime";
+ Typ = "98";
+ Source = "SystemFolder";
+ Target = "[SourceDir]redist\vcredist_x86.exe /qb";
+ Inbinarytable = 0;
+ Styles = (NO_FILE);
+ Assignment1 = ("InstallUISequence", "VersionNT >= 600 and VersionNT < 700 And OLDPRODUCTSSAMEMAJOR And Not REMOVE=\"ALL\" And Not PATCH", "ExecuteAction");
+End
+
+ScpAction scp_Copy_vcredist_x86
+ Copy = "vcredist_x86.exe";
+ Name = "vcredist_x86.exe";
+ Subdir = "redist";
+End
+#endif
diff --git a/scp2/source/ooo/windowscustomaction_ooo.scp b/scp2/source/ooo/windowscustomaction_ooo.scp index 257835bbd9e9..44130af0664c 100755 --- a/scp2/source/ooo/windowscustomaction_ooo.scp +++ b/scp2/source/ooo/windowscustomaction_ooo.scp @@ -30,6 +30,24 @@ #include "macros.inc" +WindowsCustomAction gid_Customaction_RenamePrgFolder + Name = "RenamePrgFolder"; + Typ = "1"; + Source = "shlxtmsi.dll"; + Target = "RenamePrgFolder"; + Inbinarytable = 1; + Assignment1 = ("InstallExecuteSequence", "VersionNT >= 600 And OLDPRODUCTSSAMEMAJOR And Not REMOVE=\"ALL\" And Not PATCH", "ValidateProductID"); +End + +WindowsCustomAction gid_Customaction_RemovePrgFolder + Name = "RemovePrgFolder"; + Typ = "1"; + Source = "shlxtmsi.dll"; + Target = "RemovePrgFolder"; + Inbinarytable = 1; + Assignment1 = ("InstallExecuteSequence", "VersionNT >= 600 And OLDPRODUCTSSAMEMAJOR And Not REMOVE=\"ALL\" And Not PATCH", "end"); +End + WindowsCustomAction gid_Customaction_Regallmsdocdll Name = "Regallmsdocdll"; Typ = "65"; @@ -81,7 +99,7 @@ WindowsCustomAction gid_Customaction_sdqsmsidll Source = "sdqsmsi.dll"; Target = "ShutDownQuickstarter"; Inbinarytable = 1; - Assignment1 = ("InstallExecuteSequence", "REMOVE=\"ALL\" And Not PATCH", "InstallInitialize"); + Assignment1 = ("InstallExecuteSequence", "", "IsOfficeRunning"); End WindowsCustomAction gid_Customaction_qslnkmsidll @@ -348,7 +366,7 @@ WindowsCustomAction gid_Customaction_Full_Isofficerunning Source = "shlxtmsi.dll"; Target = "IsOfficeRunning"; Inbinarytable = 1; - Assignment1 = ("InstallExecuteSequence", "PATCH", "RunningOffice"); + Assignment1 = ("InstallExecuteSequence", "", "RunningOffice"); End WindowsCustomAction gid_Customaction_Langpack_Isofficerunning diff --git a/scp2/source/writer/module_writer.scp b/scp2/source/writer/module_writer.scp index ec4b3ba9dc9b..28766ce8ece0 100644 --- a/scp2/source/writer/module_writer.scp +++ b/scp2/source/writer/module_writer.scp @@ -115,6 +115,7 @@ Module gid_Module_Optional_Writer2latex MOD_NAME_DESC(MODULE_PRG_WRT_WRITER2LATEX); ParentID = gid_Module_Optional; Default = YES; + InstallOrder = "1980"; PackageInfo = "packinfo_office.txt"; Files = (gid_File_Oxt_Writer2latex); End diff --git a/scp2/util/makefile.mk b/scp2/util/makefile.mk index 5355cc56c21c..0c38cc62742b 100644 --- a/scp2/util/makefile.mk +++ b/scp2/util/makefile.mk @@ -125,6 +125,7 @@ SCP1FILES += \ folderitem_ooo.par \ windowscustomaction_ooo.par \ mergemodules_ooo.par \ + vc_redist.par \ registryitem_writer.par \ folderitem_writer.par \ registryitem_calc.par \ @@ -278,6 +279,7 @@ SCP2FILES += \ folderitem_ooo.par \ windowscustomaction_ooo.par \ mergemodules_ooo.par \ + vc_redist.par \ registryitem_writer.par \ folderitem_writer.par \ registryitem_calc.par \ diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm index d19c6e3e8e2c..4e2f8b96080c 100644 --- a/solenv/bin/modules/installer/globals.pm +++ b/solenv/bin/modules/installer/globals.pm @@ -148,6 +148,7 @@ BEGIN $templatefolder = "TemplateFolder"; $templatefoldername = "Templates"; $programmenufolder = "ProgramMenuFolder"; + $systemfolder = "SystemFolder"; $encodinglistname = "msi-encodinglist.txt"; $msiencoding = ""; # hash reference for msi encodings $msilanguage = ""; # hash reference for msi languages LCID diff --git a/solenv/bin/modules/installer/windows/directory.pm b/solenv/bin/modules/installer/windows/directory.pm index a4df2d32c234..789f362cbfc2 100644 --- a/solenv/bin/modules/installer/windows/directory.pm +++ b/solenv/bin/modules/installer/windows/directory.pm @@ -366,6 +366,9 @@ sub add_root_directories $oneline = "$installer::globals::localappdatafolder\tTARGETDIR\t.\n"; push(@{$directorytableref}, $oneline); + $oneline = "$installer::globals::systemfolder\tTARGETDIR\t.\n"; + push(@{$directorytableref}, $oneline); + my $localtemplatefoldername = $installer::globals::templatefoldername; my $directorytableentry = $localtemplatefoldername; my $shorttemplatefoldername = installer::windows::idtglobal::make_eight_three_conform($localtemplatefoldername, "dir"); diff --git a/solenv/bin/modules/installer/windows/idtglobal.pm b/solenv/bin/modules/installer/windows/idtglobal.pm index 3c11d6283f87..e59d13d55d8f 100644 --- a/solenv/bin/modules/installer/windows/idtglobal.pm +++ b/solenv/bin/modules/installer/windows/idtglobal.pm @@ -1282,13 +1282,26 @@ sub get_position_in_sequencetable sub set_custom_action { - my ($customactionidttable, $actionname, $actionflags, $exefilename, $actionparameter, $inbinarytable, $filesref, $customactionidttablename) = @_; + my ($customactionidttable, $actionname, $actionflags, $exefilename, $actionparameter, $inbinarytable, $filesref, $customactionidttablename, $styles) = @_; my $included_customaction = 0; my $infoline = ""; my $customaction_exefilename = $exefilename; my $uniquename = ""; + # when the style NO_FILE is set, no searching for the file is needed, no filtering is done, we can add that custom action + if ( $styles =~ /\bNO_FILE\b/ ) + { + my $line = $actionname . "\t" . $actionflags . "\t" . $customaction_exefilename . "\t" . $actionparameter . "\n"; + push(@{$customactionidttable}, $line); + + $infoline = "Added $actionname CustomAction into table $customactionidttablename (NO_FILE has been set)\n"; + push(@installer::globals::logfileinfo, $infoline); + + $included_customaction = 1; + return $included_customaction; + } + # is the $exefilename a library that is included into the binary table if ( $inbinarytable ) { $customaction_exefilename =~ s/\.//; } # this is the entry in the binary table ("abc.dll" -> "abcdll") @@ -1347,12 +1360,32 @@ sub set_custom_action sub add_custom_action_to_install_table { - my ($installtable, $exefilename, $actionname, $actioncondition, $position, $filesref, $installtablename) = @_; + my ($installtable, $exefilename, $actionname, $actioncondition, $position, $filesref, $installtablename, $styles) = @_; my $included_customaction = 0; my $feature = ""; my $infoline = ""; + # when the style NO_FILE is set, no searching for the file is needed, no filtering is done, we can add that custom action + if ( $styles =~ /\bNO_FILE\b/ ) + { + # then the InstallE.idt.idt or InstallU.idt.idt + $actioncondition =~ s/FEATURETEMPLATE/$feature/g; # only execute Custom Action, if feature of the file is installed + + my $actionposition = 0; + + if ( $position eq "end" ) { $actionposition = get_last_position_in_sequencetable($installtable) + 25; } + elsif ( $position =~ /^\s*behind_/ ) { $actionposition = get_position_in_sequencetable($position, $installtable) + 2; } + else { $actionposition = get_position_in_sequencetable($position, $installtable) - 2; } + + my $line = $actionname . "\t" . $actioncondition . "\t" . $actionposition . "\n"; + push(@{$installtable}, $line); + + $infoline = "Added $actionname CustomAction into table $customactionidttablename (NO_FILE has been set)\n"; + push(@installer::globals::logfileinfo, $infoline); + return; + } + my $contains_file = 0; # All files are located in $filesref and in @installer::globals::binarytableonlyfiles. @@ -2069,7 +2102,10 @@ sub addcustomactions my $inbinarytable = $customaction->{'Inbinarytable'}; my $gid = $customaction->{'gid'}; - my $added_customaction = set_custom_action($customactionidttable, $name, $typ, $source, $target, $inbinarytable, $filesarray, $customactionidttablename); + my $styles = ""; + if ( $customaction->{'Styles'} ) { $styles = $customaction->{'Styles'}; } + + my $added_customaction = set_custom_action($customactionidttable, $name, $typ, $source, $target, $inbinarytable, $filesarray, $customactionidttablename, $styles); if ( $added_customaction ) { @@ -2112,15 +2148,15 @@ sub addcustomactions if ( $assignment->{'parameter1'} eq "InstallExecuteSequence" ) { - add_custom_action_to_install_table($installexecutetable, $source, $name, $assignment->{'parameter2'}, $assignment->{'parameter3'}, $filesarray, $installexecutetablename); + add_custom_action_to_install_table($installexecutetable, $source, $name, $assignment->{'parameter2'}, $assignment->{'parameter3'}, $filesarray, $installexecutetablename, $styles); } elsif ( $assignment->{'parameter1'} eq "AdminExecuteSequence" ) { - add_custom_action_to_install_table($adminexecutetable, $source, $name, $assignment->{'parameter2'}, $assignment->{'parameter3'}, $filesarray, $adminexecutetablename); + add_custom_action_to_install_table($adminexecutetable, $source, $name, $assignment->{'parameter2'}, $assignment->{'parameter3'}, $filesarray, $adminexecutetablename, $styles); } elsif ( $assignment->{'parameter1'} eq "InstallUISequence" ) { - add_custom_action_to_install_table($installuitable, $source, $name, $assignment->{'parameter2'}, $assignment->{'parameter3'}, $filesarray, $installuitablename); + add_custom_action_to_install_table($installuitable, $source, $name, $assignment->{'parameter2'}, $assignment->{'parameter3'}, $filesarray, $installuitablename, $styles); } elsif ( $assignment->{'parameter1'} eq "ControlEvent" ) { diff --git a/solenv/config/sdev300.ini b/solenv/config/sdev300.ini index b9f363d6fc65..a80b092e0a29 100644 --- a/solenv/config/sdev300.ini +++ b/solenv/config/sdev300.ini @@ -3475,6 +3475,7 @@ wntmsci12 TRUSTED_MANIFEST_LOCATION %SOLARENV%\inc USE_DIRECTX5 TRUE WINDOWS_VISTA_PSDK TRUE + WITH_VC_REDIST TRUE XCLASSPATH . ZIPDEP %PERL% %SOLARENV%\bin\zipdep.pl } diff --git a/solenv/config/ssolar.cmn b/solenv/config/ssolar.cmn index 597fe5e9ef3d..793fd2b7f24b 100644 --- a/solenv/config/ssolar.cmn +++ b/solenv/config/ssolar.cmn @@ -243,6 +243,7 @@ common XAU_LIBS WINDOWS_VISTA_PSDK WITH_LDAP + WITH_VC_REDIST WST XCLASSPATH XSLTPROC |