From 5b86f0e29fe34ef58825785b3ea295ab0f2dda4f Mon Sep 17 00:00:00 2001 From: Christophe Fergeau Date: Wed, 23 Sep 2009 12:17:47 +0000 Subject: refine plymouth support --- lib/MDV/Draklive/Initrd.pm | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) (limited to 'lib') diff --git a/lib/MDV/Draklive/Initrd.pm b/lib/MDV/Draklive/Initrd.pm index bffc684..dcd5361 100644 --- a/lib/MDV/Draklive/Initrd.pm +++ b/lib/MDV/Draklive/Initrd.pm @@ -190,23 +190,10 @@ sub create_media_specific_initrd { uniq(map { list_modules::dependencies_closure($_) } @$extra_modules); create_initrd_scriptlet($live, $media, @extra_modules_closure, @additional_modules); - - my $plymouth_theme_name = basename(dirname(expand_symlinks($root . "/usr/share/plymouth/themes/default.plymouth"))); - my $plymouth_theme_path = "/usr/share/plymouth/themes/" . $plymouth_theme_name; - print "Copying plymouth theme $plymouth_theme_name\n"; - mkdir_p($initrd_tree . "/usr/share/plymouth/themes"); - cp_af($root . $plymouth_theme_path, $initrd_tree . $plymouth_theme_path); - - my $plymouth_module_name = `grep "ModuleName *= *" $root/usr/share/plymouth/themes/$plymouth_theme_name/$plymouth_theme_name.plymouth | sed 's/ModuleName *= *//'`; - chomp $plymouth_module_name; - foreach (qw(/sbin/plymouthd /bin/plymouth /usr/share/plymouth/themes/text/text.plymouth /usr/share/plymouth/themes/details/details.plymouth /usr/share/icons/large/mandriva.png /etc/mandriva-release /usr/share/plymouth/themes/default.plymouth ), "/usr/$lib_prefix/plymouth/text.so", "/usr/$lib_prefix/plymouth/details.so", "/usr/$lib_prefix/plymouth/$plymouth_module_name.so") { - inst_initrd_file ($root, $initrd_tree, $_); - } + add_splash($live, $initrd_tree); print "Compressing initrd\n"; - compress_initrd_tree($live, $initrd_tree, $initrd); - add_splash($live, $initrd); } sub create_initrd_scriptlet { @@ -286,17 +273,21 @@ sub compress_initrd_tree { } sub add_splash { - my ($live, $initrd) = @_; + my ($live, $initrd_tree) = @_; if ($live->{system}{vga_mode} && $live->{system}{splash} ne 'no') { - require bootloader; - my $tmp_initrd = '/tmp/initrd.gz'; - cp_f($initrd, $live->get_system_root . $tmp_initrd); - { - local $::prefix = $live->get_system_root; - bootloader::add_boot_splash($tmp_initrd, $live->{system}{vga_mode}); + my $root = $live->get_system_root(); + + my $plymouth_theme_name = basename(dirname(expand_symlinks($root . "/usr/share/plymouth/themes/default.plymouth"))); + my $plymouth_theme_path = "/usr/share/plymouth/themes/" . $plymouth_theme_name; + print "Copying plymouth theme $plymouth_theme_name\n"; + mkdir_p($initrd_tree . "/usr/share/plymouth/themes"); + cp_af($root . $plymouth_theme_path, $initrd_tree . $plymouth_theme_path); + + my $plymouth_module_name = `grep "ModuleName *= *" $root/usr/share/plymouth/themes/$plymouth_theme_name/$plymouth_theme_name.plymouth | sed 's/ModuleName *= *//'`; + chomp $plymouth_module_name; + foreach (qw(/sbin/plymouthd /bin/plymouth /usr/share/plymouth/themes/text/text.plymouth /usr/share/plymouth/themes/details/details.plymouth /usr/share/icons/large/mandriva.png /etc/mandriva-release /usr/share/plymouth/themes/default.plymouth ), "/usr/$lib_prefix/plymouth/text.so", "/usr/$lib_prefix/plymouth/details.so", "/usr/$lib_prefix/plymouth/$plymouth_module_name.so") { + inst_initrd_file ($root, $initrd_tree, $_); } - cp_f($live->get_system_root . $tmp_initrd, $initrd); - unlink($live->get_system_root . $tmp_initrd); } } -- cgit v1.2.1