diff options
author | Oliver Tappe | 2008-02-02 23:39:34 +0100 |
---|---|---|
committer | Oliver Tappe | 2008-02-02 23:39:34 +0100 |
commit | 0076eb4a3f8979de8bc99a6befab280e5d78eb4a (patch) | |
tree | 4b9a857ea70fd25e69a82cbca9dfc764d2ac905d /os-plugins/plugins | |
parent | * added support for creating only the initramfs for the systems that (diff) | |
download | core-0076eb4a3f8979de8bc99a6befab280e5d78eb4a.tar.gz core-0076eb4a3f8979de8bc99a6befab280e5d78eb4a.tar.xz core-0076eb4a3f8979de8bc99a6befab280e5d78eb4a.zip |
* fixed bugs that stopped new-style initramfs from working
* added support to new-style initramfs generator for integrating the
active plugins into the initramfs
With these fixes, I have been able to boot a cloned suse-10.2 into KDM
with both bootsplash- and displaymanager-theme working.
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1510 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'os-plugins/plugins')
-rw-r--r-- | os-plugins/plugins/theme/OpenSLX/OSPlugin/theme.pm | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/os-plugins/plugins/theme/OpenSLX/OSPlugin/theme.pm b/os-plugins/plugins/theme/OpenSLX/OSPlugin/theme.pm index c6635ccb..7de608af 100644 --- a/os-plugins/plugins/theme/OpenSLX/OSPlugin/theme.pm +++ b/os-plugins/plugins/theme/OpenSLX/OSPlugin/theme.pm @@ -111,4 +111,60 @@ sub getAttrInfo }; } +sub copyRequiredFilesIntoInitramfs +{ + my $self = shift; + my $targetPath = shift; + my $attrs = shift; + my $makeInitRamFSEngine = shift; + + my $themeDir = "$openslxConfig{'base-path'}/share/themes"; + my $splashTheme = $attrs->{'theme::splash'} || ''; + if ($splashTheme) { + my $splashThemeDir = "$themeDir/$splashTheme/bootsplash"; + if (-d $splashThemeDir) { + my $splashyPath = "$openslxConfig{'base-path'}/share/splashy"; + $makeInitRamFSEngine->addCMD( + "cp -p $splashyPath/* $targetPath/bin/" + ); + $makeInitRamFSEngine->addCMD( + "mkdir -p $targetPath/etc/splashy" + ); + $makeInitRamFSEngine->addCMD( + "cp -a $splashThemeDir/* $targetPath/etc/splashy/" + ); + } + } + else { + $splashTheme = '<none>'; + } + + my $displayManagerTheme = $attrs->{'theme::displaymanager'} || ''; + if ($displayManagerTheme) { + my $displayManagerThemeDir + = "$themeDir/$displayManagerTheme/displaymanager"; + if (-d $displayManagerThemeDir) { + $makeInitRamFSEngine->addCMD( + "mkdir -p $targetPath/usr/share/themes" + ); + $makeInitRamFSEngine->addCMD( + "cp -a $displayManagerThemeDir $targetPath/usr/share/themes/" + ); + } + } + else { + $displayManagerTheme = '<none>'; + } + + vlog( + 0, + _tr( + "theme-plugin: bootsplash=%s displaymanager=%s", + $splashTheme, $displayManagerTheme + ) + ); + + return; +} + 1; |