diff --git a/plymouth-0.6.0-fix-switchroot-failed.patch b/plymouth-0.6.0-fix-switchroot-failed.patch new file mode 100644 index 0000000..1de8707 --- /dev/null +++ b/plymouth-0.6.0-fix-switchroot-failed.patch @@ -0,0 +1,64 @@ +diff -up plymouth-0.6.0/src/main.c.fix-switchroot-failed plymouth-0.6.0/src/main.c +--- plymouth-0.6.0/src/main.c.fix-switchroot-failed 2008-11-06 10:43:41.000000000 -0500 ++++ plymouth-0.6.0/src/main.c 2008-11-06 18:12:51.000000000 -0500 +@@ -77,6 +77,7 @@ static ply_window_t *create_window (stat + const char *tty_name); + + static bool attach_to_running_session (state_t *state); ++static void on_escape_pressed (state_t *state); + + static void + on_session_output (state_t *state, +@@ -171,8 +172,11 @@ on_newroot (state_t *state, + chdir(root_dir); + chroot("."); + chdir("/"); +- ply_progress_load_cache (state->progress); +- ply_boot_splash_root_mounted (state->boot_splash); ++ if (state->boot_splash != NULL) ++ { ++ ply_progress_load_cache (state->progress); ++ ply_boot_splash_root_mounted (state->boot_splash); ++ } + } + + static void +@@ -356,6 +360,8 @@ on_hide_splash (state_t *state) + { + + ply_trace ("hiding boot splash"); ++ state->showing_details = false; ++ on_escape_pressed (state); + if (state->boot_splash != NULL) + ply_boot_splash_hide (state->boot_splash); + +@@ -384,11 +390,12 @@ on_quit (state_t *state, + if (state->boot_splash != NULL) + { + if (!retain_splash) +- on_hide_splash (state); +- else +- quit_splash (state); +- ply_boot_splash_free (state->boot_splash); +- state->boot_splash = NULL; ++ { ++ if (state->boot_splash != NULL) ++ ply_boot_splash_hide (state->boot_splash); ++ } ++ ++ quit_splash (state); + } + ply_trace ("exiting event loop"); + ply_event_loop_exit (state->loop, 0); +diff -up plymouth-0.6.0/src/plugins/splash/details/plugin.c.fix-switchroot-failed plymouth-0.6.0/src/plugins/splash/details/plugin.c +--- plymouth-0.6.0/src/plugins/splash/details/plugin.c.fix-switchroot-failed 2008-11-06 18:25:43.000000000 -0500 ++++ plymouth-0.6.0/src/plugins/splash/details/plugin.c 2008-11-06 18:25:47.000000000 -0500 +@@ -231,8 +231,6 @@ static void + uninitialize_window (ply_window_t *window, + ply_boot_splash_plugin_t *plugin) + { +- ply_window_clear_screen (window); +- + ply_window_set_keyboard_input_handler (window, NULL, NULL); + ply_window_set_backspace_handler (window, NULL, NULL); + ply_window_set_enter_handler (window, NULL, NULL); diff --git a/plymouth.spec b/plymouth.spec index 886801b..78aba1b 100644 --- a/plymouth.spec +++ b/plymouth.spec @@ -5,12 +5,14 @@ Summary: Plymouth Graphical Boot Animation and Logger Name: plymouth Version: 0.6.0 -Release: 0.2008.11.06.1%{?dist} +Release: 0.2008.11.06.2%{?dist} License: GPLv2+ Group: System Environment/Base Source0: http://freedesktop.org/software/plymouth/releases/%{name}-%{version}.tar.bz2 Source1: boot-duration Patch0: plymouth-allow-passing-plugin.patch +Patch1: plymouth-0.6.0-fix-switchroot-failed.patch + URL: http://freedesktop.org/software/plymouth/releases BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -152,7 +154,8 @@ where the graphical plugin's dependencies are undesirable. %prep %setup -q -%patch0 -p1 +%patch0 -p1 -b .allow-passing-plugin +%patch1 -p1 -b .fix-switchroot-failed %build %configure --enable-tracing --disable-tests --without-boot-entry \ @@ -305,6 +308,10 @@ fi %defattr(-, root, root) %changelog +* Thu Nov 6 2008 Ray Strode 0.6.0-0.2008.11.06.2 +- show details plugin on --hide-splash so people can see why the splash + got hidden. + * Thu Nov 6 2008 Ray Strode 0.6.0-0.2008.11.06.1 - Don't exit on plymouth --show-splash after sulogin - Properly retake console after that --show-splash