make_installer.pl (d1fa6344) make_installer.pl (f30bf281)
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

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

70use installer::windows::file;
71use installer::windows::font;
72use installer::windows::icon;
73use installer::windows::idtglobal;
74use installer::windows::inifile;
75use installer::windows::java;
76use installer::windows::media;
77use installer::windows::msiglobal;
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

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

70use installer::windows::file;
71use installer::windows::font;
72use installer::windows::icon;
73use installer::windows::idtglobal;
74use installer::windows::inifile;
75use installer::windows::java;
76use installer::windows::media;
77use installer::windows::msiglobal;
78use installer::windows::msp;
79use installer::windows::patch;
80use installer::windows::property;
81use installer::windows::removefile;
82use installer::windows::registry;
83use installer::windows::selfreg;
84use installer::windows::shortcut;
85use installer::windows::strip;
78use installer::windows::patch;
79use installer::windows::property;
80use installer::windows::removefile;
81use installer::windows::registry;
82use installer::windows::selfreg;
83use installer::windows::shortcut;
84use installer::windows::strip;
86use installer::windows::update;
87use installer::windows::upgrade;
88use installer::worker;
89use installer::xpdinstaller;
90use installer::ziplist;
91
92#################################################
93# Main program
94#################################################

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

704 ###################################################################
705 # Reading an existing msi database, to prepare update and patch
706 ###################################################################
707
708 my $refdatabase = "";
709 my $uniquefilename = "";
710 my $revuniquefilename = "";
711 my $revshortfilename = "";
85use installer::windows::upgrade;
86use installer::worker;
87use installer::xpdinstaller;
88use installer::ziplist;
89
90#################################################
91# Main program
92#################################################

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

702 ###################################################################
703 # Reading an existing msi database, to prepare update and patch
704 ###################################################################
705
706 my $refdatabase = "";
707 my $uniquefilename = "";
708 my $revuniquefilename = "";
709 my $revshortfilename = "";
712 my $allupdatesequences = "";
713 my $allupdatecomponents = "";
714 my $allupdatefileorder = "";
715 my $allupdatecomponentorder = "";
716 my $shortdirname = "";
717 my $componentid = "";
718 my $componentidkeypath = "";
719 my $alloldproperties = "";
710 my $allupdatecomponentorder = "";
711 my $shortdirname = "";
712 my $componentid = "";
713 my $componentidkeypath = "";
714 my $alloldproperties = "";
720 my $allupdatelastsequences = "";
721 my $allupdatediskids = "";
722
715
723 if ( $installer::globals::iswindowsbuild )
724 {
725 if ( $allvariableshashref->{'UPDATE_DATABASE'} )
726 {
727 $installer::logger::Info->print( "... analyzing update database ...\n" );
728 $refdatabase = installer::windows::update::readdatabase($allvariableshashref, $languagestringref, $includepatharrayref);
729
730 if ( $installer::globals::updatedatabase )
731 {
732 ($uniquefilename, $revuniquefilename, $revshortfilename, $allupdatesequences, $allupdatecomponents, $allupdatefileorder, $allupdatecomponentorder, $shortdirname, $componentid, $componentidkeypath, $alloldproperties, $allupdatelastsequences, $allupdatediskids) = installer::windows::update::create_database_hashes($refdatabase);
733 }
734 }
735 }
736
737 ##############################################
738 # Setting global code variables for Windows
739 ##############################################
740
741 if (!($installer::globals::is_copy_only_project))
742 {
743 if (( $installer::globals::iswindowsbuild ) && ( $installer::globals::packageformat ne "archive" ) && ( $installer::globals::packageformat ne "installed" ))
744 {

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

1935 installer::windows::file::assign_cab_to_files($filesinproductlanguageresolvedarrayref);
1936 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles17a.log", $filesinproductlanguageresolvedarrayref); }
1937 installer::windows::file::assign_sequencenumbers_to_files($filesinproductlanguageresolvedarrayref);
1938 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles17b.log", $filesinproductlanguageresolvedarrayref); }
1939
1940 # Collection all available directory trees
1941 installer::windows::directory::collectdirectorytrees($directoriesforepmarrayref);
1942
716 ##############################################
717 # Setting global code variables for Windows
718 ##############################################
719
720 if (!($installer::globals::is_copy_only_project))
721 {
722 if (( $installer::globals::iswindowsbuild ) && ( $installer::globals::packageformat ne "archive" ) && ( $installer::globals::packageformat ne "installed" ))
723 {

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

1914 installer::windows::file::assign_cab_to_files($filesinproductlanguageresolvedarrayref);
1915 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles17a.log", $filesinproductlanguageresolvedarrayref); }
1916 installer::windows::file::assign_sequencenumbers_to_files($filesinproductlanguageresolvedarrayref);
1917 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles17b.log", $filesinproductlanguageresolvedarrayref); }
1918
1919 # Collection all available directory trees
1920 installer::windows::directory::collectdirectorytrees($directoriesforepmarrayref);
1921
1943 $filesinproductlanguageresolvedarrayref = installer::windows::file::create_files_table($filesinproductlanguageresolvedarrayref, \@allfilecomponents, $newidtdir, $allvariableshashref, $uniquefilename, $allupdatesequences, $allupdatecomponents, $allupdatefileorder);
1922 $filesinproductlanguageresolvedarrayref = installer::windows::file::create_files_table($filesinproductlanguageresolvedarrayref, \@allfilecomponents, $newidtdir, $allvariableshashref, $uniquefilename);
1944 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles17c.log", $filesinproductlanguageresolvedarrayref); }
1923 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles17c.log", $filesinproductlanguageresolvedarrayref); }
1945 if ( $installer::globals::updatedatabase ) { installer::windows::file::check_file_sequences($allupdatefileorder, $allupdatecomponentorder); }
1946
1947 installer::windows::directory::create_directory_table($directoriesforepmarrayref, $newidtdir, $allvariableshashref, $shortdirname, $loggingdir);
1948 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles18.log", $filesinproductlanguageresolvedarrayref); }
1949 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt1.log", $directoriesforepmarrayref); }
1950
1951 # Attention: The table "Registry.idt" contains language specific strings -> parameter: $languagesarrayref !
1952 installer::windows::registry::create_registry_table($registryitemsinproductlanguageresolvedarrayref, \@allregistrycomponents, $newidtdir, $languagesarrayref, $allvariableshashref);
1953 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems4.log", $registryitemsinproductlanguageresolvedarrayref); }

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

1961 installer::windows::feature::add_uniquekey($modulesinproductlanguageresolvedarrayref);
1962 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "modules4a.log", $modulesinproductlanguageresolvedarrayref); }
1963 $modulesinproductlanguageresolvedarrayref = installer::windows::feature::sort_feature($modulesinproductlanguageresolvedarrayref);
1964 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "modules4b.log", $modulesinproductlanguageresolvedarrayref); }
1965 installer::windows::feature::create_feature_table($modulesinproductlanguageresolvedarrayref, $newidtdir, $languagesarrayref, $allvariableshashref);
1966
1967 installer::windows::featurecomponent::create_featurecomponent_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $newidtdir);
1968
1924
1925 installer::windows::directory::create_directory_table($directoriesforepmarrayref, $newidtdir, $allvariableshashref, $shortdirname, $loggingdir);
1926 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles18.log", $filesinproductlanguageresolvedarrayref); }
1927 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt1.log", $directoriesforepmarrayref); }
1928
1929 # Attention: The table "Registry.idt" contains language specific strings -> parameter: $languagesarrayref !
1930 installer::windows::registry::create_registry_table($registryitemsinproductlanguageresolvedarrayref, \@allregistrycomponents, $newidtdir, $languagesarrayref, $allvariableshashref);
1931 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems4.log", $registryitemsinproductlanguageresolvedarrayref); }

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

1939 installer::windows::feature::add_uniquekey($modulesinproductlanguageresolvedarrayref);
1940 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "modules4a.log", $modulesinproductlanguageresolvedarrayref); }
1941 $modulesinproductlanguageresolvedarrayref = installer::windows::feature::sort_feature($modulesinproductlanguageresolvedarrayref);
1942 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "modules4b.log", $modulesinproductlanguageresolvedarrayref); }
1943 installer::windows::feature::create_feature_table($modulesinproductlanguageresolvedarrayref, $newidtdir, $languagesarrayref, $allvariableshashref);
1944
1945 installer::windows::featurecomponent::create_featurecomponent_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $newidtdir);
1946
1969 installer::windows::media::create_media_table($filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref, $allupdatelastsequences, $allupdatediskids);
1947 installer::windows::media::create_media_table($filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref);
1970 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles20.log", $filesinproductlanguageresolvedarrayref); }
1971
1972 installer::windows::font::create_font_table($filesinproductlanguageresolvedarrayref, $newidtdir);
1973
1974 # Attention: The table "Shortcut.idt" contains language specific strings -> parameter: $languagesarrayref !
1975 # Attention: Shortcuts (Folderitems) have icon files, that have to be copied into the Icon directory (last parameter)
1976 my @iconfilecollector = ();
1977

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

2250 # Analyzing the log file
2251 #######################################################
2252
2253 my $is_success = 0;
2254 my $finalinstalldir = "";
2255 installer::worker::clean_output_tree(); # removing directories created in the output tree
2256 ($is_success, $finalinstalldir) = installer::worker::analyze_and_save_logfile($loggingdir, $installdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number);
2257
1948 if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles20.log", $filesinproductlanguageresolvedarrayref); }
1949
1950 installer::windows::font::create_font_table($filesinproductlanguageresolvedarrayref, $newidtdir);
1951
1952 # Attention: The table "Shortcut.idt" contains language specific strings -> parameter: $languagesarrayref !
1953 # Attention: Shortcuts (Folderitems) have icon files, that have to be copied into the Icon directory (last parameter)
1954 my @iconfilecollector = ();
1955

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

2228 # Analyzing the log file
2229 #######################################################
2230
2231 my $is_success = 0;
2232 my $finalinstalldir = "";
2233 installer::worker::clean_output_tree(); # removing directories created in the output tree
2234 ($is_success, $finalinstalldir) = installer::worker::analyze_and_save_logfile($loggingdir, $installdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number);
2235
2258 #######################################################
2259 # Creating Windows msp patches
2260 #######################################################
2261
2236
2262 if (( $is_success ) && ( $installer::globals::updatedatabase ) && ( $allvariableshashref->{'CREATE_MSP_INSTALLSET'} ))
2263 {
2264 # Required:
2265 # Temp path for administrative installations: $installer::globals::temppath
2266 # Path of new installation set: $finalinstalldir
2267 # Path of old installation set: $installer::globals::updatedatabasepath
2268 my $mspdir = installer::windows::msp::create_msp_patch($finalinstalldir, $includepatharrayref, $allvariableshashref, $languagestringref, $languagesarrayref, $filesinproductlanguageresolvedarrayref);
2269 ($is_success, $finalinstalldir) = installer::worker::analyze_and_save_logfile($loggingdir, $mspdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number);
2270 installer::worker::clean_output_tree(); # removing directories created in the output tree
2271 }
2272
2273 #######################################################
2274 # Creating download installation set
2275 #######################################################
2276
2277 my $create_download = 0;
2278 my $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "downloadname");
2279 if ( $installer::globals::languagepack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "langpackdownloadname"); }
2280 if ( $installer::globals::patch ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "patchdownloadname"); }

--- 32 unchanged lines hidden ---
2237 #######################################################
2238 # Creating download installation set
2239 #######################################################
2240
2241 my $create_download = 0;
2242 my $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "downloadname");
2243 if ( $installer::globals::languagepack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "langpackdownloadname"); }
2244 if ( $installer::globals::patch ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "patchdownloadname"); }

--- 32 unchanged lines hidden ---