diff options
Diffstat (limited to 'solenv/bin/make_installer.pl')
-rw-r--r-- | solenv/bin/make_installer.pl | 355 |
1 files changed, 61 insertions, 294 deletions
diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl index 60f700688ed9..463f2d4f9f63 100644 --- a/solenv/bin/make_installer.pl +++ b/solenv/bin/make_installer.pl @@ -74,9 +74,7 @@ use installer::windows::idtglobal; use installer::windows::inifile; use installer::windows::java; use installer::windows::media; -use installer::windows::mergemodule; use installer::windows::msiglobal; -use installer::windows::msp; use installer::windows::patch; use installer::windows::property; use installer::windows::removefile; @@ -84,12 +82,63 @@ use installer::windows::registry; use installer::windows::selfreg; use installer::windows::shortcut; use installer::windows::strip; -use installer::windows::update; use installer::windows::upgrade; use installer::worker; use installer::xpdinstaller; use installer::ziplist; +use strict; + +sub GetSetupScriptLines ($$$) +{ + my ($allsettingsarrayref, $allvariableshashref, $includepatharrayref) = @_; + + if ($installer::globals::setupscript_defined_in_productlist) + { + installer::setupscript::set_setupscript_name($allsettingsarrayref, $includepatharrayref); + } + + $installer::logger::Info->print( "... analyzing script: $installer::globals::setupscriptname ... \n" ); + installer::logger::globallog("setup script file: $installer::globals::setupscriptname"); + $installer::logger::Info->print( "... analyzing script: $installer::globals::setupscriptname ... \n" ); + + # Reading the setup script file + my $setupscriptref = installer::files::read_file($installer::globals::setupscriptname); + + # Resolving variables defined in the zip list file into setup + # script. All the variables are defined in $allvariablesarrayref + installer::scpzipfiles::replace_all_ziplistvariables_in_file($setupscriptref, $allvariableshashref); + + # Resolving %variables defined in the installation object + my $allscriptvariablesref = installer::setupscript::get_all_scriptvariables_from_installation_object( + $setupscriptref, + $installer::globals::setupscriptname); + installer::setupscript::add_lowercase_productname_setupscriptvariable($allscriptvariablesref); + installer::setupscript::resolve_lowercase_productname_setupscriptvariable($allscriptvariablesref); + + $setupscriptref = installer::setupscript::replace_all_setupscriptvariables_in_script( + $setupscriptref, + $allscriptvariablesref); + + # Adding all variables defined in the installation object into the + # hash of all variables. This is needed if variables are defined + # in the installation object, but not in the zip list file. If + # there is a definition in the zip list file and in the + # installation object, the installation object is more important + installer::setupscript::add_installationobject_to_variables($allvariableshashref, $allscriptvariablesref); + + # Adding also all variables, that must be included into the $allvariableshashref. + installer::setupscript::add_forced_properties($allvariableshashref); + + # Replacing preset properties, not using the default mechanisms (for example for UNIXPRODUCTNAME) + installer::setupscript::replace_preset_properties($allvariableshashref); + + # We did this already. Can this or the other one be removed. + installer::scpzipfiles::replace_all_ziplistvariables_in_file($setupscriptref, $allvariableshashref); + + return $setupscriptref; +} + ################################################# # Main program ################################################# @@ -127,8 +176,6 @@ installer::parameter::saveparameter(); installer::parameter::getparameter(); # debugging can start after function "getparameter" -if ( $installer::globals::debug ) { installer::logger::debuginfo("\nPart 1: The platform independent part\n"); } -if ( $installer::globals::debug ) { installer::logger::debuginfo("\nPart 1a: The language independent part\n"); } installer::parameter::control_fundamental_parameter(); installer::parameter::setglobalvariables(); @@ -180,22 +227,16 @@ my $ziplistref = installer::files::read_file($installer::globals::ziplistname); $installer::logger::Info->print( "... analyzing $installer::globals::ziplistname ... \n" ); my ($productblockref, $parent) = installer::ziplist::getproductblock($ziplistref, $installer::globals::product, 1); # product block from zip.lst -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "productblock.log" ,$productblockref); } my ($settingsblockref, undef) = installer::ziplist::getproductblock($productblockref, "Settings", 0); # settings block from zip.lst -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "settingsblock1.log" ,$settingsblockref); } $settingsblockref = installer::ziplist::analyze_settings_block($settingsblockref); # select data from settings block in zip.lst -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "settingsblock2.log" ,$settingsblockref); } my $allsettingsarrayref = installer::ziplist::get_settings_from_ziplist($settingsblockref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allsettings1.log" ,$allsettingsarrayref); } my $allvariablesarrayref = installer::ziplist::get_variables_from_ziplist($settingsblockref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allvariables1.log" ,$allvariablesarrayref); } my ($globalproductblockref, undef) = installer::ziplist::getproductblock($ziplistref, $installer::globals::globalblock, 0); # global product block from zip.lst -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "globalproductblock.log" ,$globalproductblockref); } while (defined $parent) { @@ -223,41 +264,30 @@ while (defined $parent) if ( $#{$globalproductblockref} > -1 ) { my ($globalsettingsblockref, undef) = installer::ziplist::getproductblock($globalproductblockref, "Settings", 0); # settings block from zip.lst - if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "globalsettingsblock1.log" ,$globalsettingsblockref); } $globalsettingsblockref = installer::ziplist::analyze_settings_block($globalsettingsblockref); # select data from settings block in zip.lst - if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "globalsettingsblock2.log" ,$globalsettingsblockref); } my $allglobalsettingsarrayref = installer::ziplist::get_settings_from_ziplist($globalsettingsblockref); - if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allglobalsettings1.log" ,$allglobalsettingsarrayref); } my $allglobalvariablesarrayref = installer::ziplist::get_variables_from_ziplist($globalsettingsblockref); - if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allglobalvariables1.log" ,$allglobalvariablesarrayref); } if ( $#{$allglobalsettingsarrayref} > -1 ) { $allsettingsarrayref = installer::converter::combine_arrays_from_references_first_win($allsettingsarrayref, $allglobalsettingsarrayref); } if ( $#{$allglobalvariablesarrayref} > -1 ) { $allvariablesarrayref = installer::converter::combine_arrays_from_references_first_win($allvariablesarrayref, $allglobalvariablesarrayref); } } $allsettingsarrayref = installer::ziplist::remove_multiples_from_ziplist($allsettingsarrayref); # the settings from the zip.lst -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allsettings2.log" ,$allsettingsarrayref); } $allvariablesarrayref = installer::ziplist::remove_multiples_from_ziplist($allvariablesarrayref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allvariables2.log" ,$allvariablesarrayref); } installer::ziplist::replace_variables_in_ziplist_variables($allvariablesarrayref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allvariables2a.log" ,$allvariablesarrayref); } my $allvariableshashref = installer::converter::convert_array_to_hash($allvariablesarrayref); # the variables from the zip.lst -if ( $installer::globals::globallogging ) { installer::files::save_hash($loggingdir . "allvariables3.log", $allvariableshashref); } installer::ziplist::set_default_productversion_if_required($allvariableshashref); -if ( $installer::globals::globallogging ) { installer::files::save_hash($loggingdir . "allvariables3a.log", $allvariableshashref); } installer::ziplist::add_variables_to_allvariableshashref($allvariableshashref); -if ( $installer::globals::globallogging ) { installer::files::save_hash($loggingdir . "allvariables3b.log", $allvariableshashref); } installer::ziplist::overwrite_ooovendor( $allvariableshashref ); -if ( $installer::globals::globallogging ) { installer::files::save_hash($loggingdir . "allvariables3c.log", $allvariableshashref); } ######################################################## # Check if this is simple packaging mechanism @@ -304,22 +334,16 @@ if ( $$includepathref eq "" ) } my $includepatharrayref = installer::converter::convert_stringlist_into_array($includepathref, ","); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allpatharray1.log" ,$includepatharrayref); } installer::ziplist::replace_all_variables_in_pathes($includepatharrayref, $pathvariableshashref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allpatharray2.log" ,$includepatharrayref); } installer::ziplist::replace_minor_in_pathes($includepatharrayref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allpatharray3.log" ,$includepatharrayref); } installer::ziplist::replace_packagetype_in_pathes($includepatharrayref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allpatharray3a.log" ,$includepatharrayref); } installer::ziplist::resolve_relative_pathes($includepatharrayref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allpatharray3b.log" ,$includepatharrayref); } installer::ziplist::remove_ending_separator($includepatharrayref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allpatharray3c.log" ,$includepatharrayref); } ############################################## # Collecting all files from all include @@ -362,52 +386,7 @@ installer::control::check_java_for_xpd($allvariableshashref); # Analyzing the setup script ##################################### -if ($installer::globals::setupscript_defined_in_productlist) { installer::setupscript::set_setupscript_name($allsettingsarrayref, $includepatharrayref); } - -installer::logger::globallog("setup script file: $installer::globals::setupscriptname"); - -$installer::logger::Info->print( "... analyzing script: $installer::globals::setupscriptname ... \n" ); - -my $setupscriptref = installer::files::read_file($installer::globals::setupscriptname); # Reading the setup script file - -# Resolving variables defined in the zip list file into setup script -# All the variables are defined in $allvariablesarrayref - -installer::scpzipfiles::replace_all_ziplistvariables_in_file($setupscriptref, $allvariableshashref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "setupscript1.log" ,$setupscriptref); } - -# Resolving %variables defined in the installation object - -my $allscriptvariablesref = installer::setupscript::get_all_scriptvariables_from_installation_object($setupscriptref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "setupscriptvariables1.log" ,$allscriptvariablesref); } - -installer::setupscript::add_lowercase_productname_setupscriptvariable($allscriptvariablesref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "setupscriptvariables2.log" ,$allscriptvariablesref); } - -installer::setupscript::resolve_lowercase_productname_setupscriptvariable($allscriptvariablesref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "setupscriptvariables3.log" ,$allscriptvariablesref); } - -$setupscriptref = installer::setupscript::replace_all_setupscriptvariables_in_script($setupscriptref, $allscriptvariablesref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "setupscript2.log" ,$setupscriptref); } - -# Adding all variables defined in the installation object into the hash of all variables. -# This is needed if variables are defined in the installation object, but not in the zip list file. -# If there is a definition in the zip list file and in the installation object, the installation object is more important - -installer::setupscript::add_installationobject_to_variables($allvariableshashref, $allscriptvariablesref); -if ( $installer::globals::globallogging ) { installer::files::save_hash($loggingdir . "allvariables4.log", $allvariableshashref); } - -# Adding also all variables, that must be included into the $allvariableshashref. -installer::setupscript::add_forced_properties($allvariableshashref); -if ( $installer::globals::globallogging ) { installer::files::save_hash($loggingdir . "allvariables5.log", $allvariableshashref); } - -# Replacing preset properties, not using the default mechanisms (for example for UNIXPRODUCTNAME) -installer::setupscript::replace_preset_properties($allvariableshashref); -if ( $installer::globals::globallogging ) { installer::files::save_hash($loggingdir . "allvariables6.log", $allvariableshashref); } - -installer::scpzipfiles::replace_all_ziplistvariables_in_file($setupscriptref, $allvariableshashref); -if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "setupscript3.log" ,$setupscriptref); } - +my $setupscriptref = GetSetupScriptLines($allsettingsarrayref, $allvariableshashref, $includepatharrayref); installer::logger::log_hashref($allvariableshashref); @@ -416,28 +395,21 @@ $installer::logger::Info->print( "... analyzing directories ... \n" ); # Collect all directories in the script to get the destination dirs my $dirsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Directory"); -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories1.log", $dirsinproductarrayref); } if ( $installer::globals::languagepack ) { installer::scriptitems::use_langpack_hostname($dirsinproductarrayref); } if ( $installer::globals::patch ) { installer::scriptitems::use_patch_hostname($dirsinproductarrayref); } -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories1a.log", $dirsinproductarrayref); } if ( $allvariableshashref->{'SHIFT_BASIS_INTO_BRAND_LAYER'} ) { $dirsinproductarrayref = installer::scriptitems::shift_basis_directory_parents($dirsinproductarrayref); } -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories1b.log", $dirsinproductarrayref); } if ( $allvariableshashref->{'OFFICEDIRECTORYNAME'} ) { installer::scriptitems::set_officedirectory_name($dirsinproductarrayref, $allvariableshashref->{'OFFICEDIRECTORYNAME'}); } -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories1b.log", $dirsinproductarrayref); } installer::scriptitems::resolve_all_directory_names($dirsinproductarrayref); -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories2.log", $dirsinproductarrayref); } $installer::logger::Info->print( "... analyzing files ... \n" ); my $filesinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "File"); -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles1.log", $filesinproductarrayref); } $filesinproductarrayref = installer::scriptitems::remove_delete_only_files_from_productlists($filesinproductarrayref); -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles2.log", $filesinproductarrayref); } if (( ! $installer::globals::iswindowsbuild ) && ( ! $installer::globals::islinuxrpmbuild ) && @@ -449,118 +421,90 @@ if (( ! $installer::globals::iswindowsbuild ) && { installer::control::check_oxtfiles($filesinproductarrayref); } if ($installer::globals::product =~ /suite/i ) { $filesinproductarrayref = installer::scriptitems::remove_notinsuite_files_from_productlists($filesinproductarrayref); } -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles2aa.log", $filesinproductarrayref); } if (! $installer::globals::languagepack) { $filesinproductarrayref = installer::scriptitems::remove_Languagepacklibraries_from_Installset($filesinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles2b.log", $filesinproductarrayref); } } if (! $installer::globals::patch) { $filesinproductarrayref = installer::scriptitems::remove_patchonlyfiles_from_Installset($filesinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles2c.log", $filesinproductarrayref); } } if (! $installer::globals::tab) { $filesinproductarrayref = installer::scriptitems::remove_tabonlyfiles_from_Installset($filesinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles2c.log", $filesinproductarrayref); } } if (( $installer::globals::packageformat ne "installed" ) && ( $installer::globals::packageformat ne "archive" )) { $filesinproductarrayref = installer::scriptitems::remove_installedproductonlyfiles_from_Installset($filesinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles2cc.log", $filesinproductarrayref); } } $installer::logger::Info->print( "... analyzing scpactions ... \n" ); my $scpactionsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "ScpAction"); -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions1.log", $scpactionsinproductarrayref); } if (( ! $allvariableshashref->{'XPDINSTALLER'} ) || ( ! $installer::globals::isxpdplatform )) { $scpactionsinproductarrayref = installer::scriptitems::remove_Xpdonly_Items($scpactionsinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions1a.log", $scpactionsinproductarrayref); } } if ( $installer::globals::languagepack ) { installer::scriptitems::use_langpack_copy_scpaction($scpactionsinproductarrayref); } if ( $installer::globals::patch ) { installer::scriptitems::use_patch_copy_scpaction($scpactionsinproductarrayref); } if (($installer::globals::devsnapshotbuild)) { installer::scriptitems::use_dev_copy_scpaction($scpactionsinproductarrayref); } -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions1b.log", $scpactionsinproductarrayref); } # $scpactionsinproductarrayref = installer::scriptitems::remove_scpactions_without_name($scpactionsinproductarrayref); -# if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions2.log", $scpactionsinproductarrayref); } installer::scriptitems::change_keys_of_scpactions($scpactionsinproductarrayref); -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions2.log", $scpactionsinproductarrayref); } $installer::logger::Info->print( "... analyzing shortcuts ... \n" ); my $linksinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Shortcut"); -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productlinks1.log", $linksinproductarrayref); } $installer::logger::Info->print( "... analyzing unix links ... \n" ); my $unixlinksinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Unixlink"); -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks1.log", $unixlinksinproductarrayref); } # $unixlinksinproductarrayref = installer::scriptitems::filter_layerlinks_from_unixlinks($unixlinksinproductarrayref); -# if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks1b.log", $unixlinksinproductarrayref); } $installer::logger::Info->print( "... analyzing profile ... \n" ); my $profilesinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Profile"); -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "profiles1.log", $profilesinproductarrayref); } $installer::logger::Info->print( "... analyzing profileitems ... \n" ); my $profileitemsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "ProfileItem"); -if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "profileitems1.log", $profileitemsinproductarrayref); } my $folderinproductarrayref; my $folderitemsinproductarrayref; my $registryitemsinproductarrayref; my $windowscustomactionsarrayref; -my $mergemodulesarrayref; if ( $installer::globals::iswindowsbuild ) # Windows specific items: Folder, FolderItem, RegistryItem, WindowsCustomAction { $installer::logger::Info->print( "... analyzing folders ... \n" ); $folderinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Folder"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "folder1.log", $folderinproductarrayref); } $installer::logger::Info->print( "... analyzing folderitems ... \n" ); $folderitemsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "FolderItem"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "folderitems1.log", $folderitemsinproductarrayref); } installer::setupscript::add_predefined_folder($folderitemsinproductarrayref, $folderinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "folder1b.log", $folderinproductarrayref); } installer::setupscript::prepare_non_advertised_files($folderitemsinproductarrayref, $filesinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles2d.log", $filesinproductarrayref); } $installer::logger::Info->print( "... analyzing registryitems ... \n" ); $registryitemsinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "RegistryItem"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems1.log", $registryitemsinproductarrayref); } $registryitemsinproductarrayref = installer::scriptitems::remove_uninstall_regitems_from_script($registryitemsinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems1b.log", $registryitemsinproductarrayref); } $installer::logger::Info->print( "... analyzing Windows custom actions ... \n" ); $windowscustomactionsarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "WindowsCustomAction"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "windowscustomactions1.log", $windowscustomactionsarrayref); } - - $installer::logger::Info->print( "... analyzing Windows merge modules ... \n" ); - - $mergemodulesarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "MergeModule"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "mergemodules1.log", $mergemodulesarrayref); } } my $modulesinproductarrayref; @@ -570,38 +514,29 @@ if (!($installer::globals::is_copy_only_project)) $installer::logger::Info->print( "... analyzing modules ... \n" ); $modulesinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Module"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "modules1.log", $modulesinproductarrayref); } if (( ! $allvariableshashref->{'XPDINSTALLER'} ) || ( ! $installer::globals::isxpdplatform )) { $modulesinproductarrayref = installer::scriptitems::remove_Xpdonly_Items($modulesinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "modules1a.log", $modulesinproductarrayref); } } installer::scriptitems::resolve_assigned_modules($modulesinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "modules1b.log", $modulesinproductarrayref); } $modulesinproductarrayref = installer::scriptitems::remove_template_modules($modulesinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "modules1c.log", $modulesinproductarrayref); } installer::scriptitems::set_children_flag($modulesinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "modules1d.log", $modulesinproductarrayref); } installer::scriptitems::collect_all_languagemodules($modulesinproductarrayref); # Assigning the modules to the items installer::scriptitems::assigning_modules_to_items($modulesinproductarrayref, $filesinproductarrayref, "Files"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles3.log", $filesinproductarrayref); } installer::scriptitems::assigning_modules_to_items($modulesinproductarrayref, $unixlinksinproductarrayref, "Unixlinks"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks2.log", $unixlinksinproductarrayref); } installer::scriptitems::assigning_modules_to_items($modulesinproductarrayref, $dirsinproductarrayref, "Dirs"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories2aa.log", $dirsinproductarrayref); } } -if ( $installer::globals::debug ) { installer::logger::debuginfo("\nEnd of part 1a: The language independent part\n"); } # saving debug info, before staring part 1b if ( $installer::globals::debug ) { installer::logger::savedebug($installer::globals::exitlog); } @@ -619,13 +554,12 @@ if ( $installer::globals::debug ) { installer::logger::savedebug($installer::glo # The for iterates over all products, separated by an # in the language list ############################################################################### -if ( $installer::globals::debug ) { installer::logger::debuginfo("\nPart 1b: The language dependent part\n"); } - -for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) +# Run the following code block exactly once. +# This strange version of a do{}while(false) loop exists only to allow (legacy) next statements. +for (;1;last) { - my $languagesarrayref = installer::languages::get_all_languages_for_one_product($installer::globals::languageproducts[$n], $allvariableshashref); - if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "languages.log" ,$languagesarrayref); } + my $languagesarrayref = installer::languages::get_all_languages_for_one_product($installer::globals::languageproduct, $allvariableshashref); $installer::globals::alllanguagesinproductarrayref = $languagesarrayref; my $languagestringref = installer::languages::get_language_string($languagesarrayref); @@ -716,31 +650,11 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) my $uniquefilename = ""; my $revuniquefilename = ""; my $revshortfilename = ""; - my $allupdatesequences = ""; - my $allupdatecomponents = ""; - my $allupdatefileorder = ""; my $allupdatecomponentorder = ""; my $shortdirname = ""; my $componentid = ""; my $componentidkeypath = ""; my $alloldproperties = ""; - my $allupdatelastsequences = ""; - my $allupdatediskids = ""; - - if ( $installer::globals::iswindowsbuild ) - { - if ( $allvariableshashref->{'UPDATE_DATABASE'} ) - { - $installer::logger::Info->print( "... analyzing update database ...\n" ); - $refdatabase = installer::windows::update::readdatabase($allvariableshashref, $languagestringref, $includepatharrayref); - - if ( $installer::globals::updatedatabase ) - { - ($uniquefilename, $revuniquefilename, $revshortfilename, $allupdatesequences, $allupdatecomponents, $allupdatefileorder, $allupdatecomponentorder, $shortdirname, $componentid, $componentidkeypath, $alloldproperties, $allupdatelastsequences, $allupdatediskids) = installer::windows::update::create_database_hashes($refdatabase); - if ( $mergemodulesarrayref > -1 ) { installer::windows::update::readmergedatabase($mergemodulesarrayref, $languagestringref, $includepatharrayref); } - } - } - } ############################################## # Setting global code variables for Windows @@ -758,8 +672,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # Resolving include paths (language dependent) ################################################ - $includepatharrayref_lang = installer::ziplist::replace_languages_in_pathes($includepatharrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "allpatharray4.log" ,$includepatharrayref_lang); } + my $includepatharrayref_lang = installer::ziplist::replace_languages_in_pathes($includepatharrayref, $languagesarrayref); if ( $installer::globals::refresh_includepathes ) { installer::worker::collect_all_files_from_includepathes($includepatharrayref_lang); } @@ -776,14 +689,11 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) ##################################### my $dirsinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($dirsinproductarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories3.log", $dirsinproductlanguageresolvedarrayref); } - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories2a.log", $dirsinproductarrayref); } # A new directory array is needed ($dirsinproductlanguageresolvedarrayref instead of $dirsinproductarrayref) # because $dirsinproductarrayref is needed in get_Destination_Directory_For_Item_From_Directorylist installer::scriptitems::changing_name_of_language_dependent_keys($dirsinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productdirectories4.log", $dirsinproductlanguageresolvedarrayref); } installer::scriptitems::checking_directories_with_corrupt_hostname($dirsinproductlanguageresolvedarrayref, $languagesarrayref); @@ -796,59 +706,44 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::logger::Info->print( "... analyzing files ...\n" ); my $filesinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($filesinproductarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles4.log", $filesinproductlanguageresolvedarrayref); } if ( ! $installer::globals::set_office_start_language ) { $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_office_start_language_files($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles4b.log", $filesinproductlanguageresolvedarrayref); } } installer::scriptitems::changing_name_of_language_dependent_keys($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles5.log", $filesinproductlanguageresolvedarrayref); } if ( $installer::globals::iswin and $^O =~ /MSWin/i ) { installer::converter::convert_slash_to_backslash($filesinproductlanguageresolvedarrayref); } - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles6.log", $filesinproductlanguageresolvedarrayref); } $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_non_existent_languages_in_productlists($filesinproductlanguageresolvedarrayref, $languagestringref, "Name", "file"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles7.log", $filesinproductlanguageresolvedarrayref); } installer::scriptitems::get_Source_Directory_For_Files_From_Includepathlist($filesinproductlanguageresolvedarrayref, $includepatharrayref_lang, $dirsinproductlanguageresolvedarrayref, "Files"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles8a.log", $filesinproductlanguageresolvedarrayref); } $filesinproductlanguageresolvedarrayref = installer::scriptitems::add_bundled_extension_blobs( $filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles8b.log", $filesinproductlanguageresolvedarrayref); } ($filesinproductlanguageresolvedarrayref,$dirsinproductarrayref) = installer::scriptitems::add_bundled_prereg_extensions( $filesinproductlanguageresolvedarrayref, $dirsinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles8c.log", $filesinproductlanguageresolvedarrayref); } installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist($filesinproductlanguageresolvedarrayref, $dirsinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles9.log", $filesinproductlanguageresolvedarrayref); } $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_Files_Without_Sourcedirectory($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles10.log", $filesinproductlanguageresolvedarrayref); } if ($installer::globals::languagepack) { $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_Files_For_Languagepacks($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles10c.log", $filesinproductlanguageresolvedarrayref); } } if ( ! $allvariableshashref->{'NO_README_IN_ROOTDIR'} ) { $filesinproductlanguageresolvedarrayref = installer::scriptitems::add_License_Files_into_Installdir($filesinproductlanguageresolvedarrayref, $dirsinproductlanguageresolvedarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles10b.log", $filesinproductlanguageresolvedarrayref); } } $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_onlyasialanguage_files_from_productlists($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles10d.log", $filesinproductlanguageresolvedarrayref); } $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_onlywesternlanguage_files_from_productlists($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles10e.log", $filesinproductlanguageresolvedarrayref); } installer::scriptitems::make_filename_language_specific($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles10f.log", $filesinproductlanguageresolvedarrayref); } ###################################################################################### # Unzipping files with flag ARCHIVE and putting all included files into the file list @@ -859,15 +754,12 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) my @additional_paths_from_zipfiles = (); $filesinproductlanguageresolvedarrayref = installer::archivefiles::resolving_archive_flag($filesinproductlanguageresolvedarrayref, \@additional_paths_from_zipfiles, $languagestringref, $loggingdir); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles11.log", $filesinproductlanguageresolvedarrayref); } - if ( $installer::globals::globallogging ) { installer::files::save_file($loggingdir . "additional_paths.log" ,\@additional_paths_from_zipfiles); } # packed files sometimes contain a "$" in their name: HighlightText$1.class. For epm the "$" has to be quoted by "$$" if (!( $installer::globals::iswindowsbuild || $installer::globals::simple ) ) { installer::scriptitems::quoting_illegal_filenames($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles12.log", $filesinproductlanguageresolvedarrayref); } } ##################################### @@ -877,7 +769,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::logger::Info->print( "... analyzing files with flag SUBST_FILENAME ...\n" ); installer::substfilenamefiles::resolving_subst_filename_flag($filesinproductlanguageresolvedarrayref, $allvariableshashref, $languagestringref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles12d.log", $filesinproductlanguageresolvedarrayref); } ##################################### # Files with flag SCPZIP_REPLACE @@ -888,7 +779,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # Editing files with flag SCPZIP_REPLACE. installer::scpzipfiles::resolving_scpzip_replace_flag($filesinproductlanguageresolvedarrayref, $allvariableshashref, "File", $languagestringref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles13.log", $filesinproductlanguageresolvedarrayref); } ##################################### # Files with flag PATCH_SO_NAME @@ -899,7 +789,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # Editing files with flag PATCH_SO_NAME. installer::scppatchsoname::resolving_patchsoname_flag($filesinproductlanguageresolvedarrayref, $allvariableshashref, "File", $languagestringref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles13b.log", $filesinproductlanguageresolvedarrayref); } ##################################### # Files with flag HIDDEN @@ -908,7 +797,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::logger::Info->print( "... analyzing files with flag HIDDEN ...\n" ); installer::worker::resolving_hidden_flag($filesinproductlanguageresolvedarrayref, $allvariableshashref, "File", $languagestringref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles13c.log", $filesinproductlanguageresolvedarrayref); } ############################################ # Collecting directories for epm list file @@ -924,34 +812,26 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # that have a CREATE flag. All other directories are created, if they contain at least one file. my ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_from_filesarray($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist1.log", $directoriesforepmarrayref); } ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_with_create_flag_from_directoryarray($dirsinproductlanguageresolvedarrayref, $alldirectoryhash); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist2.log", $directoriesforepmarrayref); } # installer::sorter::sorting_array_of_hashes($directoriesforepmarrayref, "HostName"); - # if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist3.log", $directoriesforepmarrayref); } ######################################################### # language dependent scpactions part ######################################################### my $scpactionsinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($scpactionsinproductarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions3.log", $scpactionsinproductlanguageresolvedarrayref); } installer::scriptitems::changing_name_of_language_dependent_keys($scpactionsinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions4.log", $scpactionsinproductlanguageresolvedarrayref); } installer::scriptitems::get_Source_Directory_For_Files_From_Includepathlist($scpactionsinproductlanguageresolvedarrayref, $includepatharrayref_lang, $dirsinproductlanguageresolvedarrayref, "ScpActions"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions5.log", $scpactionsinproductlanguageresolvedarrayref); } # Editing scpactions with flag SCPZIP_REPLACE and PATCH_SO_NAME. installer::scpzipfiles::resolving_scpzip_replace_flag($scpactionsinproductlanguageresolvedarrayref, $allvariableshashref, "ScpAction", $languagestringref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions6.log", $scpactionsinproductlanguageresolvedarrayref); } installer::scppatchsoname::resolving_patchsoname_flag($scpactionsinproductlanguageresolvedarrayref, $allvariableshashref, "ScpAction", $languagestringref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions6a.log", $scpactionsinproductlanguageresolvedarrayref); } ######################################################### # language dependent links part @@ -960,27 +840,20 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::logger::Info->print( "... analyzing links ...\n" ); my $linksinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($linksinproductarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productlinks2.log", $linksinproductlanguageresolvedarrayref); } installer::scriptitems::changing_name_of_language_dependent_keys($linksinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productlinks3.log", $linksinproductlanguageresolvedarrayref); } installer::scriptitems::get_destination_file_path_for_links($linksinproductlanguageresolvedarrayref, $filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productlinks4.log", $linksinproductlanguageresolvedarrayref); } installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist($linksinproductlanguageresolvedarrayref, $dirsinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productlinks5.log", $linksinproductlanguageresolvedarrayref); } # Now taking all links that have no FileID but a ShortcutID, linking to another link installer::scriptitems::get_destination_link_path_for_links($linksinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productlinks6.log", $linksinproductlanguageresolvedarrayref); } $linksinproductlanguageresolvedarrayref = installer::scriptitems::remove_workstation_only_items($linksinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productlinks7.log", $linksinproductlanguageresolvedarrayref); } installer::scriptitems::resolve_links_with_flag_relative($linksinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productlinks8.log", $linksinproductlanguageresolvedarrayref); } ######################################################### # language dependent unix links part @@ -989,13 +862,10 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::logger::Info->print( "... analyzing unix links ...\n" ); my $unixlinksinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($unixlinksinproductarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks3.log", $unixlinksinproductlanguageresolvedarrayref); } installer::scriptitems::changing_name_of_language_dependent_keys($unixlinksinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks4.log", $unixlinksinproductlanguageresolvedarrayref); } installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist($unixlinksinproductlanguageresolvedarrayref, $dirsinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks5.log", $unixlinksinproductlanguageresolvedarrayref); } ######################################################### # language dependent part for profiles and profileitems @@ -1009,33 +879,25 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::logger::Info->print( "... creating profiles ...\n" ); $profilesinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($profilesinproductarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "profiles2.log", $profilesinproductlanguageresolvedarrayref); } $profileitemsinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($profileitemsinproductarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "profileitems2.log", $profilesinproductlanguageresolvedarrayref); } installer::scriptitems::changing_name_of_language_dependent_keys($profilesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "profiles3.log", $profilesinproductlanguageresolvedarrayref); } installer::scriptitems::changing_name_of_language_dependent_keys($profileitemsinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "profileitems3.log", $profileitemsinproductlanguageresolvedarrayref); } installer::scriptitems::replace_setup_variables($profileitemsinproductlanguageresolvedarrayref, $languagestringref, $allvariableshashref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "profileitems4.log", $profileitemsinproductlanguageresolvedarrayref); } if ( $installer::globals::patch_user_dir ) { installer::scriptitems::replace_userdir_variable($profileitemsinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "profileitems4a.log", $profileitemsinproductlanguageresolvedarrayref); } } installer::scriptitems::get_Destination_Directory_For_Item_From_Directorylist($profilesinproductlanguageresolvedarrayref, $dirsinproductarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "profiles4.log", $profilesinproductlanguageresolvedarrayref); } # Now the Profiles can be created installer::profiles::create_profiles($profilesinproductlanguageresolvedarrayref, $profileitemsinproductlanguageresolvedarrayref, $filesinproductlanguageresolvedarrayref, $languagestringref, $allvariableshashref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles15.log", $filesinproductlanguageresolvedarrayref); } } my $registryitemsinproductlanguageresolvedarrayref; # cannot be defined in the following "if ( $installer::globals::iswindowsbuild )" @@ -1051,10 +913,8 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::logger::Info->print( "... analyzing folder ...\n" ); $folderinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($folderinproductarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "folder2.log", $folderinproductlanguageresolvedarrayref); } installer::scriptitems::changing_name_of_language_dependent_keys($folderinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "folder3.log", $folderinproductlanguageresolvedarrayref); } ######################################################### # language dependent part for folderitems @@ -1063,10 +923,8 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::logger::Info->print( "... analyzing folderitems ...\n" ); $folderitemsinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($folderitemsinproductarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "folderitems2.log", $folderitemsinproductlanguageresolvedarrayref); } installer::scriptitems::changing_name_of_language_dependent_keys($folderitemsinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "folderitems3.log", $folderitemsinproductlanguageresolvedarrayref); } ######################################################### # language dependent part for registryitems @@ -1075,10 +933,8 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::logger::Info->print( "... analyzing registryitems ...\n" ); $registryitemsinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($registryitemsinproductarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems2.log", $registryitemsinproductlanguageresolvedarrayref); } installer::scriptitems::changing_name_of_language_dependent_keys($registryitemsinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems3.log", $registryitemsinproductlanguageresolvedarrayref); } } ######################################################### @@ -1092,13 +948,10 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::logger::Info->print( "... analyzing modules ...\n" ); $modulesinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($modulesinproductarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes_modules($loggingdir . "modules2.log", $modulesinproductlanguageresolvedarrayref); } $modulesinproductlanguageresolvedarrayref = installer::scriptitems::remove_not_required_language_modules($modulesinproductlanguageresolvedarrayref, $languagesarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes_modules($loggingdir . "modules2a.log", $modulesinproductlanguageresolvedarrayref); } installer::scriptitems::changing_name_of_language_dependent_keys($modulesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes_modules($loggingdir . "modules3a.log", $modulesinproductlanguageresolvedarrayref); } # installer::scriptitems::collect_language_specific_names($modulesinproductlanguageresolvedarrayref); installer::scriptitems::select_required_language_strings($modulesinproductlanguageresolvedarrayref); # using english strings @@ -1111,27 +964,19 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if ( $installer::globals::languagepack ) { $filesinproductlanguageresolvedarrayref = installer::languagepack::select_language_items($filesinproductlanguageresolvedarrayref, $languagesarrayref, "File"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles16b.log", $filesinproductlanguageresolvedarrayref); } $scpactionsinproductlanguageresolvedarrayref = installer::languagepack::select_language_items($scpactionsinproductlanguageresolvedarrayref, $languagesarrayref, "ScpAction"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions6b.log", $scpactionsinproductlanguageresolvedarrayref); } $linksinproductlanguageresolvedarrayref = installer::languagepack::select_language_items($linksinproductlanguageresolvedarrayref, $languagesarrayref, "Shortcut"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productlinks8b.log", $linksinproductlanguageresolvedarrayref); } $unixlinksinproductlanguageresolvedarrayref = installer::languagepack::select_language_items($unixlinksinproductlanguageresolvedarrayref, $languagesarrayref, "Unixlink"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks5.log", $unixlinksinproductlanguageresolvedarrayref); } @{$folderitemsinproductlanguageresolvedarrayref} = (); # no folderitems in languagepacks # Collecting the directories again, to include only the language specific directories ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_from_filesarray($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist3alangpack.log", $directoriesforepmarrayref); } ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_with_create_flag_from_directoryarray($dirsinproductlanguageresolvedarrayref, $alldirectoryhash); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist3blangpack.log", $directoriesforepmarrayref); } installer::sorter::sorting_array_of_hashes($directoriesforepmarrayref, "HostName"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist3clangpack.log", $directoriesforepmarrayref); } if ( $installer::globals::iswindowsbuild ) { $registryitemsinproductlanguageresolvedarrayref = installer::worker::select_langpack_items($registryitemsinproductlanguageresolvedarrayref, "RegistryItem"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems3aa.log", $registryitemsinproductlanguageresolvedarrayref); } } } @@ -1143,31 +988,22 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if (( $installer::globals::patch ) && (( $installer::globals::issolarispkgbuild ) || ( $installer::globals::iswindowsbuild ))) { $filesinproductlanguageresolvedarrayref = installer::worker::select_patch_items($filesinproductlanguageresolvedarrayref, "File"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles16patch.log", $filesinproductlanguageresolvedarrayref); } $scpactionsinproductlanguageresolvedarrayref = installer::worker::select_patch_items($scpactionsinproductlanguageresolvedarrayref, "ScpAction"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions6patch.log", $scpactionsinproductlanguageresolvedarrayref); } $linksinproductlanguageresolvedarrayref = installer::worker::select_patch_items($linksinproductlanguageresolvedarrayref, "Shortcut"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productlinks8patch.log", $linksinproductlanguageresolvedarrayref); } $unixlinksinproductlanguageresolvedarrayref = installer::worker::select_patch_items($unixlinksinproductlanguageresolvedarrayref, "Unixlink"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks6patch.log", $unixlinksinproductlanguageresolvedarrayref); } $folderitemsinproductlanguageresolvedarrayref = installer::worker::select_patch_items($folderitemsinproductlanguageresolvedarrayref, "FolderItem"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfolderitems1patch.log", $folderitemsinproductlanguageresolvedarrayref); } # @{$folderitemsinproductlanguageresolvedarrayref} = (); # no folderitems in languagepacks if ( $installer::globals::iswindowsbuild ) { $registryitemsinproductlanguageresolvedarrayref = installer::worker::select_patch_items_without_name($registryitemsinproductlanguageresolvedarrayref, "RegistryItem"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems3a.log", $registryitemsinproductlanguageresolvedarrayref); } installer::worker::prepare_windows_patchfiles($filesinproductlanguageresolvedarrayref, $languagestringref, $allvariableshashref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles16bpatch.log", $filesinproductlanguageresolvedarrayref); } # For Windows patches, the directories can now be collected again ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_from_filesarray($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist4_patch.log", $directoriesforepmarrayref); } installer::sorter::sorting_array_of_hashes($directoriesforepmarrayref, "HostName"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist5_patch.log", $directoriesforepmarrayref); } } } @@ -1185,7 +1021,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) { $installer::logger::Info->print( "... creating inf files ...\n" ); installer::worker::create_inf_file($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $folderinproductlanguageresolvedarrayref, $folderitemsinproductlanguageresolvedarrayref, $modulesinproductlanguageresolvedarrayref, $languagesarrayref, $languagestringref, $allvariableshashref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles16c.log", $filesinproductlanguageresolvedarrayref); } } ########################################### @@ -1196,7 +1031,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if ( $allvariableshashref->{'UPXPRODUCT'} ) { installer::upx::upx_on_libraries($filesinproductlanguageresolvedarrayref, $languagestringref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles16d.log", $filesinproductlanguageresolvedarrayref); } } ########################################################### @@ -1228,7 +1062,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) installer::packagelist::log_packages_content($packages); installer::packagelist::create_module_destination_hash($packages, $allvariableshashref); - if ( $installer::globals::debug ) { installer::logger::debuginfo("\nEnd of part 1b: The language dependent part\n"); } # saving debug info, before starting part 2 if ( $installer::globals::debug ) { installer::logger::savedebug($installer::globals::exitlog); } @@ -1237,13 +1070,11 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # Part 2: The platform dependent part ################################################# - if ( $installer::globals::debug ) { installer::logger::debuginfo("\nPart 2: The platform dependent part\n"); } ################################################# # Part 2a: All non-Windows platforms ################################################# - if ( $installer::globals::debug ) { installer::logger::debuginfo("\nPart 2a: All non-Windows platforms\n"); } ######################################################### # ... creating epm list file ... @@ -1394,39 +1225,27 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) ############################################# my $filesinpackage = installer::converter::copy_collector($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "files1_" . $packagename . ".log", $filesinpackage); } my $linksinpackage = installer::converter::copy_collector($linksinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "links1_" . $packagename . ".log", $linksinpackage); } my $unixlinksinpackage = installer::converter::copy_collector($unixlinksinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks1_" . $packagename . ".log", $unixlinksinpackage); } my $dirsinpackage = installer::converter::copy_collector($directoriesforepmarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "dirs1_" . $packagename . ".log", $dirsinpackage); } ########################################### # setting the root path for the packages ########################################### installer::scriptitems::add_rootpath_to_directories($dirsinpackage, $packagerootpath); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "dirs2_" . $packagename . ".log", $dirsinpackage); } installer::scriptitems::add_rootpath_to_files($filesinpackage, $packagerootpath); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "files2_" . $packagename . ".log", $filesinpackage); } installer::scriptitems::add_rootpath_to_links($linksinpackage, $packagerootpath); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "links2_" . $packagename . ".log", $linksinpackage); } installer::scriptitems::add_rootpath_to_files($unixlinksinpackage, $packagerootpath); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks2_" . $packagename . ".log", $unixlinksinpackage); } ################################# # collecting items for package ################################# $filesinpackage = installer::packagelist::find_files_for_package($filesinpackage, $onepackage); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "files3_" . $packagename . ".log", $filesinpackage); } $unixlinksinpackage = installer::packagelist::find_files_for_package($unixlinksinpackage, $onepackage); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks3_" . $packagename . ".log", $unixlinksinpackage); } $linksinpackage = installer::packagelist::find_links_for_package($linksinpackage, $filesinpackage); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "links3_" . $packagename . ".log", $linksinpackage); } $dirsinpackage = installer::packagelist::find_dirs_for_package($dirsinpackage, $onepackage); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "dirs3_" . $packagename . ".log", $dirsinpackage); } ############################################### # nothing to do, if $filesinpackage is empty @@ -1470,7 +1289,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if ( $installer::globals::strip ) { installer::strip::strip_libraries($filesinpackage, $languagestringref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . $packagename ."_files.log", $filesinpackage); } } ############################################################### @@ -1494,9 +1312,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if ( $installer::globals::patch ) { $installer::globals::call_epm = 1; } # enabling packing again $run = 1; - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "files3b_" . $packagename . ".log", $filesinpackage); } - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "links3b_" . $packagename . ".log", $linksinpackage); } - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "dirs3b_" . $packagename . ".log", $dirsinpackage); } } if (( ! $installer::globals::makelinuxlinkrpm ) && ( ! $run )) @@ -1509,9 +1324,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $shellscriptsfilename = ""; # shell scripts only need to be included into the link rpm $run = 1; - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "files3a_" . $packagename . ".log", $filesinpackage); } - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "links3a_" . $packagename . ".log", $linksinpackage); } - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "dirs3a_" . $packagename . ".log", $dirsinpackage); } } } } @@ -1560,7 +1372,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if (( $installer::globals::patch ) && ( $installer::globals::issolarispkgbuild )) { $filesinpackage = installer::worker::analyze_patch_files($filesinpackage); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "files4_" . $packagename . ".log", $filesinpackage); } if ( ! ( $#{$filesinpackage} > -1 )) { @@ -1865,13 +1676,11 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) } # end of "if (!( $installer::globals::iswindowsbuild ))" - if ( $installer::globals::debug ) { installer::logger::debuginfo("\nEnd of part 2a: All non-Windows platforms\n"); } ################################################# # Part 2b: The Windows platform ################################################# - if ( $installer::globals::debug ) { installer::logger::debuginfo("\nPart 2b: The Windows platform\n"); } ##################################################################### # ... creating idt files ... @@ -1891,7 +1700,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if ( $installer::globals::compiler =~ /wntgcci/ ) { installer::windows::strip::strip_binaries($filesinproductlanguageresolvedarrayref, $languagestringref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles16e.log", $filesinproductlanguageresolvedarrayref); } } $installdir = installer::worker::create_installation_directory($shipinstalldir, $languagestringref, \$current_install_number); @@ -1930,7 +1738,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # Removing all files with flag "BINARYTABLE_ONLY" @installer::globals::binarytableonlyfiles = (); $filesinproductlanguageresolvedarrayref = installer::worker::remove_all_items_with_special_flag($filesinproductlanguageresolvedarrayref ,"BINARYTABLE_ONLY"); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles17.log", $filesinproductlanguageresolvedarrayref); } # Collecting all profileitems with flag "INIFILETABLE" for table "IniFile" my $inifiletableentries = installer::worker::collect_all_items_with_special_flag($profileitemsinproductlanguageresolvedarrayref ,"INIFILETABLE"); @@ -1941,41 +1748,28 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # Add cabinet assignments to files installer::windows::file::assign_cab_to_files($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles17a.log", $filesinproductlanguageresolvedarrayref); } installer::windows::file::assign_sequencenumbers_to_files($filesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles17b.log", $filesinproductlanguageresolvedarrayref); } # Collection all available directory trees installer::windows::directory::collectdirectorytrees($directoriesforepmarrayref); - $filesinproductlanguageresolvedarrayref = installer::windows::file::create_files_table($filesinproductlanguageresolvedarrayref, \@allfilecomponents, $newidtdir, $allvariableshashref, $uniquefilename, $allupdatesequences, $allupdatecomponents, $allupdatefileorder); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles17c.log", $filesinproductlanguageresolvedarrayref); } - if ( $installer::globals::updatedatabase ) { installer::windows::file::check_file_sequences($allupdatefileorder, $allupdatecomponentorder); } + $filesinproductlanguageresolvedarrayref = installer::windows::file::create_files_table($filesinproductlanguageresolvedarrayref, \@allfilecomponents, $newidtdir, $allvariableshashref, $uniquefilename); installer::windows::directory::create_directory_table($directoriesforepmarrayref, $newidtdir, $allvariableshashref, $shortdirname, $loggingdir); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles18.log", $filesinproductlanguageresolvedarrayref); } - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt1.log", $directoriesforepmarrayref); } # Attention: The table "Registry.idt" contains language specific strings -> parameter: $languagesarrayref ! installer::windows::registry::create_registry_table($registryitemsinproductlanguageresolvedarrayref, \@allregistrycomponents, $newidtdir, $languagesarrayref, $allvariableshashref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems4.log", $registryitemsinproductlanguageresolvedarrayref); } installer::windows::component::create_component_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $directoriesforepmarrayref, \@allfilecomponents, \@allregistrycomponents, $newidtdir, $componentid, $componentidkeypath, $allvariableshashref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles19.log", $filesinproductlanguageresolvedarrayref); } - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems5.log", $registryitemsinproductlanguageresolvedarrayref); } # Attention: The table "Feature.idt" contains language specific strings -> parameter: $languagesarrayref ! - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "modules4.log", $modulesinproductlanguageresolvedarrayref); } installer::windows::feature::add_uniquekey($modulesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "modules4a.log", $modulesinproductlanguageresolvedarrayref); } $modulesinproductlanguageresolvedarrayref = installer::windows::feature::sort_feature($modulesinproductlanguageresolvedarrayref); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "modules4b.log", $modulesinproductlanguageresolvedarrayref); } installer::windows::feature::create_feature_table($modulesinproductlanguageresolvedarrayref, $newidtdir, $languagesarrayref, $allvariableshashref); installer::windows::featurecomponent::create_featurecomponent_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $newidtdir); - installer::windows::media::create_media_table($filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref, $allupdatelastsequences, $allupdatediskids); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles20.log", $filesinproductlanguageresolvedarrayref); } + installer::windows::media::create_media_table($filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref); installer::windows::font::create_font_table($filesinproductlanguageresolvedarrayref, $newidtdir); @@ -1984,7 +1778,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) my @iconfilecollector = (); installer::windows::shortcut::create_shortcut_table($filesinproductlanguageresolvedarrayref, $linksinproductlanguageresolvedarrayref, $folderinproductlanguageresolvedarrayref, $folderitemsinproductlanguageresolvedarrayref, $directoriesforepmarrayref, $newidtdir, $languagesarrayref, $includepatharrayref, \@iconfilecollector); - if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "folderitems4.log", $folderitemsinproductlanguageresolvedarrayref); } installer::windows::inifile::create_inifile_table($inifiletableentries, $filesinproductlanguageresolvedarrayref, $newidtdir); @@ -2181,12 +1974,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) installer::windows::msiglobal::write_summary_into_msi_database($msifilename, $onelanguage, $languagefile, $allvariableshashref); - # if there are Merge Modules, they have to be integrated now - $filesinproductlanguageresolvedarrayref = installer::windows::mergemodule::merge_mergemodules_into_msi_database($mergemodulesarrayref, $filesinproductlanguageresolvedarrayref, $msifilename, $languagestringref, $onelanguage, $languagefile, $allvariableshashref, $includepatharrayref, $allupdatesequences, $allupdatelastsequences, $allupdatediskids); - if (( $installer::globals::globallogging ) && ($installer::globals::globalloggingform21)) { installer::files::save_array_of_hashes($loggingdir . "productfiles21_" . $onelanguage . ".log", $filesinproductlanguageresolvedarrayref); } - $installer::globals::globalloggingform21 = 0; - if ( $installer::globals::use_packages_for_cabs ) { installer::windows::media::create_media_table($filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref, $allupdatelastsequences, $allupdatediskids); } - # copy msi database into installation directory my $msidestfilename = $installdir . $installer::globals::separator . $msidatabasename; @@ -2227,10 +2014,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) installer::windows::msiglobal::copy_windows_installer_files_into_installset($installdir, $includepatharrayref, $allvariableshashref); - # ... copying MergeModules into installation set - - if ( ! $installer::globals::fix_number_of_cab_files ) { installer::windows::msiglobal::copy_merge_modules_into_installset($installdir); } - # ... copying the child projects if ($installer::globals::addchildprojects) @@ -2273,20 +2056,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) installer::worker::clean_output_tree(); # removing directories created in the output tree ($is_success, $finalinstalldir) = installer::worker::analyze_and_save_logfile($loggingdir, $installdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number); - ####################################################### - # Creating Windows msp patches - ####################################################### - - if (( $is_success ) && ( $installer::globals::updatedatabase ) && ( $allvariableshashref->{'CREATE_MSP_INSTALLSET'} )) - { - # Required: - # Temp path for administrative installations: $installer::globals::temppath - # Path of new installation set: $finalinstalldir - # Path of old installation set: $installer::globals::updatedatabasepath - my $mspdir = installer::windows::msp::create_msp_patch($finalinstalldir, $includepatharrayref, $allvariableshashref, $languagestringref, $languagesarrayref, $filesinproductlanguageresolvedarrayref); - ($is_success, $finalinstalldir) = installer::worker::analyze_and_save_logfile($loggingdir, $mspdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number); - installer::worker::clean_output_tree(); # removing directories created in the output tree - } ####################################################### # Creating download installation set @@ -2308,13 +2077,11 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) } # end of "if ( $installer::globals::iswindowsbuild )" - if ( $installer::globals::debug ) { installer::logger::debuginfo("\nEnd of part 2b: The Windows platform\n"); } # saving file_info file for later analysis my $speciallogfilename = "fileinfo_" . $installer::globals::product . "\.log"; installer::files::save_array_of_hashes($loggingdir . $speciallogfilename, $filesinproductlanguageresolvedarrayref); - -} # end of iteration for one language group +} # saving debug info at end if ( $installer::globals::debug ) { installer::logger::savedebug($installer::globals::exitlog); } |