[plymouth/f16] May fix stall at boot splash exit for some users

Ray Strode rstrode at fedoraproject.org
Thu Sep 6 19:26:10 UTC 2012


commit 0d49b64755e44123b016d3870660145ac1e24c5a
Author: Ray Strode <rstrode at redhat.com>
Date:   Thu Sep 6 15:25:43 2012 -0400

    May fix stall at boot splash exit for some users
    
    Resolves: #787512

 fix-stall-at-exit.patch |   61 +++++++++++++++++++++++++++++++++++++++++++++++
 plymouth.spec           |    9 ++++++-
 2 files changed, 69 insertions(+), 1 deletions(-)
---
diff --git a/fix-stall-at-exit.patch b/fix-stall-at-exit.patch
new file mode 100644
index 0000000..e17755c
--- /dev/null
+++ b/fix-stall-at-exit.patch
@@ -0,0 +1,61 @@
+From 1445b5a6bfb87957a918b69dca94a62d4a36af7a Mon Sep 17 00:00:00 2001
+From: "Dr. Tilmann Bubeck" <t.bubeck at reinform.de>
+Date: Wed, 2 May 2012 18:18:13 +0200
+Subject: [PATCH] two-step: quit properly when boot finishes while waiting for
+ password
+
+When the computer is progressing through its boot up process, plymouth
+calls into the splash plugin's on_boot_progress function at regular
+intervals with increasing values for "percent_done".  At some point, it
+gets to 90% done, and that's when two-step begins its finishing
+animation sequence.  As soon as this sequence finishes, two-step pulls
+its stop trigger, which
+
+1) sets its "is_idle" flag to true and
+2) pulls the core plymouthd code's idle trigger, to notify that
+   code that it's at a good animation frame to quit (if the core
+   plymouthd code has an idle trigger set up)
+
+During the boot process, the user may need to enter a password
+(the "plymouth ask-for-password" command).  When that happens,
+the splash waits for the user to enter a password, but boot progresses
+in the background.
+
+If the user then enters a password, the boot animation restarts again
+(from the display_normal function).  This restarting of the boot
+animation will cause the "is_idle" flag of the splash to get set back
+to false.
+
+Later when plymouthd wants to quit, it calls the become_idle function
+of the splash plugin. That function notices "is_idle" is false, and
+the stop_trigger is not NULL.  The function isn't suited to work
+with this combination, and so at this point the splash never
+tells the code daemon code it's idle.
+
+This commit changes on_boot_progress to return before looking at
+percent_done, if the user is getting asked a question.  This way
+the stop_trigger won't get created prematurely, and is_idle won't
+get out of sync.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=49355
+---
+ src/plugins/splash/two-step/plugin.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/plugins/splash/two-step/plugin.c b/src/plugins/splash/two-step/plugin.c
+index 8f69e0f..1e6a7d0 100644
+--- a/src/plugins/splash/two-step/plugin.c
++++ b/src/plugins/splash/two-step/plugin.c
+@@ -1077,7 +1077,8 @@ on_boot_progress (ply_boot_splash_plugin_t *plugin,
+                   double                    duration,
+                   double                    percent_done)
+ {
+-
++  if (plugin->state != PLY_BOOT_SPLASH_DISPLAY_NORMAL)
++    return;
+ 
+   if (percent_done >= SHOW_ANIMATION_PERCENT)
+     {
+-- 
+1.7.12
+
diff --git a/plymouth.spec b/plymouth.spec
index 8b81f8b..a3ab30f 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -6,7 +6,7 @@
 Summary: Graphical Boot Animation and Logger
 Name: plymouth
 Version: 0.8.4
-Release: 0.20110822.5%{?dist}
+Release: 0.20110822.6%{?dist}
 License: GPLv2+
 Group: System Environment/Base
 Source0: http://freedesktop.org/software/plymouth/releases/%{name}-%{version}.tar.bz2
@@ -15,6 +15,7 @@ Source2: charge.plymouth
 Source3: plymouth-set-default-plugin
 Source4: plymouth-update-initrd
 Patch0: plymouth-0.8.6.1-fix-fail-to-start.patch
+Patch1: fix-stall-at-exit.patch
 
 URL: http://freedesktop.org/software/plymouth/releases
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -241,6 +242,8 @@ Plymouth. It features a small spinner on a dark background.
 # Resolves bz 704658
 # GDM doesn't start properly when spinfinity theme is used.
 %patch0 -p1 -b .fix-fail-to-start
+# May be resolve 787512
+%patch1 -p1 -b .fix-stall-at-exit
 
 # Change the default theme
 sed -i -e 's/fade-in/charge/g' src/plymouthd.defaults
@@ -505,6 +508,10 @@ fi
 %defattr(-, root, root)
 
 %changelog
+* Thu Sep 06 2012 Ray Strode <rstrode at redhat.com> 0.8.4-0.20110822.6
+- May fix stall at boot splash exit for some users
+  Resolves: #787512
+
 * Mon Jul 23 2012 Tom Callaway <spot at fedoraproject.org> - 0.8.4-0.20110822.5
 - fix bz704658 (thanks to Ian Pilcher for the patch), resolves issue where spinfinity theme
   never goes idle and thus, never exits to gdm


More information about the scm-commits mailing list