diff --git a/system-config-printer-openprinting-freeze.patch b/system-config-printer-openprinting-freeze.patch new file mode 100644 index 0000000..b09d9df --- /dev/null +++ b/system-config-printer-openprinting-freeze.patch @@ -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: diff --git a/system-config-printer.spec b/system-config-printer.spec index beb796e..a69117a 100644 --- a/system-config-printer.spec +++ b/system-config-printer.spec @@ -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 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ý - 1.4.4-1 - 1.4.4.