From 0bd746bb5c9ad9713dd3775283516d9d9ddc702d Mon Sep 17 00:00:00 2001 From: Stew Benedict Date: Sun, 4 Mar 2001 18:25:34 +0000 Subject: *** empty log message *** --- perl-install/ChangeLog | 6 ++++++ perl-install/fs.pm | 2 +- perl-install/install_steps_interactive.pm | 14 ++++++++++++++ perl-install/partition_table.pm | 4 ++-- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/perl-install/ChangeLog b/perl-install/ChangeLog index bd65932a0..f94e66fd4 100644 --- a/perl-install/ChangeLog +++ b/perl-install/ChangeLog @@ -1,3 +1,9 @@ +2001/03/04 stew + + * diskdrake.pm, fs.pm, partition_table.pm isBootstrap -> isAppleBootstrap + + * install_steps_interactive.pm - auto-add Apple Bootstrap - PPC + 2001/03/03 Pixel * install_steps.pm, fsedit.pm, lvm.pm, standalone/diskdrake, diff --git a/perl-install/fs.pm b/perl-install/fs.pm index d3773a430..1bdea6721 100644 --- a/perl-install/fs.pm +++ b/perl-install/fs.pm @@ -126,7 +126,7 @@ sub real_format_part { format_dos($part->{device}, @options, '-F', 32); } elsif (isHFS($part)) { format_hfs($part->{device}, @options, '-l', "Untitled"); - } elsif (isBootstrap($part)) { + } elsif (isAppleBootstrap($part)) { format_hfs($part->{device}, @options, '-l', "bootstrap"); } elsif (isSwap($part)) { my $check_blocks = grep { /^-c$/ } @options; diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm index d9b75ac35..d08fb0efb 100644 --- a/perl-install/install_steps_interactive.pm +++ b/perl-install/install_steps_interactive.pm @@ -322,6 +322,20 @@ Do you agree to loose all the partitions? _("DiskDrake failed to read correctly the partition table. Continue at your own risk!")); + if (arch() =~ /ppc/ && !$::expert) { #- need to make bootstrap part if recommended install - thx Pixel ;^) + if (defined $partition_table_mac'bootstrap_part) { + #- don't do anything if we've got the bootstrap setup + #- otherwise, go ahead and create one somewhere in the drive free space + } else { + if (defined $partition_table_mac'freepart_start && $partition_table_mac'freepart_size >= 1) { + my ($hd) = $partition_table_mac'freepart_device; + log::l("creating bootstrap partition on drive /dev/$hd->{device}, block $partition_table_mac'freepart_start"); + fsedit::add($hd, { start => $partition_table_mac'freepart_start, size => 1 << 11, type => 0x401, mntpoint => '' }, $o->{hds}, { force => 1, primaryOrExtended => 'Primary' }); + } else { + die "no free space for 1MB bootstrap"; + } + } + } if ($o->{isUpgrade}) { # either one root is defined (and all is ok), or we take the first one we find diff --git a/perl-install/partition_table.pm b/perl-install/partition_table.pm index 9211d68c3..eb134ffc6 100644 --- a/perl-install/partition_table.pm +++ b/perl-install/partition_table.pm @@ -6,7 +6,7 @@ package partition_table; # $Id$ @ISA = qw(Exporter); %EXPORT_TAGS = ( - types => [ qw(type2name type2fs name2type fs2type isExtended isExt2 isReiserfs isTrueFS isSwap isDos isWin isFat isSunOS isOtherAvailableFS isPrimary isNfs isSupermount isLVM isRAID isMDRAID isLVMBased isHFS isNT isMountableRW isNonMountable isApplePartMap isLoopback isApple isBootstrap) ], + types => [ qw(type2name type2fs name2type fs2type isExtended isExt2 isReiserfs isTrueFS isSwap isDos isWin isFat isSunOS isOtherAvailableFS isPrimary isNfs isSupermount isLVM isRAID isMDRAID isLVMBased isHFS isNT isMountableRW isNonMountable isApplePartMap isLoopback isApple isAppleBootstrap) ], ); @EXPORT_OK = map { @$_ } values %EXPORT_TAGS; @@ -231,7 +231,7 @@ sub isNT($) { arch() !~ /^sparc/ && $_[0]{type} == 0x7 } sub isSupermount($) { $_[0]{type} eq 'supermount' } sub isHFS($) { $type2fs{$_[0]{type}} eq 'hfs' } sub isApple($) { $type2fs{$_[0]{type}} eq 'apple' && defined $_[0]{isDriver} } -sub isBootstrap($) { $type2fs{$_[0]{type}} eq 'apple' && defined $_[0]{isBoot} } +sub isAppleBootstrap($) { $type2fs{$_[0]{type}} eq 'apple' && defined $_[0]{isBoot} } sub isHiddenMacPart { defined $_[0]{isMap} } sub isLoopback { defined $_[0]{loopback_file} } sub isTrueFS { isExt2($_[0]) || isReiserfs($_[0]) } -- cgit v1.2.1