summaryrefslogtreecommitdiffstats
path: root/perl-install/install_steps.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/install_steps.pm')
-rw-r--r--perl-install/install_steps.pm307
1 files changed, 0 insertions, 307 deletions
diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm
deleted file mode 100644
index 42dd72d17..000000000
--- a/perl-install/install_steps.pm
+++ /dev/null
@@ -1,307 +0,0 @@
-package install_steps;
-
-use diagnostics;
-use strict;
-
-#-######################################################################################
-#- misc imports
-#-######################################################################################
-use common qw(:file :system :common);
-use install_any qw(:all);
-use partition_table qw(:types);
-use detect_devices;
-use timezone;
-use modules;
-use run_program;
-use lilo;
-use lang;
-use keyboard;
-use printer;
-use pkgs;
-use log;
-use fsedit;
-use commands;
-use network;
-use fs;
-
-
-#-######################################################################################
-#- OO Stuff
-#-######################################################################################
-sub new($$) {
- my ($type, $o) = @_;
-
- bless $o, ref $type || $type;
- return $o;
-}
-
-#-######################################################################################
-#- In/Out Steps Functions
-#-######################################################################################
-sub enteringStep($$) {
- my ($o, $step) = @_;
- log::l("starting step `$step'");
-
- for (my $s = $o->{steps}{first}; $s; $s = $o->{steps}{$s}{next}) {
-
- next if $o->{steps}{$s}{done} && !$o->{steps}{$s}{redoable};
- next if $o->{steps}{$s}{reachable};
-
- my $reachable = 1;
- if (my $needs = $o->{steps}{$s}{needs}) {
- my @l = ref $needs ? @$needs : $needs;
- $reachable = min(map { $o->{steps}{$_}{done} || 0 } @l);
- }
- $o->{steps}{$s}{reachable} = 1 if $reachable;
- }
-}
-sub leavingStep($$) {
- my ($o, $step) = @_;
- log::l("step `$step' finished");
-
- $o->{steps}{$step}{reachable} = $o->{steps}{$step}{redoable};
-
- while (my $f = shift @{$o->{steps}{$step}{toBeDone} || []}) {
- eval { &$f() };
- $o->ask_warn(_("Error"), [
-_("An error occurred, i don't know how to handle it nicely,
-so continue at your own risk :("), $@ ]) if $@;
- }
-}
-
-sub errorInStep($$) { print "error :(\n"; exit 1 }
-sub kill_action {}
-
-
-#-######################################################################################
-#- Steps Functions
-#-######################################################################################
-#------------------------------------------------------------------------------
-sub selectLanguage {
- my ($o) = @_;
- lang::set($o->{lang});
-
- unless ($o->{keyboard_force}) {
- $o->{keyboard} = keyboard::lang2keyboard($o->{lang});
- selectKeyboard($o);
- }
-}
-#------------------------------------------------------------------------------
-sub selectKeyboard {
- my ($o) = @_;
- keyboard::setup($o->{keyboard})
-}
-#------------------------------------------------------------------------------
-sub selectPath {}
-#------------------------------------------------------------------------------
-sub selectInstallClass($@) {}
-#------------------------------------------------------------------------------
-sub setupSCSI { modules::load_thiskind('scsi') }
-#------------------------------------------------------------------------------
-sub doPartitionDisks($$) {
- my ($o, $hds) = @_;
- return if $::testing;
- partition_table::write($_) foreach @$hds;
-}
-
-#------------------------------------------------------------------------------
-sub rebootNeeded($) {
- my ($o) = @_;
- log::l("Rebooting...");
- exec "true";
-}
-
-sub choosePartitionsToFormat($$) {
- my ($o, $fstab) = @_;
-
- $_->{mntpoint} = "swap" foreach grep { isSwap($_) } @$fstab;
- $_->{toFormat} = $_->{mntpoint} &&
- ($_->{notFormatted} || $o->{partitioning}{autoformat}) foreach @$fstab;
-}
-
-sub formatPartitions {
- my $o = shift;
- foreach (@_) {
- fs::format_part($_) if $_->{toFormat};
- }
-}
-
-#------------------------------------------------------------------------------
-sub setPackages {
- my ($o, $install_classes) = @_;
- install_any::setPackages($o, $install_classes);
-}
-sub choosePackages($$$) {
- my ($o, $packages, $compss) = @_;
-}
-
-sub beforeInstallPackages {
- my ($o) = @_;
-
- network::add2hosts("$o->{prefix}/etc/hosts", "localhost.localdomain", "127.0.0.1");
- pkgs::init_db($o->{prefix}, $o->{isUpgrade});
-}
-
-sub installPackages($$) {
- my ($o, $packages) = @_;
- my $toInstall = [ grep { $_->{selected} && !$_->{installed} } values %$packages ];
- pkgs::install($o->{prefix}, $toInstall);
-}
-
-sub afterInstallPackages($) {
- my ($o) = @_;
-
- #- why not? cuz weather is nice today :-) [pixel]
- sync(); sync();
-
- $o->pcmciaConfig();
-}
-
-#------------------------------------------------------------------------------
-sub selectMouse($) {
- my ($o) = @_;
-}
-
-#------------------------------------------------------------------------------
-sub configureNetwork($) {
- my ($o) = @_;
- my $etc = "$o->{prefix}/etc";
-
- network::write_conf("$etc/sysconfig/network", $o->{netc});
- network::write_resolv_conf("$etc/resolv.conf", $o->{netc});
- network::write_interface_conf("$etc/sysconfig/network-scripts/ifcfg-$_->{DEVICE}", $_) foreach @{$o->{intf}};
- network::add2hosts("$etc/hosts", $o->{netc}{HOSTNAME}, map { $_->{IPADDR} } @{$o->{intf}});
- network::sethostname($o->{netc}) unless $::testing;
- network::addDefaultRoute($o->{netc}) unless $::testing;
- #-res_init(); #- reinit the resolver so DNS changes take affect
-}
-
-#------------------------------------------------------------------------------
-sub pcmciaConfig($) {
- my ($o) = @_;
- my $t = $o->{pcmcia};
- my $f = "$o->{prefix}/etc/sysconfig/pcmcia";
-
- #- should be set after installing the package above else the file will be renamed.
- setVarsInSh($f, {
- PCMCIA => $t ? "yes" : "no",
- PCIC => $t,
- PCIC_OPTS => "",
- CORE_OPTS => "",
- });
-}
-
-#------------------------------------------------------------------------------
-sub timeConfig {
- my ($o, $f) = @_;
- timezone::write($o->{prefix}, $o->{timezone}, $f);
-}
-
-#------------------------------------------------------------------------------
-sub servicesConfig {}
-#------------------------------------------------------------------------------
-sub printerConfig {
- my($o) = @_;
- if ($o->{printer}{complete}) {
-
- pkgs::select($o->{packages}, $o->{packages}{'rhs-printfilters'});
- $o->installPackages($o->{packages});
-
- printer::configure_queue($o->{printer});
- }
-}
-
-#------------------------------------------------------------------------------
-my @etc_pass_fields = qw(name password uid gid realname home shell);
-sub setRootPassword($) {
- my ($o) = @_;
- my %u = %{$o->{superuser}};
- my $p = $o->{prefix};
-
- $u{password} = crypt_($u{password}) if $u{password};
-
- my @lines = cat_(my $f = "$p/etc/passwd") or log::l("missing passwd file"), return;
-
- local *F;
- open F, "> $f" or die "failed to write file $f: $!\n";
- foreach (@lines) {
- if (/^root:/) {
- chomp;
- my %l; @l{@etc_pass_fields} = split ':';
- add2hash(\%u, \%l);
- $_ = join(':', @u{@etc_pass_fields}) . "\n";
- }
- print F $_;
- }
-}
-
-#------------------------------------------------------------------------------
-sub addUser($) {
- my ($o) = @_;
- my %u = %{$o->{user}};
- my $p = $o->{prefix};
- my @passwd = cat_("$p/etc/passwd");;
-
- !$u{name} || getpwnam($u{name}) and return;
-
- for ($u{uid} = 500; getpwuid($u{uid}); $u{uid}++) {}
- for ($u{gid} = 500; getgrgid($u{gid}); $u{gid}++) {}
- $u{home} ||= "/home/$u{name}";
-
- $u{password} = crypt_($u{password}) if $u{password};
-
- return if $::testing;
-
- local *F;
- open F, ">> $p/etc/passwd" or die "can't append to passwd file: $!";
- print F join(':', @u{@etc_pass_fields}), "\n";
-
- open F, ">> $p/etc/group" or die "can't append to group file: $!";
- print F "$u{name}::$u{gid}:\n";
-
- eval { commands::cp("-f", "$p/etc/skel", "$p$u{home}") }; $@ and log::l("copying of skel failed: $@"), mkdir("$p$u{home}", 0750);
- commands::chown_("-r", "$u{uid}.$u{gid}", "$p$u{home}");
-}
-
-#------------------------------------------------------------------------------
-sub createBootdisk($) {
- my ($o) = @_;
- my $dev = $o->{mkbootdisk} or return;
-
- my @l = detect_devices::floppies();
-
- $dev = shift @l || die _("no floppy available")
- if $dev eq "1"; #- special case meaning autochoose
-
- return if $::testing;
-
- lilo::mkbootdisk($o->{prefix}, install_any::kernelVersion(), $dev);
- $o->{mkbootdisk} = $dev;
-}
-
-#------------------------------------------------------------------------------
-sub setupBootloaderBefore {
- my ($o) = @_;
- add2hash($o->{bootloader} ||= {}, lilo::read($o->{prefix}, "/etc/lilo.conf"));
- lilo::suggest($o->{prefix}, $o->{bootloader}, $o->{hds}, $o->{fstab}, install_any::kernelVersion());
- $o->{bootloader}{keytable} ||= keyboard::kmap($o->{keyboard});
-}
-
-sub setupBootloader($) {
- my ($o) = @_;
- return if $::g_auto_install;
- lilo::install($o->{prefix}, $o->{bootloader});
-}
-
-#------------------------------------------------------------------------------
-sub setupXfree {
- my ($o) = @_;
-}
-
-#------------------------------------------------------------------------------
-sub exitInstall {}
-
-#-######################################################################################
-#- Wonderful perl :(
-#-######################################################################################
-1;