Author: af Date: Tue Nov 12 13:37:30 2013 New Revision: 1541057 URL: http://svn.apache.org/r1541057 Log: 123531: Removed the old and incomplete support for updates (patches).
Removed: openoffice/trunk/main/setup_native/source/packinfo/finals_instsetoo.txt openoffice/trunk/main/solenv/bin/modules/installer/windows/msp.pm openoffice/trunk/main/solenv/bin/modules/installer/windows/update.pm Modified: openoffice/trunk/main/instsetoo_native/util/openoffice.lst openoffice/trunk/main/solenv/bin/make_installer.pl openoffice/trunk/main/solenv/bin/modules/installer/globals.pm openoffice/trunk/main/solenv/bin/modules/installer/windows/component.pm openoffice/trunk/main/solenv/bin/modules/installer/windows/directory.pm openoffice/trunk/main/solenv/bin/modules/installer/windows/file.pm openoffice/trunk/main/solenv/bin/modules/installer/windows/media.pm openoffice/trunk/main/solenv/bin/modules/installer/windows/msiglobal.pm Modified: openoffice/trunk/main/instsetoo_native/util/openoffice.lst URL: http://svn.apache.org/viewvc/openoffice/trunk/main/instsetoo_native/util/openoffice.lst?rev=1541057&r1=1541056&r2=1541057&view=diff ============================================================================== --- openoffice/trunk/main/instsetoo_native/util/openoffice.lst (original) +++ openoffice/trunk/main/instsetoo_native/util/openoffice.lst Tue Nov 12 13:37:30 2013 @@ -27,9 +27,7 @@ Globals NATIVEPROGRESS false REGISTRYLAYERNAME Layers SERVICEPACK 1 - UPDATE_DATABASE 1 CREATE_MSP_INSTALLSET 0 - UPDATE_DATABASE_LISTNAME finals_instsetoo.txt PACKAGEMAP package_names.txt,package_names_ext.txt WINDOWSPATCHLEVEL 8 OOOVENDOR Apache Software Foundation Modified: openoffice/trunk/main/solenv/bin/make_installer.pl URL: http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/bin/make_installer.pl?rev=1541057&r1=1541056&r2=1541057&view=diff ============================================================================== --- openoffice/trunk/main/solenv/bin/make_installer.pl (original) +++ openoffice/trunk/main/solenv/bin/make_installer.pl Tue Nov 12 13:37:30 2013 @@ -75,7 +75,6 @@ use installer::windows::inifile; use installer::windows::java; use installer::windows::media; use installer::windows::msiglobal; -use installer::windows::msp; use installer::windows::patch; use installer::windows::property; use installer::windows::removefile; @@ -83,7 +82,6 @@ use installer::windows::registry; use installer::windows::selfreg; use installer::windows::shortcut; use installer::windows::strip; -use installer::windows::update; use installer::windows::upgrade; use installer::worker; use installer::xpdinstaller; @@ -709,30 +707,11 @@ for ( my $n = 0; $n <= $#installer::glob my $uniquefilename = ""; my $revuniquefilename = ""; my $revshortfilename = ""; - my $allupdatesequences = ""; - my $allupdatecomponents = ""; - my $allupdatefileorder = ""; my $allupdatecomponentorder = ""; my $shortdirname = ""; my $componentid = ""; my $componentidkeypath = ""; my $alloldproperties = ""; - my $allupdatelastsequences = ""; - my $allupdatediskids = ""; - - if ( $installer::globals::iswindowsbuild ) - { - if ( $allvariableshashref->{'UPDATE_DATABASE'} ) - { - $installer::logger::Info->print( "... analyzing update database ...\n" ); - $refdatabase = installer::windows::update::readdatabase($allvariableshashref, $languagestringref, $includepatharrayref); - - if ( $installer::globals::updatedatabase ) - { - ($uniquefilename, $revuniquefilename, $revshortfilename, $allupdatesequences, $allupdatecomponents, $allupdatefileorder, $allupdatecomponentorder, $shortdirname, $componentid, $componentidkeypath, $alloldproperties, $allupdatelastsequences, $allupdatediskids) = installer::windows::update::create_database_hashes($refdatabase); - } - } - } ############################################## # Setting global code variables for Windows @@ -1940,9 +1919,8 @@ for ( my $n = 0; $n <= $#installer::glob # Collection all available directory trees installer::windows::directory::collectdirectorytrees($directoriesforepmarrayref); - $filesinproductlanguageresolvedarrayref = installer::windows::file::create_files_table($filesinproductlanguageresolvedarrayref, \@allfilecomponents, $newidtdir, $allvariableshashref, $uniquefilename, $allupdatesequences, $allupdatecomponents, $allupdatefileorder); + $filesinproductlanguageresolvedarrayref = installer::windows::file::create_files_table($filesinproductlanguageresolvedarrayref, \@allfilecomponents, $newidtdir, $allvariableshashref, $uniquefilename); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles17c.log", $filesinproductlanguageresolvedarrayref); } - if ( $installer::globals::updatedatabase ) { installer::windows::file::check_file_sequences($allupdatefileorder, $allupdatecomponentorder); } installer::windows::directory::create_directory_table($directoriesforepmarrayref, $newidtdir, $allvariableshashref, $shortdirname, $loggingdir); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles18.log", $filesinproductlanguageresolvedarrayref); } @@ -1966,7 +1944,7 @@ for ( my $n = 0; $n <= $#installer::glob installer::windows::featurecomponent::create_featurecomponent_table($filesinproductlanguageresolvedarrayref, $registryitemsinproductlanguageresolvedarrayref, $newidtdir); - installer::windows::media::create_media_table($filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref, $allupdatelastsequences, $allupdatediskids); + installer::windows::media::create_media_table($filesinproductlanguageresolvedarrayref, $newidtdir, $allvariableshashref); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles20.log", $filesinproductlanguageresolvedarrayref); } installer::windows::font::create_font_table($filesinproductlanguageresolvedarrayref, $newidtdir); @@ -2255,20 +2233,6 @@ for ( my $n = 0; $n <= $#installer::glob installer::worker::clean_output_tree(); # removing directories created in the output tree ($is_success, $finalinstalldir) = installer::worker::analyze_and_save_logfile($loggingdir, $installdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number); - ####################################################### - # Creating Windows msp patches - ####################################################### - - if (( $is_success ) && ( $installer::globals::updatedatabase ) && ( $allvariableshashref->{'CREATE_MSP_INSTALLSET'} )) - { - # Required: - # Temp path for administrative installations: $installer::globals::temppath - # Path of new installation set: $finalinstalldir - # Path of old installation set: $installer::globals::updatedatabasepath - my $mspdir = installer::windows::msp::create_msp_patch($finalinstalldir, $includepatharrayref, $allvariableshashref, $languagestringref, $languagesarrayref, $filesinproductlanguageresolvedarrayref); - ($is_success, $finalinstalldir) = installer::worker::analyze_and_save_logfile($loggingdir, $mspdir, $installlogdir, $allsettingsarrayref, $languagestringref, $current_install_number); - installer::worker::clean_output_tree(); # removing directories created in the output tree - } ####################################################### # Creating download installation set Modified: openoffice/trunk/main/solenv/bin/modules/installer/globals.pm URL: http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/bin/modules/installer/globals.pm?rev=1541057&r1=1541056&r2=1541057&view=diff ============================================================================== --- openoffice/trunk/main/solenv/bin/modules/installer/globals.pm (original) +++ openoffice/trunk/main/solenv/bin/modules/installer/globals.pm Tue Nov 12 13:37:30 2013 @@ -226,17 +226,11 @@ BEGIN @linkrpms = (); $archiveformat = ""; $minorupgradekey = ""; - $updatelastsequence = 0; - $updatesequencecounter = 0; - $updatedatabase = 0; - $updatedatabasepath = ""; $pfffileexists = 0; $pffcabfilename = "ooobasis3.0_pff.cab"; - %newupdatefiles = (); - %allusedupdatesequences = (); $mergefiles_added_into_collector = 0; $creating_windows_installer_patch = 0; - + $strip = 1; $globallogging = 0; Modified: openoffice/trunk/main/solenv/bin/modules/installer/windows/component.pm URL: http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/bin/modules/installer/windows/component.pm?rev=1541057&r1=1541056&r2=1541057&view=diff ============================================================================== --- openoffice/trunk/main/solenv/bin/modules/installer/windows/component.pm (original) +++ openoffice/trunk/main/solenv/bin/modules/installer/windows/component.pm Tue Nov 12 13:37:30 2013 @@ -46,11 +46,6 @@ sub get_component_guid # At this time only a template my $returnvalue = "\{COMPONENTGUID\}"; - if (( $installer::globals::updatedatabase ) && ( exists($componentidhashref->{$componentname}) )) - { - $returnvalue = $componentidhashref->{$componentname}; - } - # Returning a ComponentID, that is assigned in scp project if ( exists($installer::globals::componentid{$componentname}) ) { Modified: openoffice/trunk/main/solenv/bin/modules/installer/windows/directory.pm URL: http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/bin/modules/installer/windows/directory.pm?rev=1541057&r1=1541056&r2=1541057&view=diff ============================================================================== --- openoffice/trunk/main/solenv/bin/modules/installer/windows/directory.pm (original) +++ openoffice/trunk/main/solenv/bin/modules/installer/windows/directory.pm Tue Nov 12 13:37:30 2013 @@ -358,8 +358,7 @@ sub create_defaultdir_directorynames my ($directoryref, $shortdirnamehashref) = @_; my @shortnames = (); - if ( $installer::globals::updatedatabase ) { @shortnames = values(%{$shortdirnamehashref}); } - elsif ( $installer::globals::prepare_winpatch ) { @shortnames = values(%installer::globals::saved83dirmapping); } + if ( $installer::globals::prepare_winpatch ) { @shortnames = values(%installer::globals::saved83dirmapping); } for ( my $i = 0; $i <= $#{$directoryref}; $i++ ) { @@ -371,11 +370,7 @@ sub create_defaultdir_directorynames # installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$hostname); # making program/classes to classes my $uniquename = $onedir->{'uniquename'}; my $shortstring; - if (( $installer::globals::updatedatabase ) && ( exists($shortdirnamehashref->{$uniquename}) )) - { - $shortstring = $shortdirnamehashref->{$uniquename}; - } - elsif (( $installer::globals::prepare_winpatch ) && ( exists($installer::globals::saved83dirmapping{$uniquename}) )) + if (( $installer::globals::prepare_winpatch ) && ( exists($installer::globals::saved83dirmapping{$uniquename}) )) { $shortstring = $installer::globals::saved83dirmapping{$uniquename}; } Modified: openoffice/trunk/main/solenv/bin/modules/installer/windows/file.pm URL: http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/bin/modules/installer/windows/file.pm?rev=1541057&r1=1541056&r2=1541057&view=diff ============================================================================== --- openoffice/trunk/main/solenv/bin/modules/installer/windows/file.pm (original) +++ openoffice/trunk/main/solenv/bin/modules/installer/windows/file.pm Tue Nov 12 13:37:30 2013 @@ -377,16 +377,7 @@ sub generate_unique_filename_for_filetab installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$uniquefilename); # making /registry/schema/org/openoffice/VCL.xcs to VCL.xcs # Reading unique filename with help of "Component_" in File table from old database - if (( $installer::globals::updatedatabase ) && ( exists($uniquefilenamehashref->{"$component/$uniquefilename"}) )) - { - $uniquefilename = $uniquefilenamehashref->{"$component/$uniquefilename"}; # syntax of $value: ($uniquename;$shortname) - if ( $uniquefilename =~ /^\s*(.*?)\;\s*(.*?)\s*$/ ) { $uniquefilename = $1; } - $lcuniquefilename = lc($uniquefilename); - $installer::globals::alluniquefilenames{$uniquefilename} = 1; - $installer::globals::alllcuniquefilenames{$lcuniquefilename} = 1; - return $uniquefilename; - } - elsif (( $installer::globals::prepare_winpatch ) && ( exists($installer::globals::savedmapping{"$component/$uniquefilename"}) )) + if (( $installer::globals::prepare_winpatch ) && ( exists($installer::globals::savedmapping{"$component/$uniquefilename"}) )) { # If we have a FTK mapping for this component/file, use it. $installer::globals::savedmapping{"$component/$uniquefilename"} =~ m/^(.*);/; @@ -473,13 +464,7 @@ sub generate_filename_for_filetable my $shortstring; # Reading short string with help of "FileName" in File table from old database - if (( $installer::globals::updatedatabase ) && ( exists($uniquefilenamehashref->{"$fileref->{'componentname'}/$filename"}) )) - { - my $value = $uniquefilenamehashref->{"$fileref->{'componentname'}/$filename"}; # syntax of $value: ($uniquename;$shortname) - if ( $value =~ /^\s*(.*?)\;\s*(.*?)\s*$/ ) { $shortstring = $2; } # already collected in function "collect_shortnames_from_old_database" - else { $shortstring = $filename; } - } - elsif (( $installer::globals::prepare_winpatch ) && ( exists($installer::globals::savedmapping{"$fileref->{'componentname'}/$filename"}) )) + if (( $installer::globals::prepare_winpatch ) && ( exists($installer::globals::savedmapping{"$fileref->{'componentname'}/$filename"}) )) { $installer::globals::savedmapping{"$fileref->{'componentname'}/$filename"} =~ m/.*;(.*)/; if ($1 ne '') @@ -567,85 +552,6 @@ sub get_fileversion } ############################################# -# Returning the sequence for a file -############################################# - -sub get_sequence_for_file -{ - my ($number, $onefile, $fileentry, $allupdatesequenceshashref, $allupdatecomponentshashref, $allupdatefileorderhashref, $allfilecomponents) = @_; - - my $sequence = ""; - my $infoline = ""; - my $pffcomponentname = $onefile->{'componentname'} . "_pff"; - - if ( $installer::globals::updatedatabase ) - { - if (( exists($allupdatesequenceshashref->{$onefile->{'uniquename'}}) ) && - (( $onefile->{'componentname'} eq $allupdatecomponentshashref->{$onefile->{'uniquename'}} ) || - ( $pffcomponentname eq $allupdatecomponentshashref->{$onefile->{'uniquename'}} ))) - { - # The second condition is necessary to find shifted files, that have same "uniquename", but are now - # located in another directory. This can be seen at the component name. - $sequence = $allupdatesequenceshashref->{$onefile->{'uniquename'}}; - $onefile->{'assignedsequencenumber'} = $sequence; - # Collecting all used sequences, to guarantee, that no number is unused - $installer::globals::allusedupdatesequences{$sequence} = 1; - # Special help for files, that already have a "pff" component name (for example after ServicePack 1) - if ( $pffcomponentname eq $allupdatecomponentshashref->{$onefile->{'uniquename'}} ) - { - $infoline = "Warning: Special handling for component \"$pffcomponentname\". This file was added after the final, but before this ServicePack.\n"; - $installer::logger::Lang->print($infoline); - $onefile->{'componentname'} = $pffcomponentname; # pff for "post final file" - $fileentry->{'Component_'} = $onefile->{'componentname'}; - if ( ! exists($allfilecomponents->{$fileentry->{'Component_'}}) ) { $allfilecomponents->{$fileentry->{'Component_'}} = 1; } - } - } - else - { - $installer::globals::updatesequencecounter++; - $sequence = $installer::globals::updatesequencecounter; - $onefile->{'assignedsequencenumber'} = $sequence; - # $onefile->{'assignedcabinetfile'} = $installer::globals::pffcabfilename; # assigning to cabinet file for "post final files" - # Collecting all new files - $installer::globals::newupdatefiles{$sequence} = $onefile; - # Saving in sequence hash - $allupdatefileorderhashref->{$sequence} = $onefile->{'uniquename'}; - - # If the new file is part of an existing component, this must be changed now. All files - # of one component have to be included in one cabinet file. But because the order must - # not change, all new files have to be added to new components. - # $onefile->{'componentname'} = $file{'Component_'}; - - $onefile->{'componentname'} = $onefile->{'componentname'} . "_pff"; # pff for "post final file" - $fileentry->{'Component_'} = $onefile->{'componentname'}; - if ( ! exists($allfilecomponents->{$fileentry->{'Component_'}}) ) { $allfilecomponents->{$fileentry->{'Component_'}} = 1; } - $onefile->{'PostFinalFile'} = 1; - # $installer::globals::pfffileexists = 1; - # The sequence for this file has changed. It has to be inserted at the end of the files collector. - $installer::globals::insert_file_at_end = 1; - $installer::globals::newfilescollector{$sequence} = $onefile; # Adding new files to the end of the filescollector - $installer::globals::newfilesexist = 1; - } - } - else - { - $sequence = $number; - # my $sequence = $number + 1; - - # Idea: Each component is packed into a cab file. - # This requires that all files in one cab file have sequences directly follwing each other, - # for instance from 1456 to 1466. Then in the media table the LastSequence for this cab file - # is 1466. - # Because all files belonging to one component are directly behind each other in the file - # collector, it is possible to use simply an increasing number as sequence value. - # If files belonging to one component are not directly behind each other in the files collector - # this mechanism will no longer work. - } - - return $sequence; -} - -############################################# # Returning the Windows language of a file ############################################# @@ -689,73 +595,6 @@ sub generate_registry_keypath return $keypath; } -#################################################################### -# Check, if in an update process files are missing. No removal -# of files allowed for Windows Patch creation. -# Also logging all new files, that have to be included in extra -# components and cab files. -#################################################################### - -sub check_file_sequences -{ - my ($allupdatefileorderhashref, $allupdatecomponentorderhashref) = @_; - - # All used sequences stored in %installer::globals::allusedupdatesequences - # Maximum sequence number of old database stored in $installer::globals::updatelastsequence - # All new files stored in %installer::globals::newupdatefiles - - my $infoline = ""; - - my @missing_sequences = (); - - for ( my $i = 1; $i <= $installer::globals::updatelastsequence; $i++ ) - { - if ( ! exists($installer::globals::allusedupdatesequences{$i}) ) { push(@missing_sequences, $i); } - } - - if ( $#missing_sequences > -1 ) - { - my $errorstring = ""; - for ( my $j = 0; $j <= $#missing_sequences; $j++ ) - { - my $filename = $allupdatefileorderhashref->{$missing_sequences[$j]}; - my $comp = $allupdatecomponentorderhashref->{$missing_sequences[$j]}; - $errorstring = "$errorstring$filename (Sequence: $missing_sequences[$j], Component: \"$comp\")\n"; - } - - $infoline = "ERROR: Files are removed compared with update database.\nThe following files are missing:\n$errorstring"; - $installer::logger::Lang->print($infoline); - installer::exiter::exit_program($infoline, "check_file_sequences"); - } - - # Searching for new files - - my $counter = 0; - - foreach my $key ( keys %installer::globals::newupdatefiles ) - { - my $onefile = $installer::globals::newupdatefiles{$key}; - $counter++; - if ( $counter == 1 ) - { - $installer::logger::Lang->print("\n"); - $installer::logger::Lang->print("New files compared to the update database:\n"); - } - - $installer::logger::Lang->printf("%s (%s) Sequence: %s\n", - $onefile->{'Name'}, - $onefile->{'gid'}, - $onefile->{'assignedsequencenumber'}); - } - - if ( $counter == 0 ) - { - $infoline = "Info: No new file compared with update database!\n"; - $installer::logger::Lang->print($infoline); - } - -} - ################################################################### # Collecting further conditions for the component table. # This is used by multilayer products, to enable installation @@ -822,7 +661,7 @@ sub collect_shortnames_from_old_database sub create_files_table { - my ($filesref, $allfilecomponentsref, $basedir, $allvariables, $uniquefilenamehashref, $allupdatesequenceshashref, $allupdatecomponentshashref, $allupdatefileorderhashref) = @_; + my ($filesref, $allfilecomponentsref, $basedir, $allvariables, $uniquefilenamehashref) = @_; $installer::logger::Lang->add_timestamp("Performance Info: File Table start"); @@ -847,8 +686,6 @@ sub create_files_table # my @shortnames = (); my %shortnames = (); - if ( $installer::globals::updatedatabase ) { collect_shortnames_from_old_database($uniquefilenamehashref, \%shortnames); } - installer::windows::idtglobal::write_idt_header(\@filetable, "file"); installer::windows::idtglobal::write_idt_header(\@filehashtable, "filehash"); @@ -889,7 +726,7 @@ sub create_files_table $installer::globals::insert_file_at_end = 0; $counter++; - $file{'Sequence'} = get_sequence_for_file($counter, $onefile, \%file, $allupdatesequenceshashref, $allupdatecomponentshashref, $allupdatefileorderhashref, \%allfilecomponents); + $file{'Sequence'} = $counter; $onefile->{'sequencenumber'} = $file{'Sequence'}; Modified: openoffice/trunk/main/solenv/bin/modules/installer/windows/media.pm URL: http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/bin/modules/installer/windows/media.pm?rev=1541057&r1=1541056&r2=1541057&view=diff ============================================================================== --- openoffice/trunk/main/solenv/bin/modules/installer/windows/media.pm (original) +++ openoffice/trunk/main/solenv/bin/modules/installer/windows/media.pm Tue Nov 12 13:37:30 2013 @@ -210,16 +210,7 @@ sub get_last_sequence { my ( $cabfilename, $alludpatelastsequences ) = @_; - my $sequence = 0; - - if (( $installer::globals::updatedatabase ) && ( exists($alludpatelastsequences->{$cabfilename}) )) - { - $sequence = $alludpatelastsequences->{$cabfilename}; - } - else - { - $sequence = $installer::globals::lastsequence{$cabfilename}; - } + my $sequence = $installer::globals::lastsequence{$cabfilename}; return $sequence; } @@ -233,7 +224,7 @@ sub get_last_sequence sub create_media_table { - my ($filesref, $basedir, $allvariables, $alludpatelastsequences, $allupdatediskids) = @_; + my ($filesref, $basedir, $allvariables) = @_; my @mediatable = (); Modified: openoffice/trunk/main/solenv/bin/modules/installer/windows/msiglobal.pm URL: http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/bin/modules/installer/windows/msiglobal.pm?rev=1541057&r1=1541056&r2=1541057&view=diff ============================================================================== --- openoffice/trunk/main/solenv/bin/modules/installer/windows/msiglobal.pm (original) +++ openoffice/trunk/main/solenv/bin/modules/installer/windows/msiglobal.pm Tue Nov 12 13:37:30 2013 @@ -166,93 +166,7 @@ sub generate_cab_file_list if ( $^O =~ /cygwin/i ) { installer::worker::generate_cygwin_pathes($filesref); } - if (( $installer::globals::fix_number_of_cab_files ) && ( $installer::globals::updatedatabase )) - { - my $sequenceorder = get_sequenceorder($filesref); - - my $counter = 1; - my $currentcabfile = ""; - - while ( exists($sequenceorder->{$counter}) ) - { - my $onefile = ${$filesref}[$sequenceorder->{$counter}]; - $counter++; - - my $cabinetfile = $onefile->{'cabinet'}; - my $sourcepath = $onefile->{'sourcepath'}; - if ( $^O =~ /cygwin/i ) { $sourcepath = $onefile->{'cyg_sourcepath'}; } - my $uniquename = $onefile->{'uniquename'}; - - my $styles = ""; - my $doinclude = 1; - if ( $onefile->{'Styles'} ) { $styles = $onefile->{'Styles'}; }; - if ( $styles =~ /\bDONT_PACK\b/ ) { $doinclude = 0; } - - # to avoid lines with more than 256 characters, it can be useful to use relative pathes - if ( $allvariables->{'RELATIVE_PATHES_IN_DDF'} ) { $sourcepath = make_relative_ddf_path($sourcepath); } - - my @ddffile = (); - - write_ddf_file_header(\@ddffile, $cabinetfile, $installdir); - - my $ddfline = "\"" . $sourcepath . "\"" . " " . $uniquename . "\n"; - if ( $doinclude ) { push(@ddffile, $ddfline); } - - my $nextfile = ""; - if ( ${$filesref}[$sequenceorder->{$counter}] ) { $nextfile = ${$filesref}[$sequenceorder->{$counter}]; } - - my $nextcabinetfile = ""; - - if ( $nextfile->{'cabinet'} ) { $nextcabinetfile = $nextfile->{'cabinet'}; } - - while ( $nextcabinetfile eq $cabinetfile ) - { - $sourcepath = $nextfile->{'sourcepath'}; - if ( $^O =~ /cygwin/i ) { $sourcepath = $nextfile->{'cyg_sourcepath'}; } - # to avoid lines with more than 256 characters, it can be useful to use relative pathes - if ( $allvariables->{'RELATIVE_PATHES_IN_DDF'} ) { $sourcepath = make_relative_ddf_path($sourcepath); } - $uniquename = $nextfile->{'uniquename'}; - my $localdoinclude = 1; - my $nextfilestyles = ""; - if ( $nextfile->{'Styles'} ) { $nextfilestyles = $nextfile->{'Styles'}; } - if ( $nextfilestyles =~ /\bDONT_PACK\b/ ) { $localdoinclude = 0; } - $ddfline = "\"" . $sourcepath . "\"" . " " . $uniquename . "\n"; - if ( $localdoinclude ) { push(@ddffile, $ddfline); } - $counter++; # increasing the counter! - $nextfile = ""; - $nextcabinetfile = "_lastfile_"; - if (( exists($sequenceorder->{$counter}) ) && ( ${$filesref}[$sequenceorder->{$counter}] )) - { - $nextfile = ${$filesref}[$sequenceorder->{$counter}]; - $nextcabinetfile = $nextfile->{'cabinet'}; - } - } - - # creating the DDF file - - my $ddffilename = $cabinetfile; - $ddffilename =~ s/.cab/.ddf/; - $ddfdir =~ s/\Q$installer::globals::separator\E\s*$//; - $ddffilename = $ddfdir . $installer::globals::separator . $ddffilename; - - installer::files::save_file($ddffilename ,\@ddffile); - my $infoline = "Created ddf file: $ddffilename\n"; - $installer::logger::Lang->print($infoline); - - # lines in ddf files must not be longer than 256 characters - check_ddf_file(\@ddffile, $ddffilename); - - # Writing the makecab system call - - my $oneline = "makecab.exe /V3 /F " . $ddffilename . " 2\>\&1 |" . "\n"; - - push(@cabfilelist, $oneline); - - # collecting all ddf files - push(@installer::globals::allddffiles, $ddffilename); - } - } - elsif ( $installer::globals::fix_number_of_cab_files ) + if ( $installer::globals::fix_number_of_cab_files ) { for ( my $i = 0; $i <= $#{$filesref}; $i++ ) { @@ -1831,11 +1745,7 @@ sub set_global_code_variables } # ProductCode must not change, if Windows patches shall be applied - if ( $installer::globals::updatedatabase ) - { - $installer::globals::productcode = $alloldproperties->{'ProductCode'}; - } - elsif ( $installer::globals::prepare_winpatch ) + if ( $installer::globals::prepare_winpatch ) { # ProductCode has to be specified in each language my $searchstring = "PRODUCTCODE";