summaryrefslogtreecommitdiffstats
path: root/installer/OpenSLX/OSSetup/Distro
diff options
context:
space:
mode:
Diffstat (limited to 'installer/OpenSLX/OSSetup/Distro')
-rw-r--r--installer/OpenSLX/OSSetup/Distro/Any_Clone.pm8
-rw-r--r--installer/OpenSLX/OSSetup/Distro/Base.pm428
-rw-r--r--installer/OpenSLX/OSSetup/Distro/Debian.pm134
-rw-r--r--installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm40
-rw-r--r--installer/OpenSLX/OSSetup/Distro/Fedora.pm28
-rw-r--r--installer/OpenSLX/OSSetup/Distro/Gentoo.pm50
-rw-r--r--installer/OpenSLX/OSSetup/Distro/SUSE.pm68
-rw-r--r--installer/OpenSLX/OSSetup/Distro/Ubuntu.pm108
8 files changed, 432 insertions, 432 deletions
diff --git a/installer/OpenSLX/OSSetup/Distro/Any_Clone.pm b/installer/OpenSLX/OSSetup/Distro/Any_Clone.pm
index 9f3f54cc..005c0355 100644
--- a/installer/OpenSLX/OSSetup/Distro/Any_Clone.pm
+++ b/installer/OpenSLX/OSSetup/Distro/Any_Clone.pm
@@ -9,7 +9,7 @@
# General information about OpenSLX can be found at http://openslx.org/
# -----------------------------------------------------------------------------
# Any_Clone.pm
-# - provides generic clone-only overrides of the OpenSLX OSSetup API.
+# - provides generic clone-only overrides of the OpenSLX OSSetup API.
# -----------------------------------------------------------------------------
package OpenSLX::OSSetup::Distro::Any_Clone;
@@ -23,9 +23,9 @@ use base qw(OpenSLX::OSSetup::Distro::Base);
################################################################################
sub new
{
- my $class = shift;
- my $self = {};
- return bless $self, $class;
+ my $class = shift;
+ my $self = {};
+ return bless $self, $class;
}
1; \ No newline at end of file
diff --git a/installer/OpenSLX/OSSetup/Distro/Base.pm b/installer/OpenSLX/OSSetup/Distro/Base.pm
index 64d8d43b..d2931046 100644
--- a/installer/OpenSLX/OSSetup/Distro/Base.pm
+++ b/installer/OpenSLX/OSSetup/Distro/Base.pm
@@ -9,14 +9,14 @@
# General information about OpenSLX can be found at http://openslx.org/
# -----------------------------------------------------------------------------
# Base.pm
-# - provides empty base of the OpenSLX OSSetup API.
+# - provides empty base of the OpenSLX OSSetup API.
# -----------------------------------------------------------------------------
package OpenSLX::OSSetup::Distro::Base;
use strict;
use warnings;
-our $VERSION = 1.01; # API-version . implementation-version
+our $VERSION = 1.01; # API-version . implementation-version
use Fcntl qw(:DEFAULT :flock);
use File::Basename;
@@ -28,88 +28,88 @@ use OpenSLX::Utils;
################################################################################
sub new
{
- confess "Creating OpenSLX::OSSetup::System::Base-objects directly makes no sense!";
+ confess "Creating OpenSLX::OSSetup::System::Base-objects directly makes no sense!";
}
sub initialize
{
- my $self = shift;
- my $engine = shift;
-
- $self->{'engine'} = $engine;
-
- if ($engine->{'distro-name'} =~ m[x86_64]) {
- # be careful to only try installing 64-bit systems if actually
- # running on a 64-bit host, as otherwise we are going to fail later,
- # anyway:
- my $arch = `uname -m`;
- if ($?) {
- die _tr("unable to determine architecture of host system (%s)\n", $!);
- }
- if ($arch !~ m[x86_64]) {
- die _tr("you can't install a 64-bit system on a 32-bit host, sorry!\n");
- }
- }
-
- $self->{'stage1a-binaries'} = {
- "$openslxConfig{'base-path'}/share/busybox/busybox" => 'bin',
- };
-
- $self->{'stage1b-faked-files'} = [
- '/etc/mtab',
- ];
-
- $self->{'stage1c-faked-files'} = [
- ];
-
- $self->{'clone-filter'} = "
- - /var/tmp/*
- - /var/opt/openslx
- - /var/lib/vmware
- + /var
- - /usr/lib/vmware/modules/*
- + /usr
- - /tmp/*
- + /tmp
- - /sys/*
- + /sys
- + /sbin
- - /root/*
- + /root
- - /proc/*
- + /proc
- - /opt/openslx
- + /opt
- - /media/*
- + /media
- - /mnt/*
- + /mnt
- + /lib64
- + /lib
- - /home/*
- + /home
- - /etc/vmware/installer.sh
- - /etc/shadow*
- - /etc/samba/secrets.tdb
- - /etc/resolv.conf.*
- - /etc/opt/openslx
- - /etc/exports*
- - /etc/dxs
- + /etc
- - /dev/*
- + /dev
- + /boot
- + /bin
- - /*
- - .svn
- - .*.cmd
- - *~
- - *lost+found*
- - *.old
- - *.bak
- ";
-
- return;
+ my $self = shift;
+ my $engine = shift;
+
+ $self->{'engine'} = $engine;
+
+ if ($engine->{'distro-name'} =~ m[x86_64]) {
+ # be careful to only try installing 64-bit systems if actually
+ # running on a 64-bit host, as otherwise we are going to fail later,
+ # anyway:
+ my $arch = `uname -m`;
+ if ($?) {
+ die _tr("unable to determine architecture of host system (%s)\n", $!);
+ }
+ if ($arch !~ m[x86_64]) {
+ die _tr("you can't install a 64-bit system on a 32-bit host, sorry!\n");
+ }
+ }
+
+ $self->{'stage1a-binaries'} = {
+ "$openslxConfig{'base-path'}/share/busybox/busybox" => 'bin',
+ };
+
+ $self->{'stage1b-faked-files'} = [
+ '/etc/mtab',
+ ];
+
+ $self->{'stage1c-faked-files'} = [
+ ];
+
+ $self->{'clone-filter'} = "
+ - /var/tmp/*
+ - /var/opt/openslx
+ - /var/lib/vmware
+ + /var
+ - /usr/lib/vmware/modules/*
+ + /usr
+ - /tmp/*
+ + /tmp
+ - /sys/*
+ + /sys
+ + /sbin
+ - /root/*
+ + /root
+ - /proc/*
+ + /proc
+ - /opt/openslx
+ + /opt
+ - /media/*
+ + /media
+ - /mnt/*
+ + /mnt
+ + /lib64
+ + /lib
+ - /home/*
+ + /home
+ - /etc/vmware/installer.sh
+ - /etc/shadow*
+ - /etc/samba/secrets.tdb
+ - /etc/resolv.conf.*
+ - /etc/opt/openslx
+ - /etc/exports*
+ - /etc/dxs
+ + /etc
+ - /dev/*
+ + /dev
+ + /boot
+ + /bin
+ - /*
+ - .svn
+ - .*.cmd
+ - *~
+ - *lost+found*
+ - *.old
+ - *.bak
+ ";
+
+ return;
}
sub fixPrerequiredFiles
@@ -118,118 +118,118 @@ sub fixPrerequiredFiles
sub startSession
{
- my $self = shift;
- my $osDir = shift;
-
- # ensure that the session will be finished even if the script crashes:
- addCleanupFunction(
- "slxos-setup::distro::chroot", sub { $self->finishSession(); }
- );
-
- # make sure there's a /dev/zero, /dev/null and /dev/urandom
+ my $self = shift;
+ my $osDir = shift;
+
+ # ensure that the session will be finished even if the script crashes:
+ addCleanupFunction(
+ "slxos-setup::distro::chroot", sub { $self->finishSession(); }
+ );
+
+ # make sure there's a /dev/zero, /dev/null and /dev/urandom
# /dev/urandom for passwd chroot
- if (!-e "$osDir/dev" && !mkdir("$osDir/dev")) {
- die _tr("unable to create folder '%s' (%s)\n", "$osDir/dev", $!);
- }
- if (!-e "$osDir/dev/zero" && slxsystem("mknod $osDir/dev/zero c 1 5")) {
- die _tr("unable to create node '%s' (%s)\n", "$osDir/dev/zero", $!);
- }
- if (!-e "$osDir/dev/null" && slxsystem("mknod $osDir/dev/null c 1 3")) {
- die _tr("unable to create node '%s' (%s)\n", "$osDir/dev/null", $!);
- }
- if (!-e "$osDir/dev/urandom" && slxsystem("mknod $osDir/dev/urandom c 1 9")) {
- die _tr("unable to create node '%s' (%s)\n", "$osDir/dev/urandom", $!);
+ if (!-e "$osDir/dev" && !mkdir("$osDir/dev")) {
+ die _tr("unable to create folder '%s' (%s)\n", "$osDir/dev", $!);
+ }
+ if (!-e "$osDir/dev/zero" && slxsystem("mknod $osDir/dev/zero c 1 5")) {
+ die _tr("unable to create node '%s' (%s)\n", "$osDir/dev/zero", $!);
+ }
+ if (!-e "$osDir/dev/null" && slxsystem("mknod $osDir/dev/null c 1 3")) {
+ die _tr("unable to create node '%s' (%s)\n", "$osDir/dev/null", $!);
+ }
+ if (!-e "$osDir/dev/urandom" && slxsystem("mknod $osDir/dev/urandom c 1 9")) {
+ die _tr("unable to create node '%s' (%s)\n", "$osDir/dev/urandom", $!);
}
- # fake proc, depending on what is needed ...
- if (!-e "$osDir/proc" && !mkdir("$osDir/proc")) {
- die _tr("unable to create folder '%s' (%s)\n", "$osDir/proc", $!);
- }
- if (!-e "$osDir/proc/cpuinfo" && slxsystem("cp /proc/cpuinfo $osDir/proc/")) {
- die _tr("unable to copy file '%s' (%s)\n", "/proc/cpuinfo", $!);
- }
- # TODO: alternatively, we could mount proc, but that causes problems
- # when we are not able to umount it properly (which may happen
- # if 'umount' is not available in the chroot!)
- #
- # mount /proc
-# if (!-e "$osDir/proc") {
-# slxsystem("mkdir -p $osDir/proc");
-# }
-# if (slxsystem("mount -t proc proc $osDir/proc 2>/dev/null")) {
-# die _tr("unable to mount '%s' (%s)\n", "$osDir/proc", $!);
-# }
-
- # enter chroot jail
- chrootInto($osDir);
- $ENV{PATH} = join(':', @{$self->getDefaultPathList()});
-
- return;
+ # fake proc, depending on what is needed ...
+ if (!-e "$osDir/proc" && !mkdir("$osDir/proc")) {
+ die _tr("unable to create folder '%s' (%s)\n", "$osDir/proc", $!);
+ }
+ if (!-e "$osDir/proc/cpuinfo" && slxsystem("cp /proc/cpuinfo $osDir/proc/")) {
+ die _tr("unable to copy file '%s' (%s)\n", "/proc/cpuinfo", $!);
+ }
+ # TODO: alternatively, we could mount proc, but that causes problems
+ # when we are not able to umount it properly (which may happen
+ # if 'umount' is not available in the chroot!)
+ #
+ # mount /proc
+# if (!-e "$osDir/proc") {
+# slxsystem("mkdir -p $osDir/proc");
+# }
+# if (slxsystem("mount -t proc proc $osDir/proc 2>/dev/null")) {
+# die _tr("unable to mount '%s' (%s)\n", "$osDir/proc", $!);
+# }
+
+ # enter chroot jail
+ chrootInto($osDir);
+ $ENV{PATH} = join(':', @{$self->getDefaultPathList()});
+
+ return;
}
sub getDefaultPathList
{
- my $self = shift;
-
- return [ qw(
- /sbin
- /usr/sbin
- /usr/local/sbin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/bin/X11
- /usr/X11R6/bin
- /opt/kde3/bin
- /opt/gnome/bin
- ) ];
+ my $self = shift;
+
+ return [ qw(
+ /sbin
+ /usr/sbin
+ /usr/local/sbin
+ /usr/local/bin
+ /usr/bin
+ /bin
+ /usr/bin/X11
+ /usr/X11R6/bin
+ /opt/kde3/bin
+ /opt/gnome/bin
+ ) ];
}
sub finishSession
{
- my $self = shift;
-
- removeCleanupFunction('slxos-setup::distro::chroot');
+ my $self = shift;
+
+ removeCleanupFunction('slxos-setup::distro::chroot');
- # unmount /proc
-# if (slxsystem('ash', '-c', 'umount /proc 2>/dev/null')) {
-# die _tr("unable to unmount '%s' (%s)\n", "/proc", $!);
-# }
+ # unmount /proc
+# if (slxsystem('ash', '-c', 'umount /proc 2>/dev/null')) {
+# die _tr("unable to unmount '%s' (%s)\n", "/proc", $!);
+# }
- return;
+ return;
}
sub updateDistroConfig
{
- if (slxsystem("ldconfig")) {
- die _tr("unable to run ldconfig (%s)", $!);
- }
+ if (slxsystem("ldconfig")) {
+ die _tr("unable to run ldconfig (%s)", $!);
+ }
}
sub pickKernelFile
{
- my $self = shift;
- my $kernelPath = shift;
-
- my $newestKernelFile;
- my $newestKernelFileSortKey = '';
- foreach my $kernelFile (glob("$kernelPath/vmlinuz-*")) {
- next unless $kernelFile =~ m{
- vmlinuz-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?-(\d+(?:\.\d+)?)
- }x;
- my $sortKey
- = sprintf("%02d.%02d.%02d.%02d-%2.1f", $1, $2, $3, $4||0, $5);
- if ($newestKernelFileSortKey lt $sortKey) {
- $newestKernelFile = $kernelFile;
- $newestKernelFileSortKey = $sortKey;
- }
- }
-
- if (!defined $newestKernelFile) {
- die _tr("unable to pick a kernel-file from path '%s'!", $kernelPath);
- }
- return $newestKernelFile;
+ my $self = shift;
+ my $kernelPath = shift;
+
+ my $newestKernelFile;
+ my $newestKernelFileSortKey = '';
+ foreach my $kernelFile (glob("$kernelPath/vmlinuz-*")) {
+ next unless $kernelFile =~ m{
+ vmlinuz-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?-(\d+(?:\.\d+)?)
+ }x;
+ my $sortKey
+ = sprintf("%02d.%02d.%02d.%02d-%2.1f", $1, $2, $3, $4||0, $5);
+ if ($newestKernelFileSortKey lt $sortKey) {
+ $newestKernelFile = $kernelFile;
+ $newestKernelFileSortKey = $sortKey;
+ }
+ }
+
+ if (!defined $newestKernelFile) {
+ die _tr("unable to pick a kernel-file from path '%s'!", $kernelPath);
+ }
+ return $newestKernelFile;
}
sub preSystemInstallationHook
@@ -242,54 +242,54 @@ sub postSystemInstallationHook
sub setPasswordForUser
{
- my $self = shift;
- my $username = shift;
- my $password = shift;
-
- my $hashedPassword = $self->hashPassword($password);
-
- my $writePasswordFunction = sub {
- # now read, change and write shadow-file in atomic manner:
- my $shadowFile = '/etc/shadow';
- if (!-e $shadowFile) {
- spitFile( $shadowFile, '');
- }
- slxsystem("cp -r $shadowFile $shadowFile~");
- my $shadowFH;
- open($shadowFH, '+<', $shadowFile)
- or croak _tr("could not open file '%s'! (%s)", $shadowFile, $!);
- flock($shadowFH, LOCK_EX)
- or croak _tr("could not lock file '%s'! (%s)", $shadowFile, $!);
- my $lastChanged = int(time()/24/60/60);
- my $newEntry
- = "$username:$hashedPassword:$lastChanged:0:99999:7:::";
- my $content = do { local $/; <$shadowFH> };
- if ($content =~ m{^$username:}ims) {
- $content =~ s{^$username:.+?$}{$newEntry}ms;
- } else {
- $content .= "$newEntry\n";
- }
- seek($shadowFH, 0, 0)
- or croak _tr("could not seek file '%s'! (%s)", $shadowFile, $!);
- print $shadowFH $content
- or croak _tr("could not write to file '%s'! (%s)", $shadowFile, $!);
- close($shadowFH)
- or croak _tr("could not close file '%s'! (%s)", $shadowFile, $!);
- unlink "$shadowFile~";
- };
- $self->{engine}->callChrootedFunctionForVendorOS($writePasswordFunction);
+ my $self = shift;
+ my $username = shift;
+ my $password = shift;
+
+ my $hashedPassword = $self->hashPassword($password);
+
+ my $writePasswordFunction = sub {
+ # now read, change and write shadow-file in atomic manner:
+ my $shadowFile = '/etc/shadow';
+ if (!-e $shadowFile) {
+ spitFile( $shadowFile, '');
+ }
+ slxsystem("cp -r $shadowFile $shadowFile~");
+ my $shadowFH;
+ open($shadowFH, '+<', $shadowFile)
+ or croak _tr("could not open file '%s'! (%s)", $shadowFile, $!);
+ flock($shadowFH, LOCK_EX)
+ or croak _tr("could not lock file '%s'! (%s)", $shadowFile, $!);
+ my $lastChanged = int(time()/24/60/60);
+ my $newEntry
+ = "$username:$hashedPassword:$lastChanged:0:99999:7:::";
+ my $content = do { local $/; <$shadowFH> };
+ if ($content =~ m{^$username:}ims) {
+ $content =~ s{^$username:.+?$}{$newEntry}ms;
+ } else {
+ $content .= "$newEntry\n";
+ }
+ seek($shadowFH, 0, 0)
+ or croak _tr("could not seek file '%s'! (%s)", $shadowFile, $!);
+ print $shadowFH $content
+ or croak _tr("could not write to file '%s'! (%s)", $shadowFile, $!);
+ close($shadowFH)
+ or croak _tr("could not close file '%s'! (%s)", $shadowFile, $!);
+ unlink "$shadowFile~";
+ };
+ $self->{engine}->callChrootedFunctionForVendorOS($writePasswordFunction);
}
sub hashPassword
{
- my $self = shift;
- my $password = shift;
-
- my $busyboxBin = $self->{engine}->{'busybox-binary'};
- my $hashedPassword = qx{$busyboxBin cryptpw -a md5 $password};
- chomp $hashedPassword;
-
- return $hashedPassword;
+ my $self = shift;
+ my $password = shift;
+
+ my $busyboxBin = $self->{engine}->{'busybox-binary'};
+ my $hashedPassword = qx{$busyboxBin cryptpw -a md5 $password};
+ chomp $hashedPassword;
+
+ return $hashedPassword;
}
1;
diff --git a/installer/OpenSLX/OSSetup/Distro/Debian.pm b/installer/OpenSLX/OSSetup/Distro/Debian.pm
index a514f10f..a9ba8281 100644
--- a/installer/OpenSLX/OSSetup/Distro/Debian.pm
+++ b/installer/OpenSLX/OSSetup/Distro/Debian.pm
@@ -9,7 +9,7 @@
# General information about OpenSLX can be found at http://openslx.org/
# -----------------------------------------------------------------------------
# Debian.pm
-# - provides Debian-specific overrides of the OpenSLX OSSetup API.
+# - provides Debian-specific overrides of the OpenSLX OSSetup API.
# -----------------------------------------------------------------------------
package OpenSLX::OSSetup::Distro::Debian;
@@ -26,91 +26,91 @@ use OpenSLX::Utils;
################################################################################
sub new
{
- my $class = shift;
- my $self = {};
- return bless $self, $class;
+ my $class = shift;
+ my $self = {};
+ return bless $self, $class;
}
sub initialize
{
- my $self = shift;
- my $engine = shift;
+ my $self = shift;
+ my $engine = shift;
- $self->SUPER::initialize($engine);
- $self->{'packager-type'} = 'dpkg';
- $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'apt';
- $self->{'stage1c-faked-files'} = [];
- return;
+ $self->SUPER::initialize($engine);
+ $self->{'packager-type'} = 'dpkg';
+ $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'apt';
+ $self->{'stage1c-faked-files'} = [];
+ return;
}
sub preSystemInstallationHook
{
- my $self = shift;
-
- $self->SUPER::preSystemInstallationHook();
+ my $self = shift;
+
+ $self->SUPER::preSystemInstallationHook();
- # fake required /dev-entries
- my %devInfo = (
- mem => { type => 'c', major => '1', minor => '1' },
- null => { type => 'c', major => '1', minor => '3' },
- zero => { type => 'c', major => '1', minor => '5' },
- random => { type => 'c', major => '1', minor => '8' },
- urandom => { type => 'c', major => '1', minor => '9' },
- kmsg => { type => 'c', major => '1', minor => '11' },
- console => { type => 'c', major => '5', minor => '1' },
- ptmx => { type => 'c', major => '5', minor => '2' },
- );
- foreach my $dev (keys %devInfo) {
- my $info = $devInfo{$dev};
- if (!-e "/dev/$dev") {
- if (slxsystem(
- "mknod /dev/$dev $info->{type} $info->{major} $info->{minor}"
- )) {
- croak(_tr("unable to create dev-node '%s'! (%s)", $dev, $!));
- }
- }
- }
- foreach my $devDir ('pts', 'shm', '.udevdb', '.udev') {
- if (!-e "/dev/$devDir") {
- if (slxsystem("mkdir -p /dev/$devDir")) {
- croak(_tr("unable to create dev-dir '%s'! (%s)", $devDir, $!));
- }
- }
- }
+ # fake required /dev-entries
+ my %devInfo = (
+ mem => { type => 'c', major => '1', minor => '1' },
+ null => { type => 'c', major => '1', minor => '3' },
+ zero => { type => 'c', major => '1', minor => '5' },
+ random => { type => 'c', major => '1', minor => '8' },
+ urandom => { type => 'c', major => '1', minor => '9' },
+ kmsg => { type => 'c', major => '1', minor => '11' },
+ console => { type => 'c', major => '5', minor => '1' },
+ ptmx => { type => 'c', major => '5', minor => '2' },
+ );
+ foreach my $dev (keys %devInfo) {
+ my $info = $devInfo{$dev};
+ if (!-e "/dev/$dev") {
+ if (slxsystem(
+ "mknod /dev/$dev $info->{type} $info->{major} $info->{minor}"
+ )) {
+ croak(_tr("unable to create dev-node '%s'! (%s)", $dev, $!));
+ }
+ }
+ }
+ foreach my $devDir ('pts', 'shm', '.udevdb', '.udev') {
+ if (!-e "/dev/$devDir") {
+ if (slxsystem("mkdir -p /dev/$devDir")) {
+ croak(_tr("unable to create dev-dir '%s'! (%s)", $devDir, $!));
+ }
+ }
+ }
- # replace /usr/sbin/invoke-rc.d by a dummy, in order to avoid a whole lot
- # of initscripts being started. Wishful thinking: there should be another
- # way to stop Debian from doing this, as this is not really very supportive
- # of folder-based installations (then again: I may simply be too stupid
- # to find out how it is supposed to work ...)
- rename('/usr/sbin/invoke-rc.d', '/usr/sbin/_invoke-rc.d');
- spitFile('/usr/sbin/invoke-rc.d', "#! /bin/sh\nexit 0\n");
- chmod 0755, '/usr/sbin/invoke-rc.d';
+ # replace /usr/sbin/invoke-rc.d by a dummy, in order to avoid a whole lot
+ # of initscripts being started. Wishful thinking: there should be another
+ # way to stop Debian from doing this, as this is not really very supportive
+ # of folder-based installations (then again: I may simply be too stupid
+ # to find out how it is supposed to work ...)
+ rename('/usr/sbin/invoke-rc.d', '/usr/sbin/_invoke-rc.d');
+ spitFile('/usr/sbin/invoke-rc.d', "#! /bin/sh\nexit 0\n");
+ chmod 0755, '/usr/sbin/invoke-rc.d';
}
sub postSystemInstallationHook
{
- my $self = shift;
+ my $self = shift;
- # restore /usr/sbin/invoke-rc.d
- rename('/usr/sbin/_invoke-rc.d', '/usr/sbin/invoke-rc.d');
- $self->SUPER::postSystemInstallationHook();
+ # restore /usr/sbin/invoke-rc.d
+ rename('/usr/sbin/_invoke-rc.d', '/usr/sbin/invoke-rc.d');
+ $self->SUPER::postSystemInstallationHook();
}
sub setPasswordForUser
{
- my $self = shift;
- my $username = shift;
- my $password = shift;
-
- # activate shadow passwords
- my $activateShadowFunction = sub {
- slxsystem('/sbin/shadowconfig', 'on');
- };
- $self->{engine}->callChrootedFunctionForVendorOS($activateShadowFunction);
-
- # invoke default behaviour
- $self->SUPER::setPasswordForUser($username, $password);
+ my $self = shift;
+ my $username = shift;
+ my $password = shift;
+
+ # activate shadow passwords
+ my $activateShadowFunction = sub {
+ slxsystem('/sbin/shadowconfig', 'on');
+ };
+ $self->{engine}->callChrootedFunctionForVendorOS($activateShadowFunction);
+
+ # invoke default behaviour
+ $self->SUPER::setPasswordForUser($username, $password);
}
-
+
1; \ No newline at end of file
diff --git a/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm b/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm
index 87c14534..7f390bc1 100644
--- a/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm
+++ b/installer/OpenSLX/OSSetup/Distro/Debian_3_1.pm
@@ -9,7 +9,7 @@
# General information about OpenSLX can be found at http://openslx.org/
# -----------------------------------------------------------------------------
# Debian_3_1.pm
-# - provides Debian-3.1-specific overrides of the OpenSLX OSSetup API.
+# - provides Debian-3.1-specific overrides of the OpenSLX OSSetup API.
# -----------------------------------------------------------------------------
package OpenSLX::OSSetup::Distro::Debian_3_1;
@@ -26,30 +26,30 @@ use OpenSLX::Utils;
################################################################################
sub preSystemInstallationHook
{
- my $self = shift;
-
- $self->SUPER::preSystemInstallationHook();
-
- # when the kernel package is being configured, it insists on trying to
- # create an initrd, which neither works nor makes sense in our environment.
- #
- # in order to circumvent this problem, we manually install initrd-tools
- # (which contains mkinitrd) ...
- $self->{engine}->{'meta-packager'}->installPackages('initrd-tools');
- # ... and replace /usr/sbin/mkinitrd with a dummy, in order to skip the
- # initrd-creation.
- rename('/usr/sbin/mkinitrd', '/usr/sbin/_mkinitrd');
- spitFile('/usr/sbin/mkinitrd', "#! /bin/sh\ntouch \$2\n");
- chmod 0755, '/usr/sbin/mkinitrd';
+ my $self = shift;
+
+ $self->SUPER::preSystemInstallationHook();
+
+ # when the kernel package is being configured, it insists on trying to
+ # create an initrd, which neither works nor makes sense in our environment.
+ #
+ # in order to circumvent this problem, we manually install initrd-tools
+ # (which contains mkinitrd) ...
+ $self->{engine}->{'meta-packager'}->installPackages('initrd-tools');
+ # ... and replace /usr/sbin/mkinitrd with a dummy, in order to skip the
+ # initrd-creation.
+ rename('/usr/sbin/mkinitrd', '/usr/sbin/_mkinitrd');
+ spitFile('/usr/sbin/mkinitrd', "#! /bin/sh\ntouch \$2\n");
+ chmod 0755, '/usr/sbin/mkinitrd';
}
sub postSystemInstallationHook
{
- my $self = shift;
+ my $self = shift;
- # restore /usr/sbin/mkinitrd
- rename('/usr/sbin/_mkinitrd', '/usr/sbin/mkinitrd');
- $self->SUPER::postSystemInstallationHook();
+ # restore /usr/sbin/mkinitrd
+ rename('/usr/sbin/_mkinitrd', '/usr/sbin/mkinitrd');
+ $self->SUPER::postSystemInstallationHook();
}
1; \ No newline at end of file
diff --git a/installer/OpenSLX/OSSetup/Distro/Fedora.pm b/installer/OpenSLX/OSSetup/Distro/Fedora.pm
index 7fe4973c..0bc9ebdc 100644
--- a/installer/OpenSLX/OSSetup/Distro/Fedora.pm
+++ b/installer/OpenSLX/OSSetup/Distro/Fedora.pm
@@ -9,7 +9,7 @@
# General information about OpenSLX can be found at http://openslx.org/
# -----------------------------------------------------------------------------
# Fedora.pm
-# - provides Fedora-specific overrides of the OpenSLX OSSetup API.
+# - provides Fedora-specific overrides of the OpenSLX OSSetup API.
# -----------------------------------------------------------------------------
package OpenSLX::OSSetup::Distro::Fedora;
@@ -25,24 +25,24 @@ use OpenSLX::Basics;
################################################################################
sub new
{
- my $class = shift;
- my $self = {};
- return bless $self, $class;
+ my $class = shift;
+ my $self = {};
+ return bless $self, $class;
}
sub initialize
{
- my $self = shift;
- my $engine = shift;
+ my $self = shift;
+ my $engine = shift;
- $self->SUPER::initialize($engine);
- $self->{'packager-type'} = 'rpm';
- $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'yum';
- $self->{'stage1c-faked-files'} = [
- '/etc/fstab',
- '/etc/mtab',
- ];
- return;
+ $self->SUPER::initialize($engine);
+ $self->{'packager-type'} = 'rpm';
+ $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'yum';
+ $self->{'stage1c-faked-files'} = [
+ '/etc/fstab',
+ '/etc/mtab',
+ ];
+ return;
}
1; \ No newline at end of file
diff --git a/installer/OpenSLX/OSSetup/Distro/Gentoo.pm b/installer/OpenSLX/OSSetup/Distro/Gentoo.pm
index 4d1032f7..c49ba5d6 100644
--- a/installer/OpenSLX/OSSetup/Distro/Gentoo.pm
+++ b/installer/OpenSLX/OSSetup/Distro/Gentoo.pm
@@ -9,7 +9,7 @@
# General information about OpenSLX can be found at http://openslx.org/
# -----------------------------------------------------------------------------
# SUSE.pm
-# - provides SUSE-specific overrides of the OpenSLX OSSetup API.
+# - provides SUSE-specific overrides of the OpenSLX OSSetup API.
# -----------------------------------------------------------------------------
package OpenSLX::OSSetup::Distro::Gentoo;
@@ -25,34 +25,34 @@ use OpenSLX::Basics;
################################################################################
sub new
{
- my $class = shift;
- my $self = {};
- return bless $self, $class;
+ my $class = shift;
+ my $self = {};
+ return bless $self, $class;
}
sub pickKernelFile
{
- my $self = shift;
- my $kernelPath = shift;
-
- my $newestKernelFile;
- my $newestKernelFileSortKey = '';
- foreach my $kernelFile (glob("$kernelPath/kernel-genkernel-x86-*")) {
- next unless $kernelFile =~ m{
- x86-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?-(\d+(?:\.\d+)?)
- }x;
- my $sortKey
- = sprintf("%02d.%02d.%02d.%02d-%2.1f", $1, $2, $3, $4||0, $5);
- if ($newestKernelFileSortKey lt $sortKey) {
- $newestKernelFile = $kernelFile;
- $newestKernelFileSortKey = $sortKey;
- }
- }
-
- if (!defined $newestKernelFile) {
- die _tr("unable to pick a kernel-file from path '%s'!", $kernelPath);
- }
- return $newestKernelFile;
+ my $self = shift;
+ my $kernelPath = shift;
+
+ my $newestKernelFile;
+ my $newestKernelFileSortKey = '';
+ foreach my $kernelFile (glob("$kernelPath/kernel-genkernel-x86-*")) {
+ next unless $kernelFile =~ m{
+ x86-(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?-(\d+(?:\.\d+)?)
+ }x;
+ my $sortKey
+ = sprintf("%02d.%02d.%02d.%02d-%2.1f", $1, $2, $3, $4||0, $5);
+ if ($newestKernelFileSortKey lt $sortKey) {
+ $newestKernelFile = $kernelFile;
+ $newestKernelFileSortKey = $sortKey;
+ }
+ }
+
+ if (!defined $newestKernelFile) {
+ die _tr("unable to pick a kernel-file from path '%s'!", $kernelPath);
+ }
+ return $newestKernelFile;
}
1;
diff --git a/installer/OpenSLX/OSSetup/Distro/SUSE.pm b/installer/OpenSLX/OSSetup/Distro/SUSE.pm
index c6d81747..192ea3aa 100644
--- a/installer/OpenSLX/OSSetup/Distro/SUSE.pm
+++ b/installer/OpenSLX/OSSetup/Distro/SUSE.pm
@@ -9,7 +9,7 @@
# General information about OpenSLX can be found at http://openslx.org/
# -----------------------------------------------------------------------------
# SUSE.pm
-# - provides SUSE-specific overrides of the OpenSLX OSSetup API.
+# - provides SUSE-specific overrides of the OpenSLX OSSetup API.
# -----------------------------------------------------------------------------
package OpenSLX::OSSetup::Distro::SUSE;
@@ -25,61 +25,61 @@ use OpenSLX::Basics;
################################################################################
sub new
{
- my $class = shift;
- my $self = {};
- return bless $self, $class;
+ my $class = shift;
+ my $self = {};
+ return bless $self, $class;
}
sub initialize
{
- my $self = shift;
- my $engine = shift;
+ my $self = shift;
+ my $engine = shift;
- $self->SUPER::initialize($engine);
- $self->{'packager-type'} = 'rpm';
- $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'smart';
+ $self->SUPER::initialize($engine);
+ $self->{'packager-type'} = 'rpm';
+ $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'smart';
- if ($engine->{'action-type'} eq 'install') {
- # Inform SUSE RPMs that we're performing an installation - this is
- # only important for installations taking place in stage 1c:
- $ENV{YAST_IS_RUNNING} = "instsys";
- }
+ if ($engine->{'action-type'} eq 'install') {
+ # Inform SUSE RPMs that we're performing an installation - this is
+ # only important for installations taking place in stage 1c:
+ $ENV{YAST_IS_RUNNING} = "instsys";
+ }
- return;
+ return;
}
sub fixPrerequiredFiles
{
- my $self = shift;
- my $stage1cDir = shift;
+ my $self = shift;
+ my $stage1cDir = shift;
- chown(0, 0, "$stage1cDir/etc/group", "$stage1cDir/etc/passwd",
- "$stage1cDir/etc/shadow");
- return;
+ chown(0, 0, "$stage1cDir/etc/group", "$stage1cDir/etc/passwd",
+ "$stage1cDir/etc/shadow");
+ return;
}
sub updateDistroConfig
{
- my $self = shift;
+ my $self = shift;
- # invoke SuSEconfig in order to allow it to update the configuration:
- if (slxsystem('SuSEconfig')) {
- die _tr("unable to run SuSEconfig (%s)", $!);
- }
- $self->SUPER::updateDistroConfig();
- return;
+ # invoke SuSEconfig in order to allow it to update the configuration:
+ if (slxsystem('SuSEconfig')) {
+ die _tr("unable to run SuSEconfig (%s)", $!);
+ }
+ $self->SUPER::updateDistroConfig();
+ return;
}
sub hashPassword
{
- my $self = shift;
- my $password = shift;
-
- my $busyboxBin = $self->{engine}->{'busybox-binary'};
- my $hashedPassword = qx{$busyboxBin cryptpw -a blowfish '$password'};
- chomp $hashedPassword;
+ my $self = shift;
+ my $password = shift;
+
+ my $busyboxBin = $self->{engine}->{'busybox-binary'};
+ my $hashedPassword = qx{$busyboxBin cryptpw -a blowfish '$password'};
+ chomp $hashedPassword;
- return $hashedPassword;
+ return $hashedPassword;
}
1;
diff --git a/installer/OpenSLX/OSSetup/Distro/Ubuntu.pm b/installer/OpenSLX/OSSetup/Distro/Ubuntu.pm
index 4ab5abbc..5e7e41ea 100644
--- a/installer/OpenSLX/OSSetup/Distro/Ubuntu.pm
+++ b/installer/OpenSLX/OSSetup/Distro/Ubuntu.pm
@@ -9,7 +9,7 @@
# General information about OpenSLX can be found at http://openslx.org/
# -----------------------------------------------------------------------------
# Ubuntu.pm
-# - provides Ubuntu-specific overrides of the OpenSLX OSSetup API.
+# - provides Ubuntu-specific overrides of the OpenSLX OSSetup API.
# -----------------------------------------------------------------------------
package OpenSLX::OSSetup::Distro::Ubuntu;
@@ -26,75 +26,75 @@ use OpenSLX::Utils;
################################################################################
sub new
{
- my $class = shift;
- my $self = {};
- return bless $self, $class;
+ my $class = shift;
+ my $self = {};
+ return bless $self, $class;
}
sub initialize
{
- my $self = shift;
- my $engine = shift;
+ my $self = shift;
+ my $engine = shift;
- $self->SUPER::initialize($engine);
- $self->{'packager-type'} = 'dpkg';
- $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'apt';
- $self->{'stage1c-faked-files'} = [];
- return;
+ $self->SUPER::initialize($engine);
+ $self->{'packager-type'} = 'dpkg';
+ $self->{'meta-packager-type'} = $ENV{SLX_META_PACKAGER} || 'apt';
+ $self->{'stage1c-faked-files'} = [];
+ return;
}
sub preSystemInstallationHook
{
- my $self = shift;
-
- $self->SUPER::preSystemInstallationHook();
+ my $self = shift;
+
+ $self->SUPER::preSystemInstallationHook();
- # fake required /dev-entries
- my %devInfo = (
- mem => { type => 'c', major => '1', minor => '1' },
- null => { type => 'c', major => '1', minor => '3' },
- zero => { type => 'c', major => '1', minor => '5' },
- random => { type => 'c', major => '1', minor => '8' },
- urandom => { type => 'c', major => '1', minor => '9' },
- kmsg => { type => 'c', major => '1', minor => '11' },
- console => { type => 'c', major => '5', minor => '1' },
- ptmx => { type => 'c', major => '5', minor => '2' },
- );
- foreach my $dev (keys %devInfo) {
- my $info = $devInfo{$dev};
- if (!-e "/dev/$dev") {
- if (slxsystem(
- "mknod /dev/$dev $info->{type} $info->{major} $info->{minor}"
- )) {
- croak(_tr("unable to create dev-node '%s'! (%s)", $dev, $!));
- }
- }
- }
- foreach my $devDir ('pts', 'shm', '.udevdb', '.udev') {
- if (!-e "/dev/$devDir") {
- if (slxsystem("mkdir -p /dev/$devDir")) {
- croak(_tr("unable to create dev-dir '%s'! (%s)", $devDir, $!));
- }
- }
- }
+ # fake required /dev-entries
+ my %devInfo = (
+ mem => { type => 'c', major => '1', minor => '1' },
+ null => { type => 'c', major => '1', minor => '3' },
+ zero => { type => 'c', major => '1', minor => '5' },
+ random => { type => 'c', major => '1', minor => '8' },
+ urandom => { type => 'c', major => '1', minor => '9' },
+ kmsg => { type => 'c', major => '1', minor => '11' },
+ console => { type => 'c', major => '5', minor => '1' },
+ ptmx => { type => 'c', major => '5', minor => '2' },
+ );
+ foreach my $dev (keys %devInfo) {
+ my $info = $devInfo{$dev};
+ if (!-e "/dev/$dev") {
+ if (slxsystem(
+ "mknod /dev/$dev $info->{type} $info->{major} $info->{minor}"
+ )) {
+ croak(_tr("unable to create dev-node '%s'! (%s)", $dev, $!));
+ }
+ }
+ }
+ foreach my $devDir ('pts', 'shm', '.udevdb', '.udev') {
+ if (!-e "/dev/$devDir") {
+ if (slxsystem("mkdir -p /dev/$devDir")) {
+ croak(_tr("unable to create dev-dir '%s'! (%s)", $devDir, $!));
+ }
+ }
+ }
- # replace /usr/sbin/invoke-rc.d by a dummy, in order to avoid a whole lot
- # of initscripts being started. Wishful thinking: there should be another
- # way to stop Ubuntu from doing this, as this is not really very supportive
- # of folder-based installations (then again: I may simply be too stupid
- # to find out how it is supposed to work ...)
- rename('/usr/sbin/invoke-rc.d', '/usr/sbin/_invoke-rc.d');
- spitFile('/usr/sbin/invoke-rc.d', "#! /bin/sh\nexit 0\n");
- chmod 0755, '/usr/sbin/invoke-rc.d';
+ # replace /usr/sbin/invoke-rc.d by a dummy, in order to avoid a whole lot
+ # of initscripts being started. Wishful thinking: there should be another
+ # way to stop Ubuntu from doing this, as this is not really very supportive
+ # of folder-based installations (then again: I may simply be too stupid
+ # to find out how it is supposed to work ...)
+ rename('/usr/sbin/invoke-rc.d', '/usr/sbin/_invoke-rc.d');
+ spitFile('/usr/sbin/invoke-rc.d', "#! /bin/sh\nexit 0\n");
+ chmod 0755, '/usr/sbin/invoke-rc.d';
}
sub postSystemInstallationHook
{
- my $self = shift;
+ my $self = shift;
- # restore /usr/sbin/invoke-rc.d
- rename('/usr/sbin/_invoke-rc.d', '/usr/sbin/invoke-rc.d');
- $self->SUPER::postSystemInstallationHook();
+ # restore /usr/sbin/invoke-rc.d
+ rename('/usr/sbin/_invoke-rc.d', '/usr/sbin/invoke-rc.d');
+ $self->SUPER::postSystemInstallationHook();
}
1; \ No newline at end of file