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 +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