[system-config-printer/f16] Handle new CUPS 1.5 IPP error response IPP_AUTHENTICATION_CANCELED (Ubuntu #653132).

Tim Waugh twaugh at fedoraproject.org
Mon Oct 17 10:33:31 UTC 2011


commit 827232cdf360c8669457a03622c165f0bcf4b57b
Author: Tim Waugh <twaugh at redhat.com>
Date:   Mon Oct 17 10:55:57 2011 +0100

    Handle new CUPS 1.5 IPP error response IPP_AUTHENTICATION_CANCELED (Ubuntu #653132).

 system-config-printer-auth.patch |   55 ++++++++++++++++++++++++++++++++++++++
 system-config-printer.spec       |   11 +++++++-
 2 files changed, 65 insertions(+), 1 deletions(-)
---
diff --git a/system-config-printer-auth.patch b/system-config-printer-auth.patch
new file mode 100644
index 0000000..a3e52e5
--- /dev/null
+++ b/system-config-printer-auth.patch
@@ -0,0 +1,55 @@
+diff -up system-config-printer-1.3.7/asyncipp.py.auth system-config-printer-1.3.7/asyncipp.py
+--- system-config-printer-1.3.7/asyncipp.py.auth	2011-10-03 11:37:17.000000000 +0100
++++ system-config-printer-1.3.7/asyncipp.py	2011-10-17 10:52:52.844802724 +0100
+@@ -379,8 +379,14 @@ class _IPPAuthOperation:
+         forbidden = False
+         if type (exc) == cups.IPPError:
+             (e, m) = exc.args
++            try:
++                ipp_auth_canceled = cups.IPP_AUTHENTICATION_CANCELED
++            except AttributeError:
++                # requires pycups 1.9.60
++                ipp_auth_canceled = 4096
+             if (e == cups.IPP_NOT_AUTHORIZED or
+-                e == cups.IPP_FORBIDDEN):
++                e == cups.IPP_FORBIDDEN or
++                e == ipp_auth_canceled):
+                 forbidden = (e == cups.IPP_FORBIDDEN)
+             elif e == cups.IPP_SERVICE_UNAVAILABLE:
+                 return self._reconnect_error (conn, exc)
+diff -up system-config-printer-1.3.7/authconn.py.auth system-config-printer-1.3.7/authconn.py
+--- system-config-printer-1.3.7/authconn.py.auth	2011-09-26 16:39:20.000000000 +0100
++++ system-config-printer-1.3.7/authconn.py	2011-10-17 10:52:34.736129998 +0100
+@@ -1,6 +1,6 @@
+ #!/usr/bin/python
+ 
+-## Copyright (C) 2007, 2008, 2009, 2010 Red Hat, Inc.
++## Copyright (C) 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
+ ## Author: Tim Waugh <twaugh at redhat.com>
+ 
+ ## This program is free software; you can redistribute it and/or modify
+@@ -241,8 +241,15 @@ class Connection:
+             except cups.IPPError, (e, m):
+                 if self._use_pk and m == 'pkcancel':
+                     raise cups.IPPError (0, _("Operation canceled"))
++                try:
++                    ipp_auth_canceled = cups.IPP_AUTHENTICATION_CANCELED
++                except AttributeError:
++                    # requires pycups 1.9.60
++                    ipp_auth_canceled = 4096
++
+                 if not self._cancel and (e == cups.IPP_NOT_AUTHORIZED or
+-                                         e == cups.IPP_FORBIDDEN):
++                                         e == cups.IPP_FORBIDDEN or
++                                         e == ipp_auth_canceled):
+                     self._failed (e == cups.IPP_FORBIDDEN)
+                 elif not self._cancel and e == cups.IPP_SERVICE_UNAVAILABLE:
+                     if self._lock:
+@@ -264,6 +271,7 @@ class Connection:
+                     if self._cancel and not self._cannot_auth:
+                         raise cups.IPPError (0, _("Operation canceled"))
+ 
++                    debugprint ("%s: %s" % (e, m))
+                     raise
+             except cups.HTTPError, (s,):
+                 if not self._cancel:
diff --git a/system-config-printer.spec b/system-config-printer.spec
index 455047b..7f70c59 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.3.7
-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.3/%{name}-%{version}.tar.xz
 Patch1: system-config-printer-no-applet-in-gnome.patch
+Patch2: system-config-printer-auth.patch
 BuildRequires: cups-devel >= 1.2
 BuildRequires: desktop-file-utils >= 0.2.92
 BuildRequires: gettext-devel
@@ -71,6 +72,10 @@ printers.
 # Don't start the applet in GNOME.
 %patch1 -p1 -b .no-applet-in-gnome
 
+# Handle new CUPS 1.5 IPP error response IPP_AUTHENTICATION_CANCELED
+# (Ubuntu #653132).
+%patch2 -p1 -b .auth
+
 %build
 %configure --with-udev-rules
 
@@ -197,6 +202,10 @@ if [ $1 -ge 1 ] ; then
 fi
 
 %changelog
+* Mon Oct 17 2011 Tim Waugh <twaugh at redhat.com> 1.3.7-2
+- Handle new CUPS 1.5 IPP error response IPP_AUTHENTICATION_CANCELED
+  (Ubuntu #653132).
+
 * Wed Oct  5 2011 Tim Waugh <twaugh at redhat.com> 1.3.7-1
 - 1.3.7:
   - Show private job attributes for "my jobs" (bug #742279).


More information about the scm-commits mailing list