diff --git a/fix-crash.patch b/fix-crash.patch new file mode 100644 index 0000000..07160c5 --- /dev/null +++ b/fix-crash.patch @@ -0,0 +1,68 @@ +From 6ccedf7b6ecdc8314ed97355cfe5499fffb13a1e Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Thu, 1 Nov 2012 17:04:33 -0400 +Subject: [PATCH 1/2] main: if deactivate when already deactivated return + immediately + +We were trying to ignore second deactivate requests, but +were instead crashing because we're trying to use a nullified +trigger. + +This commit makes sure things don't go crashy when a user +does "plymouth deactivate" on an already deactivated plymouthd. +--- + src/main.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/src/main.c b/src/main.c +index 88e5002..60ca28f 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -1135,7 +1135,13 @@ static void + on_deactivate (state_t *state, + ply_trigger_t *deactivate_trigger) + { +- if ((state->deactivate_trigger != NULL) || state->is_inactive) ++ if (state->is_inactive) ++ { ++ ply_trigger_pull (deactivate_trigger, NULL); ++ return; ++ } ++ ++ if (state->deactivate_trigger != NULL) + { + ply_trigger_add_handler (state->deactivate_trigger, + (ply_trigger_handler_t) +-- +1.7.12.1 + + +From b3548ebaf76d222f56d6a7b34c5940b930d47609 Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Thu, 1 Nov 2012 17:16:07 -0400 +Subject: [PATCH 2/2] two-step: don't update progress when idle + +We've already reach a state where we aren't drawing anymore, etc, +so don't update progress and potentially fire off animations +that won't be seen. +--- + src/plugins/splash/two-step/plugin.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c +index 2998beb..541a108 100644 +--- a/src/plugins/splash/two-step/plugin.c ++++ b/src/plugins/splash/two-step/plugin.c +@@ -1067,6 +1067,9 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin, + if (plugin->state != PLY_BOOT_SPLASH_DISPLAY_NORMAL) + return; + ++ if (plugin->is_idle) ++ return; ++ + if (percent_done >= SHOW_ANIMATION_PERCENT) + { + if (plugin->stop_trigger == NULL) +-- +1.7.12.1 + diff --git a/plymouth.spec b/plymouth.spec index a5b7e20..bef429b 100644 --- a/plymouth.spec +++ b/plymouth.spec @@ -6,7 +6,7 @@ Summary: Graphical Boot Animation and Logger Name: plymouth Version: 0.8.8 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ Group: System Environment/Base Source0: http://freedesktop.org/software/plymouth/releases/%{name}-%{version}.tar.bz2 @@ -33,6 +33,8 @@ Obsoletes: plymouth-theme-pulser < 0.7.0-0.2009.05.08.2 Obsoletes: plymouth-gdm-hooks < 0.8.4-0.20101119.4 Obsoletes: plymouth-utils < 0.8.4-0.20101119.4 +Patch0: fix-crash.patch + %description Plymouth provides an attractive graphical boot animation in place of the text messages that normally get shown. Text @@ -240,6 +242,7 @@ Plymouth. It features a small spinner on a dark background. %prep %setup -q +%patch0 -p1 -b .fix-crash # Change the default theme sed -i -e 's/fade-in/charge/g' src/plymouthd.defaults @@ -504,6 +507,10 @@ fi %defattr(-, root, root) %changelog +* Thu Nov 01 2012 Ray Strode 0.8.8-2 +- Fix crash when deactivating multiple times + Related: #870695 + * Fri Oct 26 2012 Ray Strode 0.8.8-1 - Latest upstream release - includes systemd fixes and system update fixes