summaryrefslogtreecommitdiff
path: root/solenv/bin
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2009-02-18 10:41:06 +0000
committerOliver Bolte <obo@openoffice.org>2009-02-18 10:41:06 +0000
commit9e7d59cf2f269b1a3330e25271c495e3da1bdf7b (patch)
tree09e90ac73057ae5fc81529757527b2df3d2a66d9 /solenv/bin
parent9b5026b9bde183fd62e25137ca26e47211651b4f (diff)
CWS-TOOLING: integrate CWS dv07
2009-02-12 13:22:37 +0100 dv r267650 : #i94560# Removed string, which needed translation 2009-01-27 16:09:50 +0100 dv r267004 : #i94560# Allow building without redistributable 2009-01-27 10:56:38 +0100 is r266965 : #i98509# InstallOrder for extension module 2009-01-26 08:08:16 +0100 dv r266899 : #i94560# Work around Windows Vista installation problems 2009-01-19 14:28:56 +0100 dv r266498 : CWS-TOOLING: rebase CWS dv07 to trunk@266428 (milestone: DEV300:m39) 2009-01-19 09:56:07 +0100 dv r266477 : #i94560# Added custom action to work around 'major upgrade' problem on Windows Vista 2009-01-19 09:54:30 +0100 dv r266476 : #i94560# Added custom action to work around 'major upgrade' problem on Windows Vista 2009-01-19 09:13:06 +0100 dv r266474 : #i94347# Changed LaunchCondition from AdminUser to Privileged 2008-12-18 08:42:04 +0100 dv r265662 : #i97201# remove old release notes when notified about updates 2008-12-15 14:50:33 +0100 dv r265501 : #i96844# Use fputs instead of fprintf
Diffstat (limited to 'solenv/bin')
-rw-r--r--solenv/bin/modules/installer/globals.pm1
-rw-r--r--solenv/bin/modules/installer/windows/directory.pm3
-rw-r--r--solenv/bin/modules/installer/windows/idtglobal.pm48
3 files changed, 46 insertions, 6 deletions
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" )
{