Improvements for check-device-ids from upstream.
This commit is contained in:
parent
788b98a449
commit
78c68433f6
111
system-config-printer-check-device-ids.patch
Normal file
111
system-config-printer-check-device-ids.patch
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
diff -up system-config-printer-1.3.2/check-device-ids.py.check-device-ids system-config-printer-1.3.2/check-device-ids.py
|
||||||
|
--- system-config-printer-1.3.2/check-device-ids.py.check-device-ids 2011-02-20 14:35:25.000000000 +0000
|
||||||
|
+++ system-config-printer-1.3.2/check-device-ids.py 2011-03-22 17:01:34.468998320 +0000
|
||||||
|
@@ -2,7 +2,7 @@
|
||||||
|
|
||||||
|
## check-device-ids
|
||||||
|
|
||||||
|
-## Copyright (C) 2010 Red Hat, Inc.
|
||||||
|
+## Copyright (C) 2010, 2011 Red Hat, Inc.
|
||||||
|
## Authors:
|
||||||
|
## Tim Waugh <twaugh@redhat.com>
|
||||||
|
|
||||||
|
@@ -32,8 +32,12 @@ c = cups.Connection ()
|
||||||
|
devices = None
|
||||||
|
if len (sys.argv) > 1 and sys.argv[1] == '--help':
|
||||||
|
print "Syntax: check-device-ids <device-make-and-model> <device-id>"
|
||||||
|
+ print " or: check-device-ids <device-uri>"
|
||||||
|
+ print " or: check-device-ids <queue-name>"
|
||||||
|
+ print " or: check-device-ids"
|
||||||
|
sys.exit (1)
|
||||||
|
|
||||||
|
+SPECIFIC_URI = None
|
||||||
|
if len (sys.argv) == 3:
|
||||||
|
id_dict = cupshelpers.parseDeviceID (sys.argv[2])
|
||||||
|
if id_dict.has_key ("MFG") and id_dict.has_key ("MDL"):
|
||||||
|
@@ -41,15 +45,34 @@ if len (sys.argv) == 3:
|
||||||
|
{ 'device-make-and-model': sys.argv[1],
|
||||||
|
'device-id': sys.argv[2] }
|
||||||
|
}
|
||||||
|
+elif len (sys.argv) == 2:
|
||||||
|
+ if sys.argv[1].find (":/") != -1:
|
||||||
|
+ SPECIFIC_URI = sys.argv[1]
|
||||||
|
+ else:
|
||||||
|
+ # This is a queue name. Work out the URI from that.
|
||||||
|
+ try:
|
||||||
|
+ attrs = c.getPrinterAttributes (sys.argv[1])
|
||||||
|
+ except cups.IPPError, (e, m):
|
||||||
|
+ print "Error getting printer attibutes: %s" % m
|
||||||
|
+ sys.exit (1)
|
||||||
|
+
|
||||||
|
+ SPECIFIC_URI = attrs['device-uri']
|
||||||
|
+ print "URI for queue %s is %s" % (sys.argv[1], SPECIFIC_URI)
|
||||||
|
else:
|
||||||
|
print ("\nIf you have not already done so, you may get more results\n"
|
||||||
|
"by temporarily disabling your firewall (or by allowing\n"
|
||||||
|
"incoming UDP packets on port 161).\n")
|
||||||
|
|
||||||
|
if devices == None:
|
||||||
|
- print "Examining connected devices"
|
||||||
|
+ if not SPECIFIC_URI:
|
||||||
|
+ print "Examining connected devices"
|
||||||
|
+
|
||||||
|
try:
|
||||||
|
- devices = c.getDevices (exclude_schemes=["dnssd", "hal", "hpfax"])
|
||||||
|
+ if SPECIFIC_URI:
|
||||||
|
+ scheme = str (SPECIFIC_URI.split (":", 1)[0])
|
||||||
|
+ devices = c.getDevices (include_schemes=[scheme])
|
||||||
|
+ else:
|
||||||
|
+ devices = c.getDevices (exclude_schemes=["dnssd", "hal", "hpfax"])
|
||||||
|
except cups.IPPError, (e, m):
|
||||||
|
if e == cups.IPP_FORBIDDEN:
|
||||||
|
print "Run this as root to examine IDs from attached devices."
|
||||||
|
@@ -59,6 +82,11 @@ if devices == None:
|
||||||
|
print "Not authorized."
|
||||||
|
sys.exit (1)
|
||||||
|
|
||||||
|
+if SPECIFIC_URI:
|
||||||
|
+ if devices.get (SPECIFIC_URI) == None:
|
||||||
|
+ devices = { SPECIFIC_URI:
|
||||||
|
+ { 'device-make-and-model': '',
|
||||||
|
+ 'device-id': ''} }
|
||||||
|
if len (devices) == 0:
|
||||||
|
print "No attached devices."
|
||||||
|
sys.exit (0)
|
||||||
|
@@ -69,14 +97,20 @@ for device, attrs in devices.iteritems (
|
||||||
|
if device.find (":") == -1:
|
||||||
|
continue
|
||||||
|
|
||||||
|
+ if SPECIFIC_URI and device != SPECIFIC_URI:
|
||||||
|
+ continue
|
||||||
|
+
|
||||||
|
make_and_model = attrs.get ('device-make-and-model')
|
||||||
|
device_id = attrs.get ('device-id')
|
||||||
|
- if make_and_model and not device_id:
|
||||||
|
+ if (SPECIFIC_URI or make_and_model) and not device_id:
|
||||||
|
try:
|
||||||
|
hostname = None
|
||||||
|
if (device.startswith ("socket://") or
|
||||||
|
- device.startswith ("lpd://")):
|
||||||
|
- hostname = device[9:]
|
||||||
|
+ device.startswith ("lpd://") or
|
||||||
|
+ device.startswith ("ipp://") or
|
||||||
|
+ device.startswith ("http://") or
|
||||||
|
+ device.startswith ("https://")):
|
||||||
|
+ hostname = device[device.find ("://") + 3:]
|
||||||
|
colon = hostname.find (":")
|
||||||
|
if colon != -1:
|
||||||
|
hostname = hostname[:colon]
|
||||||
|
@@ -100,7 +134,11 @@ for device, attrs in devices.iteritems (
|
||||||
|
if dev.id:
|
||||||
|
device_id = dev.id
|
||||||
|
attrs.update ({'device-id': dev.id})
|
||||||
|
- break
|
||||||
|
+
|
||||||
|
+ if not make_and_model and dev.make_and_model:
|
||||||
|
+ make_and_model = dev.make_and_model
|
||||||
|
+ attrs.update ({'device-make-and-model':
|
||||||
|
+ dev.make_and_model})
|
||||||
|
|
||||||
|
except Exception, e:
|
||||||
|
print "Exception: %s" % repr (e)
|
@ -11,6 +11,7 @@ URL: http://cyberelk.net/tim/software/system-config-printer/
|
|||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
Source0: http://cyberelk.net/tim/data/system-config-printer/1.2/%{name}-%{version}.tar.xz
|
Source0: http://cyberelk.net/tim/data/system-config-printer/1.2/%{name}-%{version}.tar.xz
|
||||||
Patch1: system-config-printer-no-applet-in-gnome.patch
|
Patch1: system-config-printer-no-applet-in-gnome.patch
|
||||||
|
Patch2: system-config-printer-check-device-ids.patch
|
||||||
BuildRequires: cups-devel >= 1.2
|
BuildRequires: cups-devel >= 1.2
|
||||||
BuildRequires: desktop-file-utils >= 0.2.92
|
BuildRequires: desktop-file-utils >= 0.2.92
|
||||||
BuildRequires: gettext-devel
|
BuildRequires: gettext-devel
|
||||||
@ -71,6 +72,9 @@ printers.
|
|||||||
# Don't start the applet in GNOME.
|
# Don't start the applet in GNOME.
|
||||||
%patch1 -p1 -b .no-applet-in-gnome
|
%patch1 -p1 -b .no-applet-in-gnome
|
||||||
|
|
||||||
|
# Improvements for check-device-ids from upstream.
|
||||||
|
%patch2 -p1 -b .check-device-ids
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure --with-udev-rules
|
%configure --with-udev-rules
|
||||||
|
|
||||||
@ -180,6 +184,7 @@ exit 0
|
|||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Mar 22 2011 Tim Waugh <twaugh@redhat.com> 1.3.2-2
|
* Tue Mar 22 2011 Tim Waugh <twaugh@redhat.com> 1.3.2-2
|
||||||
|
- Improvements for check-device-ids from upstream.
|
||||||
- Don't start the applet in GNOME at all (bug #677676), now that GNOME
|
- Don't start the applet in GNOME at all (bug #677676), now that GNOME
|
||||||
Shell is capable of handling New Printer notifications. (Note that
|
Shell is capable of handling New Printer notifications. (Note that
|
||||||
automatic driver installation won't work until GNOME Shell implements
|
automatic driver installation won't work until GNOME Shell implements
|
||||||
|
Loading…
Reference in New Issue
Block a user