diff options
author | RĂ¼diger Timm <rt@openoffice.org> | 2008-10-29 13:27:59 +0000 |
---|---|---|
committer | RĂ¼diger Timm <rt@openoffice.org> | 2008-10-29 13:27:59 +0000 |
commit | 1488be181ddb4d5c3475a0c73bd40577f67c6bb9 (patch) | |
tree | d2e92fdd82141683d6e5b7d203b17b67a3dc72b5 | |
parent | dd293aafd93805e1740ad2353b23a1873d8d1fb8 (diff) |
CWS-TOOLING: integrate CWS native201_DEV300
-rw-r--r-- | instsetoo_native/inc_ooolangpack/windows/msi_templates/CustomAc.idt | 2 | ||||
-rw-r--r-- | instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallE.idt | 2 | ||||
-rw-r--r-- | instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallU.idt | 2 | ||||
-rw-r--r-- | instsetoo_native/inc_ooolangpack/windows/msi_templates/Property.idt | 2 | ||||
-rw-r--r-- | scp2/source/gnome/file_gnome.scp | 2 | ||||
-rw-r--r-- | scp2/source/ooo/file_library_ooo.scp | 2 | ||||
-rw-r--r-- | scp2/source/ooo/file_ooo.scp | 16 | ||||
-rw-r--r-- | scp2/source/ooo/profile_ooo.scp | 1 | ||||
-rwxr-xr-x | scp2/source/ooo/ure.scp | 1 | ||||
-rw-r--r-- | scp2/source/xsltfilter/file_xsltfilter.scp | 6 | ||||
-rw-r--r-- | solenv/bin/make_installer.pl | 4 | ||||
-rw-r--r-- | solenv/bin/modules/installer/epmfile.pm | 94 | ||||
-rw-r--r-- | solenv/bin/modules/installer/windows/upgrade.pm | 32 | ||||
-rw-r--r-- | solenv/bin/modules/installer/worker.pm | 18 |
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; } |