make_installer.pl (852d2129) make_installer.pl (1ba1fd99)
1#**************************************************************
2#
3# Licensed to the Apache Software Foundation (ASF) under one
4# or more contributor license agreements. See the NOTICE file
5# distributed with this work for additional information
6# regarding copyright ownership. The ASF licenses this file
7# to you under the Apache License, Version 2.0 (the
8# "License"); you may not use this file except in compliance

--- 242 unchanged lines hidden (view full) ---

251
252 installer::windows::component::create_component_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $directoriesforepmarrayref, \@allfilecomponents, \@allregistrycomponents, $newidtdir, $allvariableshashref);
253
254 # Attention: The table "Feature.idt" contains language specific strings -> parameter: $languagesarrayref !
255 installer::windows::feature::add_uniquekey($modulesinproductlanguageresolvedarrayref);
256 $modulesinproductlanguageresolvedarrayref = installer::windows::feature::sort_feature($modulesinproductlanguageresolvedarrayref);
257 installer::windows::feature::create_feature_table($modulesinproductlanguageresolvedarrayref, $newidtdir, $languagesarrayref, $allvariableshashref);
258
1#**************************************************************
2#
3# Licensed to the Apache Software Foundation (ASF) under one
4# or more contributor license agreements. See the NOTICE file
5# distributed with this work for additional information
6# regarding copyright ownership. The ASF licenses this file
7# to you under the Apache License, Version 2.0 (the
8# "License"); you may not use this file except in compliance

--- 242 unchanged lines hidden (view full) ---

251
252 installer::windows::component::create_component_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $directoriesforepmarrayref, \@allfilecomponents, \@allregistrycomponents, $newidtdir, $allvariableshashref);
253
254 # Attention: The table "Feature.idt" contains language specific strings -> parameter: $languagesarrayref !
255 installer::windows::feature::add_uniquekey($modulesinproductlanguageresolvedarrayref);
256 $modulesinproductlanguageresolvedarrayref = installer::windows::feature::sort_feature($modulesinproductlanguageresolvedarrayref);
257 installer::windows::feature::create_feature_table($modulesinproductlanguageresolvedarrayref, $newidtdir, $languagesarrayref, $allvariableshashref);
258
259 installer::windows::featurecomponent::create_featurecomponent_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $newidtdir);
259 installer::windows::featurecomponent::create_featurecomponent_table(
260 $filesinproductlanguageresolvedarrayref,
261 $registryitemsinproductlanguageresolvedarrayref,
262 $newidtdir);
260
263
261 installer::windows::media::create_media_table($filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref);
264 installer::windows::media::create_media_table(
265 $filesinproductlanguageresolvedarrayref,
266 $newidtdir,
267 $allvariableshashref);
262
268
263 installer::windows::font::create_font_table($filesinproductlanguageresolvedarrayref, $newidtdir);
269 installer::windows::font::create_font_table(
270 $filesinproductlanguageresolvedarrayref,
271 $newidtdir);
264
265 # Attention: The table "Shortcut.idt" contains language specific strings -> parameter: $languagesarrayref !
266 # Attention: Shortcuts (Folderitems) have icon files, that have to be copied into the Icon directory (last parameter)
267 my @iconfilecollector = ();
268
272
273 # Attention: The table "Shortcut.idt" contains language specific strings -> parameter: $languagesarrayref !
274 # Attention: Shortcuts (Folderitems) have icon files, that have to be copied into the Icon directory (last parameter)
275 my @iconfilecollector = ();
276
269 installer::windows::shortcut::create_shortcut_table($filesinproductlanguageresolvedarrayref, $linksinproductlanguageresolvedarrayref, $folderinproductlanguageresolvedarrayref, $folderitemsinproductlanguageresolvedarrayref, $directoriesforepmarrayref, $newidtdir, $languagesarrayref, $includepatharrayref, \@iconfilecollector);
277 installer::windows::shortcut::create_shortcut_table(
278 $filesinproductlanguageresolvedarrayref,
279 $linksinproductlanguageresolvedarrayref,
280 $folderinproductlanguageresolvedarrayref,
281 $folderitemsinproductlanguageresolvedarrayref,
282 $directoriesforepmarrayref,
283 $newidtdir,
284 $languagesarrayref,
285 $includepatharrayref,
286 \@iconfilecollector);
270
287
271 installer::windows::inifile::create_inifile_table($inifiletableentries, $filesinproductlanguageresolvedarrayref, $newidtdir);
288 installer::windows::inifile::create_inifile_table(
289 $inifiletableentries,
290 $filesinproductlanguageresolvedarrayref,
291 $newidtdir);
272
292
273 installer::windows::icon::create_icon_table(\@iconfilecollector, $newidtdir); # creating the icon table with all iconfiles used as shortcuts (FolderItems)
293 installer::windows::icon::create_icon_table(
294 \@iconfilecollector,
295 $newidtdir); # creating the icon table with all iconfiles used as shortcuts (FolderItems)
274
296
275 installer::windows::createfolder::create_createfolder_table($directoriesforepmarrayref, $filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref);
297 installer::windows::createfolder::create_createfolder_table(
298 $directoriesforepmarrayref,
299 $filesinproductlanguageresolvedarrayref,
300 $newidtdir,
301 $allvariableshashref);
276
302
277 installer::windows::upgrade::create_upgrade_table($newidtdir, $allvariableshashref);
303 installer::windows::upgrade::create_upgrade_table(
304 $newidtdir,
305 $allvariableshashref);
278
279 if ( ! $installer::globals::languagepack ) # the following tables not for language packs
280 {
281 installer::windows::removefile::create_removefile_table($folderitemsinproductlanguageresolvedarrayref, $newidtdir);
282
283 installer::windows::selfreg::create_selfreg_table($filesinproductlanguageresolvedarrayref, $newidtdir);
284
285 # Adding Assemblies into the tables MsiAssembly and MsiAssemblyName dynamically

--- 93 unchanged lines hidden (view full) ---

379 installer::windows::idtglobal::set_multilanguageonly_condition($languageidtdir);
380
381 # include the license text into the table Control.idt
382
383 if ( ! $allvariableshashref->{'HIDELICENSEDIALOG'} )
384 {
385 my $licensefilesource = installer::windows::idtglobal::get_rtflicensefilesource($onelanguage, $includepatharrayref_lang);
386 my $licensefile = installer::files::read_file($licensefilesource);
306
307 if ( ! $installer::globals::languagepack ) # the following tables not for language packs
308 {
309 installer::windows::removefile::create_removefile_table($folderitemsinproductlanguageresolvedarrayref, $newidtdir);
310
311 installer::windows::selfreg::create_selfreg_table($filesinproductlanguageresolvedarrayref, $newidtdir);
312
313 # Adding Assemblies into the tables MsiAssembly and MsiAssemblyName dynamically

--- 93 unchanged lines hidden (view full) ---

407 installer::windows::idtglobal::set_multilanguageonly_condition($languageidtdir);
408
409 # include the license text into the table Control.idt
410
411 if ( ! $allvariableshashref->{'HIDELICENSEDIALOG'} )
412 {
413 my $licensefilesource = installer::windows::idtglobal::get_rtflicensefilesource($onelanguage, $includepatharrayref_lang);
414 my $licensefile = installer::files::read_file($licensefilesource);
387 installer::scpzipfiles::replace_all_ziplistvariables_in_rtffile($licensefile, $allvariableshashref);
415 installer::scpzipfiles::replace_all_ziplistvariables_in_rtffile(
416 $licensefile,
417 $allvariableshashref);
388 my $controltablename = $languageidtdir . $installer::globals::separator . "Control.idt";
389 my $controltable = installer::files::read_file($controltablename);
390 installer::windows::idtglobal::add_licensefile_to_database($licensefile, $controltable);
391 installer::files::save_file($controltablename, $controltable);
392
393 $installer::logger::Lang->printf("Added licensefile %s into database %s\n",
394 $licensefilesource,
395 $controltablename);

--- 118 unchanged lines hidden (view full) ---

514
515 # Creating all needed ddf files and generating a list
516 # for the package process containing all system calls
517
518 my $ddfdir = installer::systemactions::create_directories("ddf", $languagestringref);
519
520 $installer::globals::packjobref = installer::windows::msiglobal::generate_cab_file_list($filesinproductlanguageresolvedarrayref, $installdir, $ddfdir, $allvariableshashref);
521
418 my $controltablename = $languageidtdir . $installer::globals::separator . "Control.idt";
419 my $controltable = installer::files::read_file($controltablename);
420 installer::windows::idtglobal::add_licensefile_to_database($licensefile, $controltable);
421 installer::files::save_file($controltablename, $controltable);
422
423 $installer::logger::Lang->printf("Added licensefile %s into database %s\n",
424 $licensefilesource,
425 $controltablename);

--- 118 unchanged lines hidden (view full) ---

544
545 # Creating all needed ddf files and generating a list
546 # for the package process containing all system calls
547
548 my $ddfdir = installer::systemactions::create_directories("ddf", $languagestringref);
549
550 $installer::globals::packjobref = installer::windows::msiglobal::generate_cab_file_list($filesinproductlanguageresolvedarrayref, $installdir, $ddfdir, $allvariableshashref);
551
522 # Update and patch reasons the pack order needs to be saved
523 installer::windows::msiglobal::save_packorder();
524
525 $installer::logger::Info->print("\n");
526
527 #######################################################
528 # Finally really create the installation packages,
529 # Only for Windows and only on a windows platform.
530 #######################################################
531
532 if ( $installer::globals::iswin ) # only possible on a Windows platform

--- 7 unchanged lines hidden (view full) ---

540 # Analyzing the log file
541 #######################################################
542
543 my $is_success = 0;
544 my $finalinstalldir = "";
545 installer::worker::clean_output_tree(); # removing directories created in the output tree
546 ($is_success, $finalinstalldir) = installer::worker::analyze_and_save_logfile($loggingdir, $installdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number);
547
552 $installer::logger::Info->print("\n");
553
554 #######################################################
555 # Finally really create the installation packages,
556 # Only for Windows and only on a windows platform.
557 #######################################################
558
559 if ( $installer::globals::iswin ) # only possible on a Windows platform

--- 7 unchanged lines hidden (view full) ---

567 # Analyzing the log file
568 #######################################################
569
570 my $is_success = 0;
571 my $finalinstalldir = "";
572 installer::worker::clean_output_tree(); # removing directories created in the output tree
573 ($is_success, $finalinstalldir) = installer::worker::analyze_and_save_logfile($loggingdir, $installdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number);
574
548
549 #######################################################
550 # Creating download installation set
551 #######################################################
552
553 my $create_download = 0;
554 my $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "downloadname");
555 if ( $installer::globals::languagepack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "langpackdownloadname"); }
556 if ( $installer::globals::patch ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "patchdownloadname"); }
557
558 if ( $is_success ) { installer::followme::save_followme_info($finalinstalldir, $includepatharrayref, $allvariableshashref, $$downloadname, $languagestringref, $languagesarrayref, $current_install_number, $loggingdir, $installlogdir); }
559
560 if ( $$downloadname ne "" ) { $create_download = 1; }
561 if (( $is_success ) && ( $create_download ) && ( $ENV{'ENABLE_DOWNLOADSETS'} ))
562 {
563 my $downloaddir = installer::download::create_download_sets($finalinstalldir, $includepatharrayref, $allvariableshashref, $$downloadname, $languagestringref, $languagesarrayref);
564 installer::worker::analyze_and_save_logfile($loggingdir, $downloaddir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number);
565 }
575 #######################################################
576 # Creating download installation set
577 #######################################################
578
579 my $create_download = 0;
580 my $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "downloadname");
581 if ( $installer::globals::languagepack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "langpackdownloadname"); }
582 if ( $installer::globals::patch ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "patchdownloadname"); }
583
584 if ( $is_success ) { installer::followme::save_followme_info($finalinstalldir, $includepatharrayref, $allvariableshashref, $$downloadname, $languagestringref, $languagesarrayref, $current_install_number, $loggingdir, $installlogdir); }
585
586 if ( $$downloadname ne "" ) { $create_download = 1; }
587 if (( $is_success ) && ( $create_download ) && ( $ENV{'ENABLE_DOWNLOADSETS'} ))
588 {
589 my $downloaddir = installer::download::create_download_sets($finalinstalldir, $includepatharrayref, $allvariableshashref, $$downloadname, $languagestringref, $languagesarrayref);
590 installer::worker::analyze_and_save_logfile($loggingdir, $downloaddir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number);
591 }
592
566}
567
568
569
570
571=head2 MakeNonWindowsBuild (...)
572
573 Create an installation set for non-windows platforms based on EPM files.

--- 242 unchanged lines hidden (view full) ---

816
817 if (( $installer::globals::makelinuxlinkrpm ) && ( ! $run ))
818 {
819 $filesinpackage = \@installer::globals::linuxpatchfiles;
820 $linksinpackage = \@installer::globals::linuxlinks;
821 $installer::globals::makelinuxlinkrpm = 0;
822 if ( $installer::globals::patch ) { $installer::globals::call_epm = 1; } # enabling packing again
823 $run = 1;
593}
594
595
596
597
598=head2 MakeNonWindowsBuild (...)
599
600 Create an installation set for non-windows platforms based on EPM files.

--- 242 unchanged lines hidden (view full) ---

843
844 if (( $installer::globals::makelinuxlinkrpm ) && ( ! $run ))
845 {
846 $filesinpackage = \@installer::globals::linuxpatchfiles;
847 $linksinpackage = \@installer::globals::linuxlinks;
848 $installer::globals::makelinuxlinkrpm = 0;
849 if ( $installer::globals::patch ) { $installer::globals::call_epm = 1; } # enabling packing again
850 $run = 1;
824
825 }
826
827 if (( ! $installer::globals::makelinuxlinkrpm ) && ( ! $run ))
828 {
829 $filesinpackage = installer::worker::prepare_linuxlinkfiles($filesinpackage);
830 $linksinpackage = installer::worker::prepare_forced_linuxlinkfiles($linksinpackage);
831 $installer::globals::makelinuxlinkrpm = 1;
832 if ( $allvariableshashref->{'OPENSOURCE'} ) { $installer::globals::add_required_package = $packagename . "u"; }
833 if ( $installer::globals::patch ) { $installer::globals::call_epm = 0; } # no packing of core module in patch
834 $shellscriptsfilename = ""; # shell scripts only need to be included into the link rpm
835 $run = 1;
851 }
852
853 if (( ! $installer::globals::makelinuxlinkrpm ) && ( ! $run ))
854 {
855 $filesinpackage = installer::worker::prepare_linuxlinkfiles($filesinpackage);
856 $linksinpackage = installer::worker::prepare_forced_linuxlinkfiles($linksinpackage);
857 $installer::globals::makelinuxlinkrpm = 1;
858 if ( $allvariableshashref->{'OPENSOURCE'} ) { $installer::globals::add_required_package = $packagename . "u"; }
859 if ( $installer::globals::patch ) { $installer::globals::call_epm = 0; } # no packing of core module in patch
860 $shellscriptsfilename = ""; # shell scripts only need to be included into the link rpm
861 $run = 1;
836
837 }
838 }
839 }
840
841 ###########################################
842 # Simple installation mechanism
843 ###########################################
844

--- 111 unchanged lines hidden (view full) ---

956 $installer::logger::Lang->print("Pool: Package \"%s\" had pooling problems. Repeating packaging immediately (3).\n", $packagename);
957 next; # repeating this iteration
958 }
959
960 if ( $use_package_from_pool == 0 )
961 {
962 # changing into the "install" directory to create installation sets
963
862 }
863 }
864 }
865
866 ###########################################
867 # Simple installation mechanism
868 ###########################################
869

--- 111 unchanged lines hidden (view full) ---

981 $installer::logger::Lang->print("Pool: Package \"%s\" had pooling problems. Repeating packaging immediately (3).\n", $packagename);
982 next; # repeating this iteration
983 }
984
985 if ( $use_package_from_pool == 0 )
986 {
987 # changing into the "install" directory to create installation sets
988
964 $currentdir = cwd(); # $currentdir is global in this file
989 my $currentdir = cwd(); # $currentdir is global in this file
965
966 chdir($installdir); # changing into install directory ($installdir is global in this file)
967
968 ###########################################
969 # Starting epm
970 ###########################################
971
972 # With a patched epm, it is now possible to set the relocatable directory, change

--- 208 unchanged lines hidden (view full) ---

1181 installer::worker::clean_jds_temp_dirs();
1182 installer::worker::analyze_and_save_logfile($loggingdir, $jdsdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number);
1183 }
1184 }
1185 }
1186}
1187
1188
990
991 chdir($installdir); # changing into install directory ($installdir is global in this file)
992
993 ###########################################
994 # Starting epm
995 ###########################################
996
997 # With a patched epm, it is now possible to set the relocatable directory, change

--- 208 unchanged lines hidden (view full) ---

1206 installer::worker::clean_jds_temp_dirs();
1207 installer::worker::analyze_and_save_logfile($loggingdir, $jdsdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number);
1208 }
1209 }
1210 }
1211}
1212
1213
1189
1190
1191#################################################
1192# Main program
1193#################################################
1194
1195#################################################
1196# Part 1: The platform independent part
1197#################################################
1198
1199#################################################
1200# Part 1a: The language independent part
1201#################################################
1202
1203installer::logger::starttime();
1204$installer::logger::Global->add_timestamp("starting logging");
1205
1206# While there is no language set and logger::Lang is not yet tied to a log file,
1207# forward its output to logger::Global.
1208$installer::logger::Lang->set_forward($installer::logger::Global);
1214#################################################
1215# Main program
1216#################################################
1217
1218#################################################
1219# Part 1: The platform independent part
1220#################################################
1221
1222#################################################
1223# Part 1a: The language independent part
1224#################################################
1225
1226installer::logger::starttime();
1227$installer::logger::Global->add_timestamp("starting logging");
1228
1229# While there is no language set and logger::Lang is not yet tied to a log file,
1230# forward its output to logger::Global.
1231$installer::logger::Lang->set_forward($installer::logger::Global);
1232$installer::logger::Info->set_forward($installer::logger::Global);
1209
1210#########################################
1211# Checking the environment and setting
1212# most important variables
1213#########################################
1214
1215$installer::logger::Info->print( "... checking environment variables ...\n" );
1216my $environmentvariableshashref = installer::control::check_system_environment();

--- 32 unchanged lines hidden (view full) ---

1249my $currentdir = cwd();
1250my $shipinstalldir = "";
1251my $current_install_number = "";
1252
1253######################################
1254# Checking the system requirements
1255######################################
1256
1233
1234#########################################
1235# Checking the environment and setting
1236# most important variables
1237#########################################
1238
1239$installer::logger::Info->print( "... checking environment variables ...\n" );
1240my $environmentvariableshashref = installer::control::check_system_environment();

--- 32 unchanged lines hidden (view full) ---

1273my $currentdir = cwd();
1274my $shipinstalldir = "";
1275my $current_install_number = "";
1276
1277######################################
1278# Checking the system requirements
1279######################################
1280
1257$installer::logger::Info->print( "... checking required files ...\n" );
1281$installer::logger::Info->print("... checking required files ...\n");
1258installer::control::check_system_path();
1259
1260my $pathvariableshashref = installer::environment::create_pathvariables($environmentvariableshashref);
1261
1282installer::control::check_system_path();
1283
1284my $pathvariableshashref = installer::environment::create_pathvariables($environmentvariableshashref);
1285
1262###############################################
1263# Checking saved setting for Windows patches
1264###############################################
1265
1266if (( $installer::globals::iswindowsbuild ) && ( $installer::globals::prepare_winpatch )) { installer::windows::msiglobal::read_saved_mappings(); }
1267
1268###################################################
1269# Analyzing the settings and variables in zip.lst
1270###################################################
1271
1286###################################################
1287# Analyzing the settings and variables in zip.lst
1288###################################################
1289
1272installer::logger::globallog("zip list file: $installer::globals::ziplistname");
1273
1274my $ziplistref = installer::files::read_file($installer::globals::ziplistname);
1275
1276$installer::logger::Info->print( "... analyzing $installer::globals::ziplistname ... \n" );
1277
1290$installer::logger::Info->print( "... analyzing $installer::globals::ziplistname ... \n" );
1291
1278my ($productblockref, $parent) = installer::ziplist::getproductblock($ziplistref, $installer::globals::product, 1); # product block from zip.lst
1279
1280my ($settingsblockref, undef) = installer::ziplist::getproductblock($productblockref, "Settings", 0); # settings block from zip.lst
1281
1282$settingsblockref = installer::ziplist::analyze_settings_block($settingsblockref); # select data from settings block in zip.lst
1283
1284my $allsettingsarrayref = installer::ziplist::get_settings_from_ziplist($settingsblockref);
1285
1286my $allvariablesarrayref = installer::ziplist::get_variables_from_ziplist($settingsblockref);
1287
1288my ($globalproductblockref, undef) = installer::ziplist::getproductblock($ziplistref, $installer::globals::globalblock, 0); # global product block from zip.lst
1289
1290while (defined $parent)
1292my ($allvariableshashref,
1293 $allsettingsarrayref)
1294 = installer::ziplist::read_openoffice_lst_file(
1295 $installer::globals::ziplistname,
1296 $installer::globals::product,
1297 $loggingdir);
1298$installer::logger::Lang->printf("variables:\n");
1299foreach my $key (sort keys %$allvariableshashref)
1291{
1300{
1292 my $parentproductblockref;
1293 ($parentproductblockref, $parent) = installer::ziplist::getproductblock(
1294 $ziplistref, $parent, 1);
1295 my ($parentsettingsblockref, undef) = installer::ziplist::getproductblock(
1296 $parentproductblockref, "Settings", 0);
1297 $parentsettingsblockref = installer::ziplist::analyze_settings_block(
1298 $parentsettingsblockref);
1299 my $allparentsettingsarrayref =
1300 installer::ziplist::get_settings_from_ziplist($parentsettingsblockref);
1301 my $allparentvariablesarrayref =
1302 installer::ziplist::get_variables_from_ziplist($parentsettingsblockref);
1303 $allsettingsarrayref =
1304 installer::converter::combine_arrays_from_references_first_win(
1305 $allsettingsarrayref, $allparentsettingsarrayref)
1306 if $#{$allparentsettingsarrayref} > -1;
1307 $allvariablesarrayref =
1308 installer::converter::combine_arrays_from_references_first_win(
1309 $allvariablesarrayref, $allparentvariablesarrayref)
1310 if $#{$allparentvariablesarrayref} > -1;
1301 $installer::logger::Global->printf(" %s -> %s\n", $key, $allvariableshashref->{$key});
1311}
1302}
1312
1313if ( $#{$globalproductblockref} > -1 )
1314{
1315 my ($globalsettingsblockref, undef) = installer::ziplist::getproductblock($globalproductblockref, "Settings", 0); # settings block from zip.lst
1316
1317 $globalsettingsblockref = installer::ziplist::analyze_settings_block($globalsettingsblockref); # select data from settings block in zip.lst
1318
1303
1319 my $allglobalsettingsarrayref = installer::ziplist::get_settings_from_ziplist($globalsettingsblockref);
1320
1304
1321 my $allglobalvariablesarrayref = installer::ziplist::get_variables_from_ziplist($globalsettingsblockref);
1322
1323 if ( $#{$allglobalsettingsarrayref} > -1 ) { $allsettingsarrayref = installer::converter::combine_arrays_from_references_first_win($allsettingsarrayref, $allglobalsettingsarrayref); }
1324 if ( $#{$allglobalvariablesarrayref} > -1 ) { $allvariablesarrayref = installer::converter::combine_arrays_from_references_first_win($allvariablesarrayref, $allglobalvariablesarrayref); }
1325}
1326
1327$allsettingsarrayref = installer::ziplist::remove_multiples_from_ziplist($allsettingsarrayref); # the settings from the zip.lst
1328
1329$allvariablesarrayref = installer::ziplist::remove_multiples_from_ziplist($allvariablesarrayref);
1330
1331installer::ziplist::replace_variables_in_ziplist_variables($allvariablesarrayref);
1332
1333my $allvariableshashref = installer::converter::convert_array_to_hash($allvariablesarrayref); # the variables from the zip.lst
1334
1335installer::ziplist::set_default_productversion_if_required($allvariableshashref);
1336
1337installer::ziplist::add_variables_to_allvariableshashref($allvariableshashref);
1338
1339installer::ziplist::overwrite_ooovendor( $allvariableshashref );
1340
1341########################################################
1342# Check if this is simple packaging mechanism
1343########################################################
1344
1345installer::simplepackage::check_simple_packager_project($allvariableshashref);
1346
1347####################################################################
1348# setting global variables

--- 330 unchanged lines hidden (view full) ---

1679 $installer::globals::exitlog = $loggingdir;
1680
1681 ##############################################################
1682 # Determining the ship location, if this is an update pack
1683 ##############################################################
1684
1685 if ( $installer::globals::updatepack ) { $shipinstalldir = installer::control::determine_ship_directory($languagestringref); }
1686
1305########################################################
1306# Check if this is simple packaging mechanism
1307########################################################
1308
1309installer::simplepackage::check_simple_packager_project($allvariableshashref);
1310
1311####################################################################
1312# setting global variables

--- 330 unchanged lines hidden (view full) ---

1643 $installer::globals::exitlog = $loggingdir;
1644
1645 ##############################################################
1646 # Determining the ship location, if this is an update pack
1647 ##############################################################
1648
1649 if ( $installer::globals::updatepack ) { $shipinstalldir = installer::control::determine_ship_directory($languagestringref); }
1650
1687 ###################################################################
1688 # Reading an existing msi database, to prepare update and patch
1689 ###################################################################
1690
1691 ##############################################
1692 # Setting global code variables for Windows
1693 ##############################################
1694
1695 if (!($installer::globals::is_copy_only_project))
1696 {
1651 ##############################################
1652 # Setting global code variables for Windows
1653 ##############################################
1654
1655 if (!($installer::globals::is_copy_only_project))
1656 {
1697 if (( $installer::globals::iswindowsbuild ) && ( $installer::globals::packageformat ne "archive" ) && ( $installer::globals::packageformat ne "installed" ))
1657 if (( $installer::globals::iswindowsbuild )
1658 && ( $installer::globals::packageformat ne "archive" )
1659 && ( $installer::globals::packageformat ne "installed" ))
1698 {
1660 {
1699 installer::windows::msiglobal::set_global_code_variables($languagesarrayref, $allvariableshashref);
1661 installer::windows::msiglobal::set_global_code_variables(
1662 $languagesarrayref,
1663 $allvariableshashref);
1700 }
1701 }
1702
1703 ################################################
1704 # Resolving include paths (language dependent)
1705 ################################################
1706
1707 my $includepatharrayref_lang = installer::ziplist::replace_languages_in_pathes($includepatharrayref, $languagesarrayref);

--- 32 unchanged lines hidden (view full) ---

1740 my $filesinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($filesinproductarrayref, $languagesarrayref);
1741
1742 if ( ! $installer::globals::set_office_start_language )
1743 {
1744 $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_office_start_language_files($filesinproductlanguageresolvedarrayref);
1745 }
1746
1747 installer::scriptitems::changing_name_of_language_dependent_keys($filesinproductlanguageresolvedarrayref);
1664 }
1665 }
1666
1667 ################################################
1668 # Resolving include paths (language dependent)
1669 ################################################
1670
1671 my $includepatharrayref_lang = installer::ziplist::replace_languages_in_pathes($includepatharrayref, $languagesarrayref);

--- 32 unchanged lines hidden (view full) ---

1704 my $filesinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($filesinproductarrayref, $languagesarrayref);
1705
1706 if ( ! $installer::globals::set_office_start_language )
1707 {
1708 $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_office_start_language_files($filesinproductlanguageresolvedarrayref);
1709 }
1710
1711 installer::scriptitems::changing_name_of_language_dependent_keys($filesinproductlanguageresolvedarrayref);
1748
1749 if ( $installer::globals::iswin and $^O =~ /MSWin/i ) { installer::converter::convert_slash_to_backslash($filesinproductlanguageresolvedarrayref); }
1750
1751 $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_non_existent_languages_in_productlists($filesinproductlanguageresolvedarrayref, $languagestringref, "Name", "file");
1752
1753 installer::scriptitems::get_Source_Directory_For_Files_From_Includepathlist($filesinproductlanguageresolvedarrayref, $includepatharrayref_lang, $dirsinproductlanguageresolvedarrayref, "Files");
1754
1755 $filesinproductlanguageresolvedarrayref = installer::scriptitems::add_bundled_extension_blobs( $filesinproductlanguageresolvedarrayref);
1756 ($filesinproductlanguageresolvedarrayref,$dirsinproductarrayref) = installer::scriptitems::add_bundled_prereg_extensions(

--- 86 unchanged lines hidden (view full) ---

1843 # It will be possible, that in the setup script only those directoies have to be defined,
1844 # that have a CREATE flag. All other directories are created, if they contain at least one file.
1845
1846 my ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_from_filesarray($filesinproductlanguageresolvedarrayref);
1847
1848 ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_with_create_flag_from_directoryarray($dirsinproductlanguageresolvedarrayref, $alldirectoryhash);
1849
1850 # installer::sorter::sorting_array_of_hashes($directoriesforepmarrayref, "HostName");
1712 if ( $installer::globals::iswin and $^O =~ /MSWin/i ) { installer::converter::convert_slash_to_backslash($filesinproductlanguageresolvedarrayref); }
1713
1714 $filesinproductlanguageresolvedarrayref = installer::scriptitems::remove_non_existent_languages_in_productlists($filesinproductlanguageresolvedarrayref, $languagestringref, "Name", "file");
1715
1716 installer::scriptitems::get_Source_Directory_For_Files_From_Includepathlist($filesinproductlanguageresolvedarrayref, $includepatharrayref_lang, $dirsinproductlanguageresolvedarrayref, "Files");
1717
1718 $filesinproductlanguageresolvedarrayref = installer::scriptitems::add_bundled_extension_blobs( $filesinproductlanguageresolvedarrayref);
1719 ($filesinproductlanguageresolvedarrayref,$dirsinproductarrayref) = installer::scriptitems::add_bundled_prereg_extensions(

--- 86 unchanged lines hidden (view full) ---

1806 # It will be possible, that in the setup script only those directoies have to be defined,
1807 # that have a CREATE flag. All other directories are created, if they contain at least one file.
1808
1809 my ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_from_filesarray($filesinproductlanguageresolvedarrayref);
1810
1811 ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_with_create_flag_from_directoryarray($dirsinproductlanguageresolvedarrayref, $alldirectoryhash);
1812
1813 # installer::sorter::sorting_array_of_hashes($directoriesforepmarrayref, "HostName");
1814 # if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist3.log", $directoriesforepmarrayref); }
1851
1852 #########################################################
1853 # language dependent scpactions part
1854 #########################################################
1855
1856 my $scpactionsinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($scpactionsinproductarrayref, $languagesarrayref);
1857
1858 installer::scriptitems::changing_name_of_language_dependent_keys($scpactionsinproductlanguageresolvedarrayref);

--- 190 unchanged lines hidden (view full) ---

2049
2050 #########################################################
2051 # creating inf files for user system integration
2052 #########################################################
2053
2054 if (( $installer::globals::iswindowsbuild ) && ( ! $installer::globals::patch )) # Windows specific items: Folder, FolderItem, RegistryItem
2055 {
2056 $installer::logger::Info->print( "... creating inf files ...\n" );
1815
1816 #########################################################
1817 # language dependent scpactions part
1818 #########################################################
1819
1820 my $scpactionsinproductlanguageresolvedarrayref = installer::scriptitems::resolving_all_languages_in_productlists($scpactionsinproductarrayref, $languagesarrayref);
1821
1822 installer::scriptitems::changing_name_of_language_dependent_keys($scpactionsinproductlanguageresolvedarrayref);

--- 190 unchanged lines hidden (view full) ---

2013
2014 #########################################################
2015 # creating inf files for user system integration
2016 #########################################################
2017
2018 if (( $installer::globals::iswindowsbuild ) && ( ! $installer::globals::patch )) # Windows specific items: Folder, FolderItem, RegistryItem
2019 {
2020 $installer::logger::Info->print( "... creating inf files ...\n" );
2057 installer::worker::create_inf_file($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $folderinproductlanguageresolvedarrayref, $folderitemsinproductlanguageresolvedarrayref, $modulesinproductlanguageresolvedarrayref, $languagesarrayref, $languagestringref, $allvariableshashref);
2021 installer::worker::create_inf_file(
2022 $filesinproductlanguageresolvedarrayref,
2023 $registryitemsinproductlanguageresolvedarrayref,
2024 $folderinproductlanguageresolvedarrayref,
2025 $folderitemsinproductlanguageresolvedarrayref,
2026 $modulesinproductlanguageresolvedarrayref,
2027 $languagesarrayref,
2028 $languagestringref,
2029 $allvariableshashref);
2058 }
2059
2060 ###########################################
2061 # Using upx, to decrease file size
2062 # Currently only for Windows.
2063 ###########################################
2064
2065 if ( $allvariableshashref->{'UPXPRODUCT'} )

--- 25 unchanged lines hidden (view full) ---

2091
2092 $packages = installer::packagelist::analyze_list($packages, $modulesinproductlanguageresolvedarrayref);
2093 installer::packagelist::remove_multiple_modules_packages($packages);
2094
2095 # printing packages content:
2096 installer::packagelist::log_packages_content($packages);
2097 installer::packagelist::create_module_destination_hash($packages, $allvariableshashref);
2098
2030 }
2031
2032 ###########################################
2033 # Using upx, to decrease file size
2034 # Currently only for Windows.
2035 ###########################################
2036
2037 if ( $allvariableshashref->{'UPXPRODUCT'} )

--- 25 unchanged lines hidden (view full) ---

2063
2064 $packages = installer::packagelist::analyze_list($packages, $modulesinproductlanguageresolvedarrayref);
2065 installer::packagelist::remove_multiple_modules_packages($packages);
2066
2067 # printing packages content:
2068 installer::packagelist::log_packages_content($packages);
2069 installer::packagelist::create_module_destination_hash($packages, $allvariableshashref);
2070
2099
2100 # saving debug info, before starting part 2
2101 if ( $installer::globals::debug ) { installer::logger::savedebug($installer::globals::exitlog); }
2102
2103 #################################################
2104 # Part 2: The platform dependent part
2105 #################################################
2106
2071 #################################################
2072 # Part 2: The platform dependent part
2073 #################################################
2074
2107 if ($installer::globals::iswindowsbuild)
2075 if ( $installer::globals::iswindowsbuild )
2108 {
2076 {
2077 # Create .idt tables and a .msi file.
2109 MakeWindowsBuild(
2110 $allvariableshashref,
2111 $allsettingsarrayref,
2112 $current_install_number,
2113 $directoriesforepmarrayref,
2114 $filesinproductlanguageresolvedarrayref,
2115 $folderitemsinproductlanguageresolvedarrayref,
2116 $includepatharrayref,

--- 8 unchanged lines hidden (view full) ---

2125 $profileitemsinproductlanguageresolvedarrayref,
2126 $registryitemsinproductlanguageresolvedarrayref,
2127 $shipinstalldir,
2128 $windowscustomactionsarrayref,
2129 $folderinproductlanguageresolvedarrayref);
2130 }
2131 else
2132 {
2078 MakeWindowsBuild(
2079 $allvariableshashref,
2080 $allsettingsarrayref,
2081 $current_install_number,
2082 $directoriesforepmarrayref,
2083 $filesinproductlanguageresolvedarrayref,
2084 $folderitemsinproductlanguageresolvedarrayref,
2085 $includepatharrayref,

--- 8 unchanged lines hidden (view full) ---

2094 $profileitemsinproductlanguageresolvedarrayref,
2095 $registryitemsinproductlanguageresolvedarrayref,
2096 $shipinstalldir,
2097 $windowscustomactionsarrayref,
2098 $folderinproductlanguageresolvedarrayref);
2099 }
2100 else
2101 {
2102 # Creating epm list file.
2133 MakeNonWindowsBuild(
2134 $allvariableshashref,
2135 $allsettingsarrayref,
2136 $current_install_number,
2137 $directoriesforepmarrayref,
2138 $filesinproductlanguageresolvedarrayref,
2139 $includepatharrayref,
2140 $languagesarrayref,

--- 27 unchanged lines hidden ---
2103 MakeNonWindowsBuild(
2104 $allvariableshashref,
2105 $allsettingsarrayref,
2106 $current_install_number,
2107 $directoriesforepmarrayref,
2108 $filesinproductlanguageresolvedarrayref,
2109 $includepatharrayref,
2110 $languagesarrayref,

--- 27 unchanged lines hidden ---