summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install')
-rw-r--r--perl-install/ChangeLog2
-rw-r--r--perl-install/Xconfigurator.pm14
-rw-r--r--perl-install/any.pm9
-rw-r--r--perl-install/fsedit.pm7
-rw-r--r--perl-install/install2.pm19
-rw-r--r--perl-install/install_any.pm21
-rw-r--r--perl-install/install_steps.pm5
-rw-r--r--perl-install/install_steps_auto_install.pm1
-rw-r--r--perl-install/install_steps_gtk.pm6
-rw-r--r--perl-install/install_steps_interactive.pm16
-rwxr-xr-xperl-install/standalone/XFdrake8
11 files changed, 57 insertions, 51 deletions
diff --git a/perl-install/ChangeLog b/perl-install/ChangeLog
index 342646318..6f610426d 100644
--- a/perl-install/ChangeLog
+++ b/perl-install/ChangeLog
@@ -1,4 +1,4 @@
-2000-08-04 Pixel <pixel@mandrakesoft.com>
+2000-08-04 Dam's <damien@mandrakesoft.com>
* any.pm (setAutoLogin): added this method to write xdm-config
* Xconfigurator.pm: clenead autologin code and use of above method
diff --git a/perl-install/Xconfigurator.pm b/perl-install/Xconfigurator.pm
index f0f51c162..bbac283d3 100644
--- a/perl-install/Xconfigurator.pm
+++ b/perl-install/Xconfigurator.pm
@@ -9,6 +9,7 @@ use log;
use detect_devices;
use run_program;
use Xconfigurator_consts;
+use any;
use my_gtk qw(:wrappers);
my $tmpconfig = "/tmp/Xconfig";
@@ -1020,7 +1021,7 @@ sub main {
}
my $ok = resolutionsConfiguration($o, auto => $::auto, noauto => $::noauto);
- $ok &&= testFinalConfig($o, $::auto, $::skiptest);
+ $ok &&= testFinalConfig($o, $::auto, $o->{skiptest});
my $quit;
until ($ok || $quit) {
@@ -1095,14 +1096,15 @@ Would you like X to start when you reboot?"), 1);
$l{uid} > 500, $l{name};
} cat_("$o->{prefix}/etc/passwd");
- !(exists $o->{miscellaneous}{autologuser} || $::auto || !@users || exists $o->{authentication}{NIS} ) &&
+ unless (exists $o->{miscellaneous}{autologuser} || $::auto || !@users || $o->{authentication}{NIS}) {
$in->ask_from_entries_refH(_("Autologin"),
_("I can set up your computer to automatically log on one user.
If you don't want to use this feature, click on the cancel button."),
-[ _("Choose the default user :") => {val => \$o->{miscellaneous}{autologuser}, list => \@users, not_edit => 1} ], )
- or delete $o->{miscellaneaous}{autologuser};
- set_autologin($prefix, $o->{miscellaneous}{autologuser}, "kde" ) if (@users && !exists $o->{authentication}{NIS} && exists $o->{miscellaneous}{autologuser});
- }
+ [ _("Choose the default user :") => {val => \$o->{miscellaneous}{autologuser}, list => \@users, not_edit => 1} ])
+ or delete $o->{miscellaneaous}{autologuser};
+ }
+ any::setAutologin($prefix, $o->{miscellaneous}{autologuser}, "kde");
+ }
run_program::rooted($prefix, "chkconfig", "--del", "gpm") if $o->{mouse}{device} =~ /ttyS/ && !$::isStandalone;
}
}
diff --git a/perl-install/any.pm b/perl-install/any.pm
index ec38ba7b1..7f59db74a 100644
--- a/perl-install/any.pm
+++ b/perl-install/any.pm
@@ -200,10 +200,11 @@ _("Default") => { val => \$default, type => 'bool' },
}
sub setAutologin {
- my ($prefix, $user, $wm) = @_;
- my $f="$prefix/etc/X11/xdm/xdm_config";
- substInFile { s/^(DisplayManager._0.autoUser).*\n//; $_ .= "DisplayManager._0.autoUser:\t$user\n" if eof } $f;
- substInFile { s/^(DisplayManager._0.autoString).*\n//; $_ .= "DisplayManager._0.autoString:\t$wm\n" if eof } $f;
+ my ($prefix, $user, $wm) = @_;
+ my $f = "$prefix/etc/X11/xdm/xdm_config";
+ my $t1 = "DisplayManager._0.autoUser:";
+ my $t2 = "DisplayManager._0.autoString:";
+ substInFile { s/^(\Q$t1\E|\Q$t2\E).*\n//; $_ .= "$t1\t$user\n$t2\t$wm\n" if eof && $user } $f;
# (dam's) : a patch for gdm is being done.
}
diff --git a/perl-install/fsedit.pm b/perl-install/fsedit.pm
index 5df4cb109..cee6f88ff 100644
--- a/perl-install/fsedit.pm
+++ b/perl-install/fsedit.pm
@@ -443,11 +443,8 @@ sub verifyHds {
$hd->{primary} = { normal => [ grep { $hd->{device} eq $_->{rootDevice} } @parts ] };
}
}
- my $fstab = [ get_fstab(@$hds) ];
- if (is_empty_array_ref($fstab) && $readonly) {
- die _("You don't have any partitions!");
- }
- ($hds, $fstab, $ok);
+ $readonly && get_fstab(@$hds) == 0 and die _("You don't have any partitions!");
+ $ok;
}
#-######################################################################################
diff --git a/perl-install/install2.pm b/perl-install/install2.pm
index f7f6e2ccf..07301f810 100644
--- a/perl-install/install2.pm
+++ b/perl-install/install2.pm
@@ -224,8 +224,6 @@ $o = $::o = {
};
-$::oo = {};
-
#-######################################################################################
#- Steps Functions
#- each step function are called with two arguments : clicked(because if you are a
@@ -538,7 +536,7 @@ sub main {
#- c::unlimit_core() unless $::testing;
- my ($cfg, $patch);
+ my ($cfg, $patch, @auto);
my %cmdline; map {
my ($n, $v) = split '=';
$cmdline{$n} = $v || 1;
@@ -559,9 +557,9 @@ sub main {
map_each {
my ($n, $v) = @_;
my $f = ${{
- oem => sub { $::oo->{oem} = $v },
+ oem => sub { $o->{oem} = $v },
lang => sub { $o->{lang} = $v },
- flang => sub { $o->{lang} = $::oo->{lang} = $v },
+ flang => sub { $o->{lang} = $v ; push @auto, 'selectLanguage' },
method => sub { $o->{method} = $v },
pcmcia => sub { $o->{pcmcia} = $v },
vga16 => sub { $o->{vga16} = $v },
@@ -569,7 +567,7 @@ sub main {
expert => sub { $::expert = 1; $::beginner = 0 },
beginner => sub { $::beginner = $v },
class => sub { $o->{installClass} = $v },
- fclass => sub { $o->{installClass} = $::oo->{installClass} = $v },
+ fclass => sub { $o->{installClass} = $v; push @auto, "selectInstallClass" },
lnx4win => sub { $o->{lnx4win} = 1 },
readonly => sub { $o->{partitioning}{readonly} = $v ne "0" },
display => sub { $o->{display} = $v },
@@ -597,6 +595,9 @@ sub main {
$o->{method} ||= "cdrom";
$o->{mkbootdisk} = 0;
}
+ if ($o->{oem}) {
+ push @auto, 'exitInstall', 'selectMouse', 'timeConfig';
+ }
unless ($::testing) {
unlink $_ foreach ( $o->{pcmcia} ? () : ("/sbin/install"), #- #- install include cardmgr!
@@ -674,6 +675,12 @@ sub main {
$o->{interactive} = "newt";
require install_steps_newt;
}
+ foreach (@auto) {
+ eval "undef *" . (!/::/ && "install_steps_interactive::") . $_;
+ my $s = $o->{steps}{/::(.*)/ ? $1 : $_} or next;
+ $s->{hidden} = 1;
+ }
+
$::o = $o = $o_;
#- get stage1 network configuration if any.
diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm
index 3fd665cd4..f7743aa04 100644
--- a/perl-install/install_any.pm
+++ b/perl-install/install_any.pm
@@ -243,8 +243,9 @@ sub getAvailableSpace {
sub getAvailableSpace_mounted {
my ($prefix) = @_;
my $dir = -d "$prefix/usr" ? "$prefix/usr" : "$prefix";
- my ($free, undef) = common::df($dir) or return;
- $free || 1;
+ my (undef, $free) = common::df($dir) or return;
+ log::l("getAvailableSpace_mounted $free");
+ $free * 1024 || 1;
}
sub getAvailableSpace_raw {
my ($fstab) = @_;
@@ -323,20 +324,21 @@ sub addToBeDone(&$) {
sub getHds {
my ($o) = @_;
- my ($ok, $ok2) = 1;
+ my ($ok, $ok2) = (1, 1);
+ my $flags = $o->{partitioning};
my @drives = detect_devices::hds();
# add2hash_($o->{partitioning}, { readonly => 1 }) if partition_table_raw::typeOfMBR($drives[0]{device}) eq 'system_commander';
getHds:
- $o->{hds} = catch_cdie { fsedit::hds(\@drives, $o->{partitioning}) }
+ $o->{hds} = catch_cdie { fsedit::hds(\@drives, $flags) }
sub {
log::l("error reading partition table: $@");
my ($err) = $@ =~ /(.*) at /;
$@ =~ /overlapping/ and $o->ask_warn('', $@), return 1;
$o->ask_okcancel(_("Error"),
[_("I can't read your partition table, it's too corrupted for me :(
-I'll try to go on blanking bad partitions"), $err]) unless $o->{partitioning}{readonly};
+I'll try to go on blanking bad partitions"), $err]) unless $flags->{readonly};
$ok = 0; 1
};
@@ -345,20 +347,19 @@ I'll try to go on blanking bad partitions"), $err]) unless $o->{partitioning}{re
goto getHds;
}
- ($o->{hds}, $o->{fstab}, $ok2) = fsedit::verifyHds($o->{hds}, $o->{partitioning}{readonly}, $ok);
+ $ok2 = fsedit::verifyHds($o->{hds}, $flags->{readonly}, $ok)
+ unless $flags->{clearall} || $flags->{clear};
+ $o->{fstab} = [ fsedit::get_fstab(@{$o->{hds}}) ];
fs::check_mounted($o->{fstab});
fs::merge_fstabs($o->{fstab}, $o->{manualFstab});
- $o->{partitioning}{clearall} and return 1;
$o->ask_warn('',
_("DiskDrake failed to read correctly the partition table.
-Continue at your own risk!")) if !$ok2 && $ok && !$o->{partitioning}{readonly};
+Continue at your own risk!")) if !$ok2 && $ok && !$flags->{readonly};
my @win = grep { isFat($_) && isFat({ type => fsedit::typeOfPart($_->{device}) }) } @{$o->{fstab}};
-# my @nt = grep { isNT($_) && isNT( { type => fsedit::typeOfPart($_->{device}) }) } @{$o->{fstab}};
log::l("win parts: ", join ",", map { $_->{device} } @win) if @win;
-# log::l("nt parts: ", join ",", map { $_->{device} } @nt) if @nt;
if (@win == 1) {
$win[0]{mntpoint} = "/mnt/windows";
} else {
diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm
index dfae6ebc1..8df7f94b5 100644
--- a/perl-install/install_steps.pm
+++ b/perl-install/install_steps.pm
@@ -859,7 +859,7 @@ sub setupXfree {
require class_discard;
{ local $::testing = 0; #- unset testing
local $::auto = 1;
- local $::skiptest = 1;
+ $o->{X}{skiptest} = 1;
Xconfigurator::main($o->{prefix}, $o->{X}, class_discard->new, $o->{allowFB}, bool($o->{pcmcia}), sub {
$o->pkg_install("XFree86-$_[0]");
});
@@ -927,6 +927,9 @@ sub generateAutoInstFloppy($) {
}
#------------------------------------------------------------------------------
+sub exitInstall { install_any::unlockCdrom }
+
+#------------------------------------------------------------------------------
sub hasNetwork {
my ($o) = @_;
diff --git a/perl-install/install_steps_auto_install.pm b/perl-install/install_steps_auto_install.pm
index 8f92edb49..4c7c426e3 100644
--- a/perl-install/install_steps_auto_install.pm
+++ b/perl-install/install_steps_auto_install.pm
@@ -64,6 +64,7 @@ sub exitInstall {
my $O = bless $o, "install_steps_gtk";
$O->exitInstall($alldone);
} else {
+ install_steps::exitInstall;
print "\a";
print "Auto installation complete\n";
print "Press <Enter> to reboot\n";
diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm
index e1b00d381..e3116ddac 100644
--- a/perl-install/install_steps_gtk.pm
+++ b/perl-install/install_steps_gtk.pm
@@ -184,9 +184,10 @@ sub selectInstallClass1 {
#------------------------------------------------------------------------------
sub selectMouse {
my ($o, $force) = @_;
+ my $old = $o->{mouse}{XMOUSETYPE};
$o->SUPER::selectMouse($force);
- if (!$::testing) {
+ if ($old ne $o->{mouse}{XMOUSETYPE} && !$::testing) {
log::l("telling X server to use another mouse");
eval { commands::modprobe("serial") } if $o->{mouse}{device} =~ /ttyS/;
symlinkf($o->{mouse}{device}, "/dev/mouse");
@@ -763,10 +764,7 @@ sub create_steps_window {
$w->show;
my @steps_icons = map { [ gtkcreate_xpm($w->{window}, "$ENV{SHARE_PATH}/step-$_.xpm") ] } qw(green orange red);
-
my $style = Gtk::Widget->get_default_style->copy;
- print $style->fg('normal');
- print $style->white;
gtkadd($w->{window},
gtkpack_(new Gtk::VBox(0,0),
diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm
index 0291af4b4..523ccd59a 100644
--- a/perl-install/install_steps_interactive.pm
+++ b/perl-install/install_steps_interactive.pm
@@ -56,7 +56,7 @@ sub selectLanguage($) {
_("Please, choose a language to use."),
# the translation may be used for the help
[ lang::list() ],
- lang::lang2text($o->{lang}))) unless $::oo->{lang};
+ lang::lang2text($o->{lang})));
install_steps::selectLanguage($o);
#- $o->{useless_thing_accepted} = $o->ask_from_list_('',
@@ -105,11 +105,6 @@ sub selectInstallClass1 {
sub selectInstallClass($@) {
my ($o, @classes) = @_;
- if ($::oo->{installClass}) {
- delete $::o->{mouse}{unsafe} if $::oo->{oem};
- return install_steps::selectInstallClass($o);
- }
-
my %c = my @c = (
$::corporate ? () : (
_("Automated") => "beginner",
@@ -158,7 +153,7 @@ sub selectMouse {
my $name = $o->ask_from_list_('', _("Please, choose the type of your mouse."), [ mouse::names() ], $o->{mouse}{FULLNAME});
$o->{mouse} = mouse::name2mouse($name);
}
- $o->{mouse}{XEMU3} = 'yes' if $o->{mouse}{nbuttons} < 3; #- if $o->{mouse}{nbuttons} < 3 && $o->ask_yesorno('', _("Emulate third button?"), 1);
+ $o->{mouse}{XEMU3} = 'yes' if $o->{mouse}{nbuttons} < 3;
if ($force && $o->{mouse}{device} eq "ttyS") {
$o->set_help('selectSerialPort');
@@ -636,7 +631,7 @@ sub timeConfig {
my ($o, $f, $clicked) = @_;
require timezone;
- $o->{timezone}{timezone} = $o->ask_from_treelist('', _("Which is your timezone?"), '/', [ timezone::getTimeZones($::g_auto_install ? '' : $o->{prefix}) ], $o->{timezone}{timezone}) if !$::oo->{oem} || $clicked;
+ $o->{timezone}{timezone} = $o->ask_from_treelist('', _("Which is your timezone?"), '/', [ timezone::getTimeZones($::g_auto_install ? '' : $o->{prefix}) ], $o->{timezone}{timezone}) if $clicked;
$o->{timezone}{UTC} = $o->ask_yesorno('', _("Is your hardware clock set to GMT?"), $o->{timezone}{UTC}) if $::expert || $clicked;
install_steps::timeConfig($o, $f);
}
@@ -960,7 +955,6 @@ Do you want to keep XFree 3.3?"), 0) if $::expert;
{ local $::testing = 0; #- unset testing
local $::auto = $::beginner;
local $::noauto = $::expert && !$o->ask_yesorno('', _("Try to find PCI devices?"), 1);
- local $::skiptest = $::oo->{oem}; #- if lang is forced, assume no test (HACK)
$::noauto = $::noauto; #- no warning
Xconfigurator::main($o->{prefix}, $o->{X}, $o, $o->{allowFB}, bool($o->{pcmcia}), sub {
@@ -1055,7 +1049,7 @@ _("Some steps are not completed.
Do you really want to quit now?"), 0);
- install_any::unlockCdrom;
+ install_steps::exitInstall;
$o->ask_warn('',
_("Congratulations, installation is complete.
@@ -1065,7 +1059,7 @@ For information on fixes which are available for this release of Linux-Mandrake,
consult the Errata available from http://www.linux-mandrake.com/.
Information on configuring your system is available in the post
-install chapter of the Official Linux-Mandrake User's Guide.")) if $alldone && !$::g_auto_install && !$::oo->{oem};
+install chapter of the Official Linux-Mandrake User's Guide.")) if $alldone && !$::g_auto_install;
}
diff --git a/perl-install/standalone/XFdrake b/perl-install/standalone/XFdrake
index 588925be6..072f770a1 100755
--- a/perl-install/standalone/XFdrake
+++ b/perl-install/standalone/XFdrake
@@ -28,14 +28,16 @@ local $_ = join '', @ARGV;
/-h/ and die "usage: XFdrake [--xf3] [--beginner] [--expert] [--auto] [--noauto] [--skiptest] [--testing]\n";
+my $i = {};
+
+$::isStandalone = 1;
$::force_xf3 = /-xf3/;
$::beginner = /-beginner/;
$::expert = /-expert/;
$::auto = /-auto/;
$::noauto = /-noauto/;
-$::skiptest = /-skiptest/;
$::testing = /-testing/;
-$::isStandalone = 1;
+$i->{skiptest} = /-skiptest/;
my $f = "/usr/X11R6/lib/X11/Cards";
-e $f or system("urpmi --auto XFree86 XFree86-75dpi-fonts");
@@ -47,7 +49,7 @@ my $in = vnew interactive('su');
system("mount /proc 2>/dev/null"); # ensure /proc is mounted for pci probing
-my $i = $0 =~ Xdrakres ? Xconfig::getinfoFromXF86Config() : {};
+Xconfig::getinfoFromXF86Config($i) if $0 =~ Xdrakres;
Xconfig::getinfo($i);
Xconfigurator::main('', $i, $in, 0, -e "/etc/pcmcia", sub { system("urpmi --auto XFree86-$_[0]") });