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 --- |