From 239b28f1fd2ee60a08ab76bce5cd618907a5dfc1 Mon Sep 17 00:00:00 2001 From: Tim Waugh Date: Sat, 27 Mar 2010 10:26:27 +0000 Subject: [PATCH] - check-device-ids: use make-and-model field for best-matching. - Use upstream fix for async bugs. --- ...em-config-printer-asyncipp-traceback.patch | 60 ++++++++++++++++++- ...em-config-printer-cdi-make-and-model.patch | 12 ++++ system-config-printer.spec | 10 +++- 3 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 system-config-printer-cdi-make-and-model.patch diff --git a/system-config-printer-asyncipp-traceback.patch b/system-config-printer-asyncipp-traceback.patch index e44b30c..6412886 100644 --- a/system-config-printer-asyncipp-traceback.patch +++ b/system-config-printer-asyncipp-traceback.patch @@ -1,6 +1,6 @@ diff -up system-config-printer-1.2.0/asyncipp.py.asyncipp-traceback system-config-printer-1.2.0/asyncipp.py ---- system-config-printer-1.2.0/asyncipp.py.asyncipp-traceback 2010-03-26 12:50:39.829627667 +0000 -+++ system-config-printer-1.2.0/asyncipp.py 2010-03-26 12:50:51.888627367 +0000 +--- system-config-printer-1.2.0/asyncipp.py.asyncipp-traceback 2010-03-27 10:12:14.667366971 +0000 ++++ system-config-printer-1.2.0/asyncipp.py 2010-03-27 10:13:04.081365616 +0000 @@ -59,6 +59,7 @@ class _IPPConnectionThread(threading.Thr self._auth_handler = auth_handler self._auth_queue = Queue.Queue (1) @@ -49,3 +49,59 @@ diff -up system-config-printer-1.2.0/asyncipp.py.asyncipp-traceback system-confi ### ### This is the user-visible class. Although it does not inherit from +diff -up system-config-printer-1.2.0/asyncpk1.py.asyncipp-traceback system-config-printer-1.2.0/asyncpk1.py +--- system-config-printer-1.2.0/asyncpk1.py.asyncipp-traceback 2010-03-27 10:12:14.702364469 +0000 ++++ system-config-printer-1.2.0/asyncpk1.py 2010-03-27 10:13:06.407243790 +0000 +@@ -64,6 +64,7 @@ class _PK1AsyncMethodCall: + self._fallback_fn = fallback_fn + self._fallback_args = args + self._fallback_kwds = kwds ++ self._destroyed = False + debugprint ("+_PK1AsyncMethodCall: %s" % self) + + def __del__ (self): +@@ -85,6 +86,7 @@ class _PK1AsyncMethodCall: + + def _destroy (self): + debugprint ("DESTROY: %s" % self) ++ self._destroyed = True + del self._bus + del self._conn + del self._pk_method_name +@@ -97,6 +99,9 @@ class _PK1AsyncMethodCall: + del self._fallback_kwds + + def _pk_reply_handler (self, error, *args): ++ if self._destroyed: ++ return ++ + if str (error) == '': + self._client_reply_handler (self._conn, self._unpack_fn (*args)) + self._destroy () +@@ -106,6 +111,9 @@ class _PK1AsyncMethodCall: + self.call_fallback_fn () + + def _pk_error_handler (self, exc): ++ if self._destroyed: ++ return ++ + if exc.get_dbus_name () == CUPS_PK_NEED_AUTH: + exc = cups.IPPError (cups.IPP_NOT_AUTHORIZED, 'pkcancel') + self._client_error_handler (self._conn, exc) +@@ -123,10 +131,16 @@ class _PK1AsyncMethodCall: + self._fallback_fn (*self._fallback_args, **self._fallback_kwds) + + def _ipp_reply_handler (self, conn, *args): ++ if self._destroyed: ++ return ++ + self._client_reply_handler (self._conn, *args) + self._destroy () + + def _ipp_error_handler (self, conn, *args): ++ if self._destroyed: ++ return ++ + self._client_error_handler (self._conn, *args) + self._destroy () + diff --git a/system-config-printer-cdi-make-and-model.patch b/system-config-printer-cdi-make-and-model.patch new file mode 100644 index 0000000..f4c552c --- /dev/null +++ b/system-config-printer-cdi-make-and-model.patch @@ -0,0 +1,12 @@ +diff -up system-config-printer-1.2.0/check-device-ids.py.cdi-make-and-model system-config-printer-1.2.0/check-device-ids.py +--- system-config-printer-1.2.0/check-device-ids.py.cdi-make-and-model 2010-03-27 10:16:04.371239756 +0000 ++++ system-config-printer-1.2.0/check-device-ids.py 2010-03-27 10:16:14.458240137 +0000 +@@ -210,7 +210,7 @@ for device, attrs in devices.iteritems ( + mdls = ppds.makes[make] + break + if mdls: +- (s, bestmatches) = ppds._findBestMatchPPDs (mdls, id_fields['MDL']) ++ (s, bestmatches) = ppds._findBestMatchPPDs (mdls, mdl) + if s == ppds.STATUS_SUCCESS: + matches = matches.union (set (bestmatches)) + diff --git a/system-config-printer.spec b/system-config-printer.spec index 5bad9b6..0c7f323 100644 --- a/system-config-printer.spec +++ b/system-config-printer.spec @@ -7,7 +7,7 @@ Summary: A printer administration tool Name: system-config-printer Version: 1.2.0 -Release: 11%{?dist} +Release: 12%{?dist} License: GPLv2+ URL: http://cyberelk.net/tim/software/system-config-printer/ Group: System Environment/Base @@ -31,6 +31,7 @@ Patch11: system-config-printer-cdi-search-harder.patch Patch12: system-config-printer-asyncipp-traceback.patch Patch13: system-config-printer-cdi-lsb-paths.patch Patch14: system-config-printer-transience.patch +Patch15: system-config-printer-cdi-make-and-model.patch Patch100: system-config-printer-pycups-build.patch @@ -136,6 +137,9 @@ printers. # Fixed window transience for 'Change Device URI'. %patch14 -p1 -b .transience +# check-device-ids: use make-and-model field for best-matching. +%patch15 -p1 -b .cdi-make-and-model + pushd pycups-%{pycups_version} # Fixed pycups build with new distutils. @@ -258,6 +262,10 @@ rm -rf %buildroot exit 0 %changelog +* Sat Mar 27 2010 Tim Waugh - 1.2.0-12 +- check-device-ids: use make-and-model field for best-matching. +- Use upstream fix for async bugs. + * Fri Mar 26 2010 Tim Waugh - 1.2.0-11 - More async traceback fixes (Ubuntu #547075).