diff options
author | Oliver Bolte <obo@openoffice.org> | 2009-02-18 10:41:06 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2009-02-18 10:41:06 +0000 |
commit | 9e7d59cf2f269b1a3330e25271c495e3da1bdf7b (patch) | |
tree | 09e90ac73057ae5fc81529757527b2df3d2a66d9 /solenv/bin | |
parent | 9b5026b9bde183fd62e25137ca26e47211651b4f (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.pm | 1 | ||||
-rw-r--r-- | solenv/bin/modules/installer/windows/directory.pm | 3 | ||||
-rw-r--r-- | solenv/bin/modules/installer/windows/idtglobal.pm | 48 |
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" ) { |