Prevent D-Bus service freezing by disabling openprinting driver downloads (bug #1052203).

Resolves: rhbz#1052203
This commit is contained in:
Tim Waugh 2014-05-01 13:02:21 +01:00
parent cdf4ab14dc
commit cb5a56848d
2 changed files with 48 additions and 1 deletions

View File

@ -0,0 +1,38 @@
diff -up system-config-printer-1.4.4/scp-dbus-service.py.openprinting-freeze system-config-printer-1.4.4/scp-dbus-service.py
--- system-config-printer-1.4.4/scp-dbus-service.py.openprinting-freeze 2014-01-28 16:02:43.000000000 +0000
+++ system-config-printer-1.4.4/scp-dbus-service.py 2014-05-01 13:00:04.048257135 +0100
@@ -194,34 +194,6 @@ class GetBestDriversRequest:
fit=fit)
ppdname = ppdnamelist[0]
status = fit[ppdname]
-
- try:
- if status != "exact" and not self.download_tried:
- self.download_tried = True
- self.loop = GObject.MainLoop ()
- self.dialog = newprinter.NewPrinterGUI()
- self.dialog.NewPrinterWindow.set_modal (False)
- self.handles = \
- [self.dialog.connect ('dialog-canceled',
- self.on_dialog_canceled),
- self.dialog.connect ('driver-download-checked',
- self.on_driver_download_checked)]
- if self.dialog.init ('download_driver',
- devid=self.device_id):
- self.loop.run()
- for handle in self.handles:
- self.dialog.disconnect (handle)
- if len(self.installed_files) > 0:
- debugprint ("GetBestDrivers request: Re-fetch PPDs after driver download")
- g_ppds = FetchedPPDs (self.cupsconn, self.language)
- self._signals.append (g_ppds.connect ('ready', self._ppds_ready))
- self._signals.append (g_ppds.connect ('error', self._ppds_error))
- g_ppds.run ()
- return
- except:
- # Ignore driver download if packages needed for the GUI are not
- # installed or if no windows can be opened
- pass
g_killtimer.remove_hold ()
self.reply_handler (map (lambda x: (x, fit[x]), ppdnamelist))
except Exception as e:

View File

@ -1,12 +1,13 @@
Summary: A printer administration tool
Name: system-config-printer
Version: 1.4.4
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2+
URL: http://cyberelk.net/tim/software/system-config-printer/
Group: System Environment/Base
Source0: http://cyberelk.net/tim/data/system-config-printer/1.4/%{name}-%{version}.tar.xz
Patch1: system-config-printer-no-applet-in-gnome.patch
Patch2: system-config-printer-openprinting-freeze.patch
BuildRequires: cups-devel >= 1.2
BuildRequires: desktop-file-utils >= 0.2.92
@ -70,6 +71,10 @@ printers.
# Don't start the applet in GNOME.
%patch1 -p1 -b .no-applet-in-gnome
# Prevent the D-Bus service from freezing by disabling openprinting
# driver downloads in that service (bug #1052203).
%patch2 -p1 -b .openprinting-freeze
sed -i.cflags-override -e '/^CFLAGS/d' Makefile.{am,in}
%build
@ -170,6 +175,10 @@ touch %buildroot%{_localstatedir}/run/udev-configure-printer/usb-uris
exit 0
%changelog
* Thu May 1 2014 Tim Waugh <twaugh@redhat.com> 1.4.4-2
- Prevent the D-Bus service from freezing by disabling openprinting
driver downloads in that service (bug #1052203).
* Wed Mar 12 2014 Jaromír Končický <jkoncick@redhat.com> - 1.4.4-1
- 1.4.4.