summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ¼diger Timm <rt@openoffice.org>2008-10-29 13:27:59 +0000
committerRĂ¼diger Timm <rt@openoffice.org>2008-10-29 13:27:59 +0000
commit1488be181ddb4d5c3475a0c73bd40577f67c6bb9 (patch)
treed2e92fdd82141683d6e5b7d203b17b67a3dc72b5
parentdd293aafd93805e1740ad2353b23a1873d8d1fb8 (diff)
CWS-TOOLING: integrate CWS native201_DEV300
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/CustomAc.idt2
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallE.idt2
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallU.idt2
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Property.idt2
-rw-r--r--scp2/source/gnome/file_gnome.scp2
-rw-r--r--scp2/source/ooo/file_library_ooo.scp2
-rw-r--r--scp2/source/ooo/file_ooo.scp16
-rw-r--r--scp2/source/ooo/profile_ooo.scp1
-rwxr-xr-xscp2/source/ooo/ure.scp1
-rw-r--r--scp2/source/xsltfilter/file_xsltfilter.scp6
-rw-r--r--solenv/bin/make_installer.pl4
-rw-r--r--solenv/bin/modules/installer/epmfile.pm94
-rw-r--r--solenv/bin/modules/installer/windows/upgrade.pm32
-rw-r--r--solenv/bin/modules/installer/worker.pm18
14 files changed, 139 insertions, 45 deletions
diff --git a/instsetoo_native/inc_ooolangpack/windows/msi_templates/CustomAc.idt b/instsetoo_native/inc_ooolangpack/windows/msi_templates/CustomAc.idt
index 467f79934f09..21bca75fca84 100644
--- a/instsetoo_native/inc_ooolangpack/windows/msi_templates/CustomAc.idt
+++ b/instsetoo_native/inc_ooolangpack/windows/msi_templates/CustomAc.idt
@@ -8,3 +8,5 @@ SetARPInstallLocation 51 ARPINSTALLLOCATION [INSTALLLOCATION]
SetOfficeInstallLocation 51 OFFICEINSTALLLOCATION [OFFICEDIRECTORYGID]
SetBasisInstallLocation 51 BASISINSTALLLOCATION [BASISDIRECTORYGID]
SetUreInstallLocation 51 UREINSTALLLOCATION [UREDIRECTORYGID]
+NewProductFound 19 OOO_CUSTOMACTION_1
+SameProductFound 19 OOO_CUSTOMACTION_2
diff --git a/instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallE.idt b/instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallE.idt
index a7637851bc9c..a3e65e814bad 100644
--- a/instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallE.idt
+++ b/instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallE.idt
@@ -25,6 +25,7 @@ MigrateFeatureStates 600
MoveFiles 1900
MsiPublishAssemblies 3025
MsiUnpublishAssemblies 875
+NewProductFound NEWPRODUCTS 110
PatchFiles 2000
ProcessComponents 800
PublishComponents 3000
@@ -49,6 +50,7 @@ RemoveODBC 1200
RemoveRegistryValues 1300
RemoveShortcuts 1600
RMCCPSearch Not CCP_SUCCESS And CCP_TEST 250
+SameProductFound SAMEPRODUCTS 120
ScheduleReboot ISSCHEDULEREBOOT 3125
SelfRegModules 2850
SelfUnregModules 1100
diff --git a/instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallU.idt b/instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallU.idt
index 2d35e672107e..7b6bbd411406 100644
--- a/instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallU.idt
+++ b/instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallU.idt
@@ -13,9 +13,11 @@ IsolateComponents 500
LaunchConditions 50
MaintenanceWelcome Installed And Not RESUME And Not Preselected And Not PATCH 750
MigrateFeatureStates 600
+NewProductFound NEWPRODUCTS 160
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
+SameProductFound SAMEPRODUCTS 170
setAllUsersProfile2K VersionNT >= 500 512
SetAllUsersProfileNT VersionNT = 400 511
SetupCompleteError -3
diff --git a/instsetoo_native/inc_ooolangpack/windows/msi_templates/Property.idt b/instsetoo_native/inc_ooolangpack/windows/msi_templates/Property.idt
index 805fe742e62c..a4b5edc3b9a1 100644
--- a/instsetoo_native/inc_ooolangpack/windows/msi_templates/Property.idt
+++ b/instsetoo_native/inc_ooolangpack/windows/msi_templates/Property.idt
@@ -5,6 +5,7 @@ _IsMaintenance Reinstall
_IsSetupTypeMin Typical
AgreeToLicense No
ApplicationUsers AllUsers
+ALLUSERS 1
ARPCOMMENTS ARPCOMMENTSTEMPLATE
ARPCONTACT OOO_ARPCONTACTTEMPLATE
ARPHELPLINK OOO_ARPHELPLINKTEMPLATE
@@ -39,6 +40,7 @@ ProgressType2 installed
ProgressType3 installs
RebootYesNo Yes
ReinstallModeText omus
+SecureCustomProperties NEWPRODUCTS;SAMEPRODUCTS;OLDPRODUCTS;OLDPRODUCTSSAMEMAJOR
SetupType Typical
STR_NEW_DISPLAY_NAME OOO_STR_NEW_DISPLAY_NAME
STR_EDIT OOO_STR_EDIT
diff --git a/scp2/source/gnome/file_gnome.scp b/scp2/source/gnome/file_gnome.scp
index 1aa703c9d947..0161e06545c6 100644
--- a/scp2/source/gnome/file_gnome.scp
+++ b/scp2/source/gnome/file_gnome.scp
@@ -32,7 +32,7 @@
#ifdef ENABLE_GIO
File gid_File_Lib_GIO
TXT_FILE_BODY;
- Styles = (PACKED,PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Program;
Name = STRING(CONCAT2(ucpgio1.uno,UNXSUFFIX));
RegistryID = gid_Starregistry_Services_Rdb;
diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
index 8ece60a6ddbe..88424239b647 100644
--- a/scp2/source/ooo/file_library_ooo.scp
+++ b/scp2/source/ooo/file_library_ooo.scp
@@ -905,7 +905,7 @@ STD_UNO_LIB_FILE(gid_File_Lib_Writerfilter,writerfilter)
File gid_File_Lib_Mingwm10
BIN_FILE_BODY;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Program;
Name = "mingwm10.dll";
End
diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
index 5034f87efe07..6039ce6806c6 100644
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -2341,35 +2341,35 @@ End
File gid_File_Xsl_Common_Measure_Conversion
TXT_FILE_BODY;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Share_Xslt_Common;
Name = "/xslt/common/measure_conversion.xsl";
End
File gid_File_Xsl_Common_Math_Functions
TXT_FILE_BODY;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Share_Xslt_Common;
Name = "/xslt/common/math.xsl";
End
File gid_File_Xsl_Export_Common_Body
TXT_FILE_BODY;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Share_Xslt_Export_Common;
Name = "/xslt/export/common/body.xsl";
End
File gid_File_Xsl_Export_Common_Table_Of_Content
TXT_FILE_BODY;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Share_Xslt_Export_Common;
Name = "/xslt/export/common/table_of_content.xsl";
End
File gid_File_Xsl_Export_Common_Ooo2ms_Docpr
TXT_FILE_BODY;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Share_Xslt_Export_Common;
Name = "/xslt/export/common/ooo2ms_docpr.xsl";
End
@@ -2390,7 +2390,7 @@ End
File gid_File_Xsl_Export_Common_Table_Table
TXT_FILE_BODY;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Share_Xslt_Export_Common_Table;
Name = "/xslt/export/common/table/table.xsl";
End
@@ -2404,14 +2404,14 @@ End
File gid_File_Xsl_Export_Common_Table_Table_Columns
TXT_FILE_BODY;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Share_Xslt_Export_Common_Table;
Name = "/xslt/export/common/table/table_columns.xsl";
End
File gid_File_Xsl_Export_Common_Table_Table_Rows
TXT_FILE_BODY;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Share_Xslt_Export_Common_Table;
Name = "/xslt/export/common/table/table_rows.xsl";
End
diff --git a/scp2/source/ooo/profile_ooo.scp b/scp2/source/ooo/profile_ooo.scp
index f235e791d039..97211fe6a5ac 100644
--- a/scp2/source/ooo/profile_ooo.scp
+++ b/scp2/source/ooo/profile_ooo.scp
@@ -56,6 +56,7 @@ Profile gid_Profile_Version_Ini_Basis
ModuleID = gid_Module_Root;
Name = PROFILENAME(version);
Dir = gid_Dir_Program;
+ Styles = (PATCH);
End
Profile gid_Profile_Fundamentalbasis_Ini
diff --git a/scp2/source/ooo/ure.scp b/scp2/source/ooo/ure.scp
index 2559461202d2..cf5cb5535bbc 100755
--- a/scp2/source/ooo/ure.scp
+++ b/scp2/source/ooo/ure.scp
@@ -1172,6 +1172,7 @@ Profile gid_Profile_Version_Ini_Ure
ModuleID = gid_Module_Root_Ure_Hidden;
Name = PROFILENAME(version);
Dir = gid_Dir_Ure_Bin;
+ Styles = (PATCH);
End
ProfileItem gid_Ure_Profileitem_Version_Buildid
diff --git a/scp2/source/xsltfilter/file_xsltfilter.scp b/scp2/source/xsltfilter/file_xsltfilter.scp
index 32e89518b23c..c85dde29958c 100644
--- a/scp2/source/xsltfilter/file_xsltfilter.scp
+++ b/scp2/source/xsltfilter/file_xsltfilter.scp
@@ -67,21 +67,21 @@ End
File gid_File_Xsl_Export_Xhtml_Body
TXT_FILE_BODY;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Share_Xslt_Export_Xhtml;
Name = "/xslt/export/xhtml/body.xsl";
End
File gid_File_Xsl_Export_Xhtml_Header
TXT_FILE_BODY;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Share_Xslt_Export_Xhtml;
Name = "/xslt/export/xhtml/header.xsl";
End
File gid_File_Xsl_Export_Xhtml_Ooo2xhtml
TXT_FILE_BODY;
- Styles = (PACKED, PATCH);
+ Styles = (PACKED);
Dir = gid_Dir_Share_Xslt_Export_Xhtml;
Name = "/xslt/export/xhtml/opendoc2xhtml.xsl";
End
diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl
index e9d1c18107fa..c7f120f6f04f 100644
--- a/solenv/bin/make_installer.pl
+++ b/solenv/bin/make_installer.pl
@@ -1902,14 +1902,14 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ )
installer::windows::createfolder::create_createfolder_table($directoriesforepmarrayref, $filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref);
+ installer::windows::upgrade::create_upgrade_table($newidtdir, $allvariableshashref);
+
if ( ! $installer::globals::languagepack ) # the following tables not for language packs
{
installer::windows::removefile::create_removefile_table($folderitemsinproductlanguageresolvedarrayref, $newidtdir);
installer::windows::selfreg::create_selfreg_table($filesinproductlanguageresolvedarrayref, $newidtdir);
- installer::windows::upgrade::create_upgrade_table($newidtdir, $allvariableshashref);
-
# Adding Assemblies into the tables MsiAssembly and MsiAssemblyName dynamically
installer::windows::assembly::create_msiassembly_table($filesinproductlanguageresolvedarrayref, $newidtdir);
installer::windows::assembly::create_msiassemblyname_table($filesinproductlanguageresolvedarrayref, $newidtdir);
diff --git a/solenv/bin/modules/installer/epmfile.pm b/solenv/bin/modules/installer/epmfile.pm
index 050c0122fa84..2e1b5982b352 100644
--- a/solenv/bin/modules/installer/epmfile.pm
+++ b/solenv/bin/modules/installer/epmfile.pm
@@ -905,7 +905,7 @@ sub add_one_line_into_file
sub set_revision_in_pkginfo
{
- my ($file, $filename, $variables) = @_;
+ my ($file, $filename, $variables, $packagename) = @_;
my $revisionstring = "\,REV\=" . $installer::globals::packagerevision;
@@ -944,7 +944,28 @@ sub set_revision_in_pkginfo
{
if ( $variables->{$pkgversion} ne "FINALVERSION" )
{
- my $versionstring = $variables->{$pkgversion};
+ # In OOo 3.x timeframe, this string is no longer unique for all packages, because of the three layer.
+ # In the string: "3.0.0,REV=9.2008.09.30" only the part "REV=9.2008.09.30" can be unique for all packages
+ # and therefore be set as $pkgversion.
+ # The first part "3.0.0" has to be derived from the
+
+ my $version = $installer::globals::packageversion;
+ if ( $version =~ /^\s*(\d+)\.(\d+)\.(\d+)\s*$/ )
+ {
+ my $major = $1;
+ my $minor = $2;
+ my $micro = $3;
+
+ my $finalmajor = $major;
+ my $finalminor = 0;
+ my $finalmicro = 0;
+
+ if (( $packagename =~ /-ure\s*$/ ) && ( $finalmajor == 1 )) { $finalminor = 4; }
+
+ $version = "$finalmajor.$finalminor.$finalmicro";
+ }
+
+ my $versionstring = "$version,$variables->{$pkgversion}";
for ( my $i = 0; $i <= $#{$file}; $i++ )
{
@@ -1048,7 +1069,9 @@ sub set_patchlist_in_pkginfo_for_respin
$key =~ s/\s*$//;
if ( ! $allvariables->{$key} ) { installer::exiter::exit_program("ERROR: No Patch info available in zip list file for $key", "set_patchlist_in_pkginfo"); }
- $newline = $key . "=" . $allvariables->{$key} . "\n";
+ my $value = set_timestamp_in_patchinfo($allvariables->{$key});
+ $newline = $key . "=" . $value . "\n";
+
add_one_line_into_file($changefile, $newline, $filename);
}
}
@@ -1056,6 +1079,32 @@ sub set_patchlist_in_pkginfo_for_respin
}
########################################################
+# Solaris requires, that the time of patch installation
+# must not be empty.
+# Format: Mon Mar 24 11:20:56 PDT 2008
+# Log file: Tue Apr 29 23:26:19 2008 (04:31 min.)
+# Replace string: ${TIMESTAMP}
+########################################################
+
+sub set_timestamp_in_patchinfo
+{
+ my ($value) = @_;
+
+ my $currenttime = localtime();
+
+ if ( $currenttime =~ /^\s*(.+?)(\d\d\d\d)\s*$/ )
+ {
+ my $start = $1;
+ my $year = $2;
+ $currenttime = $start . "CET " . $year;
+ }
+
+ $value =~ s/\$\{TIMESTAMP\}/$currenttime/;
+
+ return $value;
+}
+
+########################################################
# Setting MAXINST=1000 into the pkginfo file.
########################################################
@@ -1941,7 +1990,7 @@ sub prepare_packages
if ( $installer::globals::issolarispkgbuild )
{
- set_revision_in_pkginfo($changefile, $filename, $variableshashref);
+ set_revision_in_pkginfo($changefile, $filename, $variableshashref, $packagename);
set_maxinst_in_pkginfo($changefile, $filename);
set_solaris_parameter_in_pkginfo($changefile, $filename, $variableshashref);
if ( $installer::globals::issolarisx86build ) { fix_architecture_setting($changefile); }
@@ -3036,13 +3085,13 @@ sub finalize_linux_patch
my $infoline = "Found script file $scriptfilename: $$scriptref \n";
push( @installer::globals::logfileinfo, $infoline);
-# # Collecting all RPMs in the patch directory
-#
-# my $fileextension = "rpm";
-# my $rpmfiles = installer::systemactions::find_file_with_file_extension($fileextension, $newepmdir);
-# if ( ! ( $#{$rpmfiles} > -1 )) { installer::exiter::exit_program("ERROR: Could not find rpm in directory $newepmdir!", "finalize_linux_patch"); }
-# for ( my $i = 0; $i <= $#{$rpmfiles}; $i++ ) { installer::pathanalyzer::make_absolute_filename_to_relative_filename(\${$rpmfiles}[$i]); }
-#
+ # Collecting all RPMs in the patch directory
+
+ my $fileextension = "rpm";
+ my $rpmfiles = installer::systemactions::find_file_with_file_extension($fileextension, $newepmdir);
+ if ( ! ( $#{$rpmfiles} > -1 )) { installer::exiter::exit_program("ERROR: Could not find rpm in directory $newepmdir!", "finalize_linux_patch"); }
+ for ( my $i = 0; $i <= $#{$rpmfiles}; $i++ ) { installer::pathanalyzer::make_absolute_filename_to_relative_filename(\${$rpmfiles}[$i]); }
+
# my $installline = "";
#
# for ( my $i = 0; $i <= $#{$rpmfiles}; $i++ )
@@ -3057,8 +3106,29 @@ sub finalize_linux_patch
# ${$scriptfile}[$j] =~ s/INSTALLLINES/$installline/;
# }
- # Replacing the productname
+ # Searching packagename containing -core01
+ my $found_package = 0;
+ my $searchpackagename = "";
+ for ( my $i = 0; $i <= $#{$rpmfiles}; $i++ )
+ {
+ if ( ${$rpmfiles}[$i] =~ /-core01-/ )
+ {
+ $searchpackagename = ${$rpmfiles}[$i];
+ $found_package = 1;
+ if ( $searchpackagename =~ /^\s*(.*?-core01)-.*/ ) { $searchpackagename = $1; }
+ last;
+ }
+ }
+ if ( ! $found_package ) { installer::exiter::exit_program("ERROR: No package containing \"-core01\" found in directory \"$newepmdir\"", "finalize_linux_patch"); }
+
+ # Replacing the searchpackagename
+ for ( my $j = 0; $j <= $#{$scriptfile}; $j++ ) { ${$scriptfile}[$j] =~ s/SEARCHPACKAGENAMEPLACEHOLDER/$searchpackagename/; }
+
+ # Setting the PRODUCTDIRECTORYNAME to $installer::globals::officedirhostname
+ for ( my $j = 0; $j <= $#{$scriptfile}; $j++ ) { ${$scriptfile}[$j] =~ s/PRODUCTDIRECTORYNAME/$installer::globals::officedirhostname/; }
+
+ # Replacing the productname
my $productname = $allvariables->{'PRODUCTNAME'};
$productname = lc($productname);
$productname =~ s/ /_/g; # abc office -> abc_office
diff --git a/solenv/bin/modules/installer/windows/upgrade.pm b/solenv/bin/modules/installer/windows/upgrade.pm
index ed7e9e4a2553..5e3d5379579a 100644
--- a/solenv/bin/modules/installer/windows/upgrade.pm
+++ b/solenv/bin/modules/installer/windows/upgrade.pm
@@ -51,7 +51,7 @@ sub create_upgrade_table
# fix for problematic OOo 1.9 versions
my $include_ooo_fix = 0;
my $ooomaxnew = "";
- if (($installer::globals::product =~ /OpenOffice/i ) && ( ! ( $installer::globals::product =~ /SDK/i )))
+ if (($installer::globals::product =~ /OpenOffice/i ) && ( ! ( $installer::globals::product =~ /SDK/i )) && ( ! $installer::globals::languagepack ))
{
$include_ooo_fix = 1;
$ooomaxnew = "34.0.0";
@@ -68,7 +68,7 @@ sub create_upgrade_table
$newline = $installer::globals::upgradecode . "\t" . $installer::globals::msimajorproductversion . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "257" . "\t" . "\t" . "OLDPRODUCTSSAMEMAJOR" . "\n";
push(@upgradetable, $newline);
- if (( ! $installer::globals::patch ) && ( ! $installer::globals::languagepack ))
+ if ( ! $installer::globals::patch )
{
# preventing downgrading
$newline = $installer::globals::upgradecode . "\t" . $installer::globals::msiproductversion . "\t" . $ooomaxnew . "\t" . "\t" . "2" . "\t" . "\t" . "NEWPRODUCTS" . "\n";
@@ -83,21 +83,21 @@ sub create_upgrade_table
push(@upgradetable, $newline);
}
- if ( $allvariableshashref->{'PATCHUPGRADECODE'} )
- {
- $newline = $allvariableshashref->{'PATCHUPGRADECODE'} . "\t" . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "1" . "\t" . "\t" . "OLDPRODUCTSPATCH" . "\n";
- push(@upgradetable, $newline);
-
- $newline = $allvariableshashref->{'PATCHUPGRADECODE'} . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "\t" . "2" . "\t" . "\t" . "NEWPRODUCTSPATCH" . "\n";
- push(@upgradetable, $newline);
-
- $newline = $allvariableshashref->{'PATCHUPGRADECODE'} . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "\t" . "258" . "\t" . "\t" . "SAMEPRODUCTSPATCH" . "\n";
- push(@upgradetable, $newline);
- }
+ # if (( $allvariableshashref->{'PATCHUPGRADECODE'} ) && ( ! $installer::globals::languagepack ))
+ # {
+ # $newline = $allvariableshashref->{'PATCHUPGRADECODE'} . "\t" . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "1" . "\t" . "\t" . "OLDPRODUCTSPATCH" . "\n";
+ # push(@upgradetable, $newline);
+ #
+ # $newline = $allvariableshashref->{'PATCHUPGRADECODE'} . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "\t" . "2" . "\t" . "\t" . "NEWPRODUCTSPATCH" . "\n";
+ # push(@upgradetable, $newline);
+ #
+ # $newline = $allvariableshashref->{'PATCHUPGRADECODE'} . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "\t" . "258" . "\t" . "\t" . "SAMEPRODUCTSPATCH" . "\n";
+ # push(@upgradetable, $newline);
+ # }
# also searching for the beta
- if ( $allvariableshashref->{'BETAUPGRADECODE'} )
+ if (( $allvariableshashref->{'BETAUPGRADECODE'} ) && ( ! $installer::globals::languagepack ))
{
$newline = $allvariableshashref->{'BETAUPGRADECODE'} . "\t" . "1.0" . "\t" . "\t" . "\t" . "1" . "\t" . "\t" . "BETAPRODUCTS" . "\n";
push(@upgradetable, $newline);
@@ -105,7 +105,7 @@ sub create_upgrade_table
# also searching for the stub
- if ( $allvariableshashref->{'STUBUPGRADECODE'} )
+ if (( $allvariableshashref->{'STUBUPGRADECODE'} ) && ( ! $installer::globals::languagepack ))
{
$newline = $allvariableshashref->{'STUBUPGRADECODE'} . "\t" . "1.0" . "\t" . "\t" . "\t" . "1" . "\t" . "\t" . "STUBPRODUCTS" . "\n";
push(@upgradetable, $newline);
@@ -113,7 +113,7 @@ sub create_upgrade_table
# searching for all older patches and languagepacks (defined in a extra file)
- if ( $allvariableshashref->{'REMOVE_UPGRADE_CODE_FILE'} )
+ if (( $allvariableshashref->{'REMOVE_UPGRADE_CODE_FILE'} ) && ( ! $installer::globals::languagepack ))
{
my $filename = $allvariableshashref->{'REMOVE_UPGRADE_CODE_FILE'};
my $langpackcodefilename = $installer::globals::idttemplatepath . $installer::globals::separator . $filename;
diff --git a/solenv/bin/modules/installer/worker.pm b/solenv/bin/modules/installer/worker.pm
index 1fa5a9e56125..92c1b2a4d444 100644
--- a/solenv/bin/modules/installer/worker.pm
+++ b/solenv/bin/modules/installer/worker.pm
@@ -1512,6 +1512,7 @@ sub shift_section_to_end
my @patchfile = ();
my @lastsection = ();
my $lastsection = "program";
+ my $notlastsection = "Basis\\program";
my $record = 0;
for ( my $i = 0; $i <= $#{$patchfilelist}; $i++ )
@@ -1520,7 +1521,7 @@ sub shift_section_to_end
if (( $record ) && ( $line =~ /^\s*\[/ )) { $record = 0; }
- if ( $line =~ /^\s*\[\Q$lastsection\E\\\]\s*$/ ) { $record = 1; }
+ if (( $line =~ /^\s*\[\Q$lastsection\E\\\]\s*$/ ) && ( ! ( $line =~ /\Q$notlastsection\E\\\]\s*$/ ))) { $record = 1; }
if ( $record ) { push(@lastsection, $line); }
else { push(@patchfile, $line); }
@@ -1554,14 +1555,27 @@ sub shift_file_to_end
my $lastfileline = "";
my $foundfile = 0;
+ # Only searching this file in the last section
+ my $lastsectionname = "";
+
for ( my $i = 0; $i <= $#{$patchfilelist}; $i++ )
{
my $line = ${$patchfilelist}[$i];
+ if ( $line =~ /^\s*\[(.*?)\]\s*$/ ) { $lastsectionname = $1; }
+ }
- if ( $line =~ /^\s*\"\Q$lastfilename\E\"\=/ )
+ my $record = 0;
+ for ( my $i = 0; $i <= $#{$patchfilelist}; $i++ )
+ {
+ my $line = ${$patchfilelist}[$i];
+
+ if ( $line =~ /^\s*\[\Q$lastsectionname\E\]\s*$/ ) { $record = 1; }
+
+ if (( $line =~ /^\s*\"\Q$lastfilename\E\"\=/ ) && ( $record ))
{
$lastfileline = $line;
$foundfile = 1;
+ $record = 0;
next;
}