diff --git a/hplip.changes b/hplip.changes index 796ba9c..5eb17a5 100644 --- a/hplip.changes +++ b/hplip.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Feb 8 17:45:07 UTC 2019 - Martin Wilck + + - Fix hang during GNOME session logout (bsc#1112331, lp#1721534) + * added ui5-systemtray.py-make-children-exit-if-no-systray-f.patch + * added ui5-systemtray-wait-only-10s-for-system-tray.patch + ------------------------------------------------------------------- Tue Aug 28 11:37:58 UTC 2018 - Hans-Peter Jansen diff --git a/hplip.spec b/hplip.spec index 1a3816e..dcf3a84 100644 --- a/hplip.spec +++ b/hplip.spec @@ -1,7 +1,7 @@ # # spec file for package hplip # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -92,6 +92,8 @@ Patch108: add_missing_includes_and_define_GNU_SOURCE.patch # PATCH-FIX-SUSE: GNOME no longer provides a system tray, so don't warn the user that we can't find it Patch109: no-systray-failure-message.patch Patch110: hpijs-avoid-segfault-in-DJGenericVIP-DJGenericVIP.patch +Patch111: ui5-systemtray.py-make-children-exit-if-no-systray-f.patch +Patch112: ui5-systemtray-wait-only-10s-for-system-tray.patch # Python3 port: cleanup patches Patch300: pcardext-python3-fixes.patch Patch301: hplip-misc-missing-includes-and-definitions.patch @@ -397,6 +399,8 @@ This sub-package is only required by developers. %patch108 -p1 -b .add_missing_includes_and_define_GNU_SOURCE.orig %patch109 -p1 -b .systemtray.py.orig %patch110 -p1 -b .boo1094141 +%patch111 -p1 +%patch112 -p1 %patch300 -p1 -b .pcardext-python3 %patch301 -p1 -b .misc-headers %patch302 -p1 -b .hp_ipp_missing_prototypes diff --git a/ui5-systemtray-wait-only-10s-for-system-tray.patch b/ui5-systemtray-wait-only-10s-for-system-tray.patch new file mode 100644 index 0000000..5c46993 --- /dev/null +++ b/ui5-systemtray-wait-only-10s-for-system-tray.patch @@ -0,0 +1,29 @@ +From 1b6030a6b94731c06f3dcc04bec88bf63af85f61 Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Fri, 16 Nov 2018 11:00:44 +0100 +Subject: [PATCH 2/2] ui5/systemtray: wait only 10s for system tray + +On GNOME >= 3.26, it will never show up. This may cause hangs on +logout if users log in and log out quickly again. + +Signed-off-by: Martin Wilck +--- + ui5/systemtray.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ui5/systemtray.py b/ui5/systemtray.py +index 2d6cfd2..c71375b 100644 +--- a/ui5/systemtray.py ++++ b/ui5/systemtray.py +@@ -841,7 +841,7 @@ def run(read_pipe): + app.setQuitOnLastWindowClosed(False) # If not set, settings dlg closes app + + i = 0 +- while i < 60: ++ while i < 10: + if QSystemTrayIcon.isSystemTrayAvailable(): + break + time.sleep(1.0) +-- +2.19.1 + diff --git a/ui5-systemtray.py-make-children-exit-if-no-systray-f.patch b/ui5-systemtray.py-make-children-exit-if-no-systray-f.patch new file mode 100644 index 0000000..c2496b9 --- /dev/null +++ b/ui5-systemtray.py-make-children-exit-if-no-systray-f.patch @@ -0,0 +1,26 @@ +From 3104eac2494b041d0eca9d29ff9430512a597444 Mon Sep 17 00:00:00 2001 +From: Martin Wilck +Date: Fri, 16 Nov 2018 10:59:30 +0100 +Subject: [PATCH 1/2] ui5/systemtray.py: make children exit if no systray found + +Signed-off-by: Martin Wilck +--- + ui5/systemtray.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/ui5/systemtray.py b/ui5/systemtray.py +index a0cdaf1..2d6cfd2 100644 +--- a/ui5/systemtray.py ++++ b/ui5/systemtray.py +@@ -848,6 +848,8 @@ def run(read_pipe): + i += 1 + + if not QSystemTrayIcon.isSystemTrayAvailable(): ++ app.sendMessage('', '', EVENT_SYSTEMTRAY_EXIT) ++ app.quit() + exit(0) + else: + notifier = QSocketNotifier(read_pipe, QSocketNotifier.Read) +-- +2.19.1 +