media.pm (a0a2b094) media.pm (fb67933c)
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

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

238 my @mediatable = ();
239
240 my $diskid = 0;
241
242 installer::windows::idtglobal::write_idt_header(\@mediatable, "media");
243
244 if ( $allvariables->{'INCLUDE_CAB_IN_MSI'} ) { $installer::globals::include_cab_in_msi = 1; }
245
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

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

238 my @mediatable = ();
239
240 my $diskid = 0;
241
242 installer::windows::idtglobal::write_idt_header(\@mediatable, "media");
243
244 if ( $allvariables->{'INCLUDE_CAB_IN_MSI'} ) { $installer::globals::include_cab_in_msi = 1; }
245
246 if ( $installer::globals::use_packages_for_cabs )
247 {
248 my $cabfile;
249 foreach $cabfile ( sort keys %installer::globals::lastsequence )
250 {
251 my %media = ();
252 $diskid++;
253
254 $media{'DiskId'} = get_media_diskid($diskid);
255 $media{'LastSequence'} = get_last_sequence($cabfile, $alludpatelastsequences);
256 $media{'DiskPrompt'} = get_media_diskprompt();
257 $media{'Cabinet'} = get_cabfilename($cabfile);
258 $media{'VolumeLabel'} = get_media_volumelabel();
259 $media{'Source'} = get_media_source();
260
261 my $oneline = $media{'DiskId'} . "\t" . $media{'LastSequence'} . "\t" . $media{'DiskPrompt'} . "\t"
262 . $media{'Cabinet'} . "\t" . $media{'VolumeLabel'} . "\t" . $media{'Source'} . "\n";
263
264 push(@mediatable, $oneline);
265
266 # Comparing the disk id with the disk id from update database. Both have to be identical. New files have to be added
267 # to the new pff cabinet file. And existing cab files must not be removed.
268 if ( $installer::globals::updatedatabase )
269 {
270 # Comparing lines in new media table with line from media table in udpate database.
271 if ( exists($allupdatediskids->{$media{'Cabinet'}}) )
272 {
273 if ( $media{'DiskId'} != $allupdatediskids->{$media{'Cabinet'}} )
274 {
275 installer::exiter::exit_program("ERROR: Different DiskIDs for cab file \"$media{'Cabinet'}\".\nCurrent installation set: \"$media{'DiskId'}\", but update database used \"$allupdatediskids->{$media{'Cabinet'}}\".\nWere cabinet files removed or added?", "create_media_table");
276 }
277 }
278 else
279 {
280 $installer::logger::Lang->printf(
281 "Warning: Could not find cabinet file \"%s}\" in update database. This seems to be an new cabinet file!?\n",
282 $media{'Cabinet'});
283 }
284 }
285 }
286
287 # one new cabinet file for all files added after the final release
288 if (( $installer::globals::updatedatabase ) && ( $installer::globals::pfffileexists ))
289 {
290 my %media = ();
291 $diskid++;
292
293 $media{'DiskId'} = get_media_diskid($diskid) + $installer::globals::mergemodulenumber; # Adding mergemodulenumber, because this files are included later
294 $media{'LastSequence'} = $installer::globals::updatesequencecounter;
295 $media{'DiskPrompt'} = get_media_diskprompt();
296 $media{'Cabinet'} = get_cabfilename($installer::globals::pffcabfilename);
297 $media{'VolumeLabel'} = get_media_volumelabel();
298 $media{'Source'} = get_media_source();
299
300 my $oneline = $media{'DiskId'} . "\t" . $media{'LastSequence'} . "\t" . $media{'DiskPrompt'} . "\t"
301 . $media{'Cabinet'} . "\t" . $media{'VolumeLabel'} . "\t" . $media{'Source'} . "\n";
302
303 push(@mediatable, $oneline);
304 }
305
306 }
307 elsif ( $installer::globals::fix_number_of_cab_files )
246 if ( $installer::globals::fix_number_of_cab_files )
308 {
309 # number of cabfiles
310 my $maxcabfilenumber = $installer::globals::number_of_cabfiles;
311 if ( $allvariables->{'CABFILENUMBER'} ) { $maxcabfilenumber = $allvariables->{'CABFILENUMBER'}; }
312 my $allfiles = $#{$filesref} + 1;
313 my $maxfilenumber = get_maximum_filenumber($allfiles, $maxcabfilenumber);
314 # my $maxfilenumber = 1000; # maximum 1000 files in each cabinet file
315 my $cabfilenumber = 0;

--- 72 unchanged lines hidden ---
247 {
248 # number of cabfiles
249 my $maxcabfilenumber = $installer::globals::number_of_cabfiles;
250 if ( $allvariables->{'CABFILENUMBER'} ) { $maxcabfilenumber = $allvariables->{'CABFILENUMBER'}; }
251 my $allfiles = $#{$filesref} + 1;
252 my $maxfilenumber = get_maximum_filenumber($allfiles, $maxcabfilenumber);
253 # my $maxfilenumber = 1000; # maximum 1000 files in each cabinet file
254 my $cabfilenumber = 0;

--- 72 unchanged lines hidden ---