This is an automated email from the ASF dual-hosted git repository. mseidel pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/openoffice.git
The following commit(s) were added to refs/heads/trunk by this push: new c97fd79 Removed whitespace, fixed typos c97fd79 is described below commit c97fd792a9a453fec839fe1bccb49ef32b23694c Author: mseidel <msei...@apache.org> AuthorDate: Tue Jun 30 13:11:51 2020 +0200 Removed whitespace, fixed typos --- main/solenv/bin/modules/installer/scriptitems.pm | 718 +++++++++++------------ 1 file changed, 359 insertions(+), 359 deletions(-) diff --git a/main/solenv/bin/modules/installer/scriptitems.pm b/main/solenv/bin/modules/installer/scriptitems.pm index eaffcec..fe002f4 100644 --- a/main/solenv/bin/modules/installer/scriptitems.pm +++ b/main/solenv/bin/modules/installer/scriptitems.pm @@ -1,5 +1,5 @@ #************************************************************** -# +# # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information @@ -7,16 +7,16 @@ # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -# +# #************************************************************** @@ -47,24 +47,24 @@ sub resolve_all_directory_names { my ($directoryarrayref) = @_; - # After this procedure the hash shall contain the complete language + # After this procedure the hash shall contain the complete language # dependent path, not only the language dependent HostName. my ($key, $value, $parentvalue, $parentgid, $parentdirectoryhashref); - + for ( my $i = 0; $i <= $#{$directoryarrayref}; $i++ ) { my $directoryhashref = ${$directoryarrayref}[$i]; my $gid = $directoryhashref-> {'gid'}; my $parentid = $directoryhashref-> {'ParentID'}; - + if ( $parentid ne "PREDEFINED_PROGDIR" ) { # find the array of the parentid, which has to be defined before in setup script # and is therefore listed before in this array - + for ( my $j = 0; $j <= $i; $j++ ) - { + { $parentdirectoryhashref = ${$directoryarrayref}[$j]; $parentgid = $parentdirectoryhashref->{'gid'}; @@ -86,7 +86,7 @@ sub resolve_all_directory_names (( $dirismultilingual ) && ( $parentismultilingual ))) { foreach $key (keys %{$directoryhashref}) - { + { # the key ("HostName (en-US)") must be usable for both hashes if ( $key =~ /\bHostName\b/ ) @@ -94,23 +94,23 @@ sub resolve_all_directory_names $parentvalue = ""; $value = $directoryhashref->{$key}; if ( $parentdirectoryhashref->{$key} ) { $parentvalue = $parentdirectoryhashref->{$key}; } - + # It is possible, that in scp project, a directory is defined in more languages than # the directory parent (happened after automatic generation of macros.inc). # Therefore this is checked now and written with a warning into the logfile. - # This is no error, because (in most cases) the concerned language is not build. - + # This is no error, because (in most cases) the concerned language is not built. + if ($parentvalue eq "") { $directoryhashref->{$key} = "FAILURE"; - $installer::logger::Global->printf("WARNING: No hostname for %s with \"%s\". Needed by child directory %s !\n", - $parentid, $key, $gid); + $installer::logger::Global->printf("WARNING: No hostname for %s with \"%s\". Needed by child directory %s !\n", + $parentid, $key, $gid); } else { $directoryhashref->{$key} = $parentvalue . $installer::globals::separator . $value; - } - } + } + } } } @@ -122,8 +122,8 @@ sub resolve_all_directory_names foreach $key (keys %{$directoryhashref}) # the current directory { - if ( $key =~ /\bHostName\b/ ) - { + if ( $key =~ /\bHostName\b/ ) + { $value = $directoryhashref->{$key}; $directoryhashref->{$key} = $parentvalue . $installer::globals::separator . $value; } @@ -138,15 +138,15 @@ sub resolve_all_directory_names delete($directoryhashref->{'HostName'}); foreach $key (keys %{$parentdirectoryhashref}) # the parent directory - { - if ( $key =~ /\bHostName\b/ ) - { + { + if ( $key =~ /\bHostName\b/ ) + { $parentvalue = $parentdirectoryhashref->{$key}; # there is only one $directoryhashref->{$key} = $parentvalue . $installer::globals::separator . $value; } } - - $directoryhashref->{'ismultilingual'} = 1; # now this directory is also language dependent + + $directoryhashref->{'ismultilingual'} = 1; # now this directory is also language dependent } } } @@ -166,16 +166,16 @@ sub remove_delete_only_files_from_productlists { my $oneitem = ${$productarrayref}[$i]; my $styles = ""; - + if ( $oneitem->{'Styles'} ) { $styles = $oneitem->{'Styles'}; } - + if (!($styles =~ /\bDELETE_ONLY\b/)) { - push(@newitems, $oneitem); + push(@newitems, $oneitem); } - } + } - return \@newitems; + return \@newitems; } ############################################################################# @@ -193,21 +193,21 @@ sub remove_notinsuite_files_from_productlists { my $oneitem = ${$productarrayref}[$i]; my $styles = ""; - + if ( $oneitem->{'Styles'} ) { $styles = $oneitem->{'Styles'}; } - + if (!($styles =~ /\bNOT_IN_SUITE\b/)) { - push(@newitems, $oneitem); + push(@newitems, $oneitem); } else { - $installer::logger::Global->printf("INFO: Flag NOT_IN_SUITE \-\> Removing %s from file list.\n", - $oneitem->{'gid'}); + $installer::logger::Global->printf("INFO: Flag NOT_IN_SUITE \-\> Removing %s from file list.\n", + $oneitem->{'gid'}); } - } + } - return \@newitems; + return \@newitems; } ############################################################################# @@ -225,22 +225,22 @@ sub remove_office_start_language_files { my $oneitem = ${$productarrayref}[$i]; my $styles = ""; - + if ( $oneitem->{'Styles'} ) { $styles = $oneitem->{'Styles'}; } - + if (!($styles =~ /\bSET_OFFICE_LANGUAGE\b/)) { - push(@newitems, $oneitem); + push(@newitems, $oneitem); } else { - $installer::logger::Lang->printf( - "INFO: Flag SET_OFFICE_LANGUAGE \-\> Removing %s from file list.\n", - $oneitem->{'gid'}); + $installer::logger::Lang->printf( + "INFO: Flag SET_OFFICE_LANGUAGE \-\> Removing %s from file list.\n", + $oneitem->{'gid'}); } - } + } - return \@newitems; + return \@newitems; } ############################################################################# @@ -263,9 +263,9 @@ sub remove_uninstall_regitems_from_script if ( $subkey =~ /Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall/ ) { next; } push(@newitems, $oneitem); - } + } - return \@newitems; + return \@newitems; } ############################################################################## @@ -275,22 +275,22 @@ sub remove_uninstall_regitems_from_script sub get_languagespecific_module { my ( $lang, $modulestring ) = @_; - + my $langmodulestring = ""; - + my $module; foreach $module ( keys %installer::globals::alllangmodules ) { if (( $installer::globals::alllangmodules{$module} eq $lang ) && ( $modulestring =~ /\b$module\b/ )) { $langmodulestring = "$langmodulestring,$module"; - } + } } - + $langmodulestring =~ s/^\s*,//; - + if ( $langmodulestring eq "" ) { installer::exiter::exit_program("ERROR: No language pack module found for language $lang in string \"$modulestring\"!", "get_languagespecific_module"); } - + return $langmodulestring; } @@ -305,13 +305,13 @@ sub resolving_all_languages_in_productlists my @itemsinalllanguages = (); my ($key, $value); - + for ( my $i = 0; $i <= $#{$productarrayref}; $i++ ) { my $oneitem = ${$productarrayref}[$i]; my $ismultilingual = $oneitem->{'ismultilingual'}; - + if (!($ismultilingual)) # nothing to do with single language items { $oneitem->{'specificlanguage'} = ""; @@ -322,13 +322,13 @@ sub resolving_all_languages_in_productlists for ( my $j = 0; $j <= $#{$languagesarrayref}; $j++ ) # iterating over all languages { my $onelanguage = ${$languagesarrayref}[$j]; - + my %oneitemhash = (); - + foreach $key (keys %{$oneitem}) - { - if ( $key =~ /\(\S+\)/ ) # this are the language dependent keys - { + { + if ( $key =~ /\(\S+\)/ ) # this are the language dependent keys + { if ( $key =~ /\(\Q$onelanguage\E\)/ ) { $value = $oneitem->{$key}; @@ -341,7 +341,7 @@ sub resolving_all_languages_in_productlists $oneitemhash{$key} = $value; } } - + $oneitemhash{'specificlanguage'} = $onelanguage; if ( $oneitemhash{'haslanguagemodule'} ) @@ -374,11 +374,11 @@ sub remove_not_required_language_modules my $module = ${$modulesarrayref}[$i]; my $styles = ""; if ( $module->{'Styles'} ) { $styles = $module->{'Styles'}; } - + if ( $styles =~ /\bLANGUAGEMODULE\b/ ) { if ( ! exists($module->{'Language'}) ) { installer::exiter::exit_program("ERROR: \"$module->{'gid'}\" has flag LANGUAGEMODULE, but does not know its language!", "remove_not_required_language_modules"); } - my $modulelanguage = $module->{'Language'}; + my $modulelanguage = $module->{'Language'}; # checking, if language is required my $doinclude = 0; for ( my $j = 0; $j <= $#{$languagesarrayref}; $j++ ) @@ -390,7 +390,7 @@ sub remove_not_required_language_modules last; } } - + if ( $doinclude ) { push(@allmodules, $module); } } else @@ -427,10 +427,10 @@ sub remove_not_required_spellcheckerlanguage_modules } else { - $installer::logger::Lang->printf("Spellchecker selection: Removing module %s\n", $module->{'gid'}); + $installer::logger::Lang->printf("Spellchecker selection: Removing module %s\n", $module->{'gid'}); # Collecting all files at modules that are removed - + if ( $module->{'Files'} ) { if ( $module->{'Files'} =~ /^\s*\((.*?)\)\s*$/ ) @@ -454,7 +454,7 @@ sub remove_not_required_spellcheckerlanguage_modules ################################################################################ # Removing all modules, that belong to a module that was removed -# in "remove_not_required_spellcheckerlanguage_modules" because of the +# in "remove_not_required_spellcheckerlanguage_modules" because of the # spellchecker language. The files belonging to the modules are collected # in %installer::globals::spellcheckerfilehash. ################################################################################ @@ -471,13 +471,13 @@ sub remove_not_required_spellcheckerlanguage_files my $onefile = ${$filesarrayref}[$i]; if ( exists($installer::globals::spellcheckerfilehash{$onefile->{'gid'}}) ) { - $installer::logger::Lang->printf("Spellchecker selection: Removing file %s\n", - $onefile->{'gid'}); + $installer::logger::Lang->printf("Spellchecker selection: Removing file %s\n", + $onefile->{'gid'}); next; } push(@filesarray, $onefile); } - + return \@filesarray; } @@ -486,7 +486,7 @@ sub remove_not_required_spellcheckerlanguage_files Add entries for extension blobs to the global file list. Extension blobs, unlike preregistered extensions, are not extracted before included into a pack set. - + The set of extensions to include is taken from the BUNDLED_EXTENSION_BLOBS environment variable (typically set in configure.) @@ -507,7 +507,7 @@ sub add_bundled_extension_blobs . $installer::globals::separator . $ENV{INPATH} . $installer::globals::separator . "bin" . $installer::globals::separator; - + if ($installer::globals::product =~ /(SDK|URE)/i ) { # No extensions for the SDK. @@ -554,7 +554,7 @@ sub add_bundled_extension_blobs $installer::logger::Info->printf(" %s\n", $basename); } - + return \@filelist; } @@ -578,7 +578,7 @@ sub add_bundled_prereg_extensions my @bundle_files = (); my $bundleenv = $ENV{'BUNDLED_PREREG_EXTENSIONS'}; - + if ($installer::globals::product =~ /(SDK|URE)/i ) { # No extensions for the SDK. @@ -624,7 +624,7 @@ sub add_bundled_prereg_extensions my $basename = File::Basename::basename( $filename); # Create a new directory into which the extension will be installed. - my $dirgid = $parentdir_gid . "_" . $basename; + my $dirgid = $parentdir_gid . "_" . $basename; my $onedir = { 'modules' => 'gid_Module_Root_Brand', 'ismultilingual' => 0, @@ -666,9 +666,9 @@ sub checking_directories_with_corrupt_hostname for ( my $i = 0; $i <= $#{$dirsref}; $i++ ) { my $onedir = ${$dirsref}[$i]; - + my $hostname = ""; - + if ( $onedir->{'HostName'} ) { $hostname = $onedir->{'HostName'}; } if ( $hostname eq "" ) @@ -677,7 +677,7 @@ sub checking_directories_with_corrupt_hostname for ( my $j = 0; $j <= $#{$languagesarrayref}; $j++ ) { $langstring .= ${$languagesarrayref}[$j] . " "; } installer::exiter::exit_program("ERROR: HostName not defined for $onedir->{'gid'} for specified language. Probably you wanted to create an installation set, in a language not defined in scp2 project. You selected the following language(s): $langstring", "checking_directories_with_corrupt_hostname"); } - + if ( $hostname eq "FAILURE" ) { installer::exiter::exit_program("ERROR: Could not create HostName for $onedir->{'gid'} (missing language at parent). See logfile warning for more info!", "checking_directories_with_corrupt_hostname"); @@ -698,18 +698,18 @@ sub set_global_directory_hostnames my $onedir = ${$dirsref}[$i]; my $styles = ""; if ( $onedir->{'Styles'} ) { $styles = $onedir->{'Styles'}; } - + if ( $styles =~ /\bOFFICEDIRECTORY\b/ ) { $installer::globals::officedirhostname = $onedir->{'HostName'}; $installer::globals::officedirgid = $onedir->{'gid'}; $allvariables->{'OFFICEDIRECTORYHOSTNAME'} = $installer::globals::officedirhostname; } - } + } } ######################################################## -# Recursively defined procedure to order +# Recursively defined procedure to order # modules and directories ######################################################## @@ -744,11 +744,11 @@ sub use_langpack_hostname { my $onedir = ${$dirsref}[$i]; if (( $onedir->{'LangPackHostName'} ) && ( $onedir->{'LangPackHostName'} ne "" )) { $onedir->{'HostName'} = $onedir->{'LangPackHostName'}; } - } + } } ################################################################################ -# Using different HostName for language packs +# Using different HostName for patches ################################################################################ sub use_patch_hostname @@ -759,7 +759,7 @@ sub use_patch_hostname { my $onedir = ${$dirsref}[$i]; if (( $onedir->{'PatchHostName'} ) && ( $onedir->{'PatchHostName'} ne "" )) { $onedir->{'HostName'} = $onedir->{'PatchHostName'}; } - } + } } ################################################################################ @@ -774,7 +774,7 @@ sub use_beta_copy_scpaction { my $onescpaction = ${$scpactionsref}[$i]; if (( $onescpaction->{'BetaCopy'} ) && ( $onescpaction->{'BetaCopy'} ne "" )) { $onescpaction->{'Copy'} = $onescpaction->{'BetaCopy'}; } - } + } } ################################################################################ @@ -789,7 +789,7 @@ sub use_langbeta_copy_scpaction { my $onescpaction = ${$scpactionsref}[$i]; if (( $onescpaction->{'LangBetaCopy'} ) && ( $onescpaction->{'LangBetaCopy'} ne "" )) { $onescpaction->{'Copy'} = $onescpaction->{'LangBetaCopy'}; } - } + } } ################################################################################ @@ -804,7 +804,7 @@ sub use_langpack_copy_scpaction { my $onescpaction = ${$scpactionsref}[$i]; if (( $onescpaction->{'LangPackCopy'} ) && ( $onescpaction->{'LangPackCopy'} ne "" )) { $onescpaction->{'Copy'} = $onescpaction->{'LangPackCopy'}; } - } + } } ################################################################################ @@ -819,7 +819,7 @@ sub use_patch_copy_scpaction { my $onescpaction = ${$scpactionsref}[$i]; if (( $onescpaction->{'PatchCopy'} ) && ( $onescpaction->{'PatchCopy'} ne "" )) { $onescpaction->{'Copy'} = $onescpaction->{'PatchCopy'}; } - } + } } ################################################################################ @@ -834,7 +834,7 @@ sub use_dev_copy_scpaction { my $onescpaction = ${$scpactionsref}[$i]; if (( $onescpaction->{'DevCopy'} ) && ( $onescpaction->{'DevCopy'} ne "" )) { $onescpaction->{'Copy'} = $onescpaction->{'DevCopy'}; } - } + } } ################################################################################ @@ -852,16 +852,16 @@ sub shift_basis_directory_parents my @shifteddirs = (); my $officedirgid = ""; - + for ( my $i = 0; $i <= $#{$dirsref}; $i++ ) { my $onedir = ${$dirsref}[$i]; my $styles = ""; if ( $onedir->{'Styles'} ) { $styles = $onedir->{'Styles'}; } - + if ( $styles =~ /\bOFFICEDIRECTORY\b/ ) { $officedirgid = $onedir->{'gid'}; } } - + if ( $officedirgid ne "" ) { for ( my $i = 0; $i <= $#{$dirsref}; $i++ ) @@ -869,7 +869,7 @@ sub shift_basis_directory_parents my $onedir = ${$dirsref}[$i]; my $styles = ""; if ( $onedir->{'Styles'} ) { $styles = $onedir->{'Styles'}; } - + if (( $styles =~ /\bBASISDIRECTORY\b/ ) || ( $styles =~ /\bUREDIRECTORY\b/ )) { $onedir->{'ParentID'} = $officedirgid; @@ -879,8 +879,8 @@ sub shift_basis_directory_parents # Sorting directories my $startgid = "PREDEFINED_PROGDIR"; get_children($dirsref, $startgid, \@alldirs); - } - + } + return \@alldirs; } @@ -892,7 +892,7 @@ sub shift_basis_directory_parents sub set_officedirectory_name { my ($dirsref, $officedirname) = @_; - + for ( my $i = 0; $i <= $#{$dirsref}; $i++ ) { my $onedir = ${$dirsref}[$i]; @@ -924,7 +924,7 @@ sub changing_name_of_language_dependent_keys if (!($onelanguage eq "" )) # language dependent item { my $itemkey; - + foreach $itemkey (keys %{$oneitem}) { if ( $itemkey =~ /^\s*(\S+?)\s+\(\S+\)\s*$/ ) @@ -932,7 +932,7 @@ sub changing_name_of_language_dependent_keys my $newitemkey = $1; my $itemvalue = $oneitem->{$itemkey}; $oneitem->{$newitemkey} = $itemvalue; - delete($oneitem->{$itemkey}); + delete($oneitem->{$itemkey}); } } } @@ -952,7 +952,7 @@ sub collect_language_specific_names my $oneitem = ${$itemsarrayref}[$i]; my $styles = ""; if ( $oneitem->{'Styles'} ) { $styles = $oneitem->{'Styles'}; } - + if ( $styles =~ /\bUSELANGUAGENAME\b/ ) { my $language = ""; @@ -995,15 +995,15 @@ sub replace_setup_variables $scsrevision = "" unless ( $scsrevision = RepoRevision::DetectRevisionId(File::Spec->catfile($ENV{'SRC_ROOT'}, File::Spec->updir())) ); # string $buildid, which is used to replace the setup variable <buildid> - + my $localminor = "flat"; if ( $installer::globals::minor ne "" ) { $localminor = $installer::globals::minor; } else { $localminor = $installer::globals::lastminor; } - + my $localbuild = $installer::globals::build; - + if ( $localbuild =~ /^\s*(\w+?)(\d+)\s*$/ ) { $localbuild = $2; } # using "680" instead of "src680" - + my $buildidstring = $localbuild . $localminor . "(Build:" . $installer::globals::buildid . ")"; # the environment variable CWS_WORK_STAMP is set only in CWS @@ -1017,9 +1017,9 @@ sub replace_setup_variables for ( my $i = 0; $i <= $#{$itemsarrayref}; $i++ ) { - my $oneitem = ${$itemsarrayref}[$i]; + my $oneitem = ${$itemsarrayref}[$i]; my $value = $oneitem->{'Value'}; - + $value =~ s/\<buildid\>/$buildidstring/; $value =~ s/\<scsrevision\>/$scsrevision/; $value =~ s/\<sequence_languages\>/$languagesstring/; @@ -1046,17 +1046,17 @@ sub replace_setup_variables sub replace_userdir_variable ($$) { my ($itemsarrayref, $allvariableshashref) = @_; - + my $userdir = ""; if ($allvariableshashref->{'LOCALUSERDIR'}) - { - $userdir = $allvariableshashref->{'LOCALUSERDIR'}; - } + { + $userdir = $allvariableshashref->{'LOCALUSERDIR'}; + } else - { - $userdir = $installer::globals::simpledefaultuserdir; - } - + { + $userdir = $installer::globals::simpledefaultuserdir; + } + if ($userdir ne "") { foreach my $oneitem (@$itemsarrayref) @@ -1068,7 +1068,7 @@ sub replace_userdir_variable ($$) ##################################################################################### # Files and ConfigurationItems are not included for all languages. -# For instance asian fonts. These can be removed, if no "Name" is found. +# For instance Asian fonts. These can be removed, if no "Name" is found. # ConfigurationItems are not always defined in the linguistic configuration file. # The "Key" cannot be found for them. ##################################################################################### @@ -1077,24 +1077,24 @@ sub remove_non_existent_languages_in_productlists { my ($itemsarrayref, $languagestringref, $searchkey, $itemtype) = @_; - # Removing of all non existent files, for instance asian fonts + # Removing of all non existent files, for instance Asian fonts installer::logger::include_header_into_logfile("Removing for this language $$languagestringref:"); my @allexistentitems = (); - + my $infoline; for ( my $i = 0; $i <= $#{$itemsarrayref}; $i++ ) { - my $oneitem = ${$itemsarrayref}[$i]; + my $oneitem = ${$itemsarrayref}[$i]; my $oneitemname = ""; # $searchkey is "Name" for files and "Key" for ConfigurationItems if ( $oneitem->{$searchkey} ) { $oneitemname = $oneitem->{$searchkey} } my $itemtoberemoved = 0; - if ($oneitemname eq "") # for instance asian font in english installation set + if ($oneitemname eq "") # for instance Asian font in English installation set { $itemtoberemoved = 1; } @@ -1108,10 +1108,10 @@ sub remove_non_existent_languages_in_productlists else { push(@allexistentitems, $oneitem); - } + } } - $installer::logger::Lang->print("\n"); + $installer::logger::Lang->print("\n"); return \@allexistentitems; } @@ -1127,24 +1127,24 @@ sub get_Directoryname_From_Directorygid my $directoryname = ""; my $onedirectory; my $foundgid = 0; - + for ( my $i = 0; $i <= $#{$dirsarrayref}; $i++ ) { $onedirectory = ${$dirsarrayref}[$i]; my $directorygid = $onedirectory->{'gid'}; - - if ($directorygid eq $searchgid) + + if ($directorygid eq $searchgid) { $foundgid = 1; last; - } + } } - + if (!($foundgid)) { installer::exiter::exit_program("ERROR: Gid $searchgid not defined in $installer::globals::setupscriptname", "get_Directoryname_From_Directorygid"); } - + if ( ! ( $onedirectory->{'ismultilingual'} )) # the directory is not language dependent { $directoryname = $onedirectory->{'HostName'}; @@ -1155,15 +1155,15 @@ sub get_Directoryname_From_Directorygid } # gid_Dir_Template_Wizard_Letter is defined as language dependent directory, but the file gid_Dir_Template_Wizard_Letter - # is not language dependent. Therefore $onelanguage is not defined. But which language is the correct language for the + # is not language dependent. Therefore $onelanguage is not defined. But which language is the correct language for the # directory? # Perhaps better solution: In scp it must be forbidden to have a language independent file in a language dependent directory. - + if (( ! $directoryname ) && ( $onelanguage eq "" )) { installer::exiter::exit_program("ERROR (in scp): Directory $searchgid is language dependent, but not $oneitemgid inside this directory", "get_Directoryname_From_Directorygid"); } - + return \$directoryname; } @@ -1184,24 +1184,24 @@ sub get_Destination_Directory_For_Item_From_Directorylist # this is used for Fi my $onelanguage = $oneitem->{'specificlanguage'}; my $ispredefinedprogdir = 0; my $ispredefinedconfigdir = 0; - - my $oneitemname = $oneitem->{'Name'}; - + + my $oneitemname = $oneitem->{'Name'}; + if ( $oneitem->{'NetDir'} ) { $netdirectorygid = $oneitem->{'NetDir'}; } - - installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$oneitemname); # making /registry/schema/org/openoffice/VCL.xcs to VCL.xcs + + installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$oneitemname); # making /registry/schema/org/openoffice/VCL.xcs to VCL.xcs my $searchdirgid; - + if ( $netdirectorygid eq "" ) # if NetDir is defined, it is privileged { - $searchdirgid = $directorygid + $searchdirgid = $directorygid } else { - $searchdirgid = $netdirectorygid + $searchdirgid = $netdirectorygid } - + if ($searchdirgid =~ /PREDEFINED_PROGDIR/) # the root directory is not defined in setup script { $ispredefinedprogdir = 1; @@ -1211,11 +1211,11 @@ sub get_Destination_Directory_For_Item_From_Directorylist # this is used for Fi { $ispredefinedconfigdir = 1; } - + my $destfilename; - - if ((!( $ispredefinedprogdir )) && (!( $ispredefinedconfigdir ))) - { + + if ((!( $ispredefinedprogdir )) && (!( $ispredefinedconfigdir ))) + { my $directorynameref = get_Directoryname_From_Directorygid($dirsarrayref, $searchdirgid, $onelanguage, $oneitemgid); $destfilename = $$directorynameref . $installer::globals::separator . $oneitemname; } @@ -1239,7 +1239,7 @@ sub get_sourcepath_from_filename_and_includepath_classic my ($onefile, $includepath, $infoline); my $foundsourcefile = 0; - + for ( my $j = 0; $j <= $#{$includepatharrayref}; $j++ ) { $includepath = ${$includepatharrayref}[$j]; @@ -1260,12 +1260,12 @@ sub get_sourcepath_from_filename_and_includepath_classic if ( $write_logfile) { if ( $ENV{'DEFAULT_TO_ENGLISH_FOR_PACKING'} ) - { + { $infoline = "WARNING: Source for $$searchfilenameref not found!\n"; # Important message in log file } else { - $infoline = "ERROR: Source for $$searchfilenameref not found!\n"; # Important message in log file + $infoline = "ERROR: Source for $$searchfilenameref not found!\n"; # Important message in log file } $installer::logger::Lang->printf($infoline); @@ -1280,7 +1280,7 @@ sub get_sourcepath_from_filename_and_includepath_classic $onefile); } } - + return \$onefile; } @@ -1298,9 +1298,9 @@ sub get_sourcepath_from_filename_and_includepath my $foundnewname = 0; for ( my $j = 0; $j <= $#installer::globals::allincludepathes; $j++ ) - { + { my $allfiles = $installer::globals::allincludepathes[$j]; - + if ( exists( $allfiles->{$$searchfilenameref} )) { $onefile = $allfiles->{'includepath'} . $installer::globals::separator . $$searchfilenameref; @@ -1309,10 +1309,10 @@ sub get_sourcepath_from_filename_and_includepath } } - if (!($foundsourcefile)) # testing with lowercase filename + if (!($foundsourcefile)) # testing with lowercase filename { # Attention: README01.html is copied for Windows to readme01.html, not case sensitive - + for ( my $j = 0; $j <= $#installer::globals::allincludepathes; $j++ ) { my $allfiles = $installer::globals::allincludepathes[$j]; @@ -1320,7 +1320,7 @@ sub get_sourcepath_from_filename_and_includepath my $newfilename = $$searchfilenameref; $newfilename =~ s/readme/README/; # special handling for readme files $newfilename =~ s/license/LICENSE/; # special handling for license files - + if ( exists( $allfiles->{$newfilename} )) { $onefile = $allfiles->{'includepath'} . $installer::globals::separator . $newfilename; @@ -1337,12 +1337,12 @@ sub get_sourcepath_from_filename_and_includepath if ( $write_logfile) { if ( $ENV{'DEFAULT_TO_ENGLISH_FOR_PACKING'} ) - { + { $infoline = "WARNING: Source for $$searchfilenameref not found!\n"; # Important message in log file } else { - $infoline = "ERROR: Source for $$searchfilenameref not found!\n"; # Important message in log file + $infoline = "ERROR: Source for $$searchfilenameref not found!\n"; # Important message in log file } $installer::logger::Lang->printf($infoline); @@ -1363,7 +1363,7 @@ sub get_sourcepath_from_filename_and_includepath $installer::logger::Lang->printf($infoline); } } - + return \$onefile; } @@ -1382,14 +1382,14 @@ sub determine_directory_language_dependency { my $onedir = ${$dirsref}[$i]; my $gid = $onedir->{'gid'}; - + if ( $gid eq $directorygid ) { $is_multilingual = $onedir->{'ismultilingual'}; last; } } - + return $is_multilingual; } @@ -1416,27 +1416,27 @@ sub get_Source_Directory_For_Files_From_Includepathlist my $onefilename = $onefile->{'Name'}; if ( $item eq "ScpActions" ) { $onefilename =~ s/\//$installer::globals::separator/g; } $onefilename =~ s/^\s*\Q$installer::globals::separator\E//; # filename begins with a slash, for instance /registry/schema/org/openoffice/VCL.xcs - + my $styles = ""; my $file_can_miss = 0; if ( $onefile->{'Styles'} ) { $styles = $onefile->{'Styles'}; } if ( $styles =~ /\bFILE_CAN_MISS\b/ ) { $file_can_miss = 1; } if (( $installer::globals::languagepack ) && ( ! $onefile->{'ismultilingual'} ) && ( ! ( $styles =~ /\bFORCELANGUAGEPACK\b/ ))) { $file_can_miss = 1; } - + my $sourcepathref = ""; if ( $file_can_miss ) { $sourcepathref = get_sourcepath_from_filename_and_includepath(\$onefilename, $includepatharrayref, 0); } else { $sourcepathref = get_sourcepath_from_filename_and_includepath(\$onefilename, $includepatharrayref, 1); } - $onefile->{'sourcepath'} = $$sourcepathref; # This $$sourcepathref is empty, if no source was found + $onefile->{'sourcepath'} = $$sourcepathref; # This $$sourcepathref is empty, if no source was found + + # defaulting to English for multilingual files if DEFAULT_TO_ENGLISH_FOR_PACKING is set - # defaulting to english for multilingual files if DEFAULT_TO_ENGLISH_FOR_PACKING is set - if ( $ENV{'DEFAULT_TO_ENGLISH_FOR_PACKING'} ) - { + { if (( ! $onefile->{'sourcepath'} ) && ( $onefile->{'ismultilingual'} )) - { + { my $oldname = $onefile->{'Name'}; my $oldlanguage = $onefile->{'specificlanguage'}; my $newlanguage = "en-US"; @@ -1446,8 +1446,8 @@ sub get_Source_Directory_For_Files_From_Includepathlist $onefilename =~ s/^\s*\Q$installer::globals::separator\E//; # filename begins with a slash, for instance /registry/schema/org/openoffice/VCL.xcs $sourcepathref = get_sourcepath_from_filename_and_includepath(\$onefilename, $includepatharrayref, 1); $onefile->{'sourcepath'} = $$sourcepathref; # This $$sourcepathref is empty, if no source was found - - if ($onefile->{'sourcepath'}) # defaulting to english was successful + + if ($onefile->{'sourcepath'}) # defaulting to English was successful { $installer::logger::Lang->printf("WARNING: Using %s instead of %s\n", $onefilename, $oldname); $installer::logger::Info->printf("WARNING: Using %s instead of %s\n", $onefilename, $oldname); @@ -1462,7 +1462,7 @@ sub get_Source_Directory_For_Files_From_Includepathlist { my $directorygid = $onefile->{'Dir'}; my $islanguagedependent = determine_directory_language_dependency($directorygid, $dirsref); - + if ( ! $islanguagedependent ) { $onefile->{'Styles'} =~ s/\bARCHIVE\b/ARCHIVE, RENAME_TO_LANGUAGE/; # Setting new flag RENAME_TO_LANGUAGE @@ -1471,13 +1471,13 @@ sub get_Source_Directory_For_Files_From_Includepathlist $onefile->{'Name'}, $directorygid); } - } + } } else { $installer::logger::Lang->printf("WARNING: Using %s instead of %s was not successful\n", $onefile->{'Name'}, $oldname); - $onefile->{'Name'} = $oldname; # Switching back to old file name + $onefile->{'Name'} = $oldname; # Switching back to old file name } } } @@ -1497,9 +1497,9 @@ sub remove_Files_For_Languagepacks my ($itemsarrayref) = @_; my $infoline; - + my @newitemsarray = (); - + for ( my $i = 0; $i <= $#{$itemsarrayref}; $i++ ) { my $oneitem = ${$itemsarrayref}[$i]; @@ -1512,14 +1512,14 @@ sub remove_Files_For_Languagepacks { $installer::logger::Lang->printf("ATTENTION: Removing item %s from the installation set.\n", $oneitem->{'gid'},); - + next; } push(@newitemsarray, $oneitem); } - return \@newitemsarray; + return \@newitemsarray; } ################################################################################# @@ -1531,11 +1531,11 @@ sub remove_Files_Without_Sourcedirectory my ($filesarrayref) = @_; my $infoline; - + my $error_occured = 0; my @missingfiles = (); push(@missingfiles, "ERROR: The following files could not be found: \n"); - + my @newfilesarray = (); for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) @@ -1553,7 +1553,7 @@ sub remove_Files_Without_Sourcedirectory $installer::logger::Lang->printf("ERROR: No sourcepath -> Removing file %s from file list.\n", $filename); - push(@missingfiles, "ERROR: File not found: $filename\n"); + push(@missingfiles, "ERROR: File not found: $filename\n"); $error_occured = 1; next; # removing this file from list, if sourcepath is empty @@ -1564,10 +1564,10 @@ sub remove_Files_Without_Sourcedirectory { $installer::logger::Lang->printf("ERROR: Removing file %s from file list.\n", $filename); - push(@missingfiles, "ERROR: File not found: $filename\n"); + push(@missingfiles, "ERROR: File not found: $filename\n"); $error_occured = 1; - next; # removing this file from list, if sourcepath is empty + next; # removing this file from list, if sourcepath is empty } else { @@ -1577,7 +1577,7 @@ sub remove_Files_Without_Sourcedirectory $installer::logger::Lang->printf( "INFO: It is not language dependent and can be ignored in language packs.\n"); - next; # removing this file from list, if sourcepath is empty + next; # removing this file from list, if sourcepath is empty } } } @@ -1585,7 +1585,7 @@ sub remove_Files_Without_Sourcedirectory push(@newfilesarray, $onefile); } - $installer::logger::Lang->printf("\n"); + $installer::logger::Lang->printf("\n"); if ( $error_occured ) { @@ -1616,7 +1616,7 @@ sub get_office_directory_gid_and_hostname if ( $onedir->{'Styles'} ) { my $styles = $onedir->{'Styles'}; - + if ( $styles =~ /\bOFFICEDIRECTORY\b/ ) { $foundofficedir = 1; @@ -1641,18 +1641,18 @@ sub add_License_Files_into_Installdir my ($filesarrayref, $dirsarrayref, $languagesarrayref) = @_; my $infoline; - + my @newfilesarray = (); my $defaultlanguage = installer::languages::get_default_language($languagesarrayref); - + my ($foundofficedir, $officedirectorygid, $officedirectoryhostname) = get_office_directory_gid_and_hostname($dirsarrayref); # copy all files from directory share/readme, that contain the default language in their name # without default language into the installation root. This makes the settings of the correct # file names superfluous. On the other hand this requires a dependency to the directory # share/readme - + for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) { my $onefile = ${$filesarrayref}[$i]; @@ -1665,23 +1665,23 @@ sub add_License_Files_into_Installdir { my $filename = $1; my $extension = $2; - + my $newfilename; - + if ( $extension eq "" ) { $newfilename = $filename; } else { $newfilename = $filename . "\." . $extension; } my %newfile = (); my $newfile = \%newfile; - installer::converter::copy_item_object($onefile, $newfile); + installer::converter::copy_item_object($onefile, $newfile); $newfile->{'gid'} = $onefile->{'gid'} . "_Copy"; $newfile->{'Name'} = $newfilename; $newfile->{'ismultilingual'} = "0"; $newfile->{'specificlanguage'} = ""; $newfile->{'haslanguagemodule'} = "0"; - + if ( defined $newfile->{'InstallName'} ) { if ( $newfile->{'InstallName'} =~ /^\s*(.*?)_$defaultlanguage\.?(\w*?)\s*$/ ) @@ -1690,12 +1690,12 @@ sub add_License_Files_into_Installdir my $localextension = $2; if ( $localextension eq "" ) { $newfile->{'InstallName'} = $localfilename; } - else { $newfile->{'InstallName'} = $localfilename . "\." . $localextension; } + else { $newfile->{'InstallName'} = $localfilename . "\." . $localextension; } } } - - $newfile->{'removelangfromfile'} = "1"; # Important for files with an InstallName, because language also has to be removed there. - + + $newfile->{'removelangfromfile'} = "1"; # Important for files with an InstallName, because language also has to be removed there. + if ( $foundofficedir ) { $newfile->{'Dir'} = $officedirectorygid; @@ -1706,13 +1706,13 @@ sub add_License_Files_into_Installdir $newfile->{'Dir'} = "PREDEFINED_PROGDIR"; $newfile->{'destination'} = $newfilename; } - + # Also setting "modules=gid_Module_Root_Brand" (module with style: ROOT_BRAND_PACKAGE) if ( $installer::globals::rootbrandpackageset ) { $newfile->{'modules'} = $installer::globals::rootbrandpackage; } - + push(@newfilesarray, $newfile); $installer::logger::Lang->printf( @@ -1725,9 +1725,9 @@ sub add_License_Files_into_Installdir $installer::logger::Lang->printf( "New files: Using installation name: %s\n", $newfile->{'InstallName'}); } - + # Collecting license and readme file for the installation set - + push(@installer::globals::installsetfiles, $newfile); $installer::logger::Lang->printf( "New files: Adding file %s to the file collector for the installation set. Language: %s\n", @@ -1738,16 +1738,16 @@ sub add_License_Files_into_Installdir push(@newfilesarray, $onefile); } - return \@newfilesarray; + return \@newfilesarray; } ############################################################################ -# Removing files with flag ONLY_ASIA_LANGUAGE, only if no asian +# Removing files with flag ONLY_ASIA_LANGUAGE, only if no Asian # language is part of the product. # This special files are connected to the root module and are not # included into a language pack (would lead to conflicts!). # But this files shall only be included into the product, if the -# product contains at least one asian language. +# product contains at least one Asian language. ############################################################################ sub remove_onlyasialanguage_files_from_productlists @@ -1755,19 +1755,19 @@ sub remove_onlyasialanguage_files_from_productlists my ($filesarrayref) = @_; my $infoline; - + my @newfilesarray = (); my $returnfilesarrayref; my $containsasianlanguage = installer::languages::detect_asian_language($installer::globals::alllanguagesinproductarrayref); - + my $alllangstring = installer::converter::convert_array_to_comma_separated_string($installer::globals::alllanguagesinproductarrayref); $installer::logger::Lang->printf("\n"); $installer::logger::Lang->printf("Languages in complete product: %s\n", $alllangstring); - + if ( ! $containsasianlanguage ) { - $installer::logger::Lang->printf("Product does not contain asian language -> removing files\n"); + $installer::logger::Lang->printf("Product does not contain Asian language -> removing files\n"); for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) { @@ -1781,7 +1781,7 @@ sub remove_onlyasialanguage_files_from_productlists $onefile->{'Name'}); next; } - + push(@newfilesarray, $onefile); } @@ -1791,7 +1791,7 @@ sub remove_onlyasialanguage_files_from_productlists { $returnfilesarrayref = $filesarrayref; - $installer::logger::Lang->printf("Product contains asian language -> Nothing to do\n"); + $installer::logger::Lang->printf("Product contains Asian language -> Nothing to do\n"); } return $returnfilesarrayref; @@ -1811,16 +1811,16 @@ sub remove_onlywesternlanguage_files_from_productlists my ($filesarrayref) = @_; my $infoline; - + my @newfilesarray = (); my $returnfilesarrayref; my $containswesternlanguage = installer::languages::detect_western_language($installer::globals::alllanguagesinproductarrayref); - + my $alllangstring = installer::converter::convert_array_to_comma_separated_string($installer::globals::alllanguagesinproductarrayref); $installer::logger::Lang->printf("\n"); $installer::logger::Lang->printf("Languages in complete product: %s\n", $alllangstring); - + if ( ! $containswesternlanguage ) { $installer::logger::Lang->printf("Product does not contain western language -> removing files\n"); @@ -1837,7 +1837,7 @@ sub remove_onlywesternlanguage_files_from_productlists $onefile->{'Name'}); next; } - + push(@newfilesarray, $onefile); } @@ -1880,7 +1880,7 @@ sub make_filename_language_specific my $language = $onefile->{'specificlanguage'}; my $olddestination = $onefile->{'destination'}; my $oldname = $onefile->{'Name'}; - + # Including the language into the file name. # But be sure, to include the language before the file extension. @@ -1912,14 +1912,14 @@ sub remove_scpactions_without_name my ($itemsarrayref) = @_; my $infoline; - + my @newitemsarray = (); - + for ( my $i = 0; $i <= $#{$itemsarrayref}; $i++ ) { my $oneitem = ${$itemsarrayref}[$i]; my $name = ""; - + if ( $oneitem->{'Name'} ) { $name = $oneitem->{'Name'}; } if ( $name eq "" ) @@ -1933,7 +1933,7 @@ sub remove_scpactions_without_name push(@newitemsarray, $oneitem); } - return \@newitemsarray; + return \@newitemsarray; } ############################################################################ @@ -1953,30 +1953,30 @@ sub change_keys_of_scpactions # First Name to DestinationName, then deleting Name foreach $key (keys %{$oneitem}) - { + { if ( $key =~ /\bName\b/ ) - { + { my $value = $oneitem->{$key}; my $oldkey = $key; $key =~ s/Name/DestinationName/; $oneitem->{$key} = $value; delete($oneitem->{$oldkey}); } - } + } # Second Copy to Name, then deleting Copy foreach $key (keys %{$oneitem}) - { + { if ( $key =~ /\bCopy\b/ ) - { + { my $value = $oneitem->{$key}; my $oldkey = $key; $key =~ s/Copy/Name/; $oneitem->{$key} = $value; delete($oneitem->{$oldkey}); - } + } } - } + } } ############################################################################ @@ -1989,9 +1989,9 @@ sub remove_Xpdonly_Items my ($itemsarrayref) = @_; my $infoline; - + my @newitemsarray = (); - + for ( my $i = 0; $i <= $#{$itemsarrayref}; $i++ ) { my $oneitem = ${$itemsarrayref}[$i]; @@ -2010,9 +2010,9 @@ sub remove_Xpdonly_Items push(@newitemsarray, $oneitem); } - $installer::logger::Global->print("\n"); + $installer::logger::Global->print("\n"); - return \@newitemsarray; + return \@newitemsarray; } ############################################################################ @@ -2025,9 +2025,9 @@ sub remove_Languagepacklibraries_from_Installset my ($itemsarrayref) = @_; my $infoline; - + my @newitemsarray = (); - + for ( my $i = 0; $i <= $#{$itemsarrayref}; $i++ ) { my $oneitem = ${$itemsarrayref}[$i]; @@ -2046,9 +2046,9 @@ sub remove_Languagepacklibraries_from_Installset push(@newitemsarray, $oneitem); } - $installer::logger::Global->print("\n"); + $installer::logger::Global->print("\n"); - return \@newitemsarray; + return \@newitemsarray; } ############################################################################ @@ -2061,9 +2061,9 @@ sub remove_patchonlyfiles_from_Installset my ($itemsarrayref) = @_; my $infoline; - + my @newitemsarray = (); - + for ( my $i = 0; $i <= $#{$itemsarrayref}; $i++ ) { my $oneitem = ${$itemsarrayref}[$i]; @@ -2082,9 +2082,9 @@ sub remove_patchonlyfiles_from_Installset push(@newitemsarray, $oneitem); } - $installer::logger::Global->print("\n"); + $installer::logger::Global->print("\n"); - return \@newitemsarray; + return \@newitemsarray; } ############################################################################ @@ -2097,9 +2097,9 @@ sub remove_tabonlyfiles_from_Installset my ($itemsarrayref) = @_; my $infoline; - + my @newitemsarray = (); - + for ( my $i = 0; $i <= $#{$itemsarrayref}; $i++ ) { my $oneitem = ${$itemsarrayref}[$i]; @@ -2118,9 +2118,9 @@ sub remove_tabonlyfiles_from_Installset push(@newitemsarray, $oneitem); } - $installer::logger::Global->print("\n"); + $installer::logger::Global->print("\n"); - return \@newitemsarray; + return \@newitemsarray; } ############################################################################### @@ -2133,9 +2133,9 @@ sub remove_installedproductonlyfiles_from_Installset my ($itemsarrayref) = @_; my $infoline; - + my @newitemsarray = (); - + for ( my $i = 0; $i <= $#{$itemsarrayref}; $i++ ) { my $oneitem = ${$itemsarrayref}[$i]; @@ -2145,7 +2145,7 @@ sub remove_installedproductonlyfiles_from_Installset if ( $styles =~ /\bONLY_INSTALLED_PRODUCT\b/ ) { $installer::logger::Global->printf( - "Removing file from the installation set. This file is only required for PKGFORMAT archive or installed).\n", + "Removing file from the installation set. This file is only required for PKGFORMAT archive or installed).\n", $oneitem->{'gid'}); next; } @@ -2153,13 +2153,13 @@ sub remove_installedproductonlyfiles_from_Installset push(@newitemsarray, $oneitem); } - $installer::logger::Global->print("\n"); + $installer::logger::Global->print("\n"); - return \@newitemsarray; + return \@newitemsarray; } ############################################################################ -# Some files cotain a $ in their name. epm conflicts with such files. +# Some files contain a $ in their name. epm conflicts with such files. # Solution: Renaming this files, converting "$" to "$$" ############################################################################ @@ -2168,14 +2168,14 @@ sub quoting_illegal_filenames my ($filesarrayref) = @_; # This function has to be removed as soon as possible! - + installer::logger::include_header_into_logfile("Renaming illegal filenames:"); for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) { my $onefile = ${$filesarrayref}[$i]; - my $filename = $onefile->{'Name'}; - + my $filename = $onefile->{'Name'}; + if ( $filename =~ /\$/ ) { my $sourcepath = $onefile->{'sourcepath'}; @@ -2234,11 +2234,11 @@ sub collect_directories_from_filesarray my %alldirectoryhash = (); my $predefinedprogdir_added = 0; - my $alreadyincluded = 0; - + my $alreadyincluded = 0; + # Preparing this already as hash, although the only needed value at the moment is the HostName # But also adding: "specificlanguage" and "Dir" (for instance gid_Dir_Program) - + for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) { my $onefile = ${$filesarrayref}[$i]; @@ -2247,8 +2247,8 @@ sub collect_directories_from_filesarray $destinationpath =~ s/\Q$installer::globals::separator\E\s*$//; # removing ending slashes or backslashes $alreadyincluded = 0; - if ( exists($alldirectoryhash{$destinationpath}) ) { $alreadyincluded = 1; } - + if ( exists($alldirectoryhash{$destinationpath}) ) { $alreadyincluded = 1; } + if (!($alreadyincluded)) { my %directoryhash = (); @@ -2257,7 +2257,7 @@ sub collect_directories_from_filesarray $directoryhash{'Dir'} = $onefile->{'Dir'}; $directoryhash{'modules'} = $onefile->{'modules'}; # NEW, saving modules # NEVER!!! if ( ! $installer::globals::iswindowsbuild ) { $directoryhash{'Styles'} = "(CREATE)"; } # this directories must be created - + if ( $onefile->{'Dir'} eq "PREDEFINED_PROGDIR" ) { $predefinedprogdir_added = 1; } $alldirectoryhash{$destinationpath} = \%directoryhash; @@ -2265,14 +2265,14 @@ sub collect_directories_from_filesarray # Problem: The $destinationpath can be share/registry/schema/org/openoffice # but not all directories contain files and will be added to this list. # Therefore the path has to be analyzed. - + while ( $destinationpath =~ /(^.*\S)\Q$installer::globals::separator\E(\S.*?)\s*$/ ) # as long as the path contains slashes - { + { $destinationpath = $1; $alreadyincluded = 0; - if ( exists($alldirectoryhash{$destinationpath}) ) { $alreadyincluded = 1; } - + if ( exists($alldirectoryhash{$destinationpath}) ) { $alreadyincluded = 1; } + if (!($alreadyincluded)) { my %directoryhash = (); @@ -2294,20 +2294,20 @@ sub collect_directories_from_filesarray } else { - # Adding the modules to the module list! + # Adding the modules to the module list! $alldirectoryhash{$destinationpath}->{'modules'} = $alldirectoryhash{$destinationpath}->{'modules'} . "," . $onefile->{'modules'}; # Also adding the module to all parents while ( $destinationpath =~ /(^.*\S)\Q$installer::globals::separator\E(\S.*?)\s*$/ ) # as long as the path contains slashes - { + { $destinationpath = $1; - $alldirectoryhash{$destinationpath}->{'modules'} = $alldirectoryhash{$destinationpath}->{'modules'} . "," . $onefile->{'modules'}; + $alldirectoryhash{$destinationpath}->{'modules'} = $alldirectoryhash{$destinationpath}->{'modules'} . "," . $onefile->{'modules'}; } } } - + # if there is no file in the root directory PREDEFINED_PROGDIR, it has to be included into the directory array now - # HostName= specificlanguage= Dir=PREDEFINED_PROGDIR + # HostName= specificlanguage= Dir=PREDEFINED_PROGDIR if (! $predefinedprogdir_added ) { @@ -2346,12 +2346,12 @@ sub collect_directories_with_create_flag_from_directoryarray ($$) my $onedir = ${$directoryarrayref}[$i]; my $styles = ""; my $newdirincluded = 0; - + if ( $onedir->{'Styles'} ) { $styles = $onedir->{'Styles'}; } - + if ( $styles =~ /\bCREATE\b/ ) - { - my $directoryname = ""; + { + my $directoryname = ""; if ( $onedir->{'HostName'} ) { $directoryname = $onedir->{'HostName'}; } else { installer::exiter::exit_program("ERROR: No directory name (HostName) set for specified language in gid $onedir->{'gid'}", "collect_directories_with_create_flag_from_directoryarray"); } @@ -2367,25 +2367,25 @@ sub collect_directories_with_create_flag_from_directoryarray ($$) # $directoryhash{'gid'} = $onedir->{'gid'}; $directoryhash{'Dir'} = $onedir->{'gid'}; $directoryhash{'Styles'} = $onedir->{'Styles'}; - + # saving also the modules if ( ! $onedir->{'modules'} ) { installer::exiter::exit_program("ERROR: No assigned modules found for directory $onedir->{'gid'}", "collect_directories_with_create_flag_from_directoryarray"); } $directoryhash{'modules'} = $onedir->{'modules'}; - + $alldirectoryhash->{$directoryname} = \%directoryhash; $newdirincluded = 1; # Problem: The $destinationpath can be share/registry/schema/org/openoffice # but not all directories contain files and will be added to this list. # Therefore the path has to be analyzed. - + while ( $directoryname =~ /(^.*\S)\Q$installer::globals::separator\E(\S.*?)\s*$/ ) # as long as the path contains slashes - { + { $directoryname = $1; $alreadyincluded = 0; if ( exists($alldirectoryhash->{$directoryname}) ) { $alreadyincluded = 1; } - + if (!($alreadyincluded)) { my %directoryhash = (); @@ -2393,33 +2393,33 @@ sub collect_directories_with_create_flag_from_directoryarray ($$) $directoryhash{'HostName'} = $directoryname; $directoryhash{'specificlanguage'} = $onedir->{'specificlanguage'}; $directoryhash{'Dir'} = $onedir->{'gid'}; - if ( ! $installer::globals::iswindowsbuild ) { $directoryhash{'Styles'} = "(CREATE)"; } # Exeception for Windows? + if ( ! $installer::globals::iswindowsbuild ) { $directoryhash{'Styles'} = "(CREATE)"; } # Exception for Windows? # saving also the modules $directoryhash{'modules'} = $onedir->{'modules'}; - + $alldirectoryhash->{$directoryname} = \%directoryhash; - $newdirincluded = 1; + $newdirincluded = 1; } else { - # Adding the modules to the module list! + # Adding the modules to the module list! $alldirectoryhash->{$directoryname}->{'modules'} = $alldirectoryhash->{$directoryname}->{'modules'} . "," . $onedir->{'modules'}; } } } else { - # Adding the modules to the module list! - $alldirectoryhash->{$directoryname}->{'modules'} = $alldirectoryhash->{$directoryname}->{'modules'} . "," . $onedir->{'modules'}; + # Adding the modules to the module list! + $alldirectoryhash->{$directoryname}->{'modules'} = $alldirectoryhash->{$directoryname}->{'modules'} . "," . $onedir->{'modules'}; while ( $directoryname =~ /(^.*\S)\Q$installer::globals::separator\E(\S.*?)\s*$/ ) # as long as the path contains slashes - { + { $directoryname = $1; - # Adding the modules to the module list! + # Adding the modules to the module list! $alldirectoryhash->{$directoryname}->{'modules'} = $alldirectoryhash->{$directoryname}->{'modules'} . "," . $onedir->{'modules'}; } - } + } } # Saving the styles for already added directories in function collect_directories_from_filesarray @@ -2431,7 +2431,7 @@ sub collect_directories_with_create_flag_from_directoryarray ($$) if (( ! ( $styles =~ /^\s*\(\s*\)\s*$/ )) && ( ! ( $styles =~ /^\s*\(\s*\,\s*\)\s*$/ )) && ( ! ( $styles =~ /^\s*$/ ))) # checking, if there are styles left { - my $directoryname = ""; + my $directoryname = ""; if ( $onedir->{'HostName'} ) { $directoryname = $onedir->{'HostName'}; } else { installer::exiter::exit_program("ERROR: No directory name (HostName) set for specified language in gid $onedir->{'gid'}", "collect_directories_with_create_flag_from_directoryarray"); } @@ -2450,7 +2450,7 @@ sub collect_directories_with_create_flag_from_directoryarray ($$) push(@alldirectories, $alldirectoryhash->{$destdir}); } - return (\@alldirectories, $alldirectoryhash); + return (\@alldirectories, $alldirectoryhash); } ################################################# @@ -2477,25 +2477,25 @@ sub get_destination_file_path_for_links ($$) { my $onefile = ${$filesarrayref}[$j]; my $filegid = $onefile->{'gid'}; - + if ( $filegid eq $fileid ) { $foundfile = 1; $onelink->{'destinationfile'} = $onefile->{'destination'}; last; - } + } } - + if (!($foundfile)) { $installer::logger::Lang->printf("Warning: FileID %s for Link %s not found!\n", $fileid, $onelink->{'gid'}); - } + } } } - $installer::logger::Lang->printf("\n"); + $installer::logger::Lang->printf("\n"); } ################################################# @@ -2527,19 +2527,19 @@ sub get_destination_link_path_for_links ($) $foundlink = 1; $onelink->{'destinationfile'} = $destlink->{'destination'}; # making key 'destinationfile' last; - } + } } - + if ( ! $foundlink) { $installer::logger::Lang->printf("Warning: ShortcutID %s for Link %s not found!\n", $shortcutid, $onelink->{'gid'}); - } + } } } - $installer::logger::Lang->printf("\n"); + $installer::logger::Lang->printf("\n"); } ################################################################################### @@ -2551,22 +2551,22 @@ sub remove_workstation_only_items my ($itemarrayref) = @_; my @newitemarray = (); - + for ( my $i = 0; $i <= $#{$itemarrayref}; $i++ ) { my $oneitem = ${$itemarrayref}[$i]; my $styles = $oneitem->{'Styles'}; - + if (( $styles =~ /\bWORKSTATION\b/ ) && (!( $styles =~ /\bNETWORK\b/ )) && (!( $styles =~ /\bSTANDALONE\b/ ))) { next; # removing this link, it is only needed for a workstation installation } - + push(@newitemarray, $oneitem); } - + return \@newitemarray; } @@ -2588,34 +2588,34 @@ sub resolve_links_with_flag_relative { my $onelink = ${$linksarrayref}[$i]; my $styles = $onelink->{'Styles'}; - + if ( $styles =~ /\bRELATIVE\b/ ) { # ToDo: This is only a simple not sufficient mechanism - + my $destination = $onelink->{'destination'}; my $destinationfile = $onelink->{'destinationfile'}; - + my $destinationpath = $destination; installer::pathanalyzer::get_path_from_fullqualifiedname(\$destinationpath); - + my $destinationfilepath = $destinationfile; # it is possible, that the destinationfile is no longer part of the files collector if ($destinationfilepath) { installer::pathanalyzer::get_path_from_fullqualifiedname(\$destinationfilepath); } else { $destinationfilepath = ""; } - - if ( $destinationpath eq $destinationfilepath ) + + if ( $destinationpath eq $destinationfilepath ) { # link and file are in the same directory # Therefore the path of the file can be removed - + my $newdestinationfile = $destinationfile; installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$newdestinationfile); - + $onelink->{'destinationfile'} = $newdestinationfile; - } + } } } } @@ -2623,7 +2623,7 @@ sub resolve_links_with_flag_relative ######################################################################## # This function is a helper of function "assigning_modules_to_items" ######################################################################## - + sub insert_for_item ($$$) { my ($hash, $item, $id) = @_; @@ -2650,9 +2650,9 @@ sub build_modulegids_table ($$) foreach my $onemodule (@$modulesref) { next if ! defined $onemodule->{$itemname}; - + # these are the items contained in this module - # eg. Files = (gid_a_b_c,gid_d_e_f) + # e.g. Files = (gid_a_b_c,gid_d_e_f) my $module_gids = $onemodule->{$itemname}; # prune outer brackets @@ -2691,7 +2691,7 @@ sub get_string_of_modulegids_for_itemgid ($$) $haslanguagemodule = 1; } } - + my $allmodules = join(",", keys %foundmodules); # Check: All modules or no module must have flag LANGUAGEMODULE @@ -2728,7 +2728,7 @@ sub assigning_modules_to_items my @languageassignmenterrors = (); my $module_lookup_table = build_modulegids_table($modulesref, $itemname); - + for my $oneitem (@{$itemsref}) { my $itemgid = $oneitem->{'gid'}; @@ -2736,8 +2736,8 @@ sub assigning_modules_to_items my $styles = ""; if ( $oneitem->{'Styles'} ) { $styles = $oneitem->{'Styles'}; } if (( $itemname eq "Dirs" ) && ( ! ( $styles =~ /\bCREATE\b/ ))) { next; } - - if ( $itemgid eq "" ) + + if ( $itemgid eq "" ) { installer::exiter::exit_program( sprintf("ERROR in item collection: No gid for item %s", $oneitem->{'Name'}), @@ -2745,7 +2745,7 @@ sub assigning_modules_to_items } # every item can belong to many modules - + my ($modulegids, $haslanguagemodule) = get_string_of_modulegids_for_itemgid( $module_lookup_table, $itemgid); @@ -2761,7 +2761,7 @@ sub assigning_modules_to_items $oneitem->{'modules'} = $modulegids; $oneitem->{'haslanguagemodule'} = $haslanguagemodule; - + # Important check: "ismultilingual" and "haslanguagemodule" must have the same value ! if ($oneitem->{'ismultilingual'} && ! $oneitem->{'haslanguagemodule'}) { @@ -2784,13 +2784,13 @@ sub assigning_modules_to_items $languageassignmenterror = 1; } } - + if ($languageassignmenterror) { for ( my $i = 0; $i <= $#languageassignmenterrors; $i++ ) { print "$languageassignmenterrors[$i]"; } installer::exiter::exit_program("ERROR: Incorrect assignments for language packs.", "assigning_modules_to_items"); } - + } ################################################################################################# @@ -2807,22 +2807,22 @@ sub add_rootpath_to_directories my $dir = ""; if ( $onedir->{'Dir'} ) { $dir = $onedir->{'Dir'}; } - + if (!($dir =~ /\bPREDEFINED_/ )) { my $hostname = $onedir->{'HostName'}; $hostname = $rootpath . $installer::globals::separator . $hostname; $onedir->{'HostName'} = $hostname; } - + # added - + if ( $dir =~ /\bPREDEFINED_PROGDIR\b/ ) { my $hostname = $onedir->{'HostName'}; if ( $hostname eq "" ) { $onedir->{'HostName'} = $rootpath; } else { $onedir->{'HostName'} = $rootpath . $installer::globals::separator . $hostname; } - } + } } } @@ -2853,7 +2853,7 @@ sub add_rootpath_to_links $onelink->{'destination'} = $destination; if (!($styles =~ /\bRELATIVE\b/ )) # for absolute links - { + { my $destinationfile = $onelink->{'destinationfile'}; $destinationfile = $rootpath . $installer::globals::separator . $destinationfile; $onelink->{'destinationfile'} = $destinationfile; @@ -2870,9 +2870,9 @@ sub collect_all_parent_feature my ($modulesref) = @_; my @allparents = (); - + my $found_root_module = 0; - + for ( my $i = 0; $i <= $#{$modulesref}; $i++ ) { my $onefeature = ${$modulesref}[$i]; @@ -2880,31 +2880,31 @@ sub collect_all_parent_feature my $parentgid = ""; if ( $onefeature->{'ParentID'} ) { - $parentgid = $onefeature->{'ParentID'}; + $parentgid = $onefeature->{'ParentID'}; } if ( $parentgid ne "" ) { if (! installer::existence::exists_in_array($parentgid, \@allparents)) { - push(@allparents, $parentgid); + push(@allparents, $parentgid); } } - + # Setting the global root module - + if ( $parentgid eq "" ) { if ( $found_root_module ) { installer::exiter::exit_program("ERROR: Only one module without ParentID or with empty ParentID allowed ($installer::globals::rootmodulegid, $onefeature->{'gid'}).", "collect_all_parent_feature"); } $installer::globals::rootmodulegid = $onefeature->{'gid'}; $found_root_module = 1; - $installer::logger::Global->printf("Setting Root Module: %s\n", $installer::globals::rootmodulegid); + $installer::logger::Global->printf("Setting Root Module: %s\n", $installer::globals::rootmodulegid); } - + if ( ! $found_root_module ) { installer::exiter::exit_program("ERROR: Could not define root module. No module without ParentID or with empty ParentID exists.", "collect_all_parent_feature"); } } - + return \@allparents; } @@ -2922,16 +2922,16 @@ sub set_children_flag { my $onefeature = ${$modulesref}[$i]; my $gid = $onefeature->{'gid'}; - + # is this gid a parent? - + if ( installer::existence::exists_in_array($gid, $allparents) ) { $onefeature->{'has_children'} = 1; } else { - $onefeature->{'has_children'} = 0; + $onefeature->{'has_children'} = 0; } } } @@ -2944,18 +2944,18 @@ sub set_children_flag sub resolve_assigned_modules { my ($modulesref) = @_; - + # collecting all template modules - + my %directaccess = (); for ( my $i = 0; $i <= $#{$modulesref}; $i++ ) { my $onefeature = ${$modulesref}[$i]; my $styles = ""; - if ( $onefeature->{'Styles'} ) { $styles = $onefeature->{'Styles'}; } + if ( $onefeature->{'Styles'} ) { $styles = $onefeature->{'Styles'}; } if ( $styles =~ /\bTEMPLATEMODULE\b/ ) { $directaccess{$onefeature->{'gid'}} = $onefeature; } - + # also looking for module with flag ROOT_BRAND_PACKAGE, to save is for further usage if ( $styles =~ /\bROOT_BRAND_PACKAGE\b/ ) { @@ -2963,28 +2963,28 @@ sub resolve_assigned_modules $installer::globals::rootbrandpackageset = 1; } } - + # looking, where template modules are assigned - + for ( my $i = 0; $i <= $#{$modulesref}; $i++ ) { my $onefeature = ${$modulesref}[$i]; if ( $onefeature->{'Assigns'} ) { my $templategid = $onefeature->{'Assigns'}; - + if ( ! exists($directaccess{$templategid}) ) { - installer::exiter::exit_program("ERROR: Did not find definition of assigned template module \"$templategid\"", "resolve_assigned_modules"); + installer::exiter::exit_program("ERROR: Did not find definition of assigned template module \"$templategid\"", "resolve_assigned_modules"); } - + # Currently no merging of Files, Dirs, ... # This has to be included here, if it is required my $item; foreach $item (@installer::globals::items_at_modules) { - if ( exists($directaccess{$templategid}->{$item}) ) { $onefeature->{$item} = $directaccess{$templategid}->{$item}; } - } + if ( exists($directaccess{$templategid}->{$item}) ) { $onefeature->{$item} = $directaccess{$templategid}->{$item}; } + } } } } @@ -2997,19 +2997,19 @@ sub resolve_assigned_modules sub remove_template_modules { my ($modulesref) = @_; - + my @modules = (); for ( my $i = 0; $i <= $#{$modulesref}; $i++ ) { my $onefeature = ${$modulesref}[$i]; my $styles = ""; - if ( $onefeature->{'Styles'} ) { $styles = $onefeature->{'Styles'}; } + if ( $onefeature->{'Styles'} ) { $styles = $onefeature->{'Styles'}; } if ( $styles =~ /\bTEMPLATEMODULE\b/ ) { next; } - - push(@modules, $onefeature); + + push(@modules, $onefeature); } - + return \@modules; } @@ -3026,12 +3026,12 @@ sub collect_all_languagemodules { my $onefeature = ${$modulesref}[$i]; my $styles = ""; - if ( $onefeature->{'Styles'} ) { $styles = $onefeature->{'Styles'}; } + if ( $onefeature->{'Styles'} ) { $styles = $onefeature->{'Styles'}; } if ( $styles =~ /\bLANGUAGEMODULE\b/ ) { if ( ! exists($onefeature->{'Language'}) ) { installer::exiter::exit_program("ERROR: \"$onefeature->{'gid'}\" has flag LANGUAGEMODULE, but does not know its language!", "collect_all_languagemodules"); } $installer::globals::alllangmodules{$onefeature->{'gid'}} = $onefeature->{'Language'}; - # Collecting also the english names, that are used for nsis unpack directory for language packs + # Collecting also the English names, that are used for NSIS unpack directory for language packs my $lang = $onefeature->{'Language'}; my $name = ""; foreach my $localkey ( keys %{$onefeature} ) @@ -3046,7 +3046,7 @@ sub collect_all_languagemodules } ################################################################################# -# Selecting from all collected english language strings those, that are really +# Selecting from all collected English language strings those, that are really # required in this installation set. ################################################################################# @@ -3058,18 +3058,18 @@ sub select_required_language_strings { my $onefeature = ${$modulesref}[$i]; my $styles = ""; - if ( $onefeature->{'Styles'} ) { $styles = $onefeature->{'Styles'}; } + if ( $onefeature->{'Styles'} ) { $styles = $onefeature->{'Styles'}; } if ( $styles =~ /\bLANGUAGEMODULE\b/ ) { if ( ! exists($onefeature->{'Language'}) ) { installer::exiter::exit_program("ERROR: \"$onefeature->{'gid'}\" has flag LANGUAGEMODULE, but does not know its language!", "select_required_language_strings"); } my $lang = $onefeature->{'Language'}; - + if (( exists($installer::globals::all_english_languagestrings{$lang}) ) && ( ! exists($installer::globals::all_required_english_languagestrings{$lang}) )) { $installer::globals::all_required_english_languagestrings{$lang} = $installer::globals::all_english_languagestrings{$lang}; } } - } + } } ##################################################################################### @@ -3081,16 +3081,16 @@ sub select_required_language_strings sub filter_layerlinks_from_unixlinks { my ( $unixlinksref ) = @_; - + my @alllinks = (); - + for ( my $i = 0; $i <= $#{$unixlinksref}; $i++ ) { my $isrequired = 1; - + my $onelink = ${$unixlinksref}[$i]; my $styles = ""; - if ( $onelink->{'Styles'} ) { $styles = $onelink->{'Styles'}; } + if ( $onelink->{'Styles'} ) { $styles = $onelink->{'Styles'}; } if ( $styles =~ /\bLAYERLINK\b/ ) { @@ -3099,17 +3099,17 @@ sub filter_layerlinks_from_unixlinks { $isrequired = 0; } - + # Package formats, that need the layer link (platform independent) if (( $installer::globals::packageformat eq "installed" ) || ( $installer::globals::packageformat eq "archive" )) { $isrequired = 1; } } - + if ( $isrequired ) { push(@alllinks, $onelink); } } - + return \@alllinks; } @@ -3120,7 +3120,7 @@ sub filter_layerlinks_from_unixlinks For debugging. Print the contents of the given script item to $installer::logger::Lang. - + =cut sub print_script_item ($) {