diff options
author | Oliver Tappe | 2007-07-25 18:59:50 +0200 |
---|---|---|
committer | Oliver Tappe | 2007-07-25 18:59:50 +0200 |
commit | 742a41b032a9cf2681df8b70bff17dceac6f533c (patch) | |
tree | 3627504a9a8de4ec830b2fda87cf4a0cfd237579 /installer/OpenSLX/OSExport/FileSystem/SquashFS.pm | |
parent | * reduced use of Config::General to object-oriented mode only, as it is (diff) | |
download | core-742a41b032a9cf2681df8b70bff17dceac6f533c.tar.gz core-742a41b032a9cf2681df8b70bff17dceac6f533c.tar.xz core-742a41b032a9cf2681df8b70bff17dceac6f533c.zip |
* fixed bug in check for required kernel modules for distros that do not
provide a vmlinuz-link (reported by Detlef Schulz)
* filled void requirements check for NFS
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1274 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer/OpenSLX/OSExport/FileSystem/SquashFS.pm')
-rw-r--r-- | installer/OpenSLX/OSExport/FileSystem/SquashFS.pm | 50 |
1 files changed, 4 insertions, 46 deletions
diff --git a/installer/OpenSLX/OSExport/FileSystem/SquashFS.pm b/installer/OpenSLX/OSExport/FileSystem/SquashFS.pm index 82c4fdda..196a9206 100644 --- a/installer/OpenSLX/OSExport/FileSystem/SquashFS.pm +++ b/installer/OpenSLX/OSExport/FileSystem/SquashFS.pm @@ -97,15 +97,11 @@ sub checkRequirements { my $self = shift; my $vendorOSPath = shift; - my $kernel = shift || 'vmlinuz'; - my $info = shift; - $kernel = basename(followLink("$vendorOSPath/boot/$kernel")); - if ($kernel !~ m[-(.+)$]) { - die _tr("unable to determine version of kernel '%s'!", $kernel); - } - my $kernelVer = $1; - my @blockMods; + # determine most appropriate kernel version ... + my $kernelVer = $self->_pickKernelVersion($vendorOSPath); + + # ... and check if that kernel-version provides all the required modules my @blockModNames = $self->{'block-device'}->requiredBlockDeviceModules(); foreach my $blockModName (@blockModNames) { my $blockMod = @@ -118,7 +114,6 @@ sub checkRequirements ); return; } - push @blockMods, $blockMod; } my $squashfsMod = $self->_locateKernelModule( $vendorOSPath, @@ -133,10 +128,6 @@ sub checkRequirements $kernelVer); return; } - push @blockMods, $squashfsMod; - if (defined $info) { - $info->{'kernel-mods'} = \@blockMods; - } return 1; } @@ -280,39 +271,6 @@ sub _mapRsyncFilter2Regex ); } -sub _locateKernelModule -{ - my $self = shift; - my $vendorOSPath = shift; - my $moduleName = shift; - my $defaultPaths = shift; - - vlog(1, _tr("locating kernel-module '%s'", $moduleName)); - # check default paths first: - foreach my $defPath (@$defaultPaths) { - vlog(2, "trying $defPath/$moduleName"); - my $target = followLink("$defPath/$moduleName", $vendorOSPath); - return $target unless !-e $target; - } - # use brute force to search for the newest incarnation of the module: - use File::Find; - my $location; - my $locationAge = 9999999; - vlog(2, "searching in $vendorOSPath/lib/modules"); - find sub { - return unless $_ eq $moduleName; - if (-M _ < $locationAge) { - $locationAge = -M _; - $location = $File::Find::name; - vlog(2, "located at $location (age=$locationAge days)"); - } - }, "$vendorOSPath/lib/modules"; - if (defined $location) { - return followLink($location, $vendorOSPath); - } - return; -} - sub _addBlockDeviceTagToExport { my $self = shift; |