From 0268c82d1b3677c8afb820b263dc1b92352e60684d3e3cd9f397dc8bb43d1f56 Mon Sep 17 00:00:00 2001
From: Mark van Tinteren <kigurame@opensuse.org>
Date: Mon, 17 Feb 2014 18:39:07 +0000
Subject: [PATCH 01/22] Accepting request 222597 from
 home:kigurame:branches:Base:System

Updated to recent git

OBS-URL: https://build.opensuse.org/request/show/222597
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=134
---
 ...ymouthd-real-daemon-and-save-old-log.patch | 50 -------------------
 0001-Some-greenish-openSUSE-colors.patch      |  4 +-
 plymouth-0.8.8_git201309032142.tar.xz         |  3 --
 plymouth-0.8.8_git20140207.tar.xz             |  3 ++
 plymouth-dracut-path.patch                    |  4 +-
 plymouth.changes                              |  9 ----
 plymouth.spec                                 | 44 +++++++++++++---
 suse-initrd-support                           |  2 +-
 8 files changed, 46 insertions(+), 73 deletions(-)
 delete mode 100644 0001-Make-plymouthd-real-daemon-and-save-old-log.patch
 delete mode 100644 plymouth-0.8.8_git201309032142.tar.xz
 create mode 100644 plymouth-0.8.8_git20140207.tar.xz

diff --git a/0001-Make-plymouthd-real-daemon-and-save-old-log.patch b/0001-Make-plymouthd-real-daemon-and-save-old-log.patch
deleted file mode 100644
index b966f04..0000000
--- a/0001-Make-plymouthd-real-daemon-and-save-old-log.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From: Werner Fink <werner@suse.de>
-Subject: All daemons should call setsid(2) to become a real daemons
-
-All daemons should call setsid(2) to become a real daemons without
-controlling terminal.  Beside this the old boot log will help for
-debugging and for support.
-
----
- libply/ply-utils.c |    1 +
- main.c             |    5 +++--
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
---- a/src/libply/ply-utils.c
-+++ b/src/libply/ply-utils.c	2014-02-12 15:05:49.895141867 +0100
-@@ -815,6 +815,7 @@ ply_create_daemon (void)
- 
-       _exit ((int) byte);
-     }
-+  setsid();
-   close (receiver_fd);
- 
-   handle = calloc (1, sizeof (int));
---- a/src/main.c
-+++ b/src/main.c	2014-02-12 14:43:49.216569414 +0100
-@@ -639,7 +639,7 @@ get_log_file_for_mode (ply_mode_t mode)
-       break;
-     case PLY_MODE_SHUTDOWN:
-     case PLY_MODE_UPDATES:
--      filename = _PATH_DEVNULL;
-+      filename = PLYMOUTH_LOG_DIRECTORY "/boot.log";
-       break;
-     default:
-       ply_error ("Unhandled case in %s line %d\n", __FILE__, __LINE__);
-@@ -663,7 +663,7 @@ get_log_spool_file_for_mode (ply_mode_t
-       break;
-     case PLY_MODE_SHUTDOWN:
-     case PLY_MODE_UPDATES:
--      filename = NULL;
-+      filename = PLYMOUTH_SPOOL_DIRECTORY "/boot.log";
-       break;
-     default:
-       ply_error ("Unhandled case in %s line %d\n", __FILE__, __LINE__);
-@@ -715,6 +715,7 @@ prepare_logging (state_t *state)
-   if (logfile != NULL)
-     {
-       ply_trace ("opening log '%s'", logfile);
-+      rename(logfile, PLYMOUTH_LOG_DIRECTORY "/boot.olog");
-       ply_terminal_session_open_log (state->session, logfile);
- 
-       if (state->number_of_errors > 0)
diff --git a/0001-Some-greenish-openSUSE-colors.patch b/0001-Some-greenish-openSUSE-colors.patch
index 2bc25e9..1bb89eb 100644
--- a/0001-Some-greenish-openSUSE-colors.patch
+++ b/0001-Some-greenish-openSUSE-colors.patch
@@ -19,11 +19,11 @@ index 50059be..d9235c5 100644
 +                                    0x40ff00);
    ply_terminal_set_color_hex_value (terminal,
                                      PLY_TERMINAL_COLOR_BLUE,
--                                    0x0073B3);
+-                                    0x3465a4);
 +                                    0x20a000);
    ply_terminal_set_color_hex_value (terminal,
                                      PLY_TERMINAL_COLOR_BROWN,
--                                    0x00457E);
+-                                    0x979a9b);
 +                                    0x106000);
  
    ply_text_display_set_background_color (view->display,
diff --git a/plymouth-0.8.8_git201309032142.tar.xz b/plymouth-0.8.8_git201309032142.tar.xz
deleted file mode 100644
index ae5bf6a..0000000
--- a/plymouth-0.8.8_git201309032142.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5c1a7c2e8e964c4c650b59910918a878575bda58b6671726a55447bc70f6faa2
-size 789284
diff --git a/plymouth-0.8.8_git20140207.tar.xz b/plymouth-0.8.8_git20140207.tar.xz
new file mode 100644
index 0000000..ce1ab0a
--- /dev/null
+++ b/plymouth-0.8.8_git20140207.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a77a8ae80c30099fb93999f35a95f7e28a6e27ab6d84eb0d434c8bb9cbba25af
+size 4747424
diff --git a/plymouth-dracut-path.patch b/plymouth-dracut-path.patch
index 604ca76..7be318a 100644
--- a/plymouth-dracut-path.patch
+++ b/plymouth-dracut-path.patch
@@ -4,8 +4,8 @@
  [ -z "$INITRDDIR" ] && usage error
  
  mkdir -p ${INITRDDIR}${PLYMOUTH_DATADIR}/plymouth/themes
--inst ${PLYMOUTH_DAEMON_PATH} $INITRDDIR /sbin/plymouthd
--inst ${PLYMOUTH_CLIENT_PATH} $INITRDDIR /bin/plymouth
+-inst ${PLYMOUTH_DAEMON_PATH} $INITRDDIR
+-inst ${PLYMOUTH_CLIENT_PATH} $INITRDDIR
 +inst ${PLYMOUTH_DAEMON_PATH} $INITRDDIR /usr/sbin/plymouthd
 +inst ${PLYMOUTH_CLIENT_PATH} $INITRDDIR /usr/bin/plymouth
  inst ${PLYMOUTH_DATADIR}/plymouth/themes/text/text.plymouth $INITRDDIR
diff --git a/plymouth.changes b/plymouth.changes
index bc8e562..fdd70ab 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,12 +1,3 @@
--------------------------------------------------------------------
-Wed Feb 12 14:19:48 UTC 2014 - werner@suse.de
-
-- Add patch
-  0001-Make-plymouthd-real-daemon-and-save-old-log.patch
-  all daemons should call setsid(2) to become a real daemons without
-  controlling terminal.  Beside this the old boot log will help for
-  debugging and for support.
-
 -------------------------------------------------------------------
 Thu Dec 12 17:42:35 UTC 2013 - uweigand@de.ibm.com
 
diff --git a/plymouth.spec b/plymouth.spec
index 974022a..cf58942 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -22,7 +22,7 @@
 %define plymouth_initrd_file /boot/initrd-plymouth.img
 
 Name:           plymouth
-Version:        0.8.8_git201309032142
+Version:        0.8.8_git20140207
 Release:        0
 Summary:        Graphical Boot Animation and Logger
 License:        GPL-2.0+
@@ -43,11 +43,12 @@ Patch9:         plymouth-dracut-path.patch
 Patch10:        0001-Some-greenish-openSUSE-colors.patch
 # PATCH-OPENSUSE -- plymouth-correct-runtime-dir.patch tittiatcoke@gmail.com -- make sure the runtime directory is /run and not /var/run
 Patch16:        plymouth-correct-runtime-dir.patch
-# PATCH-SUSE -- 0001-Make-plymouthd-real-daemon-and-save-old-log.patch werner@suse.de -- All daemons should call setsid(2) to become a real daemons
-Patch17:        0001-Make-plymouthd-real-daemon-and-save-old-log.patch
 BuildRequires:  automake
+BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  kernel-headers
 BuildRequires:  libtool
+BuildRequires:  libudev-devel
+BuildRequires:  libxslt
 BuildRequires:  module-init-tools
 BuildRequires:  update-desktop-files
 BuildRequires:  xz
@@ -239,6 +240,19 @@ Plymouth. It features an extensible, scriptable boot splash
 language that simplifies the process of designing custom
 boot splash themes.
 
+%package plugin-tribar
+Summary:        Plymouth "script" plugin
+Group:          System/Base
+Requires:       libply-splash-core2 = %{version}
+Requires:       libply-splash-graphics2 = %{version}
+Requires:       libply2 = %{version}
+
+%description plugin-tribar
+This package contains the "tribar" boot splash plugin for
+Plymouth. It features an extensible, scriptable boot splash
+language that simplifies the process of designing custom
+boot splash themes.
+
 %package theme-fade-in
 Summary:        Plymouth "Fade-In" theme
 Group:          System/Base
@@ -287,6 +301,17 @@ BuildArch:      noarch
 This package contains the "Solar" boot splash theme for
 Plymouth. It features a blue flamed sun with animated solar flares.
 
+%package theme-tribar
+Summary:        Plymouth "Tribar" theme
+Group:          System/Base
+Requires:       %{name}-plugin-tribar = %{version}
+Requires(post): %{name}-scripts
+BuildArch:      noarch
+
+%description theme-tribar
+This package contains the "Tribar" boot splash theme for
+Plymouth
+
 %package theme-script
 Summary:        Plymouth "Script" plugin
 Group:          System/Base
@@ -310,7 +335,6 @@ plugin.
 %patch9 -p0
 %patch10 -p1
 %patch16 -p1
-%patch17 -p1
 # replace builddate with patch0date
 sed -i "s/__DATE__/\"$(stat -c %y %{_sourcedir}/%{name}.changes)\"/" src/main.c
 
@@ -330,11 +354,10 @@ autoreconf -fiv
            --with-log-viewer                                     \
            --without-rhgb-compat-link                            \
            --with-boot-tty=/dev/tty7                             \
-           --with-shutdown-tty=/dev/tty7                         \
+           --with-shutdown-tty=/dev/tty1                         \
            --without-gdm-autostart-file                          \
            --with-release-file=/etc/os-release
 
-make clean
 make %{?_smp_mflags} V=1
 
 %install
@@ -594,10 +617,19 @@ fi
 %{_datadir}/plymouth/themes/solar/*.png
 %{_datadir}/plymouth/themes/solar/solar.plymouth
 
+%files theme-tribar
+%defattr(-, root, root)
+%dir %{_datadir}/plymouth/themes/tribar
+%{_datadir}/plymouth/themes/tribar/*.*
+
 %files plugin-two-step
 %defattr(-, root, root)
 %{_libdir}/plymouth/two-step.so
 
+%files plugin-tribar
+%defattr(-, root, root)
+%{_libdir}/plymouth/tribar.so
+
 %files plugin-script
 %defattr(-, root, root)
 %{_libdir}/plymouth/script.so
diff --git a/suse-initrd-support b/suse-initrd-support
index 02474d2..aba8528 100644
--- a/suse-initrd-support
+++ b/suse-initrd-support
@@ -136,5 +136,5 @@ Index: plymouth-0.8.8_git201309032142/scripts/plymouth-update-initrd
 +++ plymouth-0.8.8_git201309032142/scripts/plymouth-update-initrd
 @@ -1,2 +1,2 @@
  #!/bin/bash
--mkinitrd -f /boot/initrd-$(uname -r).img $(uname -r)
+-dracut -f
 +/sbin/mkinitrd

From 6f41541cc7ee4b93729d235f4eebd93d193790c232d591c14a95813e7a82f8ac Mon Sep 17 00:00:00 2001
From: Mark van Tinteren <kigurame@opensuse.org>
Date: Thu, 27 Feb 2014 02:09:34 +0000
Subject: [PATCH 02/22] Accepting request 223974 from
 home:fcrozat:branches:Base:System

- Drop plymouth.conf, it is no longer used, plymouthd.conf is
  nowadays.

OBS-URL: https://build.opensuse.org/request/show/223974
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=135
---
 plymouth.changes | 6 ++++++
 plymouth.spec    | 3 +--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/plymouth.changes b/plymouth.changes
index fdd70ab..044595f 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,9 @@
+-------------------------------------------------------------------
+Thu Feb 20 12:47:03 UTC 2014 - fcrozat@suse.com
+
+- Drop plymouth.conf, it is no longer used, plymouthd.conf is
+  nowadays.
+
 -------------------------------------------------------------------
 Thu Dec 12 17:42:35 UTC 2013 - uweigand@de.ibm.com
 
diff --git a/plymouth.spec b/plymouth.spec
index cf58942..20e3742 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -384,7 +384,7 @@ touch %{buildroot}%{_localstatedir}/log/boot.log
 touch %{buildroot}%{_localstatedir}/spool/plymouth/boot.log
 cp $RPM_SOURCE_DIR/boot-duration %{buildroot}%{_datadir}/plymouth/default-boot-duration
 cp $RPM_SOURCE_DIR/boot-duration %{buildroot}%{_localstatedir}/lib/plymouth
-cp %{buildroot}/%{_datadir}/plymouth/plymouthd.defaults %{buildroot}/%{_sysconfdir}/plymouth/plymouth.conf
+cp %{buildroot}/%{_datadir}/plymouth/plymouthd.defaults %{buildroot}/%{_sysconfdir}/plymouth/plymouthd.conf
 
 mkdir -p %{buildroot}/lib/mkinitrd/scripts
 install -t %{buildroot}/lib/mkinitrd/scripts \
@@ -502,7 +502,6 @@ fi
 %dir %{_libdir}/plymouth/renderers
 %dir %{_sysconfdir}/plymouth
 %config(noreplace) %{_sysconfdir}/plymouth/plymouthd.conf
-%config(noreplace) %{_sysconfdir}/plymouth/plymouth.conf
 %{plymouthdaemon_execdir}/plymouthd
 %{plymouthclient_execdir}/plymouth
 /bin/plymouth

From 42647bb201ccaceb529e8169d951e1d2caf13fc6b9f8cb4aaca43b8c1871556d Mon Sep 17 00:00:00 2001
From: Stefan Seyfried <seife@novell.slipkontur.de>
Date: Sat, 12 Apr 2014 21:25:13 +0000
Subject: [PATCH 03/22] Accepting request 229609 from home:namtrac:bugfix

- Add plymouth-manpages.patch to fix manpage installation (bnc#871419)

OBS-URL: https://build.opensuse.org/request/show/229609
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=137
---
 plymouth-manpages.patch | 22 ++++++++++++++++++++++
 plymouth.changes        |  5 +++++
 plymouth.spec           |  4 ++++
 3 files changed, 31 insertions(+)
 create mode 100644 plymouth-manpages.patch

diff --git a/plymouth-manpages.patch b/plymouth-manpages.patch
new file mode 100644
index 0000000..e1b02f6
--- /dev/null
+++ b/plymouth-manpages.patch
@@ -0,0 +1,22 @@
+Index: plymouth-0.8.8_git20140207/docs/Makefile.am
+===================================================================
+--- plymouth-0.8.8_git20140207.orig/docs/Makefile.am
++++ plymouth-0.8.8_git20140207/docs/Makefile.am
+@@ -16,12 +16,14 @@ plymouth.1: plymouth1.xml
+ %.1: %.xml
+ 	$(AM_V_GEN) $(XSLTPROC) $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+ 	
+-man_MANS = \
++man1_MANS = \
+ 	plymouth.1 \
+-	plymouth.8 \
+-	plymouthd.8 \
+ 	plymouth-set-default-theme.1
+ 
++man8_MANS = \
++	plymouth.8 \
++	plymouthd.8
++
+ EXTRA_DIST = \
+ 	plymouth.xml \
+ 	plymouth1.xml \
diff --git a/plymouth.changes b/plymouth.changes
index 044595f..1ac0aa0 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,8 @@
+-------------------------------------------------------------------
+Thu Apr 10 10:55:03 UTC 2014 - idonmez@suse.com
+
+- Add plymouth-manpages.patch to fix manpage installation (bnc#871419)
+
 -------------------------------------------------------------------
 Thu Feb 20 12:47:03 UTC 2014 - fcrozat@suse.com
 
diff --git a/plymouth.spec b/plymouth.spec
index 20e3742..173c818 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -43,6 +43,8 @@ Patch9:         plymouth-dracut-path.patch
 Patch10:        0001-Some-greenish-openSUSE-colors.patch
 # PATCH-OPENSUSE -- plymouth-correct-runtime-dir.patch tittiatcoke@gmail.com -- make sure the runtime directory is /run and not /var/run
 Patch16:        plymouth-correct-runtime-dir.patch
+# PATCH-FIX-UPSTREAM plymouth-manpages.patch idoenmez@suse.de -- Fix man page installation
+Patch17:        plymouth-manpages.patch
 BuildRequires:  automake
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  kernel-headers
@@ -335,6 +337,8 @@ plugin.
 %patch9 -p0
 %patch10 -p1
 %patch16 -p1
+%patch17 -p1
+
 # replace builddate with patch0date
 sed -i "s/__DATE__/\"$(stat -c %y %{_sourcedir}/%{name}.changes)\"/" src/main.c
 

From fe1c200fc51f0113a9b5673012d03ba1c4563745e2ead80066492b702bb75feb Mon Sep 17 00:00:00 2001
From: Mark van Tinteren <kigurame@opensuse.org>
Date: Wed, 16 Apr 2014 14:28:58 +0000
Subject: [PATCH 04/22] Accepting request 230317 from
 home:trenn:branches:Base:System

- Kill all mkinitrd stuff
  Remove suse-initrd-support
- Tell zypper to regenerate initrd on installation/update via %post and
  %posttrans scripts

OBS-URL: https://build.opensuse.org/request/show/230317
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=138
---
 plymouth.changes    |   8 +++
 plymouth.spec       |  20 ++-----
 suse-initrd-support | 140 --------------------------------------------
 3 files changed, 13 insertions(+), 155 deletions(-)
 delete mode 100644 suse-initrd-support

diff --git a/plymouth.changes b/plymouth.changes
index 1ac0aa0..3c7ff0a 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,11 @@
+-------------------------------------------------------------------
+Wed Apr 16 11:35:30 UTC 2014 - trenn@suse.de
+
+- Kill all mkinitrd stuff
+  Remove suse-initrd-support
+- Tell zypper to regenerate initrd on installation/update via %post and
+  %posttrans scripts
+
 -------------------------------------------------------------------
 Thu Apr 10 10:55:03 UTC 2014 - idonmez@suse.com
 
diff --git a/plymouth.spec b/plymouth.spec
index 173c818..59204a4 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -30,8 +30,6 @@ Group:          System/Base
 Url:            http://freedesktop.org/software/plymouth/releases
 Source0:        %{name}-%{version}.tar.xz
 Source1:        boot-duration
-# PATCH-OPENSUSE -- Support the openSUSE initrd
-Patch1:         suse-initrd-support
 # PATCH-OPENSUSE -- Handle correctly multiple displays with different sizes
 Patch3:         plymouth-fix-window-size
 # PATCH-OPENSUSE -- Ensure graphical.target is conflicting with plymouth-wait-quit.service
@@ -63,7 +61,7 @@ Requires:       suspend >= 0.80.20100129.1
 %endif
 Requires:       systemd >= 186
 Requires(post): plymouth-scripts = %{version}
-Requires(post): mkinitrd
+BuildRequires:  suse-module-tools
 Suggests:       plymouth-plugin-label
 Provides:       bootsplash = 3.4
 Obsoletes:      bootsplash <= 3.4
@@ -159,7 +157,6 @@ Requires:       coreutils
 Requires:       cpio
 Requires:       findutils
 Requires:       pigz
-Requires(post): mkinitrd
 
 %description scripts
 This package contains scripts that help integrate Plymouth with
@@ -328,7 +325,6 @@ plugin.
 
 %prep
 %setup -q
-%patch1 -p1
 %patch3 -p1
 %patch4 -p1
 %ifarch %ix86 x86_64 ppc ppc64 ppc64le
@@ -390,11 +386,8 @@ cp $RPM_SOURCE_DIR/boot-duration %{buildroot}%{_datadir}/plymouth/default-boot-d
 cp $RPM_SOURCE_DIR/boot-duration %{buildroot}%{_localstatedir}/lib/plymouth
 cp %{buildroot}/%{_datadir}/plymouth/plymouthd.defaults %{buildroot}/%{_sysconfdir}/plymouth/plymouthd.conf
 
-mkdir -p %{buildroot}/lib/mkinitrd/scripts
-install -t %{buildroot}/lib/mkinitrd/scripts \
-	   scripts/{setup,boot}-plymouth*.sh
-
 %post
+%{?regenerate_initrd_post}
 if [ ! -e /.buildenv ]; then 
    [ -f %{_localstatedir}/lib/plymouth/boot-duration ] || cp -f %{_datadir}/plymouth/default-boot-duration %{_localstatedir}/lib/plymouth/boot-duration
    %{_libexecdir}/plymouth/plymouth-update-initrd
@@ -408,9 +401,8 @@ if [ $1 -eq 0 ]; then
     [ -x /bin/systemctl ] && /bin/systemctl daemon-reload >/dev/null 2>&1 || :
 fi
 
-%post scripts -p /sbin/mkinitrd_setup
-
-%postun scripts -p /sbin/mkinitrd_setup
+%posttrans
+%{?regenerate_initrd_posttrans}
 
 %post -n libply-boot-client2 -p /sbin/ldconfig
 
@@ -525,6 +517,7 @@ fi
 %{_unitdir}/*
 %ghost %{_localstatedir}/log/boot.log
 %ghost %{_localstatedir}/spool/plymouth/boot.log
+
 %files dracut
 %defattr(-, root, root)
 %{_libexecdir}/plymouth/plymouth-populate-initrd
@@ -562,9 +555,6 @@ fi
 %dir %{_libexecdir}/plymouth
 %{_sbindir}/plymouth-set-default-theme
 %{_libexecdir}/plymouth/plymouth-update-initrd
-/lib/mkinitrd/scripts/boot-plymouth.sh
-/lib/mkinitrd/scripts/boot-plymouth.chroot.sh
-/lib/mkinitrd/scripts/setup-plymouth.sh
 
 %files utils
 %defattr(-, root, root)
diff --git a/suse-initrd-support b/suse-initrd-support
deleted file mode 100644
index aba8528..0000000
--- a/suse-initrd-support
+++ /dev/null
@@ -1,140 +0,0 @@
-Index: plymouth-0.8.8_git201309032142/configure.ac
-===================================================================
---- plymouth-0.8.8_git201309032142.orig/configure.ac
-+++ plymouth-0.8.8_git201309032142/configure.ac
-@@ -302,6 +302,7 @@ AC_CONFIG_FILES([Makefile
-            themes/spinner/Makefile
-            themes/script/Makefile
-            images/Makefile
-+	   scripts/setup-plymouth.sh
- 	   scripts/plymouth-generate-initrd
- 	   scripts/plymouth-populate-initrd
- 	   scripts/plymouth-set-default-theme
-Index: plymouth-0.8.8_git201309032142/scripts/boot-plymouth.chroot.sh
-===================================================================
---- /dev/null
-+++ plymouth-0.8.8_git201309032142/scripts/boot-plymouth.chroot.sh
-@@ -0,0 +1,23 @@
-+#!/bin/bash
-+#%stage: setup
-+#%depends: plymouth
-+#%programs: /usr/bin/plymouth /usr/sbin/plymouthd /usr/bin/readlink
-+#%dontshow
-+
-+ply_init_is_systemd()
-+{
-+	local d="$init"
-+	[ -n "$d" ] || return 1
-+	if [ -L "/root$d" ]; then
-+		d=`readlink "/root$d"`
-+	fi
-+	[ "${d##*/}" = systemd ] || return 1
-+	return 0
-+}
-+
-+if ply_init_is_systemd; then
-+	plymouth update-root-fs --new-root-dir=/root
-+else
-+	echo "init $init is not systemd, terminate plymouth"
-+	plymouth quit
-+fi
-Index: plymouth-0.8.8_git201309032142/scripts/boot-plymouth.sh
-===================================================================
---- /dev/null
-+++ plymouth-0.8.8_git201309032142/scripts/boot-plymouth.sh
-@@ -0,0 +1,23 @@
-+#!/bin/bash
-+#%stage: boot
-+#%depends: start udev kms
-+#%programs: /usr/bin/plymouth /usr/sbin/plymouthd
-+#%if: -z "$root_luks" -a -z "$luks"
-+
-+enable_plymouth=1
-+for o in $(cat /proc/cmdline) ; do
-+  case "$o" in
-+	shell*|plymouth.enable=0*|rd.plymouth=0*)
-+		enable_plymouth=0
-+		break
-+		;;
-+  esac
-+done
-+if [ "$enable_plymouth" = "1" ]; then
-+  mkdir --mode 755 /run/plymouth
-+
-+  /usr/sbin/plymouthd --attach-to-session --pid-file /run/plymouth/pid
-+
-+  plymouth show-splash
-+fi
-+
-Index: plymouth-0.8.8_git201309032142/scripts/setup-plymouth.sh.in
-===================================================================
---- /dev/null
-+++ plymouth-0.8.8_git201309032142/scripts/setup-plymouth.sh.in
-@@ -0,0 +1,59 @@
-+#!/bin/bash
-+#
-+#%stage: setup
-+#%depends: start
-+
-+# We don't need to copy the binaries since boot-plymouth.sh does that for us
-+
-+[ -z "$tmp_mnt" ] && exit 1
-+
-+THEME=$(plymouth-set-default-theme)
-+
-+PLUGIN_PATH=$(plymouth --get-splash-plugin-path)
-+
-+MODULE=$(grep "ModuleName *= *" @PLYMOUTH_DATADIR@/plymouth/themes/${THEME}/${THEME}.plymouth | sed 's/ModuleName *= *//')
-+
-+if [ ! -f "$PLUGIN_PATH/${MODULE}.so" ]; then
-+	echo "The default plymouth plugin ($MODULE) doesn't exist." > /dev/stderr
-+	exit 1
-+fi
-+
-+FILES="/usr/share/plymouth/themes/text/text.plymouth \
-+	/usr/share/plymouth/themes/details/details.plymouth \
-+	/usr/share/plymouth/plymouthd.defaults \
-+	/usr/share/plymouth/themes/${THEME}/* \
-+	/etc/plymouth/plymouthd.conf \
-+       /usr/share/fonts/uni/unifont.pcf.gz /etc/os-release \
-+       /etc/fonts/fonts.conf \
-+       /etc/fonts/conf.d/69-unifont.conf "
-+
-+PLUGINS="${PLUGIN_PATH}/details.so \
-+	${PLUGIN_PATH}/text.so \
-+	${PLUGIN_PATH}/label.so \
-+	${PLUGIN_PATH}/${MODULE}.so \
-+	${PLUGIN_PATH}/renderers/drm.so \
-+	${PLUGIN_PATH}/renderers/frame-buffer.so"
-+
-+for file in $FILES; do
-+	install -D $file $tmp_mnt/$file
-+done
-+
-+for plugin in $PLUGINS; do
-+	mkdir -p $tmp_mnt/$(dirname $plugin)
-+	cp_bin $plugin $tmp_mnt/$plugin
-+done
-+
-+_libdir=`rpm --eval '%{_lib}'`
-+mkdir -p $tmp_mnt/etc/pango
-+if [ "$_libdir" == "lib64" ];
-+  then
-+     _pangodir=`pango-querymodules-64 | grep ModulesPath | awk '{print $4}'`
-+     pango-querymodules-64 > $tmp_mnt/etc/pango/pango.modules
-+     pangobasicfc="${_pangodir}/pango-basic-fc.so"
-+  else
-+     _pangodir=`pango-querymodules | grep ModulesPath | awk '{print $4}'`
-+     pango-querymodules > $tmp_mnt/etc/pango/pango.modules
-+     pangobasicfc="${_pangodir}/pango-basic-fc.so"
-+fi
-+install -D ${pangobasicfc} $tmp_mnt/${pangobasicfc}
-+mkdir -p $tmp_mnt/var/cache/fontconfig
-Index: plymouth-0.8.8_git201309032142/scripts/plymouth-update-initrd
-===================================================================
---- plymouth-0.8.8_git201309032142.orig/scripts/plymouth-update-initrd
-+++ plymouth-0.8.8_git201309032142/scripts/plymouth-update-initrd
-@@ -1,2 +1,2 @@
- #!/bin/bash
--dracut -f
-+/sbin/mkinitrd

From dbee15d400e934d75e4c764db5576a49b43741b245d88b16f73933e5ef5f219e Mon Sep 17 00:00:00 2001
From: Mark van Tinteren <kigurame@opensuse.org>
Date: Wed, 16 Apr 2014 15:29:15 +0000
Subject: [PATCH 05/22] OBS-URL:
 https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=139

---
 plymouth.changes | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/plymouth.changes b/plymouth.changes
index 3c7ff0a..26e2ab6 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -17,6 +17,22 @@ Thu Feb 20 12:47:03 UTC 2014 - fcrozat@suse.com
 - Drop plymouth.conf, it is no longer used, plymouthd.conf is
   nowadays.
 
+-------------------------------------------------------------------
+Wed Feb 15 10:02:32 UTC 2014 - kigurame@opensuse.org
+- Updated from git 
+- carried over patches
+- Dropped 0001-Make-plymouthd-real-daemon-and-save-old-log.patch 
+  Because it is really not necesary
+
+-------------------------------------------------------------------
+Wed Feb 12 14:19:48 UTC 2014 - werner@suse.de
+
+- Add patch
+  0001-Make-plymouthd-real-daemon-and-save-old-log.patch
+  all daemons should call setsid(2) to become a real daemons without
+  controlling terminal.  Beside this the old boot log will help for
+  debugging and for support.
+
 -------------------------------------------------------------------
 Thu Dec 12 17:42:35 UTC 2013 - uweigand@de.ibm.com
 

From 1fff01a15af1b99f4162f87a0675cf99710d64b571fe823adcf0dcd27a59e21c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= <ismail@i10z.com>
Date: Thu, 17 Apr 2014 13:03:15 +0000
Subject: [PATCH 06/22] - Update to git snapshot as of 20140327   * Fixes
 bnc#872502 and bnc#872428

OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=140
---
 plymouth-0.8.8_git20140207.tar.xz  | 3 ---
 plymouth-0.8.8_git20140327.tar.bz2 | 3 +++
 plymouth.changes                   | 6 ++++++
 plymouth.spec                      | 4 ++--
 4 files changed, 11 insertions(+), 5 deletions(-)
 delete mode 100644 plymouth-0.8.8_git20140207.tar.xz
 create mode 100644 plymouth-0.8.8_git20140327.tar.bz2

diff --git a/plymouth-0.8.8_git20140207.tar.xz b/plymouth-0.8.8_git20140207.tar.xz
deleted file mode 100644
index ce1ab0a..0000000
--- a/plymouth-0.8.8_git20140207.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a77a8ae80c30099fb93999f35a95f7e28a6e27ab6d84eb0d434c8bb9cbba25af
-size 4747424
diff --git a/plymouth-0.8.8_git20140327.tar.bz2 b/plymouth-0.8.8_git20140327.tar.bz2
new file mode 100644
index 0000000..a7e147b
--- /dev/null
+++ b/plymouth-0.8.8_git20140327.tar.bz2
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:395d8c90853ac8118ba4108cef270d3b2c3459cc7affcdaba6eb85375a2aa19e
+size 5481120
diff --git a/plymouth.changes b/plymouth.changes
index 26e2ab6..0e0cdec 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,9 @@
+-------------------------------------------------------------------
+Thu Apr 17 12:56:23 UTC 2014 - idonmez@suse.com
+
+- Update to git snapshot as of 20140327
+  * Fixes bnc#872502 and bnc#872428
+
 -------------------------------------------------------------------
 Wed Apr 16 11:35:30 UTC 2014 - trenn@suse.de
 
diff --git a/plymouth.spec b/plymouth.spec
index 59204a4..93fcc4b 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -22,13 +22,13 @@
 %define plymouth_initrd_file /boot/initrd-plymouth.img
 
 Name:           plymouth
-Version:        0.8.8_git20140207
+Version:        0.8.8_git20140327
 Release:        0
 Summary:        Graphical Boot Animation and Logger
 License:        GPL-2.0+
 Group:          System/Base
 Url:            http://freedesktop.org/software/plymouth/releases
-Source0:        %{name}-%{version}.tar.xz
+Source0:        %{name}-%{version}.tar.bz2
 Source1:        boot-duration
 # PATCH-OPENSUSE -- Handle correctly multiple displays with different sizes
 Patch3:         plymouth-fix-window-size

From 551d1cf07f6887d1bd1fc2c355065c024ae1c0888adc1e9d9a12d5e2f77b00df Mon Sep 17 00:00:00 2001
From: Stephan Kulow <coolo@suse.com>
Date: Sun, 11 May 2014 16:31:56 +0000
Subject: [PATCH 07/22] Accepting request 232715 from
 home:fcrozat:branches:Base:System

- Remove plymouth-restore-suspend.patch: suspend package is being
  dropped, no longer needs to provide this old API.
- Remove requires on suspend package.

OBS-URL: https://build.opensuse.org/request/show/232715
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=141
---
 plymouth-restore-suspend.patch | 49 ----------------------------------
 plymouth.changes               |  7 +++++
 plymouth.spec                  |  8 ------
 3 files changed, 7 insertions(+), 57 deletions(-)
 delete mode 100644 plymouth-restore-suspend.patch

diff --git a/plymouth-restore-suspend.patch b/plymouth-restore-suspend.patch
deleted file mode 100644
index 8fa4a70..0000000
--- a/plymouth-restore-suspend.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 152304f3fd2ebd04ca6d49c62dce4ddd2269326a Mon Sep 17 00:00:00 2001
-From: Frederic Crozat <fcrozat@suse.com>
-Date: Fri, 20 Jul 2012 11:07:29 +0200
-Subject: [PATCH] Revert "libply: remove the unused SPLASH_MODE_SUSPEND and
- SPLASH_MODE_RESUME"
-
-This reverts commit 02c596757753589f7e49d26eab2759d552f24671.
-
-Conflicts:
-	src/libply-splash-core/ply-boot-splash-plugin.h
-	src/plugins/splash/script/script-lib-plymouth.c
----
- src/libply-splash-core/ply-boot-splash-plugin.h |    2 ++
- src/plugins/splash/script/script-lib-plymouth.c |    6 ++++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/src/libply-splash-core/ply-boot-splash-plugin.h b/src/libply-splash-core/ply-boot-splash-plugin.h
-index 2d73d66..1a67526 100644
---- a/src/libply-splash-core/ply-boot-splash-plugin.h
-+++ b/src/libply-splash-core/ply-boot-splash-plugin.h
-@@ -38,6 +38,8 @@ typedef enum
- {
-   PLY_BOOT_SPLASH_MODE_BOOT_UP,
-   PLY_BOOT_SPLASH_MODE_SHUTDOWN,
-+  PLY_BOOT_SPLASH_MODE_SUSPEND,
-+  PLY_BOOT_SPLASH_MODE_RESUME,
-   PLY_BOOT_SPLASH_MODE_UPDATES,
-   PLY_BOOT_SPLASH_MODE_INVALID
- } ply_boot_splash_mode_t;
-diff --git a/src/plugins/splash/script/script-lib-plymouth.c b/src/plugins/splash/script/script-lib-plymouth.c
-index 5c648a6..eb7791e 100644
---- a/src/plugins/splash/script/script-lib-plymouth.c
-+++ b/src/plugins/splash/script/script-lib-plymouth.c
-@@ -61,6 +61,12 @@ static script_return_t plymouth_get_mode (script_state_t *state,
-       case PLY_BOOT_SPLASH_MODE_SHUTDOWN:
-         obj = script_obj_new_string ("shutdown");
-         break;
-+      case PLY_BOOT_SPLASH_MODE_SUSPEND:
-+        obj = script_obj_new_string ("suspend");
-+        break;
-+      case PLY_BOOT_SPLASH_MODE_RESUME:
-+        obj = script_obj_new_string ("resume");
-+	break;
-       case PLY_BOOT_SPLASH_MODE_UPDATES:
-         obj = script_obj_new_string ("updates");
-         break;
--- 
-1.7.10.4
-
diff --git a/plymouth.changes b/plymouth.changes
index 0e0cdec..520af13 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,10 @@
+-------------------------------------------------------------------
+Mon May  5 12:49:49 UTC 2014 - fcrozat@suse.com
+
+- Remove plymouth-restore-suspend.patch: suspend package is being
+  dropped, no longer needs to provide this old API.
+- Remove requires on suspend package.
+
 -------------------------------------------------------------------
 Thu Apr 17 12:56:23 UTC 2014 - idonmez@suse.com
 
diff --git a/plymouth.spec b/plymouth.spec
index 93fcc4b..6aaa09a 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -34,8 +34,6 @@ Source1:        boot-duration
 Patch3:         plymouth-fix-window-size
 # PATCH-OPENSUSE -- Ensure graphical.target is conflicting with plymouth-wait-quit.service
 Patch4:         stop-graphical.patch
-# PATCH-OPENSUSE -- Restore suspend / resume state (needed for suspend package)
-Patch5:         plymouth-restore-suspend.patch
 # PATCH-OPENSUSE -- prefix is /usr/sbin and /usr/bin
 Patch9:         plymouth-dracut-path.patch
 Patch10:        0001-Some-greenish-openSUSE-colors.patch
@@ -56,9 +54,6 @@ BuildRequires:  pkgconfig(libdrm)
 BuildRequires:  pkgconfig(systemd) >= 186
 Requires:       %{name}-branding
 Requires:       gnu-unifont-bitmap-fonts
-%ifarch %ix86 x86_64 ppc ppc64 ppc64le
-Requires:       suspend >= 0.80.20100129.1
-%endif
 Requires:       systemd >= 186
 Requires(post): plymouth-scripts = %{version}
 BuildRequires:  suse-module-tools
@@ -327,9 +322,6 @@ plugin.
 %setup -q
 %patch3 -p1
 %patch4 -p1
-%ifarch %ix86 x86_64 ppc ppc64 ppc64le
-%patch5 -p1
-%endif
 %patch9 -p0
 %patch10 -p1
 %patch16 -p1

From 1e32b6dd245eb4915ac8e07da6fff15462115a720c886facac7f0366224e3070 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= <ismail@i10z.com>
Date: Mon, 26 May 2014 08:07:03 +0000
Subject: [PATCH 08/22] Accepting request 235227 from home:namtrac:bugfix

- Add fix-serial-consoles.patch to fix binary garbage on serial
  consoles. This is bnc#873859

OBS-URL: https://build.opensuse.org/request/show/235227
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=143
---
 fix-serial-consoles.patch | 84 +++++++++++++++++++++++++++++++++++++++
 plymouth.changes          |  6 +++
 plymouth.spec             |  2 +
 3 files changed, 92 insertions(+)
 create mode 100644 fix-serial-consoles.patch

diff --git a/fix-serial-consoles.patch b/fix-serial-consoles.patch
new file mode 100644
index 0000000..a35c057
--- /dev/null
+++ b/fix-serial-consoles.patch
@@ -0,0 +1,84 @@
+Index: plymouth-0.8.8_git20140327/src/libply-splash-core/ply-device-manager.c
+===================================================================
+--- plymouth-0.8.8_git20140327.orig/src/libply-splash-core/ply-device-manager.c
++++ plymouth-0.8.8_git20140327/src/libply-splash-core/ply-device-manager.c
+@@ -58,6 +58,8 @@ struct _ply_device_manager
+   int                         udev_queue_fd;
+   ply_fd_watch_t             *udev_queue_fd_watch;
+   struct udev_monitor        *udev_monitor;
++  bool                       has_serial_consoles;
++
+ 
+   ply_seat_added_handler_t    seat_added_handler;
+   ply_seat_removed_handler_t  seat_removed_handler;
+@@ -501,6 +503,7 @@ ply_device_manager_new (const char
+   manager->loop = NULL;
+   manager->terminals = ply_hashtable_new (ply_hashtable_string_hash, ply_hashtable_string_compare);
+   manager->local_console_terminal = ply_terminal_new (default_tty);
++  manager->has_serial_consoles = false;
+   ply_hashtable_insert (manager->terminals,
+                         (void *) ply_terminal_get_name (manager->local_console_terminal),
+                         manager->local_console_terminal);
+@@ -670,21 +673,19 @@ create_seat_for_terminal (const char
+ static bool
+ create_seats_from_terminals (ply_device_manager_t *manager)
+ {
+-  bool has_serial_consoles;
+-
+   ply_trace ("checking for consoles");
+ 
+   if (manager->flags & PLY_DEVICE_MANAGER_FLAGS_IGNORE_SERIAL_CONSOLES)
+     {
+-      has_serial_consoles = false;
++      manager->has_serial_consoles = false;
+       ply_trace ("ignoring all consoles but default console because explicitly told to.");
+     }
+   else
+     {
+-      has_serial_consoles = add_consoles_from_file (manager, "/sys/class/tty/console/active");
++      manager->has_serial_consoles = add_consoles_from_file (manager, "/sys/class/tty/console/active");
+     }
+ 
+-  if (has_serial_consoles)
++  if (manager->has_serial_consoles)
+     {
+       ply_trace ("serial consoles detected, managing them with details forced");
+       ply_hashtable_foreach (manager->terminals,
+@@ -838,6 +839,12 @@ ply_device_manager_has_open_seats (ply_d
+   return false;
+ }
+ 
++bool
++ply_device_manager_has_serial_consoles (ply_device_manager_t *manager)
++{
++    return manager->has_serial_consoles;
++}
++
+ ply_list_t *
+ ply_device_manager_get_seats (ply_device_manager_t *manager)
+ {
+Index: plymouth-0.8.8_git20140327/src/main.c
+===================================================================
+--- plymouth-0.8.8_git20140327.orig/src/main.c
++++ plymouth-0.8.8_git20140327/src/main.c
+@@ -848,7 +848,7 @@ plymouth_should_show_default_splash (sta
+   };
+   int i;
+ 
+-  if (state->should_force_details)
++  if (ply_device_manager_has_serial_consoles(state->device_manager) || state->should_force_details)
+     return false;
+ 
+   for (i = 0; strings[i] != NULL; i++)
+Index: plymouth-0.8.8_git20140327/src/libply-splash-core/ply-device-manager.h
+===================================================================
+--- plymouth-0.8.8_git20140327.orig/src/libply-splash-core/ply-device-manager.h
++++ plymouth-0.8.8_git20140327/src/libply-splash-core/ply-device-manager.h
+@@ -42,6 +42,7 @@ void ply_device_manager_watch_seats (ply
+                                      ply_seat_removed_handler_t seat_removed_handler,
+                                      void *data);
+ bool ply_device_manager_has_open_seats (ply_device_manager_t *manager);
++bool ply_device_manager_has_serial_consoles (ply_device_manager_t *manager);
+ ply_list_t *ply_device_manager_get_seats (ply_device_manager_t *manager);
+ void ply_device_manager_free (ply_device_manager_t *manager);
+ void ply_device_manager_activate_keyboards (ply_device_manager_t *manager);
diff --git a/plymouth.changes b/plymouth.changes
index 520af13..13d42a0 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,9 @@
+-------------------------------------------------------------------
+Wed May 21 12:11:25 UTC 2014 - idonmez@suse.com
+
+- Add fix-serial-consoles.patch to fix binary garbage on serial
+  consoles. This is bnc#873859
+
 -------------------------------------------------------------------
 Mon May  5 12:49:49 UTC 2014 - fcrozat@suse.com
 
diff --git a/plymouth.spec b/plymouth.spec
index 6aaa09a..17070fa 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -41,6 +41,7 @@ Patch10:        0001-Some-greenish-openSUSE-colors.patch
 Patch16:        plymouth-correct-runtime-dir.patch
 # PATCH-FIX-UPSTREAM plymouth-manpages.patch idoenmez@suse.de -- Fix man page installation
 Patch17:        plymouth-manpages.patch
+Patch18:        fix-serial-consoles.patch
 BuildRequires:  automake
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  kernel-headers
@@ -326,6 +327,7 @@ plugin.
 %patch10 -p1
 %patch16 -p1
 %patch17 -p1
+%patch18 -p1
 
 # replace builddate with patch0date
 sed -i "s/__DATE__/\"$(stat -c %y %{_sourcedir}/%{name}.changes)\"/" src/main.c

From 362b0053e8bd4f2e84a393e0d2b78df40d10ef2a06afb313a40a7633e58205b1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= <ismail@i10z.com>
Date: Thu, 5 Jun 2014 07:26:55 +0000
Subject: [PATCH 09/22] - Update fix-serial-consoles.patch to fix a crash in
 some rare   cases.

OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=144
---
 fix-serial-consoles.patch | 7 +++++--
 plymouth.changes          | 6 ++++++
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/fix-serial-consoles.patch b/fix-serial-consoles.patch
index a35c057..2066006 100644
--- a/fix-serial-consoles.patch
+++ b/fix-serial-consoles.patch
@@ -44,14 +44,17 @@ Index: plymouth-0.8.8_git20140327/src/libply-splash-core/ply-device-manager.c
      {
        ply_trace ("serial consoles detected, managing them with details forced");
        ply_hashtable_foreach (manager->terminals,
-@@ -838,6 +839,12 @@ ply_device_manager_has_open_seats (ply_d
+@@ -838,6 +839,15 @@ ply_device_manager_has_open_seats (ply_d
    return false;
  }
  
 +bool
 +ply_device_manager_has_serial_consoles (ply_device_manager_t *manager)
 +{
-+    return manager->has_serial_consoles;
++    if (manager)
++    	return manager->has_serial_consoles;
++    else
++       return false;
 +}
 +
  ply_list_t *
diff --git a/plymouth.changes b/plymouth.changes
index 13d42a0..db74d09 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,9 @@
+-------------------------------------------------------------------
+Thu Jun  5 07:24:10 UTC 2014 - idonmez@suse.com
+
+- Update fix-serial-consoles.patch to fix a crash in some rare
+  cases.
+
 -------------------------------------------------------------------
 Wed May 21 12:11:25 UTC 2014 - idonmez@suse.com
 

From bd713424446fbf575ac8e9082e5bdfc19a7c51eddb7f03749a9fa6ffbffe5d98 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= <tomas.chvatal@gmail.com>
Date: Fri, 6 Jun 2014 20:29:23 +0000
Subject: [PATCH 10/22] Accepting request 236492 from
 home:fcrozat:branches:Base:System

- Release 0.9.0 (3 additional fixes compared to previously packaged
  git snapshot):
  + Use udev for graphics device enumeration
  + Add new text plugin to replace the tribar one
  + Add background tiling and watermark support to two-step
  + Make various plymouth commands that change state be resilient
    to being  called multiple times
  + Support going back to the initrd at shutdown
  + Keyfile parser improvements
  + Make plymouthd use better defaults when running on top of X11
  + Fixes for systems using QXL
  + minor two-step plugin fixes
  + Use /sys/class/tty/console/active instead of parsing
    /proc/cmdline for consoles.
  + Documentation improvements
  + Drop driver specific renderers and use generic driver across the
    board.
  + Better debug message output
  + systemd integration fixes
  + upstart integration fixes
  + initrd scripts fixes
  + Misc fixes

OBS-URL: https://build.opensuse.org/request/show/236492
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=145
---
 plymouth-0.8.8_git20140327.tar.bz2 |  3 ---
 plymouth-0.9.0.tar.bz2             |  3 +++
 plymouth.changes                   | 26 ++++++++++++++++++++++++++
 plymouth.spec                      |  2 +-
 4 files changed, 30 insertions(+), 4 deletions(-)
 delete mode 100644 plymouth-0.8.8_git20140327.tar.bz2
 create mode 100644 plymouth-0.9.0.tar.bz2

diff --git a/plymouth-0.8.8_git20140327.tar.bz2 b/plymouth-0.8.8_git20140327.tar.bz2
deleted file mode 100644
index a7e147b..0000000
--- a/plymouth-0.8.8_git20140327.tar.bz2
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:395d8c90853ac8118ba4108cef270d3b2c3459cc7affcdaba6eb85375a2aa19e
-size 5481120
diff --git a/plymouth-0.9.0.tar.bz2 b/plymouth-0.9.0.tar.bz2
new file mode 100644
index 0000000..7e6c2b9
--- /dev/null
+++ b/plymouth-0.9.0.tar.bz2
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d3e22e750a8a83de7377e9fa88975f146f875bbd030055411a2faf74c2e6cd4d
+size 1159218
diff --git a/plymouth.changes b/plymouth.changes
index db74d09..5b3be55 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,29 @@
+-------------------------------------------------------------------
+Fri Jun  6 16:16:38 UTC 2014 - fcrozat@suse.com
+
+- Release 0.9.0 (3 additional fixes compared to previously packaged
+  git snapshot):
+  + Use udev for graphics device enumeration
+  + Add new text plugin to replace the tribar one
+  + Add background tiling and watermark support to two-step
+  + Make various plymouth commands that change state be resilient
+    to being  called multiple times
+  + Support going back to the initrd at shutdown
+  + Keyfile parser improvements
+  + Make plymouthd use better defaults when running on top of X11
+  + Fixes for systems using QXL
+  + minor two-step plugin fixes
+  + Use /sys/class/tty/console/active instead of parsing
+    /proc/cmdline for consoles.
+  + Documentation improvements
+  + Drop driver specific renderers and use generic driver across the
+    board.
+  + Better debug message output
+  + systemd integration fixes
+  + upstart integration fixes
+  + initrd scripts fixes
+  + Misc fixes
+
 -------------------------------------------------------------------
 Thu Jun  5 07:24:10 UTC 2014 - idonmez@suse.com
 
diff --git a/plymouth.spec b/plymouth.spec
index 17070fa..1555cf5 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -22,7 +22,7 @@
 %define plymouth_initrd_file /boot/initrd-plymouth.img
 
 Name:           plymouth
-Version:        0.8.8_git20140327
+Version:        0.9.0
 Release:        0
 Summary:        Graphical Boot Animation and Logger
 License:        GPL-2.0+

From d25a97433e3961639509522e80b6934816167982acb20ce80fac4200fab85d7e Mon Sep 17 00:00:00 2001
From: Marcus Meissner <meissner@suse.com>
Date: Fri, 20 Jun 2014 12:36:53 +0000
Subject: [PATCH 11/22] Accepting request 238080 from
 home:fcrozat:branches:Base:System

- Add
  0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch:
  fix crash when pixel_display is removed.
- Add 0001-device-manager-only-call-ply_terminal_free.patch: fix
  crash.
- Add use-mkinitrd.patch: call mkinitrd -B, not dracut for now,
  otherwise initramfs is being created by plymouth-update-initrd,
  not initrd file.
- Ensure we don't rebuild initrd twice when updating plymouth.
- Ensure default theme is SLE/openSUSE (based on %suse_version)

OBS-URL: https://build.opensuse.org/request/show/238080
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=146
---
 ...-manager-only-call-ply_terminal_free.patch |  26 +++++
 0001-seats-guard-against-NULL-terminal.patch  |  94 ++++++++++++++++
 ...xel_pixel-in-sprite-lib-when-notifie.patch | 101 ++++++++++++++++++
 plymouth.changes                              |  14 +++
 plymouth.spec                                 |  20 +++-
 use-mkinitrd.patch                            |   8 ++
 6 files changed, 261 insertions(+), 2 deletions(-)
 create mode 100644 0001-device-manager-only-call-ply_terminal_free.patch
 create mode 100644 0001-seats-guard-against-NULL-terminal.patch
 create mode 100644 0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch
 create mode 100644 use-mkinitrd.patch

diff --git a/0001-device-manager-only-call-ply_terminal_free.patch b/0001-device-manager-only-call-ply_terminal_free.patch
new file mode 100644
index 0000000..2b46fc5
--- /dev/null
+++ b/0001-device-manager-only-call-ply_terminal_free.patch
@@ -0,0 +1,26 @@
+From 54951cef0e5ea3caeae1eb0ec33db7ed37d0d4b3 Mon Sep 17 00:00:00 2001
+From: Frederic Crozat <fcrozat@suse.com>
+Date: Thu, 12 Jun 2014 13:50:51 +0200
+Subject: [PATCH] device-manager: only call ply_terminal_free
+
+ply_terminal_free will call ply_terminal_close anyway and is guarded
+against NULL terminal (ply_terminal_close is not).
+---
+ src/libply-splash-core/ply-device-manager.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
+index dbc203d..aa4d15c 100644
+--- a/src/libply-splash-core/ply-device-manager.c
++++ b/src/libply-splash-core/ply-device-manager.c
+@@ -442,7 +442,6 @@ free_terminal (char                 *device,
+ {
+   ply_hashtable_remove (manager->terminals, device);
+ 
+-  ply_terminal_close (terminal);
+   ply_terminal_free (terminal);
+ }
+ 
+-- 
+1.8.4.5
+
diff --git a/0001-seats-guard-against-NULL-terminal.patch b/0001-seats-guard-against-NULL-terminal.patch
new file mode 100644
index 0000000..5e5ea50
--- /dev/null
+++ b/0001-seats-guard-against-NULL-terminal.patch
@@ -0,0 +1,94 @@
+From a6eff09852c2eb4d684526b814d2b2df578938d0 Mon Sep 17 00:00:00 2001
+From: Frederic Crozat <fcrozat@suse.com>
+Date: Thu, 12 Jun 2014 18:51:24 +0200
+Subject: [PATCH] seats: guard against NULL terminal
+
+---
+ src/libply-splash-core/ply-keyboard.c |  7 +++++--
+ src/libply-splash-core/ply-seat.c     |  6 +++---
+ src/libply-splash-core/ply-terminal.c | 11 +++++++----
+ 3 files changed, 15 insertions(+), 9 deletions(-)
+
+diff --git a/src/libply-splash-core/ply-keyboard.c b/src/libply-splash-core/ply-keyboard.c
+index 624f906..1bed19f 100644
+--- a/src/libply-splash-core/ply-keyboard.c
++++ b/src/libply-splash-core/ply-keyboard.c
+@@ -423,8 +423,11 @@ ply_keyboard_free (ply_keyboard_t *keyboard)
+     }
+   else
+     {
+-      ply_buffer_free (keyboard->provider.if_terminal->key_buffer);
+-      free (keyboard->provider.if_terminal);
++      if (keyboard->provider.if_terminal)
++        {
++          ply_buffer_free (keyboard->provider.if_terminal->key_buffer);
++          free (keyboard->provider.if_terminal);
++        }
+     }
+ 
+   free (keyboard);
+diff --git a/src/libply-splash-core/ply-seat.c b/src/libply-splash-core/ply-seat.c
+index 2ac8bf7..29e2dfa 100644
+--- a/src/libply-splash-core/ply-seat.c
++++ b/src/libply-splash-core/ply-seat.c
+@@ -102,12 +102,12 @@ add_text_displays (ply_seat_t *seat)
+ {
+   ply_text_display_t *display;
+ 
+-  if (!ply_terminal_is_open (seat->terminal))
++  if (!seat->terminal || !ply_terminal_is_open (seat->terminal))
+     {
+-      if (!ply_terminal_open (seat->terminal))
++      if (!seat->terminal || !ply_terminal_open (seat->terminal))
+         {
+           ply_trace ("could not add terminal %s: %m",
+-                     ply_terminal_get_name (seat->terminal));
++                     seat->terminal ? ply_terminal_get_name (seat->terminal) : "none" );
+           return;
+         }
+     }
+diff --git a/src/libply-splash-core/ply-terminal.c b/src/libply-splash-core/ply-terminal.c
+index 992dd3f..b52b108 100644
+--- a/src/libply-splash-core/ply-terminal.c
++++ b/src/libply-splash-core/ply-terminal.c
+@@ -654,30 +654,33 @@ ply_terminal_open (ply_terminal_t *terminal)
+ int
+ ply_terminal_get_fd (ply_terminal_t *terminal)
+ {
+-  return terminal->fd;
++  return terminal ? terminal->fd : -1;
+ }
+ 
+ bool
+ ply_terminal_is_vt (ply_terminal_t *terminal)
+ {
+-  return terminal->vt_number > 0;
++  return terminal ? terminal->vt_number > 0 : false;
+ }
+ 
+ bool
+ ply_terminal_is_open (ply_terminal_t *terminal)
+ {
+-  return terminal->is_open;
++  return terminal ? terminal->is_open : false;
+ }
+ 
+ bool
+ ply_terminal_is_active (ply_terminal_t *terminal)
+ {
+-  return terminal->is_active;
++  return terminal ? terminal->is_active : false;
+ }
+ 
+ void
+ ply_terminal_close (ply_terminal_t *terminal)
+ {
++  if (!terminal)
++    return;
++
+   if (!terminal->is_open)
+     {
+       ply_trace ("terminal %s is already closed", terminal->name);
+-- 
+1.8.4.5
+
diff --git a/0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch b/0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch
new file mode 100644
index 0000000..ccc4063
--- /dev/null
+++ b/0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch
@@ -0,0 +1,101 @@
+From 61525fba34c724b6e319f6b3b8198c0c0f8aa677 Mon Sep 17 00:00:00 2001
+From: Frederic Crozat <fcrozat@suse.com>
+Date: Thu, 19 Jun 2014 16:18:12 +0200
+Subject: [PATCH] splash: remove pixel_pixel in sprite-lib when notified they
+ are gone
+
+---
+ src/plugins/splash/script/plugin.c            |  1 +
+ src/plugins/splash/script/script-lib-sprite.c | 28 +++++++++++++++++++++++----
+ src/plugins/splash/script/script-lib-sprite.h |  1 +
+ 3 files changed, 26 insertions(+), 4 deletions(-)
+
+diff --git a/src/plugins/splash/script/plugin.c b/src/plugins/splash/script/plugin.c
+index c5c1e16..8e37b37 100644
+--- a/src/plugins/splash/script/plugin.c
++++ b/src/plugins/splash/script/plugin.c
+@@ -401,6 +401,7 @@ static void
+ remove_pixel_display (ply_boot_splash_plugin_t *plugin,
+                       ply_pixel_display_t      *display)
+ {
++  script_lib_sprite_pixel_display_removed (plugin->script_sprite_lib, display);
+   ply_list_remove_data(plugin->displays, display);
+ }
+ 
+diff --git a/src/plugins/splash/script/script-lib-sprite.c b/src/plugins/splash/script/script-lib-sprite.c
+index e0ced7e..166c7e7 100644
+--- a/src/plugins/splash/script/script-lib-sprite.c
++++ b/src/plugins/splash/script/script-lib-sprite.c
+@@ -77,7 +77,7 @@ static script_return_t sprite_get_image (script_state_t *state,
+ {
+   script_lib_sprite_data_t *data = user_data;
+   sprite_t *sprite = script_obj_as_native_of_class (state->this, data->class);
+-  
++
+   if (sprite && sprite->image_obj)
+     {
+       script_obj_ref (sprite->image_obj);
+@@ -481,7 +481,7 @@ static void script_lib_sprite_draw_area (script_lib_display_t *display,
+     }
+ }
+ 
+-static void 
++static void
+ draw_area (script_lib_sprite_data_t *data,
+            int                       x,
+            int                       y,
+@@ -533,10 +533,10 @@ script_lib_sprite_data_t *script_lib_sprite_setup (script_state_t *state,
+       ply_pixel_display_t *pixel_display = ply_list_node_get_data (node);
+       script_lib_display_t *script_display = malloc (sizeof(script_lib_display_t));
+       script_display->pixel_display = pixel_display;
+-      
++
+       script_display->x = (max_width - ply_pixel_display_get_width (pixel_display)) / 2;
+       script_display->y = (max_height - ply_pixel_display_get_height (pixel_display)) / 2;
+-      
++
+       script_display->data = data;
+       ply_pixel_display_set_draw_handler (pixel_display,
+                                           (ply_pixel_display_draw_handler_t)
+@@ -698,6 +698,26 @@ region_add_area      (ply_region_t *region,
+   ply_region_add_rectangle (region, &rectangle);
+ }
+ 
++void script_lib_sprite_pixel_display_removed (script_lib_sprite_data_t *data, ply_pixel_display_t *pixel_display)
++{
++    ply_list_node_t *node;
++    ply_list_node_t *next_node;
++    script_lib_display_t* display;
++
++    node = ply_list_get_first_node (data->displays);
++    while (node)
++    {
++        next_node = ply_list_get_next_node (data->displays, node);
++        display = ply_list_node_get_data (node);
++
++        if (display->pixel_display == pixel_display)
++        {
++            ply_list_remove_node (data->displays, node);
++        }
++        node = next_node;
++    }
++}
++
+ void
+ script_lib_sprite_refresh (script_lib_sprite_data_t *data)
+ {
+diff --git a/src/plugins/splash/script/script-lib-sprite.h b/src/plugins/splash/script/script-lib-sprite.h
+index 0cb0681..2404b85 100644
+--- a/src/plugins/splash/script/script-lib-sprite.h
++++ b/src/plugins/splash/script/script-lib-sprite.h
+@@ -65,6 +65,7 @@ typedef struct
+ 
+ script_lib_sprite_data_t *script_lib_sprite_setup (script_state_t *state,
+                                                    ply_list_t     *displays);
++void script_lib_sprite_pixel_display_removed (script_lib_sprite_data_t *data, ply_pixel_display_t *pixel_display);
+ void script_lib_sprite_refresh (script_lib_sprite_data_t *data);
+ void script_lib_sprite_destroy (script_lib_sprite_data_t *data);
+ 
+-- 
+1.8.4.5
+
diff --git a/plymouth.changes b/plymouth.changes
index 5b3be55..8342df6 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,17 @@
+-------------------------------------------------------------------
+Thu Jun 19 14:22:44 UTC 2014 - fcrozat@suse.com
+
+- Add
+  0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch:
+  fix crash when pixel_display is removed.
+- Add 0001-device-manager-only-call-ply_terminal_free.patch: fix
+  crash.
+- Add use-mkinitrd.patch: call mkinitrd -B, not dracut for now,
+  otherwise initramfs is being created by plymouth-update-initrd,
+  not initrd file.
+- Ensure we don't rebuild initrd twice when updating plymouth.
+- Ensure default theme is SLE/openSUSE (based on %suse_version)
+
 -------------------------------------------------------------------
 Fri Jun  6 16:16:38 UTC 2014 - fcrozat@suse.com
 
diff --git a/plymouth.spec b/plymouth.spec
index 1555cf5..9d541b4 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -42,6 +42,14 @@ Patch16:        plymouth-correct-runtime-dir.patch
 # PATCH-FIX-UPSTREAM plymouth-manpages.patch idoenmez@suse.de -- Fix man page installation
 Patch17:        plymouth-manpages.patch
 Patch18:        fix-serial-consoles.patch
+# PATCH-FIX-UPSTREAM 0001-device-manager-only-call-ply_terminal_free.patch fcrozat@suse.com -- Fix crash
+Patch19:        0001-device-manager-only-call-ply_terminal_free.patch
+# PATCH-FIX-OPENSUSE use-mkinitrd.patch fcrozat@suse.com -- call mkinitrd -B for now
+Patch20:        use-mkinitrd.patch
+# PATCH-FIX-UPSTREAM 0001-seats-guard-against-NULL-terminal.patch fcrozat@suse.com -- guard against null terminal
+Patch21:        0001-seats-guard-against-NULL-terminal.patch
+# PATCH-FIX-UPSTREAM 0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch fcrozat@suse.com -- prevent crash if pixel display is removed
+Patch22:        0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch
 BuildRequires:  automake
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  kernel-headers
@@ -328,12 +336,21 @@ plugin.
 %patch16 -p1
 %patch17 -p1
 %patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
 
 # replace builddate with patch0date
 sed -i "s/__DATE__/\"$(stat -c %y %{_sourcedir}/%{name}.changes)\"/" src/main.c
 
 # Change the default theme
-sed -i -e 's/fade-in/openSUSE/g' src/plymouthd.defaults
+
+%if %{suse_version} == 1315
+sed -i -e 's/spinner/SLE/g' src/plymouthd.defaults
+%else
+sed -i -e 's/spinner/openSUSE/g' src/plymouthd.defaults
+%endif
 
 %build
 autoreconf -fiv
@@ -384,7 +401,6 @@ cp %{buildroot}/%{_datadir}/plymouth/plymouthd.defaults %{buildroot}/%{_sysconfd
 %{?regenerate_initrd_post}
 if [ ! -e /.buildenv ]; then 
    [ -f %{_localstatedir}/lib/plymouth/boot-duration ] || cp -f %{_datadir}/plymouth/default-boot-duration %{_localstatedir}/lib/plymouth/boot-duration
-   %{_libexecdir}/plymouth/plymouth-update-initrd
 fi
 [ -x /bin/systemctl ] && /bin/systemctl daemon-reload >/dev/null 2>&1 || :
 
diff --git a/use-mkinitrd.patch b/use-mkinitrd.patch
new file mode 100644
index 0000000..ccb74ba
--- /dev/null
+++ b/use-mkinitrd.patch
@@ -0,0 +1,8 @@
+Index: plymouth-0.9.0/scripts/plymouth-update-initrd
+===================================================================
+--- plymouth-0.9.0.orig/scripts/plymouth-update-initrd
++++ plymouth-0.9.0/scripts/plymouth-update-initrd
+@@ -1,2 +1,2 @@
+ #!/bin/bash
+-dracut -f
++mkinitrd -B

From b250e6e2615ab3ae17f3d25ca603629b178d4b8329d9e0093d172a22a5eee6bf Mon Sep 17 00:00:00 2001
From: Stephan Kulow <coolo@suse.com>
Date: Wed, 25 Jun 2014 20:44:01 +0000
Subject: [PATCH 12/22] Accepting request 238657 from
 home:fcrozat:branches:Base:System

- Add
  0001-splash-do-not-process-display-lists-if-it-is-empty.patch:
  fix crash when calling plymouth quit
- Add 0001-seats-guard-against-NULL-terminal.patch: guard against
  NULL terminal.
- Update stop-graphical.patch: add RemainAfterExit=true to
  plymouth-start.service, ensuring plymouthd is not restarted when
  switching between runlevels.

OBS-URL: https://build.opensuse.org/request/show/238657
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=147
---
 ...process-display-lists-if-it-is-empty.patch | 56 +++++++++++++++++++
 plymouth.changes                              | 11 ++++
 plymouth.spec                                 |  3 +
 stop-graphical.patch                          | 12 ++--
 4 files changed, 76 insertions(+), 6 deletions(-)
 create mode 100644 0001-splash-do-not-process-display-lists-if-it-is-empty.patch

diff --git a/0001-splash-do-not-process-display-lists-if-it-is-empty.patch b/0001-splash-do-not-process-display-lists-if-it-is-empty.patch
new file mode 100644
index 0000000..eb36c37
--- /dev/null
+++ b/0001-splash-do-not-process-display-lists-if-it-is-empty.patch
@@ -0,0 +1,56 @@
+From 95b775ea543489c688595e94a96909402b2b56f1 Mon Sep 17 00:00:00 2001
+From: Frederic Crozat <fcrozat@suse.com>
+Date: Fri, 20 Jun 2014 16:01:12 +0200
+Subject: [PATCH] splash: do not process display lists if it is empty or NULL
+
+---
+ src/plugins/splash/script/plugin.c            | 1 +
+ src/plugins/splash/script/script-lib-sprite.c | 7 +++++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/src/plugins/splash/script/plugin.c b/src/plugins/splash/script/plugin.c
+index 8e37b37..cd9e052 100644
+--- a/src/plugins/splash/script/plugin.c
++++ b/src/plugins/splash/script/plugin.c
+@@ -334,6 +334,7 @@ stop_script_animation (ply_boot_splash_plugin_t *plugin)
+ 
+   script_state_destroy (plugin->script_state);
+   script_lib_sprite_destroy (plugin->script_sprite_lib);
++  plugin->script_sprite_lib = NULL;
+   script_lib_image_destroy (plugin->script_image_lib);
+   script_lib_plymouth_destroy (plugin->script_plymouth_lib);
+   script_lib_math_destroy (plugin->script_math_lib);
+diff --git a/src/plugins/splash/script/script-lib-sprite.c b/src/plugins/splash/script/script-lib-sprite.c
+index 166c7e7..f1cd57f 100644
+--- a/src/plugins/splash/script/script-lib-sprite.c
++++ b/src/plugins/splash/script/script-lib-sprite.c
+@@ -704,6 +704,9 @@ void script_lib_sprite_pixel_display_removed (script_lib_sprite_data_t *data, pl
+     ply_list_node_t *next_node;
+     script_lib_display_t* display;
+ 
++    if (!data)
++        return;
++
+     node = ply_list_get_first_node (data->displays);
+     while (node)
+     {
+@@ -725,6 +728,9 @@ script_lib_sprite_refresh (script_lib_sprite_data_t *data)
+   ply_region_t *region = ply_region_new ();
+   ply_list_t *rectable_list;
+ 
++  if (!data)
++      return;
++
+   ply_list_sort_stable (data->sprite_list, &sprite_compare_z);
+ 
+   node = ply_list_get_first_node (data->sprite_list);
+@@ -848,5 +854,6 @@ void script_lib_sprite_destroy (script_lib_sprite_data_t *data)
+   script_parse_op_free (data->script_main_op);
+   script_obj_native_class_destroy (data->class);
+   free (data);
++  data = NULL;
+ }
+ 
+-- 
+1.8.4.5
+
diff --git a/plymouth.changes b/plymouth.changes
index 8342df6..73e5ef2 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,4 +1,15 @@
 -------------------------------------------------------------------
+Fri Jun 20 14:03:36 UTC 2014 - fcrozat@suse.com
+
+- Add
+  0001-splash-do-not-process-display-lists-if-it-is-empty.patch:
+  fix crash when calling plymouth quit
+- Add 0001-seats-guard-against-NULL-terminal.patch: guard against
+  NULL terminal.
+- Update stop-graphical.patch: add RemainAfterExit=true to
+  plymouth-start.service, ensuring plymouthd is not restarted when
+  switching between runlevels.
+-------------------------------------------------------------------
 Thu Jun 19 14:22:44 UTC 2014 - fcrozat@suse.com
 
 - Add
diff --git a/plymouth.spec b/plymouth.spec
index 9d541b4..8ee2621 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -50,6 +50,8 @@ Patch20:        use-mkinitrd.patch
 Patch21:        0001-seats-guard-against-NULL-terminal.patch
 # PATCH-FIX-UPSTREAM 0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch fcrozat@suse.com -- prevent crash if pixel display is removed
 Patch22:        0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch
+# Patch-FIX-UPSTREAM 0001-splash-do-not-process-display-lists-if-it-is-empty.patch
+Patch23:        0001-splash-do-not-process-display-lists-if-it-is-empty.patch
 BuildRequires:  automake
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  kernel-headers
@@ -340,6 +342,7 @@ plugin.
 %patch20 -p1
 %patch21 -p1
 %patch22 -p1
+%patch23 -p1
 
 # replace builddate with patch0date
 sed -i "s/__DATE__/\"$(stat -c %y %{_sourcedir}/%{name}.changes)\"/" src/main.c
diff --git a/stop-graphical.patch b/stop-graphical.patch
index e2768b8..99100cc 100644
--- a/stop-graphical.patch
+++ b/stop-graphical.patch
@@ -1,7 +1,7 @@
-Index: plymouth-0.8.6.1/systemd-units/plymouth-quit-wait.service.in
+Index: plymouth-0.9.0/systemd-units/plymouth-quit-wait.service.in
 ===================================================================
---- plymouth-0.8.6.1.orig/systemd-units/plymouth-quit-wait.service.in
-+++ plymouth-0.8.6.1/systemd-units/plymouth-quit-wait.service.in
+--- plymouth-0.9.0.orig/systemd-units/plymouth-quit-wait.service.in
++++ plymouth-0.9.0/systemd-units/plymouth-quit-wait.service.in
 @@ -1,6 +1,7 @@
  [Unit]
  Description=Wait for Plymouth Boot Screen to Quit
@@ -10,10 +10,10 @@ Index: plymouth-0.8.6.1/systemd-units/plymouth-quit-wait.service.in
  
  [Service]
  ExecStart=-@PLYMOUTH_CLIENT_DIR@/plymouth --wait
-Index: plymouth-0.8.6.1/systemd-units/plymouth-quit.service.in
+Index: plymouth-0.9.0/systemd-units/plymouth-quit.service.in
 ===================================================================
---- plymouth-0.8.6.1.orig/systemd-units/plymouth-quit.service.in
-+++ plymouth-0.8.6.1/systemd-units/plymouth-quit.service.in
+--- plymouth-0.9.0.orig/systemd-units/plymouth-quit.service.in
++++ plymouth-0.9.0/systemd-units/plymouth-quit.service.in
 @@ -1,6 +1,7 @@
  [Unit]
  Description=Terminate Plymouth Boot Screen

From 1f8478f91ffe10bb2ff05c3e62ef60e2c816b746390e0bee37459edbe976a213 Mon Sep 17 00:00:00 2001
From: Stephan Kulow <coolo@suse.com>
Date: Sat, 28 Jun 2014 05:08:31 +0000
Subject: [PATCH 13/22] Accepting request 238922 from
 home:fcrozat:branches:Base:System

- Add
  0001-libply-splash-core-also-monitor-for-file-removal-in-.patch:
  handle new udev behaviour in seqnum removal.

OBS-URL: https://build.opensuse.org/request/show/238922
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=148
---
 ...re-also-monitor-for-file-removal-in-.patch | 26 +++++++++++++++++++
 plymouth.changes                              |  6 +++++
 plymouth.spec                                 |  5 +++-
 3 files changed, 36 insertions(+), 1 deletion(-)
 create mode 100644 0001-libply-splash-core-also-monitor-for-file-removal-in-.patch

diff --git a/0001-libply-splash-core-also-monitor-for-file-removal-in-.patch b/0001-libply-splash-core-also-monitor-for-file-removal-in-.patch
new file mode 100644
index 0000000..dc9aed3
--- /dev/null
+++ b/0001-libply-splash-core-also-monitor-for-file-removal-in-.patch
@@ -0,0 +1,26 @@
+From 920009efa99204de172332486de5ccff6a3332d5 Mon Sep 17 00:00:00 2001
+From: Frederic Crozat <fcrozat@suse.com>
+Date: Thu, 19 Jun 2014 17:58:50 +0200
+Subject: [PATCH] libply-splash-core: also monitor for file removal in udev
+ directory
+
+---
+ src/libply-splash-core/ply-device-manager.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
+index aa4d15c..06d751c 100644
+--- a/src/libply-splash-core/ply-device-manager.c
++++ b/src/libply-splash-core/ply-device-manager.c
+@@ -761,7 +761,7 @@ watch_for_coldplug_completion (ply_device_manager_t *manager)
+     }
+ 
+   fd = inotify_init1 (IN_CLOEXEC);
+-  result = inotify_add_watch (fd, "/run/udev", IN_MOVED_TO);
++  result = inotify_add_watch (fd, "/run/udev", IN_MOVED_TO | IN_DELETE);
+ 
+   if (result < 0)
+     {
+-- 
+1.8.4.5
+
diff --git a/plymouth.changes b/plymouth.changes
index 73e5ef2..7847c62 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,4 +1,10 @@
 -------------------------------------------------------------------
+Fri Jun 27 11:27:02 UTC 2014 - fcrozat@suse.com
+
+- Add
+  0001-libply-splash-core-also-monitor-for-file-removal-in-.patch:
+  handle new udev behaviour in seqnum removal.
+-------------------------------------------------------------------
 Fri Jun 20 14:03:36 UTC 2014 - fcrozat@suse.com
 
 - Add
diff --git a/plymouth.spec b/plymouth.spec
index 8ee2621..a93cd1d 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -50,8 +50,10 @@ Patch20:        use-mkinitrd.patch
 Patch21:        0001-seats-guard-against-NULL-terminal.patch
 # PATCH-FIX-UPSTREAM 0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch fcrozat@suse.com -- prevent crash if pixel display is removed
 Patch22:        0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch
-# Patch-FIX-UPSTREAM 0001-splash-do-not-process-display-lists-if-it-is-empty.patch
+# PATCH-FIX-UPSTREAM 0001-splash-do-not-process-display-lists-if-it-is-empty.patch fcrozat@suse.com -- do no crash when removing displays
 Patch23:        0001-splash-do-not-process-display-lists-if-it-is-empty.patch
+# PATCH-FIX-UPSTREAM 0001-libply-splash-core-also-monitor-for-file-removal-in-.patch fcrozat@suse.com -- handle recent udev
+Patch24:        0001-libply-splash-core-also-monitor-for-file-removal-in-.patch
 BuildRequires:  automake
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  kernel-headers
@@ -343,6 +345,7 @@ plugin.
 %patch21 -p1
 %patch22 -p1
 %patch23 -p1
+%patch24 -p1
 
 # replace builddate with patch0date
 sed -i "s/__DATE__/\"$(stat -c %y %{_sourcedir}/%{name}.changes)\"/" src/main.c

From 324a8050d0c1753172dc61bec0a4327458fb0cf696cdf126f6ecd53da3f04923 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= <ismail@i10z.com>
Date: Thu, 10 Jul 2014 08:55:13 +0000
Subject: [PATCH 14/22] Accepting request 239929 from
 home:fcrozat:branches:Base:System

- Update 0001-Some-greenish-openSUSE-colors.patch to also use SUSE
  colors on tribar [bnc#886148]

OBS-URL: https://build.opensuse.org/request/show/239929
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=149
---
 0001-Some-greenish-openSUSE-colors.patch | 34 ++++++++++++++++++------
 plymouth.changes                         |  8 ++++++
 2 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/0001-Some-greenish-openSUSE-colors.patch b/0001-Some-greenish-openSUSE-colors.patch
index 1bb89eb..9670e56 100644
--- a/0001-Some-greenish-openSUSE-colors.patch
+++ b/0001-Some-greenish-openSUSE-colors.patch
@@ -7,11 +7,11 @@ Subject: [PATCH] Some greenish openSUSE colors
  src/plugins/splash/text/plugin.c |    6 +++---
  1 files changed, 3 insertions(+), 3 deletions(-)
 
-diff --git a/src/plugins/splash/text/plugin.c b/src/plugins/splash/text/plugin.c
-index 50059be..d9235c5 100644
---- a/src/plugins/splash/text/plugin.c
-+++ b/src/plugins/splash/text/plugin.c
-@@ -180,13 +180,13 @@ view_start_animation (view_t *view)
+Index: plymouth-0.9.0/src/plugins/splash/text/plugin.c
+===================================================================
+--- plymouth-0.9.0.orig/src/plugins/splash/text/plugin.c
++++ plymouth-0.9.0/src/plugins/splash/text/plugin.c
+@@ -174,13 +174,13 @@ view_start_animation (view_t *view)
                                      0x000000);
    ply_terminal_set_color_hex_value (terminal,
                                      PLY_TERMINAL_COLOR_WHITE,
@@ -28,6 +28,24 @@ index 50059be..d9235c5 100644
  
    ply_text_display_set_background_color (view->display,
                                           PLY_TERMINAL_COLOR_BLACK);
--- 
-1.7.7
-
+Index: plymouth-0.9.0/src/plugins/splash/tribar/plugin.c
+===================================================================
+--- plymouth-0.9.0.orig/src/plugins/splash/tribar/plugin.c
++++ plymouth-0.9.0/src/plugins/splash/tribar/plugin.c
+@@ -177,13 +177,13 @@ view_start_animation (view_t *view)
+                                     0x000000);
+   ply_terminal_set_color_hex_value (terminal,
+                                     PLY_TERMINAL_COLOR_WHITE,
+-                                    0xffffff);
++                                    0x40ff00);
+   ply_terminal_set_color_hex_value (terminal,
+                                     PLY_TERMINAL_COLOR_BLUE,
+-                                    0x0073B3);
++                                    0x20a000);
+   ply_terminal_set_color_hex_value (terminal,
+                                     PLY_TERMINAL_COLOR_BROWN,
+-                                    0x00457E);
++                                    0x106000);
+ 
+   ply_text_display_set_background_color (view->display,
+                                          PLY_TERMINAL_COLOR_BLACK);
diff --git a/plymouth.changes b/plymouth.changes
index 7847c62..507b356 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,9 +1,16 @@
+-------------------------------------------------------------------
+Tue Jul  8 16:04:38 UTC 2014 - fcrozat@suse.com
+
+- Update 0001-Some-greenish-openSUSE-colors.patch to also use SUSE
+  colors on tribar [bnc#886148]
+
 -------------------------------------------------------------------
 Fri Jun 27 11:27:02 UTC 2014 - fcrozat@suse.com
 
 - Add
   0001-libply-splash-core-also-monitor-for-file-removal-in-.patch:
   handle new udev behaviour in seqnum removal.
+
 -------------------------------------------------------------------
 Fri Jun 20 14:03:36 UTC 2014 - fcrozat@suse.com
 
@@ -15,6 +22,7 @@ Fri Jun 20 14:03:36 UTC 2014 - fcrozat@suse.com
 - Update stop-graphical.patch: add RemainAfterExit=true to
   plymouth-start.service, ensuring plymouthd is not restarted when
   switching between runlevels.
+
 -------------------------------------------------------------------
 Thu Jun 19 14:22:44 UTC 2014 - fcrozat@suse.com
 

From 82c1a7ae5eadf9c8efd1afc5097e15c2669ef355539da0c67e5f558faeab569b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= <ismail@i10z.com>
Date: Sun, 27 Jul 2014 12:23:19 +0000
Subject: [PATCH 15/22] Accepting request 242379 from
 home:fcrozat:branches:Base:System

- Add plymouth-ignore-cirrusdrm.patch: ignore cirrus drm and use fb
  instead [bnc#888590]

- Add
  0001-seat-be-a-little-more-forgiving-in-the-case-there-s-.patch:
  Be more forgiving with empty seat.

OBS-URL: https://build.opensuse.org/request/show/242379
OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=150
---
 ...-more-forgiving-in-the-case-there-s-.patch | 47 +++++++++++++++++++
 plymouth-ignore-cirrusdrm.patch               | 21 +++++++++
 plymouth.changes                              | 13 +++++
 plymouth.spec                                 |  6 +++
 4 files changed, 87 insertions(+)
 create mode 100644 0001-seat-be-a-little-more-forgiving-in-the-case-there-s-.patch
 create mode 100644 plymouth-ignore-cirrusdrm.patch

diff --git a/0001-seat-be-a-little-more-forgiving-in-the-case-there-s-.patch b/0001-seat-be-a-little-more-forgiving-in-the-case-there-s-.patch
new file mode 100644
index 0000000..64a5bee
--- /dev/null
+++ b/0001-seat-be-a-little-more-forgiving-in-the-case-there-s-.patch
@@ -0,0 +1,47 @@
+From 84eb4381db85877a9a56b35994e6c10d43e46ebe Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Mon, 14 Jul 2014 08:04:54 -0400
+Subject: [PATCH] seat: be a little more forgiving in the case there's no open
+ terminal
+
+We can end up in a situation where a seat object doesn't have a terminal
+associated with it.  In that case we shouldn't crash, but continue on
+with no input available for that seat.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=80553
+---
+ src/libply-splash-core/ply-seat.c | 17 +++++++++++++----
+ 1 file changed, 13 insertions(+), 4 deletions(-)
+
+Index: plymouth-0.9.0/src/libply-splash-core/ply-seat.c
+===================================================================
+--- plymouth-0.9.0.orig/src/libply-splash-core/ply-seat.c
++++ plymouth-0.9.0/src/libply-splash-core/ply-seat.c
+@@ -154,14 +154,23 @@ ply_seat_open (ply_seat_t          *seat
+       add_pixel_displays (seat);
+ 
+     }
+-  else
++  else if (seat->terminal != NULL)
+     {
+       seat->keyboard = ply_keyboard_new_for_terminal (seat->terminal);
+     }
+-  add_text_displays (seat);
+ 
+-  ply_keyboard_watch_for_input (seat->keyboard);
+-  seat->keyboard_active = true;
++    if (seat->terminal != NULL) {
++            add_text_displays (seat);
++    } else {
++            ply_trace ("not adding text display for seat, since seat has no associated terminal");
++    }
++
++    if (seat->keyboard != NULL) {
++            ply_keyboard_watch_for_input (seat->keyboard);
++            seat->keyboard_active = true;
++    } else {
++            ply_trace ("not watching seat for input");
++    }
+ 
+   return true;
+ }
diff --git a/plymouth-ignore-cirrusdrm.patch b/plymouth-ignore-cirrusdrm.patch
new file mode 100644
index 0000000..d6f4f24
--- /dev/null
+++ b/plymouth-ignore-cirrusdrm.patch
@@ -0,0 +1,21 @@
+Index: plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
+===================================================================
+--- plymouth-0.9.0.orig/src/libply-splash-core/ply-device-manager.c
++++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
+@@ -151,8 +151,14 @@ fb_device_has_drm_device (ply_device_man
+       card_path = udev_list_entry_get_name (card_entry);
+       card_device = udev_device_new_from_syspath (manager->udev_context, card_path);
+       card_node = udev_device_get_devnode (card_device);
+-      if (card_node != NULL)
+-        has_drm_device = true;
++      if (card_node != NULL) {
++          /* don't consider drm driver for cirrus usable */
++        const char *card_name = udev_device_get_sysattr_value (card_device, "name");
++        if ((card_name != 0) && strcmp ("cirrusdrmfb", card_name) != 0)
++            has_drm_device = true;
++        else
++            has_drm_device = false;
++      }
+       else
+         ply_trace ("no card node!");
+ 
diff --git a/plymouth.changes b/plymouth.changes
index 507b356..35cb014 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,16 @@
+-------------------------------------------------------------------
+Fri Jul 25 14:32:38 CEST 2014 - fcrozat@suse.com
+
+- Add plymouth-ignore-cirrusdrm.patch: ignore cirrus drm and use fb
+  instead [bnc#888590]
+
+-------------------------------------------------------------------
+Thu Jul 24 16:30:43 UTC 2014 - fcrozat@suse.com
+
+- Add
+  0001-seat-be-a-little-more-forgiving-in-the-case-there-s-.patch:
+  Be more forgiving with empty seat.
+
 -------------------------------------------------------------------
 Tue Jul  8 16:04:38 UTC 2014 - fcrozat@suse.com
 
diff --git a/plymouth.spec b/plymouth.spec
index a93cd1d..4210a4d 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -54,6 +54,10 @@ Patch22:        0001-splash-remove-pixel_pixel-in-sprite-lib-when-notifie.patch
 Patch23:        0001-splash-do-not-process-display-lists-if-it-is-empty.patch
 # PATCH-FIX-UPSTREAM 0001-libply-splash-core-also-monitor-for-file-removal-in-.patch fcrozat@suse.com -- handle recent udev
 Patch24:        0001-libply-splash-core-also-monitor-for-file-removal-in-.patch
+# PATCH-FIX-UPSTREAM 0001-seat-be-a-little-more-forgiving-in-the-case-there-s-.patch fcrozat@suse.com -- handle empty seat better
+Patch25:        0001-seat-be-a-little-more-forgiving-in-the-case-there-s-.patch
+# PATCH-FIX-UPSTREAM plymouth-ignore-cirrusdrm.patch fcrozat@suse.com -- ignore cirrusdrm, use fb instead
+Patch26:        plymouth-ignore-cirrusdrm.patch
 BuildRequires:  automake
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  kernel-headers
@@ -346,6 +350,8 @@ plugin.
 %patch22 -p1
 %patch23 -p1
 %patch24 -p1
+%patch25 -p1
+%patch26 -p1
 
 # replace builddate with patch0date
 sed -i "s/__DATE__/\"$(stat -c %y %{_sourcedir}/%{name}.changes)\"/" src/main.c

From 3534b1cd54c7924082f439db9f020a67f6629100c28cf14593b33bbe883a803d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= <ismail@i10z.com>
Date: Thu, 7 Aug 2014 11:00:56 +0000
Subject: [PATCH 16/22] - Invert the logic in plymouth-ignore-cirrusdrm.patch
 bnc#890516

- Add
  0001-text-step-bar-use-correct-utf-8-multibyte-sequence-f.patch:
  fix incorrect UTF-8 code used for square [bnc#886148].

OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=151
---
 ...e-correct-utf-8-multibyte-sequence-f.patch | 37 +++++++++++++++++++
 plymouth-ignore-cirrusdrm.patch               |  8 ++--
 plymouth.changes                              | 12 ++++++
 3 files changed, 53 insertions(+), 4 deletions(-)
 create mode 100644 0001-text-step-bar-use-correct-utf-8-multibyte-sequence-f.patch

diff --git a/0001-text-step-bar-use-correct-utf-8-multibyte-sequence-f.patch b/0001-text-step-bar-use-correct-utf-8-multibyte-sequence-f.patch
new file mode 100644
index 0000000..cfdd5e1
--- /dev/null
+++ b/0001-text-step-bar-use-correct-utf-8-multibyte-sequence-f.patch
@@ -0,0 +1,37 @@
+From 40c2dd36c5da64919f69dd4f37de2ecf19f23058 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Mon, 28 Jul 2014 09:58:49 -0400
+Subject: [PATCH] =?UTF-8?q?text-step-bar:=20use=20correct=20utf-8=20multib?=
+ =?UTF-8?q?yte=20sequence=20for=20=E2=96=A0?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+For some reason in commit 113526408c5706c9efc7f43c3f8258354e762677
+I commited the sequence \x25\x96\xa0 in place of the block character
+that was there before.  I don't know where I got \x25 from, but it's
+not right (and couldn't even be right since the high order bit isn't
+set which is a requirement for the first byte in multi-byte utf-8
+sequences).
+
+This commit uses \xe2 instead which I got from doing:
+
+$ echo ■  | xxd
+0000000: e296 a00a                                ....
+---
+ src/libply-splash-core/ply-text-step-bar.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: plymouth-0.9.0/src/libply-splash-core/ply-text-step-bar.c
+===================================================================
+--- plymouth-0.9.0.orig/src/libply-splash-core/ply-text-step-bar.c
++++ plymouth-0.9.0/src/libply-splash-core/ply-text-step-bar.c
+@@ -96,7 +96,7 @@ ply_text_step_bar_draw (ply_text_step_ba
+         }
+ 
+       /* U+25A0 BLACK SQUARE */
+-      ply_text_display_write (step_bar->display, "%s", "\x25\x96\xa0");
++      ply_text_display_write (step_bar->display, "%s", "\xe2\x96\xa0");
+       ply_text_display_write (step_bar->display, "%c", ' ');
+     }
+ 
diff --git a/plymouth-ignore-cirrusdrm.patch b/plymouth-ignore-cirrusdrm.patch
index d6f4f24..4d25f7a 100644
--- a/plymouth-ignore-cirrusdrm.patch
+++ b/plymouth-ignore-cirrusdrm.patch
@@ -2,7 +2,7 @@ Index: plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
 ===================================================================
 --- plymouth-0.9.0.orig/src/libply-splash-core/ply-device-manager.c
 +++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
-@@ -151,8 +151,14 @@ fb_device_has_drm_device (ply_device_man
+@@ -149,8 +149,14 @@ fb_device_has_drm_device (ply_device_man
        card_path = udev_list_entry_get_name (card_entry);
        card_device = udev_device_new_from_syspath (manager->udev_context, card_path);
        card_node = udev_device_get_devnode (card_device);
@@ -11,10 +11,10 @@ Index: plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
 +      if (card_node != NULL) {
 +          /* don't consider drm driver for cirrus usable */
 +        const char *card_name = udev_device_get_sysattr_value (card_device, "name");
-+        if ((card_name != 0) && strcmp ("cirrusdrmfb", card_name) != 0)
-+            has_drm_device = true;
-+        else
++        if (card_name && strcmp ("cirrusdrmfb", card_name) == 0)
 +            has_drm_device = false;
++        else
++            has_drm_device = true;
 +      }
        else
          ply_trace ("no card node!");
diff --git a/plymouth.changes b/plymouth.changes
index 35cb014..94363ed 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,15 @@
+-------------------------------------------------------------------
+Thu Aug  7 09:24:37 UTC 2014 - idonmez@suse.com
+
+- Invert the logic in plymouth-ignore-cirrusdrm.patch bnc#890516
+
+-------------------------------------------------------------------
+Mon Jul 28 16:10:49 CEST 2014 - fcrozat@suse.com
+
+- Add
+  0001-text-step-bar-use-correct-utf-8-multibyte-sequence-f.patch:
+  fix incorrect UTF-8 code used for square [bnc#886148].
+
 -------------------------------------------------------------------
 Fri Jul 25 14:32:38 CEST 2014 - fcrozat@suse.com
 

From cf2a476bc8c72d889026b1466e1826d6b02585d5cbb1680ef7ef35d8c9cff01f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= <ismail@i10z.com>
Date: Thu, 7 Aug 2014 11:01:10 +0000
Subject: [PATCH 17/22] -

OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=152
---
 plymouth.spec | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/plymouth.spec b/plymouth.spec
index 4210a4d..e710aa9 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -58,6 +58,9 @@ Patch24:        0001-libply-splash-core-also-monitor-for-file-removal-in-.patch
 Patch25:        0001-seat-be-a-little-more-forgiving-in-the-case-there-s-.patch
 # PATCH-FIX-UPSTREAM plymouth-ignore-cirrusdrm.patch fcrozat@suse.com -- ignore cirrusdrm, use fb instead
 Patch26:        plymouth-ignore-cirrusdrm.patch
+# PATCH-FIX-UPSTREAM 0001-text-step-bar-use-correct-utf-8-multibyte-sequence-f.patch bnc#886148 fcrozat@suse.com -- fix UTF-8 code for square
+Patch27:        0001-text-step-bar-use-correct-utf-8-multibyte-sequence-f.patch
+
 BuildRequires:  automake
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  kernel-headers
@@ -352,6 +355,7 @@ plugin.
 %patch24 -p1
 %patch25 -p1
 %patch26 -p1
+%patch27 -p1
 
 # replace builddate with patch0date
 sed -i "s/__DATE__/\"$(stat -c %y %{_sourcedir}/%{name}.changes)\"/" src/main.c

From 87904dbf16b7ba75f3ba562eca906ae9977187c12b3b505ea4e9ca2476770c88 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= <ismail@i10z.com>
Date: Mon, 11 Aug 2014 14:31:21 +0000
Subject: [PATCH 18/22] - Modify plymouth-ignore-cirrusdrm.patch to return as  
 early as possible. Patch by glin@suse.com

OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=153
---
 plymouth-ignore-cirrusdrm.patch | 36 ++++++++++++++-------------------
 plymouth.changes                |  6 ++++++
 2 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/plymouth-ignore-cirrusdrm.patch b/plymouth-ignore-cirrusdrm.patch
index 4d25f7a..55c6e49 100644
--- a/plymouth-ignore-cirrusdrm.patch
+++ b/plymouth-ignore-cirrusdrm.patch
@@ -1,21 +1,15 @@
-Index: plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
-===================================================================
---- plymouth-0.9.0.orig/src/libply-splash-core/ply-device-manager.c
-+++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
-@@ -149,8 +149,14 @@ fb_device_has_drm_device (ply_device_man
-       card_path = udev_list_entry_get_name (card_entry);
-       card_device = udev_device_new_from_syspath (manager->udev_context, card_path);
-       card_node = udev_device_get_devnode (card_device);
--      if (card_node != NULL)
--        has_drm_device = true;
-+      if (card_node != NULL) {
-+          /* don't consider drm driver for cirrus usable */
-+        const char *card_name = udev_device_get_sysattr_value (card_device, "name");
-+        if (card_name && strcmp ("cirrusdrmfb", card_name) == 0)
-+            has_drm_device = false;
-+        else
-+            has_drm_device = true;
-+      }
-       else
-         ply_trace ("no card node!");
- 
+diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
+index a5aa59d..0be2117 100644
+--- a/src/libply-splash-core/ply-device-manager.c
++++ b/src/libply-splash-core/ply-device-manager.c
+@@ -125,6 +125,10 @@ fb_device_has_drm_device (ply_device_manager_t *manager,
+   const char *id_path;
+   bool has_drm_device = false;
+ 
++  const char *card_name = udev_device_get_sysattr_value (fb_device, "name");
++  if (card_name && strcmp ("cirrusdrmfb", card_name) == 0)
++    return false;
++
+   /* We want to see if the framebuffer is associated with a DRM-capable
+    * graphics card, if it is, we'll use the DRM device */
+   card_matches = udev_enumerate_new (manager->udev_context);
diff --git a/plymouth.changes b/plymouth.changes
index 94363ed..6d46132 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,9 @@
+-------------------------------------------------------------------
+Mon Aug 11 14:23:27 UTC 2014 - idonmez@suse.com
+
+- Modify plymouth-ignore-cirrusdrm.patch to return as
+  early as possible. Patch by glin@suse.com
+
 -------------------------------------------------------------------
 Thu Aug  7 09:24:37 UTC 2014 - idonmez@suse.com
 

From 1ffbd1c496e15d71ba87409f8716ccfda77e26f89827194ad42d1fe7a6c4981b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= <ismail@i10z.com>
Date: Mon, 8 Sep 2014 10:11:39 +0000
Subject: [PATCH 19/22] - Add plymouth-boot-vga-framebuffer.patch to fix
 boot_vga   problem with framebuffer devices. (bnc#886211)

OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=154
---
 plymouth-boot-vga-framebuffer.patch | 19 +++++++++++++++++++
 plymouth.changes                    |  6 ++++++
 plymouth.spec                       |  2 ++
 3 files changed, 27 insertions(+)
 create mode 100644 plymouth-boot-vga-framebuffer.patch

diff --git a/plymouth-boot-vga-framebuffer.patch b/plymouth-boot-vga-framebuffer.patch
new file mode 100644
index 0000000..045b8fb
--- /dev/null
+++ b/plymouth-boot-vga-framebuffer.patch
@@ -0,0 +1,19 @@
+Index: plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
+===================================================================
+--- plymouth-0.9.0.orig/src/libply-splash-core/ply-device-manager.c
++++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
+@@ -101,12 +101,13 @@ device_is_for_local_console (ply_device_
+    * card the kernel is using for its console. */
+   device_path = udev_device_get_syspath (device);
+   asprintf (&bus_device_path, "%s/device", device_path);
++  ply_trace ("Testing device path %s\n", bus_device_path);
+   bus_device = udev_device_new_from_syspath (manager->udev_context, bus_device_path);
+ 
+   boot_vga = udev_device_get_sysattr_value (bus_device, "boot_vga");
+   free (bus_device_path);
+ 
+-  if (boot_vga != NULL && strcmp (boot_vga, "1") == 0)
++  if (boot_vga == NULL /* framebuffer case */ || strcmp (boot_vga, "1") == 0)
+     for_local_console = true;
+   else
+     for_local_console = false;
diff --git a/plymouth.changes b/plymouth.changes
index 6d46132..17f4918 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,9 @@
+-------------------------------------------------------------------
+Thu Sep  4 10:34:25 UTC 2014 - idonmez@suse.com
+
+- Add plymouth-boot-vga-framebuffer.patch to fix boot_vga
+  problem with framebuffer devices. (bnc#886211)
+
 -------------------------------------------------------------------
 Mon Aug 11 14:23:27 UTC 2014 - idonmez@suse.com
 
diff --git a/plymouth.spec b/plymouth.spec
index e710aa9..c6a0866 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -60,6 +60,7 @@ Patch25:        0001-seat-be-a-little-more-forgiving-in-the-case-there-s-.patch
 Patch26:        plymouth-ignore-cirrusdrm.patch
 # PATCH-FIX-UPSTREAM 0001-text-step-bar-use-correct-utf-8-multibyte-sequence-f.patch bnc#886148 fcrozat@suse.com -- fix UTF-8 code for square
 Patch27:        0001-text-step-bar-use-correct-utf-8-multibyte-sequence-f.patch
+Patch28:        plymouth-boot-vga-framebuffer.patch
 
 BuildRequires:  automake
 BuildRequires:  docbook-xsl-stylesheets
@@ -356,6 +357,7 @@ plugin.
 %patch25 -p1
 %patch26 -p1
 %patch27 -p1
+%patch28 -p1
 
 # replace builddate with patch0date
 sed -i "s/__DATE__/\"$(stat -c %y %{_sourcedir}/%{name}.changes)\"/" src/main.c

From 6ce78afa6baaab1a82ebfcd3aeeee6df9f98532690c236a5e5f416fd61a58698 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= <ismail@i10z.com>
Date: Fri, 12 Sep 2014 12:52:26 +0000
Subject: [PATCH 20/22] - Add 0001-let-it-become-a-real-daemon.patch to make
 plymouth   a real daemon, fixes bnc#889757 and probably others.   Patch by
 Werner.

OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=155
---
 0001-let-it-become-a-real-daemon.patch | 164 +++++++++++++++++++++++++
 plymouth-ignore-cirrusdrm.patch        |  47 ++++---
 plymouth.changes                       |   7 ++
 plymouth.spec                          |   2 +
 4 files changed, 205 insertions(+), 15 deletions(-)
 create mode 100644 0001-let-it-become-a-real-daemon.patch

diff --git a/0001-let-it-become-a-real-daemon.patch b/0001-let-it-become-a-real-daemon.patch
new file mode 100644
index 0000000..d08e4b9
--- /dev/null
+++ b/0001-let-it-become-a-real-daemon.patch
@@ -0,0 +1,164 @@
+Related to bnc#892526 -- let plymouthd become a real daemon that
+is it should use its own session with the help of the system call
+setsid(2).  Also avoid an EBUSY on ioctl TIOCCONS if a former
+plymouthd had failed.  And a crash or termination may restore not
+only the current virtual console but also any serial console as
+well restore the system console.
+
+---
+ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c |    9 ++
+ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.h |    1 
+ plymouth-0.9.0/src/libply/ply-terminal-session.c           |    7 ++
+ plymouth-0.9.0/src/libply/ply-utils.c                      |    2 
+ plymouth-0.9.0/src/main.c                                  |   42 +++++++------
+ 5 files changed, 43 insertions(+), 18 deletions(-)
+
+--- plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
++++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c	2014-09-10 12:16:10.694235361 +0000
+@@ -947,3 +947,12 @@ ply_device_manager_deactivate_keyboards
+       node = next_node;
+     }
+ }
++
++void
++ply_close_all_terminals (ply_device_manager_t *manager)
++{
++  ply_hashtable_foreach (manager->terminals,
++                         (ply_hashtable_foreach_func_t *)
++                         ply_terminal_close,
++                         manager);
++}
+--- plymouth-0.9.0/src/libply-splash-core/ply-device-manager.h
++++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.h	2014-09-10 12:16:24.826735672 +0000
+@@ -50,6 +50,7 @@ void ply_device_manager_deactivate_keybo
+ void ply_device_manager_activate_renderers (ply_device_manager_t *manager);
+ void ply_device_manager_deactivate_renderers (ply_device_manager_t *manager);
+ ply_terminal_t *ply_device_manager_get_default_terminal (ply_device_manager_t *manager);
++void ply_close_all_terminals (ply_device_manager_t *manager);
+ 
+ #endif
+ 
+--- plymouth-0.9.0/src/libply/ply-utils.c
++++ plymouth-0.9.0/src/libply/ply-utils.c	2014-09-10 08:53:01.886236228 +0000
+@@ -843,6 +843,8 @@ ply_detach_daemon (ply_daemon_handle_t *
+   close (sender_fd);
+   free (handle);
+ 
++  setsid();
++
+   return true;
+ }
+ 
+--- plymouth-0.9.0/src/libply/ply-terminal-session.c
++++ plymouth-0.9.0/src/libply/ply-terminal-session.c	2014-09-10 11:18:04.118735227 +0000
+@@ -187,6 +187,13 @@ ply_terminal_session_redirect_console (p
+ 
+   assert (terminal_name != NULL);
+ 
++  fd = open ("/dev/console", O_RDWR | O_NOCTTY);
++  if (fd >= 0)
++    {
++      ioctl (fd, TIOCCONS);   /* Undo any current map if any */
++      close (fd);
++    }
++
+   fd = open (terminal_name, O_RDWR | O_NOCTTY); 
+ 
+   if (fd < 0)
+--- plymouth-0.9.0/src/main.c
++++ plymouth-0.9.0/src/main.c	2014-09-10 13:02:23.242235200 +0000
+@@ -1042,6 +1042,7 @@ on_seat_added (state_t    *state,
+ 
+ }
+ 
++static ply_device_manager_t *manager;
+ static void
+ load_devices (state_t                    *state,
+               ply_device_manager_flags_t  flags)
+@@ -1049,6 +1050,8 @@ load_devices (state_t
+   state->device_manager = ply_device_manager_new (state->default_tty, flags);
+   state->local_console_terminal = ply_device_manager_get_default_terminal (state->device_manager);
+ 
++  manager = state->device_manager;
++
+   ply_device_manager_watch_seats (state->device_manager,
+                                   (ply_seat_added_handler_t)
+                                   on_seat_added,
+@@ -1077,6 +1080,7 @@ quit_splash (state_t *state)
+           ply_trace ("Not retaining splash, so deallocating VT");
+           ply_terminal_deactivate_vt (state->local_console_terminal);
+           ply_terminal_close (state->local_console_terminal);
++          ply_close_all_terminals (state->device_manager);
+         }
+     }
+ 
+@@ -2075,25 +2079,22 @@ dump_debug_buffer_to_file (void)
+  #include <termios.h>
+  #include <unistd.h>
+ static void
+-on_crash (int signum)
++dosigaction (int signum)
+ {
+-    struct termios term_attributes;
+     int fd;
+ 
+-    fd = open ("/dev/tty1", O_RDWR | O_NOCTTY);
+-    if (fd < 0) fd = open ("/dev/hvc0", O_RDWR | O_NOCTTY);
+-
+-    ioctl (fd, KDSETMODE, KD_TEXT);
+-
+-    tcgetattr (fd, &term_attributes);
+-
+-    term_attributes.c_iflag |= BRKINT | IGNPAR | ICRNL | IXON;
+-    term_attributes.c_oflag |= OPOST;
+-    term_attributes.c_lflag |= ECHO | ICANON | ISIG | IEXTEN;
+-
+-    tcsetattr (fd, TCSAFLUSH, &term_attributes);
++    if (manager)
++      {
++          ply_device_manager_deactivate_keyboards (manager);
++          ply_close_all_terminals (manager);
++      }
+ 
+-    close (fd);
++    fd = open ("/dev/console", O_RDWR | O_NOCTTY);
++    if (fd >= 0)
++      {
++        ioctl (fd, TIOCCONS);   /* Undo any current map if any */
++        close (fd);
++      }
+ 
+     if (debug_buffer != NULL)
+       {
+@@ -2108,7 +2109,6 @@ on_crash (int signum)
+         pid_file = NULL;
+       }
+ 
+-    signal (signum, SIG_DFL);
+     raise(signum);
+ }
+ 
+@@ -2145,6 +2145,7 @@ main (int    argc,
+   char *kernel_command_line = NULL;
+   char *tty = NULL;
+   ply_device_manager_flags_t device_manager_flags = PLY_DEVICE_MANAGER_FLAGS_NONE;
++  struct sigaction sa;
+ 
+   state.start_time = ply_get_timestamp ();
+   state.command_parser = ply_command_parser_new ("plymouthd", "Splash server");
+@@ -2256,8 +2257,13 @@ main (int    argc,
+   if (debug)
+     debug_buffer = ply_buffer_new ();
+ 
+-  signal (SIGABRT, on_crash);
+-  signal (SIGSEGV, on_crash);
++  sigemptyset(&sa.sa_mask);
++  sa.sa_flags = SA_RESETHAND;
++  sa.sa_handler = dosigaction;
++  sigaction (SIGHUP,  &sa, NULL);
++  sigaction (SIGTERM, &sa, NULL);
++  sigaction (SIGABRT, &sa, NULL);
++  sigaction (SIGSEGV, &sa, NULL);
+ 
+   /* before do anything we need to make sure we have a working
+    * environment.
diff --git a/plymouth-ignore-cirrusdrm.patch b/plymouth-ignore-cirrusdrm.patch
index 55c6e49..0f4282e 100644
--- a/plymouth-ignore-cirrusdrm.patch
+++ b/plymouth-ignore-cirrusdrm.patch
@@ -1,15 +1,32 @@
-diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
-index a5aa59d..0be2117 100644
---- a/src/libply-splash-core/ply-device-manager.c
-+++ b/src/libply-splash-core/ply-device-manager.c
-@@ -125,6 +125,10 @@ fb_device_has_drm_device (ply_device_manager_t *manager,
-   const char *id_path;
-   bool has_drm_device = false;
- 
-+  const char *card_name = udev_device_get_sysattr_value (fb_device, "name");
-+  if (card_name && strcmp ("cirrusdrmfb", card_name) == 0)
-+    return false;
-+
-   /* We want to see if the framebuffer is associated with a DRM-capable
-    * graphics card, if it is, we'll use the DRM device */
-   card_matches = udev_enumerate_new (manager->udev_context);
+Index: plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
+===================================================================
+--- plymouth-0.9.0.orig/src/libply-splash-core/ply-device-manager.c
++++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
+@@ -123,6 +123,9 @@ fb_device_has_drm_device (ply_device_man
+   const char *id_path;
+   bool has_drm_device = false;
+ 
++  const char *card_name = udev_device_get_sysattr_value (fb_device, "name");
++  ply_trace("First method gives us: %s", card_name);
++
+   /* We want to see if the framebuffer is associated with a DRM-capable
+    * graphics card, if it is, we'll use the DRM device */
+   card_matches = udev_enumerate_new (manager->udev_context);
+@@ -149,8 +152,15 @@ fb_device_has_drm_device (ply_device_man
+       card_path = udev_list_entry_get_name (card_entry);
+       card_device = udev_device_new_from_syspath (manager->udev_context, card_path);
+       card_node = udev_device_get_devnode (card_device);
+-      if (card_node != NULL)
+-        has_drm_device = true;
++      if (card_node != NULL) {
++        /* don't consider drm driver for cirrus usable */
++        const char *card_name = udev_device_get_sysattr_value (card_device, "name");
++        ply_trace("Second method gives us: %s", card_name);
++        if (card_name && strcmp ("cirrusdrmfb", card_name) == 0)
++            has_drm_device = false;
++        else
++            has_drm_device = true;
++      }
+       else
+         ply_trace ("no card node!");
+ 
diff --git a/plymouth.changes b/plymouth.changes
index 17f4918..1ac495f 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,3 +1,10 @@
+-------------------------------------------------------------------
+Fri Sep 12 12:50:06 UTC 2014 - idonmez@suse.com
+
+- Add 0001-let-it-become-a-real-daemon.patch to make plymouth
+  a real daemon, fixes bnc#889757 and probably others.
+  Patch by Werner.
+
 -------------------------------------------------------------------
 Thu Sep  4 10:34:25 UTC 2014 - idonmez@suse.com
 
diff --git a/plymouth.spec b/plymouth.spec
index c6a0866..473953f 100644
--- a/plymouth.spec
+++ b/plymouth.spec
@@ -61,6 +61,7 @@ Patch26:        plymouth-ignore-cirrusdrm.patch
 # PATCH-FIX-UPSTREAM 0001-text-step-bar-use-correct-utf-8-multibyte-sequence-f.patch bnc#886148 fcrozat@suse.com -- fix UTF-8 code for square
 Patch27:        0001-text-step-bar-use-correct-utf-8-multibyte-sequence-f.patch
 Patch28:        plymouth-boot-vga-framebuffer.patch
+Patch29:        0001-let-it-become-a-real-daemon.patch
 
 BuildRequires:  automake
 BuildRequires:  docbook-xsl-stylesheets
@@ -358,6 +359,7 @@ plugin.
 %patch26 -p1
 %patch27 -p1
 %patch28 -p1
+%patch29 -p1
 
 # replace builddate with patch0date
 sed -i "s/__DATE__/\"$(stat -c %y %{_sourcedir}/%{name}.changes)\"/" src/main.c

From 849472b1d0cfa99d6b2ad1319371be90ea32548cf937a6980d056afbcb982655 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= <ismail@i10z.com>
Date: Thu, 25 Sep 2014 13:21:13 +0000
Subject: [PATCH 21/22] - Update
 0001-device-manager-only-call-ply_terminal_free.patch to   call setsid only
 from the child process.   a real daemon, fixes part of bnc#889757. Patch by
 Werner.

OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=156
---
 0001-let-it-become-a-real-daemon.patch | 55 +++++++++++++++++++-------
 plymouth-ignore-cirrusdrm.patch        | 47 +++++++---------------
 plymouth.changes                       |  9 ++++-
 3 files changed, 63 insertions(+), 48 deletions(-)

diff --git a/0001-let-it-become-a-real-daemon.patch b/0001-let-it-become-a-real-daemon.patch
index d08e4b9..0301e5c 100644
--- a/0001-let-it-become-a-real-daemon.patch
+++ b/0001-let-it-become-a-real-daemon.patch
@@ -13,9 +13,11 @@ well restore the system console.
  plymouth-0.9.0/src/main.c                                  |   42 +++++++------
  5 files changed, 43 insertions(+), 18 deletions(-)
 
---- plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
-+++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c	2014-09-10 12:16:10.694235361 +0000
-@@ -947,3 +947,12 @@ ply_device_manager_deactivate_keyboards
+Index: plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
+===================================================================
+--- plymouth-0.9.0.orig/src/libply-splash-core/ply-device-manager.c
++++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
+@@ -933,3 +933,12 @@ ply_device_manager_deactivate_keyboards
        node = next_node;
      }
  }
@@ -28,9 +30,11 @@ well restore the system console.
 +                         ply_terminal_close,
 +                         manager);
 +}
---- plymouth-0.9.0/src/libply-splash-core/ply-device-manager.h
-+++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.h	2014-09-10 12:16:24.826735672 +0000
-@@ -50,6 +50,7 @@ void ply_device_manager_deactivate_keybo
+Index: plymouth-0.9.0/src/libply-splash-core/ply-device-manager.h
+===================================================================
+--- plymouth-0.9.0.orig/src/libply-splash-core/ply-device-manager.h
++++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.h
+@@ -49,6 +49,7 @@ void ply_device_manager_deactivate_keybo
  void ply_device_manager_activate_renderers (ply_device_manager_t *manager);
  void ply_device_manager_deactivate_renderers (ply_device_manager_t *manager);
  ply_terminal_t *ply_device_manager_get_default_terminal (ply_device_manager_t *manager);
@@ -38,19 +42,40 @@ well restore the system console.
  
  #endif
  
---- plymouth-0.9.0/src/libply/ply-utils.c
-+++ plymouth-0.9.0/src/libply/ply-utils.c	2014-09-10 08:53:01.886236228 +0000
-@@ -843,6 +843,8 @@ ply_detach_daemon (ply_daemon_handle_t *
+Index: plymouth-0.9.0/src/libply/ply-utils.c
+===================================================================
+--- plymouth-0.9.0.orig/src/libply/ply-utils.c
++++ plymouth-0.9.0/src/libply/ply-utils.c
+@@ -77,6 +77,7 @@
+ 
+ static int errno_stack[PLY_ERRNO_STACK_SIZE];
+ static int errno_stack_position = 0;
++static bool inChild = false;
+ 
+ bool 
+ ply_open_unidirectional_pipe (int *sender_fd,
+@@ -797,6 +798,7 @@ ply_create_daemon (void)
+         {
+           int read_error = errno;
+           int status;
++          inChild = true;
+ 
+           if (waitpid (pid, &status, WNOHANG) <= 0)
+             {
+@@ -843,6 +845,9 @@ ply_detach_daemon (ply_daemon_handle_t *
    close (sender_fd);
    free (handle);
  
-+  setsid();
++  if (inChild)
++    setsid();
 +
    return true;
  }
  
---- plymouth-0.9.0/src/libply/ply-terminal-session.c
-+++ plymouth-0.9.0/src/libply/ply-terminal-session.c	2014-09-10 11:18:04.118735227 +0000
+Index: plymouth-0.9.0/src/libply/ply-terminal-session.c
+===================================================================
+--- plymouth-0.9.0.orig/src/libply/ply-terminal-session.c
++++ plymouth-0.9.0/src/libply/ply-terminal-session.c
 @@ -187,6 +187,13 @@ ply_terminal_session_redirect_console (p
  
    assert (terminal_name != NULL);
@@ -65,8 +90,10 @@ well restore the system console.
    fd = open (terminal_name, O_RDWR | O_NOCTTY); 
  
    if (fd < 0)
---- plymouth-0.9.0/src/main.c
-+++ plymouth-0.9.0/src/main.c	2014-09-10 13:02:23.242235200 +0000
+Index: plymouth-0.9.0/src/main.c
+===================================================================
+--- plymouth-0.9.0.orig/src/main.c
++++ plymouth-0.9.0/src/main.c
 @@ -1042,6 +1042,7 @@ on_seat_added (state_t    *state,
  
  }
diff --git a/plymouth-ignore-cirrusdrm.patch b/plymouth-ignore-cirrusdrm.patch
index 0f4282e..55c6e49 100644
--- a/plymouth-ignore-cirrusdrm.patch
+++ b/plymouth-ignore-cirrusdrm.patch
@@ -1,32 +1,15 @@
-Index: plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
-===================================================================
---- plymouth-0.9.0.orig/src/libply-splash-core/ply-device-manager.c
-+++ plymouth-0.9.0/src/libply-splash-core/ply-device-manager.c
-@@ -123,6 +123,9 @@ fb_device_has_drm_device (ply_device_man
-   const char *id_path;
-   bool has_drm_device = false;
- 
-+  const char *card_name = udev_device_get_sysattr_value (fb_device, "name");
-+  ply_trace("First method gives us: %s", card_name);
-+
-   /* We want to see if the framebuffer is associated with a DRM-capable
-    * graphics card, if it is, we'll use the DRM device */
-   card_matches = udev_enumerate_new (manager->udev_context);
-@@ -149,8 +152,15 @@ fb_device_has_drm_device (ply_device_man
-       card_path = udev_list_entry_get_name (card_entry);
-       card_device = udev_device_new_from_syspath (manager->udev_context, card_path);
-       card_node = udev_device_get_devnode (card_device);
--      if (card_node != NULL)
--        has_drm_device = true;
-+      if (card_node != NULL) {
-+        /* don't consider drm driver for cirrus usable */
-+        const char *card_name = udev_device_get_sysattr_value (card_device, "name");
-+        ply_trace("Second method gives us: %s", card_name);
-+        if (card_name && strcmp ("cirrusdrmfb", card_name) == 0)
-+            has_drm_device = false;
-+        else
-+            has_drm_device = true;
-+      }
-       else
-         ply_trace ("no card node!");
- 
+diff --git a/src/libply-splash-core/ply-device-manager.c b/src/libply-splash-core/ply-device-manager.c
+index a5aa59d..0be2117 100644
+--- a/src/libply-splash-core/ply-device-manager.c
++++ b/src/libply-splash-core/ply-device-manager.c
+@@ -125,6 +125,10 @@ fb_device_has_drm_device (ply_device_manager_t *manager,
+   const char *id_path;
+   bool has_drm_device = false;
+ 
++  const char *card_name = udev_device_get_sysattr_value (fb_device, "name");
++  if (card_name && strcmp ("cirrusdrmfb", card_name) == 0)
++    return false;
++
+   /* We want to see if the framebuffer is associated with a DRM-capable
+    * graphics card, if it is, we'll use the DRM device */
+   card_matches = udev_enumerate_new (manager->udev_context);
diff --git a/plymouth.changes b/plymouth.changes
index 1ac495f..5e7d05b 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,9 +1,14 @@
+-------------------------------------------------------------------
+Thu Sep 25 13:19:01 UTC 2014 - idonmez@suse.com
+
+- Update 0001-device-manager-only-call-ply_terminal_free.patch to
+  call setsid only from the child process.
+
 -------------------------------------------------------------------
 Fri Sep 12 12:50:06 UTC 2014 - idonmez@suse.com
 
 - Add 0001-let-it-become-a-real-daemon.patch to make plymouth
-  a real daemon, fixes bnc#889757 and probably others.
-  Patch by Werner.
+  a real daemon, fixes part of bnc#889757. Patch by Werner.
 
 -------------------------------------------------------------------
 Thu Sep  4 10:34:25 UTC 2014 - idonmez@suse.com

From e8defbc7de89a48abaf23962a875c8937cd430b2204429ac6e6e39e49c1ea1de Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= <ismail@i10z.com>
Date: Thu, 25 Sep 2014 13:23:16 +0000
Subject: [PATCH 22/22] -

OBS-URL: https://build.opensuse.org/package/show/Base:System/plymouth?expand=0&rev=157
---
 plymouth.changes | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/plymouth.changes b/plymouth.changes
index 5e7d05b..e732230 100644
--- a/plymouth.changes
+++ b/plymouth.changes
@@ -1,8 +1,8 @@
 -------------------------------------------------------------------
 Thu Sep 25 13:19:01 UTC 2014 - idonmez@suse.com
 
-- Update 0001-device-manager-only-call-ply_terminal_free.patch to
-  call setsid only from the child process.
+- Update 0001-let-it-become-a-real-daemon.patch to call setsid 
+  only from the child process.
 
 -------------------------------------------------------------------
 Fri Sep 12 12:50:06 UTC 2014 - idonmez@suse.com