diff options
| author | Olivier Blin <oblin@mandriva.com> | 2009-07-30 17:56:44 +0000 |
|---|---|---|
| committer | Olivier Blin <oblin@mandriva.com> | 2009-07-30 17:56:44 +0000 |
| commit | 4fe3fa0731df002a22320458e5e55c5cc1ec5318 (patch) | |
| tree | da32b6f5290e8924ecc28f4860d0922f1ff4f46b /draklive | |
| parent | b0521d1942ef977c490de319d0121a8770f074a1 (diff) | |
| download | drakiso-4fe3fa0731df002a22320458e5e55c5cc1ec5318.tar drakiso-4fe3fa0731df002a22320458e5e55c5cc1ec5318.tar.gz drakiso-4fe3fa0731df002a22320458e5e55c5cc1ec5318.tar.bz2 drakiso-4fe3fa0731df002a22320458e5e55c5cc1ec5318.tar.xz drakiso-4fe3fa0731df002a22320458e5e55c5cc1ec5318.zip | |
move / size and fs type pre-computing in a new supplement_partitions media method
Diffstat (limited to 'draklive')
| -rwxr-xr-x | draklive | 19 |
1 files changed, 12 insertions, 7 deletions
@@ -678,7 +678,7 @@ sub allocate_partition { } sub allocate_master { - my ($live, $media, $dest, $size, $fs) = @_; + my ($live, $media, $dest, $size) = @_; mkdir_p(dirname($dest)); my $geom = { heads => 16, @@ -694,7 +694,7 @@ sub allocate_master { MDV::Draklive::Utils::device_allocate_file($dest, $disk_size); my $slash = find { $_->{mntpoint} eq '/' } @{$media->{partitions}}; - $slash->{fs_type} = $fs; + my $fs = $slash->{fs_type}; #- FIXME: use fsedit::allocatePartitions and $media->{partitions}? # foreach (@{$media->{partitions}}) { # set pt_type } @@ -756,6 +756,9 @@ EOF sub create_disk_master { my ($live, $opts) = @_; + + $live->{media}->supplement_partitions(directory_usage($live->get_system_root)); + my $dest = get_disk_master_path($live); my $disk_size = @{$live->{mount}{dirs} || []} ? #- dumb guess, a bit too large, and valid for FAT only @@ -763,10 +766,9 @@ sub create_disk_master { directory_usage($live->get_builddir . $live->{prefix}{build}{boot}) + directory_usage($live->get_builddir . $live->{prefix}{build}{files}) + 70000000) : - directory_usage($live->get_system_root) + 200000000 + fold_left { $::a + $::b } map { $_->{size} * $common::SECTORSIZE } @{$live->{media}{partitions}}; - #- FIXME: use size from $live->{media}{partitions} for / too + 200000000 + fold_left { $::a + $::b } map { $_->{size} * $common::SECTORSIZE } @{$live->{media}{partitions}}; - my @loops = allocate_master($live, $live->{media}, $dest, $disk_size, $live->{media}->get_media_setting('fs')); + my @loops = allocate_master($live, $live->{media}, $dest, $disk_size); my $slash_idx = $live->{media}->find_partition_index('/'); local $opts->{device} = $loops[$slash_idx]; local $opts->{disk_device} = $dest; @@ -1155,8 +1157,11 @@ sub create_usb_replicator { my ($live) = @_; my $dest = get_disk_replicator_path($live); my %files = get_disk_replicator_files($live); - my $size = fold_left { $::a + $::b } map { directory_usage($_, 'apparent') } keys(%files); - my @loops = allocate_master($live, $live->{replicator}{media}, $dest, 8000000 + $size, 'vfat'); + + my $size = 8000000 + fold_left { $::a + $::b } map { directory_usage($_, 'apparent') } keys(%files); + $live->{replicator}{media}->supplement_partitions($size); + + my @loops = allocate_master($live, $live->{replicator}{media}, $dest, $size); my $slash_idx = $live->{replicator}{media}->find_partition_index('/'); my $opts = { device => $loops[$slash_idx], disk_device => $dest, append => $live->{replicator}{append} }; record_usb_replicator($live, $opts); |
