> $e{size} > $size and next;+
+ if ($v->[$i] + $e{size} > 1024 * partition_table::cylinder_size($hd)) {
+ next if $e{mntpoint} eq "/boot" ||
+ $e{mntpoint} eq "/" && !has_mntpoint("/boot", $hds);
+ }
$e{start} = $v->[$i];
$e{rootDevice} = $hd->{device};
partition_table::adjustStartAndEnd($hd, \%e);
@@ -175,7 +175,7 @@ $o = $::o = {
steps => \%installSteps,
orderedSteps => \@orderedInstallSteps,
- base => [ qw(basesystem initscripts console-tools mkbootdisk anacron rhs-hwdiag utempter ldconfig chkconfig ntsysv mktemp setup filesystem SysVinit bdflush crontabs dev e2fsprogs etcskel fileutils findutils getty_ps grep groff gzip hdparm info initscripts isapnptools kbdconfig kernel less ldconfig lilo logrotate losetup man mkinitrd mingetty modutils mount net-tools passwd procmail procps psmisc mandrake-release rootfiles rpm sash sed setconsole setserial shadow-utils sh-utils slocate stat sysklogd tar termcap textutils time timeconfig tmpwatch util-linux vim-minimal vixie-cron which cpio) ],
+ base => [ qw(basesystem initscripts console-tools mkbootdisk anacron rhs-hwdiag utempter ldconfig chkconfig ntsysv mktemp setup filesystem SysVinit bdflush crontabs dev e2fsprogs etcskel fileutils findutils getty_ps grep groff gzip hdparm info initscripts isapnptools kbdconfig kernel less ldconfig lilo logrotate losetup man mkinitrd mingetty modutils mount net-tools passwd procmail procps psmisc mandrake-release rootfiles rpm sash sed setconsole setserial shadow-utils sh-utils slocate stat sysklogd tar termcap textutils time timeconfig tmpwatch util-linux vim-minimal vixie-cron which cpio perl) ],
#- for the list of fields available for user and superuser, see @etc_pass_fields in install_steps.pm
#- intf => [ { DEVICE => "eth0", IPADDR => '1.2.3.4', NETMASK => '255.255.255.128' } ],
@@ -235,7 +235,7 @@ sub selectInstallClass {
$::expert = $o->{installClass} eq "expert";
$::beginner = $o->{installClass} eq "beginner";
$o->{partitions} ||= $suggestedPartitions{$o->{installClass}};
- $o->{partitioning}{auto_allocate} = 1;
+ $o->{partitioning}{auto_allocate} ||= -1 if $::beginner;
$o->setPackages(\@install_classes) if $o->{steps}{choosePackages}{entered} >= 1;
}
@@ -269,7 +269,11 @@ I'll try to go on blanking bad partitions"));
die _("An error has occurred - no valid devices were found on which to create new filesystems. Please check your hardware for the cause of this problem");
}
- eval { fsedit::auto_allocate($o->{hds}, $o->{partitions}) } if $o->{partitioning}{auto_allocate};
+ $o->{partitioning}{auto_allocate} = 0
+ if $o->{partitioning}{auto_allocate} == -1 && fsedit::get_fstab(@{$o->{hds}}) >= 4;
+
+ eval { fsedit::auto_allocate($o->{hds}, $o->{partitions}) } if
+ $o->{partitioning}{auto_allocate} && ($o->{partitioning}{auto_allocate} != -1 || $::beginner);
if ($o->{partitioning}{auto_allocated} = ($::beginner && fsedit::get_root_($o->{hds}) && $_[1] == 1)) {
install_steps::doPartitionDisks($o, $o->{hds});
@@ -284,21 +288,19 @@ I'll try to go on blanking bad partitions"));
$o->{fstab} = [ fsedit::get_fstab(@{$o->{hds}}) ];
fsedit::get_root($o->{fstab}) or die _("partitioning failed: no root filesystem");
-
}
sub formatPartitions {
- if ($o->{partitioning}{auto_allocated}) { #- if all was auto_allocated, no need to ask, go on!
- install_steps::choosePartitionsToFormat($o, $o->{fstab});
- } else {
- $o->choosePartitionsToFormat($o->{fstab});
- }
+ $o->choosePartitionsToFormat($o->{fstab});
+
unless ($::testing) {
$o->formatPartitions(@{$o->{fstab}});
fs::mount_all([ grep { isExt2($_) || isSwap($_) } @{$o->{fstab}} ], $o->{prefix});
}
- mkdir "$o->{prefix}/$_", 0755 foreach qw(dev etc etc/sysconfig etc/sysconfig/network-scripts
- home mnt root tmp var var/tmp var/lib var/lib/rpm);
+ mkdir "$o->{prefix}/$_", 0755 foreach
+ qw(dev etc etc/sysconfig etc/sysconfig/console etc/sysconfig/network-scripts
+ etc/sysconfig/network-scripts
+ home mnt root tmp var var/tmp var/lib var/lib/rpm);
}
#------------------------------------------------------------------------------
@@ -477,7 +479,7 @@ sub main {
$o->kill_action;
/^setstep (.*)/ and $o->{step} = $1, $clicked = 1, redo MAIN;
/^theme_changed$/ and redo MAIN;
- eval { $o->errorInStep($_) };
+ eval { $o->errorInStep($_) } unless /^already displayed/;
$@ and next;
$o->{step} = $o->{steps}{$o->{step}}{onError};
redo MAIN;
@@ -121,6 +121,9 @@ sub choosePartitionsToFormat($$) {
$o->SUPER::choosePartitionsToFormat($fstab);
my @l = grep { $_->{mntpoint} && !($::beginner && isSwap($_)) } @$fstab;
+
+ return if $::beginner && 0 == grep { ! $_->{toFormat} } @l;
+
$o->ask_many_from_list_ref('', _("Choose the partitions you want to format"),
[ map { isSwap($_) ? type2name($_->{type}) . " ($_->{device})" : $_->{mntpoint} } @l ],
[ map { \$_->{toFormat} } @l ]) or die "cancel";
@@ -618,7 +621,7 @@ _("Default") => { val => \$default, type => 'bool' },
);
$o->ask_from_entries_ref('',
- _(""),
+ '',
[ grep_index { even($::i) } @l ],
[ grep_index { odd($::i) } @l ],
) or return;
@@ -628,7 +631,13 @@ _("Default") => { val => \$default, type => 'bool' },
delete $b->{entries}{$old_name};
$b->{entries}{$name} = $e;
}
- $o->SUPER::setupBootloader;
+ eval { $o->SUPER::setupBootloader };
+ if ($@) {
+ $o->ask_warn('',
+ [ _("Lilo failed. The following error occured:"),
+ grep { !/^Warning:/ } cat_("$o->{prefix}/tmp/.error") ]);
+ die "already displayed";
+ }
}
#------------------------------------------------------------------------------
@@ -174,7 +174,7 @@ sub write {
sub load_po($) {
my ($lang) = @_;
- my ($s, $from, $to, $state);
+ my ($s, $from, $to, $state, $fuzzy);
$s .= "package po::I18N;\n";
$s .= "\%$lang = (";
@@ -183,7 +183,7 @@ sub load_po($) {
local *F; open F, $f or return;
foreach (<F>) {
/^msgstr/ and $state = 1;
- /^msgid/ and $state = 2;
+ /^msgid/ && !$fuzzy and $state = 2;
if (/^(#|$)/ && $state != 3) {
$state = 3;
@@ -192,6 +192,8 @@ sub load_po($) {
}
$to .= (/"(.*)"/)[0] if $state == 1;
$from .= (/"(.*)"/)[0] if $state == 2;
+
+ $fuzzy = /^#, fuzzy/;
}
$s .= ");";
no strict "vars";
@@ -14,31 +14,6 @@ my %conf;
my $scsi = 0;
my %deps = ();
-
-#-my @modules_fields = qw(shouldAutoprobe options flags defaultOptions);
-#-my %modules = (
-#- "8390" => [ 1 ],
-#- "cdu31a" => [ 0, \@cdu31aOptions ],
-#- "cm206" => [ 0, \@cm206Options ],
-#- "de4x5" => [ 1, \@de4x5Options, 'AUTOPROBE', "io=0" ],
-#- "ds" => [ 1, undef, 0, '' ],
-#- "fdomain" => [ 1, \@fdomainOptions, 0, '' ],
-#- "i82365" => [ 1, undef, 0, '' ],
-#- "isofs" => [ 1, undef, 0, '' ],
-#- "loop" => [ 1, undef, 0, '' ],
-#- "lp" => [ 1, undef, 0, '' ],
-#- "parport" => [ 1, undef, 0, '' ],
-#- "parport_pc" => [ 1, \@parportPcOptions, 0, "irq=7" ],
-#- "mcd" => [ 0, \@mcdOptions, 0, '' ],
-#- "ne" => [ 0, \@neOptions, 'FAKEAUTOPROBE', "io=0x300" ],
-#- "nfs" => [ 1, undef, 0, '' ],
-#- "optcd" => [ 0, \@optcdOptions, 0, '' ],
-#- "pcmcia_core" => [ 1, undef, 0, '' ],
-#- "sbpcd" => [ 1, \@sbpcdOptions, 0, '' ],
-#- "smbfs" => [ 1, undef, 0, '' ],
-#- "tcic" => [ 1, undef, 0, '' ],
-#- "vfat" => [ 1, undef, 0, '' ],
-#-);
my @drivers_by_category = (
[ \&detect_devices::hasEthernet, 'net', 'ethernet', {
"3c509" => "3com 3c509",
@@ -195,7 +170,7 @@ sub load($;$@) {
}
$conf{'scsi_hostadapter' . ($scsi++ || '')}{alias} = $name
- if $type eq 'scsi';
+ if $type && $type eq 'scsi';
$conf{$name}{options} = join " ", @options if @options;
}
@@ -7,6 +7,7 @@ use strict;
#- misc imports
#-######################################################################################
use common qw(:common :system :functional);
+use modules;
use log;
my @mouses_fields = qw(nbuttons device MOUSETYPE XMOUSETYPE FULLNAME);
@@ -75,6 +76,7 @@ sub write($;$) {
sub detect() {
my %l;
+ eval { modules::load("serial") };
@l{qw(FULLNAME nbuttons MOUSETYPE XMOUSETYPE device)} = split("\n", `mouseconfig --nointeractive 2>/dev/null`) or die "mouseconfig failed";
\%l;
}
@@ -18,6 +18,7 @@ use c;
use common qw(:common :functional);
my $forgetTime = 1000; #- in milli-seconds
+my @grabbed;
$border = 5;
1;
@@ -49,11 +50,13 @@ sub show($) {
my ($o) = @_;
$o->{window}->show;
$o->{rwindow}->show;
- $o->{rwindow}->grab_add if $my_gtk::grab || $o->{grab};
+ top(@grabbed)->grab_remove if @grabbed;
+ push(@grabbed, $o->{rwindow}), $o->{rwindow}->grab_add if $my_gtk::grab || $o->{grab};
}
sub destroy($) {
my ($o) = @_;
- $o->{rwindow}->grab_remove if $my_gtk::grab || $o->{grab};
+ (pop @grabbed)->grab_remove if @grabbed;
+ top(@grabbed)->grab_add if @grabbed;
$o->{rwindow}->destroy;
flush();
}
@@ -167,15 +167,13 @@ sub readCompss($) {
foreach (<$f>) {
/^\s*$/ || /^#/ and next;
s/#.*//;
- my ($options, $name) = /^(\S*)\s+(.*?)\s*$/ or log::l("bad line in compss: $_"), next;
- if ($name =~ /(.*):$/) {
+ if (/^(\S+)/) {
$ps = [];
- push @compss, { options => $options, name => $1, packages => $ps };
+ push @compss, { name => $1, packages => $ps };
} else {
- my $p = $packages->{$name} or log::l("unknown package $name (in compss)"), next;
- $p->{options} = $options;
- push @$ps, $p;
+ /(\S+)/ or log::l("bad line in compss: $_"), next;
+ push @$ps, $packages->{$1} || do { log::l("unknown package $1 (in compss)"); next };
}
}
\@compss;
@@ -302,7 +300,12 @@ sub install($$) {
$total += $p->{size};
}
- c::rpmdepOrder($trans) or c::rpmdbClose($db), c::rpmtransFree($trans), die "error ordering package list: ", c::rpmErrorString();
+ c::rpmdepOrder($trans) or
+ cdie "error ordering package list: " . c::rpmErrorString(),
+ sub {
+ c::rpmdbClose($db);
+ c::rpmtransFree($trans);
+ };
c::rpmtransSetScriptFd($trans, $fd);
eval { fs::mount("/proc", "$prefix/proc", "proc", 0) };
@@ -17,12 +17,18 @@ sub rooted {
fork and wait, return $? == 0;
{
- my ($stdout, $stdoutm);
- ($stdoutm, $stdout, @args) = @args if $args[0] eq ">" || $args[0] eq ">>";
+ my ($stdout, $stdoutm, $stderr, $stderrm);
+ ($stdoutm, $stdout, @args) = @args if $args[0] =~ /^>>?$/;
+ ($stderrm, $stderr, @args) = @args if $args[0] =~ /^2>>?$/;
open STDIN, "/dev/null" or die "can't open /dev/null as stdin";
- open STDERR, ">> /dev/tty7" or open STDERR, ">> /tmp/exec.log" or die "run_program can't log :(";
+ if ($stderr) {
+ $stderrm =~ s/2//;
+ open STDERR, "$stderrm $root$stderr" or die "run_program can't output in $root$stderr (mode `$stderrm')";
+ } else {
+ open STDERR, ">> /dev/tty7" or open STDERR, ">> /tmp/exec.log" or die "run_program can't log :(";
+ }
if ($stdout) {
open STDOUT, "$stdoutm $root$stdout" or die "run_program can't output in $root$stdout (mode `$stdoutm')";
} else {
@@ -3,6 +3,7 @@ style "default-font"
fontset = "\
-*-arial-medium-r-normal-*-*-100-*-*-*-*-*-*,\
-*-helvetica-medium-r-normal-*-*-100-*-*-*-*-*-*,\
+-cronyx-helvetica-medium-r-normal-*-*-110-*-*-*-*-*-*,\
-*-tahoma-medium-r-normal-*-*-*-*-*-*-*-*-*,\
-*-*-medium-r-normal-*-*-*-*-*-*-*-jisx0208.1990-0,\
-*-*-medium-r-normal-*-*-*-*-*-*-*-jisx0208.1983-0,\
@@ -25,6 +26,7 @@ style "steps"
fontset = "\
-*-arial-medium-r-normal-*-*-80-*-*-*-*-*-*,\
-*-helvetica-medium-r-normal-*-*-80-*-*-*-*-*-*,\
+-cronyx-helvetica-medium-r-normal-*-*-110-*-*-*-*-*-*,\
-*-tahoma-medium-r-normal-*-*-*-*-*-*-*-*-*,\
-*-*-medium-r-normal-*-*-*-*-*-*-*-jisx0208.1990-0,\
-*-*-medium-r-normal-*-*-*-*-*-*-*-jisx0208.1983-0,\
@@ -35,8 +37,10 @@ style "steps"
-*-*-medium-r-normal-*-*-*-*-*-*-*-mulelao-1,\
-*-*-medium-r-normal-*-*-*-*-*-*-*-ibm-cp1133,\
-*-*-medium-r-normal-*-*-*-*-*-*-*-iso10646-1,\
+-*-*-medium-r-normal-*-*-*-*-*-*-*-iso10646-1,\
-taipei-*-medium-r-normal-*-*-*-*-*-*-*-big5-0"
+
}
style "logo"
@@ -9,10 +9,6 @@
/sbin/mkdosfs
/sbin/mke2fs
/usr/bin/bzip2
-/usr/lib/gconv/gconv-modules
-/usr/lib/gconv/ISO8859-1.so
-/usr/lib/gconv/ISO8859-2.so
-/usr/lib/gconv/ISO8859-9.so
/usr/lib/perl5/5.00503/AutoLoader.pm
/usr/lib/perl5/5.00503/Carp.pm
/usr/lib/perl5/5.00503/Data/Dumper.pm
@@ -66,22 +62,5 @@
/usr/X11R6/bin/XF86_FBDev
/usr/X11R6/bin/XF86_VGA16
/usr/X11R6/bin/xmodmap
-/usr/X11R6/lib/X11/fonts/75dpi/fonts.dir
-/usr/X11R6/lib/X11/fonts/75dpi/fonts.alias
-/usr/X11R6/lib/X11/fonts/75dpi/helvR08.pcf.gz
-/usr/X11R6/lib/X11/fonts/75dpi/helvR10.pcf.gz
-/usr/X11R6/lib/X11/fonts/cyrillic/fonts.dir
-/usr/X11R6/lib/X11/fonts/cyrillic/fonts.alias
-/usr/X11R6/lib/X11/fonts/cyrillic/crox1h.pcf.gz
-/usr/X11R6/lib/X11/fonts/cyrillic/crox2h.pcf.gz
-/usr/X11R6/lib/X11/fonts/misc/fonts.dir
-/usr/X11R6/lib/X11/fonts/misc/fonts.alias
-/usr/X11R6/lib/X11/fonts/misc/6x13.pcf.gz
-/usr/X11R6/lib/X11/fonts/misc/cursor.pcf.gz
-/usr/X11R6/lib/X11/fonts/misc/7x14rk.pcf.gz
-/usr/share/fonts/ISO8859-9/75dpi/fonts.dir
-/usr/share/fonts/ISO8859-9/75dpi/fonts.alias
-/usr/share/fonts/ISO8859-9/75dpi/tr_helvR08.pcf.gz
-/usr/share/fonts/ISO8859-9/75dpi/tr_helvR10.pcf.gz
/usr/sbin/ext2resize
/usr/sbin/rescuept