File python3-to-python2.diff of Package system-config-printer
Index: system-config-printer-1.5.7/applet.py
===================================================================
--- system-config-printer-1.5.7.orig/applet.py
+++ system-config-printer-1.5.7/applet.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Red Hat, Inc.
## Author: Tim Waugh <twaugh@redhat.com>
@@ -326,8 +326,8 @@ class RunLoop:
dbus_interface=self.DBUS_IFACE)
except dbus.DBusException as e:
try:
- print ("%s: failed to add D-Bus signal receiver: %s" \
- % (PROGRAM_NAME, e), file=sys.stderr)
+ print >> sys.stderr, ("%s: failed to add D-Bus signal receiver: %s" \
+ % (PROGRAM_NAME, e))
finally:
sys.exit (1)
@@ -340,8 +340,8 @@ class RunLoop:
dbus_interface=self.DBUS_IFACE)
except dbus.DBusException as e:
try:
- print ("%s: failed to remove D-Bus signal receiver: %s" \
- % (PROGRAM_NAME, e), file=sys.stderr)
+ print >> sys.stderr, ("%s: failed to remove D-Bus signal receiver: %s" \
+ % (PROGRAM_NAME, e))
except:
pass
@@ -406,8 +406,8 @@ if __name__ == '__main__':
# Must be done before connecting to D-Bus (for some reason).
if not Notify.init (PROGRAM_NAME):
try:
- print(("%s: unable to initialize pynotify" %
- PROGRAM_NAME), file=sys.stderr)
+ print >> sys.stderr, ("%s: unable to initialize pynotify" %
+ PROGRAM_NAME)
except:
pass
@@ -416,8 +416,8 @@ if __name__ == '__main__':
system_bus = dbus.SystemBus()
except:
try:
- print(("%s: failed to connect to system D-Bus" %
- PROGRAM_NAME), file=sys.stderr)
+ print >> sys.stderr, ("%s: failed to connect to system D-Bus" %
+ PROGRAM_NAME)
finally:
sys.exit (1)
@@ -427,8 +427,8 @@ if __name__ == '__main__':
session_bus.add_signal_receiver (monitor_session)
except:
try:
- print(("%s: failed to connect to "
- "session D-Bus" % PROGRAM_NAME), file=sys.stderr)
+ print >> sys.stderr, ("%s: failed to connect to "
+ "session D-Bus" % PROGRAM_NAME)
finally:
sys.exit (1)
@@ -436,9 +436,9 @@ if __name__ == '__main__':
NewPrinterNotification(system_bus, session_bus)
except:
try:
- print(("%s: failed to start "
+ print >> sys.stderr, ("%s: failed to start "
"NewPrinterNotification service" %
- PROGRAM_NAME), file=sys.stderr)
+ PROGRAM_NAME)
except:
pass
@@ -447,9 +447,9 @@ if __name__ == '__main__':
cupshelpers.installdriver.PrinterDriversInstaller(system_bus)
except Exception as e:
try:
- print(("%s: failed to start "
+ print >> sys.stderr, ("%s: failed to start "
"PrinterDriversInstaller service: "
- "%s" % (PROGRAM_NAME, e)), file=sys.stderr)
+ "%s" % (PROGRAM_NAME, e))
except:
pass
Index: system-config-printer-1.5.7/asyncconn.py
===================================================================
--- system-config-printer-1.5.7.orig/asyncconn.py
+++ system-config-printer-1.5.7/asyncconn.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2007, 2008, 2009, 2010, 2012, 2013 Red Hat, Inc.
## Copyright (C) 2008 Novell, Inc.
Index: system-config-printer-1.5.7/asyncipp.py
===================================================================
--- system-config-printer-1.5.7.orig/asyncipp.py
+++ system-config-printer-1.5.7/asyncipp.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2015 Red Hat, Inc.
## Copyright (C) 2008 Novell, Inc.
@@ -25,7 +25,7 @@ from gi.repository import GObject
from gi.repository import GLib
from gi.repository import Gdk
from gi.repository import Gtk
-import queue
+import Queue as queue
cups.require ("1.9.60")
Index: system-config-printer-1.5.7/asyncpk1.py
===================================================================
--- system-config-printer-1.5.7.orig/asyncpk1.py
+++ system-config-printer-1.5.7/asyncpk1.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2007, 2008, 2009, 2010, 2012, 2013, 2014 Red Hat, Inc.
## Copyright (C) 2008 Novell, Inc.
Index: system-config-printer-1.5.7/authconn.py
===================================================================
--- system-config-printer-1.5.7.orig/authconn.py
+++ system-config-printer-1.5.7/authconn.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2007, 2008, 2009, 2010, 2011, 2013, 2014 Red Hat, Inc.
## Author: Tim Waugh <twaugh@redhat.com>
@@ -250,6 +250,8 @@ class Connection:
break
except cups.IPPError as e:
(e, m) = e.args
+ if isinstance(m, bytes):
+ m = m.decode('utf-8', 'replace')
if self._use_pk and m == 'pkcancel':
raise cups.IPPError (0, _("Operation canceled"))
Index: system-config-printer-1.5.7/check-device-ids.py
===================================================================
--- system-config-printer-1.5.7.orig/check-device-ids.py
+++ system-config-printer-1.5.7/check-device-ids.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## check-device-ids
@@ -54,6 +54,8 @@ elif len (sys.argv) == 2:
attrs = c.getPrinterAttributes (sys.argv[1])
except cups.IPPError as e:
(e, m) = e.args
+ if isinstance(m, bytes):
+ m = m.decode('utf-8', 'replace')
print("Error getting printer attibutes: %s" % m)
sys.exit (1)
@@ -235,8 +237,8 @@ def driver_uri_to_pkg (uri):
i = 1
if sys.stdout.encoding == 'UTF-8':
- item = chr (0x251c) + chr (0x2500) + chr (0x2500)
- last = chr (0x2514) + chr (0x2500) + chr (0x2500)
+ item = unichr (0x251c) + unichr (0x2500) + unichr (0x2500)
+ last = unichr (0x2514) + unichr (0x2500) + unichr (0x2500)
else:
item = "|--"
last = "`--"
@@ -275,7 +277,7 @@ for device, attrs in devices.items ():
drivers = []
if i < n:
- more = chr (0x2502)
+ more = unichr (0x2502)
else:
more = " "
Index: system-config-printer-1.5.7/cupshelpers/cupshelpers.py
===================================================================
--- system-config-printer-1.5.7.orig/cupshelpers/cupshelpers.py
+++ system-config-printer-1.5.7/cupshelpers/cupshelpers.py
@@ -19,7 +19,7 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-import cups, pprint, os, tempfile, re, string
+import cups, pprint, os, tempfile, re, string, sys
import locale
from . import _debugprint
from . import config
@@ -527,6 +527,12 @@ class Device:
self.id = kw.get('device-id', '')
self.location = kw.get('device-location', '')
+ if sys.version_info < (3,0,0):
+ if type (self.info) == unicode:
+ # Convert unicode objects to UTF-8 encoding so they can be
+ # compared with other UTF-8 encoded strings (bug #957444).
+ self.info = self.info.encode ('utf-8')
+
uri_pieces = uri.split(":")
self.type = uri_pieces[0]
self.is_class = len(uri_pieces)==1
Index: system-config-printer-1.5.7/cupshelpers/installdriver.py
===================================================================
--- system-config-printer-1.5.7.orig/cupshelpers/installdriver.py
+++ system-config-printer-1.5.7/cupshelpers/installdriver.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
Index: system-config-printer-1.5.7/cupshelpers/openprinting.py
===================================================================
--- system-config-printer-1.5.7.orig/cupshelpers/openprinting.py
+++ system-config-printer-1.5.7/cupshelpers/openprinting.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
@@ -19,8 +19,14 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-import requests, urllib.request, urllib.parse, urllib.error, platform, threading, tempfile, traceback
import os, sys
+import pycurl, platform, threading, tempfile, traceback
+if sys.version_info >= (3,0,0):
+ import urllib.parse as urlparse
+ import requests, urllib.request, urllib.error
+else:
+ import urlparse
+ import urllib
from xml.etree.ElementTree import XML
from . import Device
from . import _debugprint
@@ -52,6 +58,13 @@ class _QueryThread (threading.Thread):
_debugprint ("-%s" % self)
def run (self):
+
+ # Callback function for pycURL collecting the data coming from
+ # the web server
+ def collect_data(result):
+ self.result += result;
+ return len(result)
+
## Disabled on openSUSE, see discussion in https://bugzilla.novell.com/show_bug.cgi?id=733542
if self.callback != None:
self.callback (403, self.user_data, None)
@@ -63,7 +76,7 @@ class _QueryThread (threading.Thread):
headers = {"Content-type": "application/x-www-form-urlencoded",
"Accept": "text/plain"}
params = ("%s&uilanguage=%s&locale=%s" %
- (urllib.parse.urlencode (self.parameters),
+ (urllib.urlencode (self.parameters),
self.parent.language[0],
self.parent.language[0]))
self.url = "https://%s%s?%s" % (self.parent.base_url, query_command, params)
@@ -72,9 +85,20 @@ class _QueryThread (threading.Thread):
self.result = b''
status = 1
try:
- req = requests.get(self.url, verify=True)
- self.result = req.content
- status = 0
+ if sys.version_info >= (3,0,0):
+ req = requests.get(self.url, verify=True)
+ self.result = req.content
+ status = 0
+ else:
+ curl = pycurl.Curl()
+ curl.setopt(pycurl.SSL_VERIFYPEER, 1)
+ curl.setopt(pycurl.SSL_VERIFYHOST, 2)
+ curl.setopt(pycurl.WRITEFUNCTION, collect_data)
+ curl.setopt(pycurl.URL, self.url)
+ status = curl.perform()
+ if status == None: status = 0
+ if (status != 0):
+ self.result = sys.exc_info ()
except:
self.result = sys.exc_info ()
if status == None: status = 0
@@ -269,6 +293,13 @@ class OpenPrinting:
# There is more information in the raw XML, but this
# can be added to the Python structure as needed.
+ # Callback function for pycURL collecting the data coming from
+ # the web server
+ def collect_licensedata(result):
+ self.licensetext += result;
+ return len(result)
+
+
for driver in root.findall ('driver'):
id = driver.attrib.get ('id')
if id == None:
@@ -290,12 +321,22 @@ class OpenPrinting:
if element != None:
license_url = element.text
if license_url != None:
+ self.license_text = b''
try:
- req = requests.get(license_url, verify=True)
- dict['licensetext'] = \
- req.content.decode("utf-8")
+ if sys.version_info >= (3,0,0):
+ req = requests.get(license_url, verify=True)
+ dict['licensetext'] = \
+ req.content.decode("utf-8")
+ else:
+ curl = pycurl.Curl()
+ curl.setopt(pycurl.SSL_VERIFYPEER, 1)
+ curl.setopt(pycurl.SSL_VERIFYHOST, 2)
+ curl.setopt(pycurl.WRITEFUNCTION, collect_licensedata)
+ curl.setopt(pycurl.URL, license_url)
+ status = curl.perform()
+ if status == None: status = 0
except:
- _debugprint('Cannot retrieve %s' % url)
+ _debugprint('Cannot retrieve %s' % license_url)
for boolean in ['nonfreesoftware', 'recommended',
'patents', 'thirdpartysupplied',
Index: system-config-printer-1.5.7/cupshelpers/ppds.py
===================================================================
--- system-config-printer-1.5.7.orig/cupshelpers/ppds.py
+++ system-config-printer-1.5.7/cupshelpers/ppds.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
@@ -1278,7 +1278,7 @@ def _self_test(argv):
]
if stdin_deviceid:
- idlist = [(input ('Device ID: '), 2, '')]
+ idlist = [(raw_input ('Device ID: '), 2, '')]
all_passed = True
for id, max_status_code, modelre in idlist:
Index: system-config-printer-1.5.7/cupshelpers/xmldriverprefs.py
===================================================================
--- system-config-printer-1.5.7.orig/cupshelpers/xmldriverprefs.py
+++ system-config-printer-1.5.7/cupshelpers/xmldriverprefs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
@@ -20,6 +20,7 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+import sys
import fnmatch
import re
import xml.etree.ElementTree
@@ -520,6 +521,7 @@ def test (xml_path=None, attached=False,
ppds.set_debugprint_fn (debugprint)
locale.setlocale (locale.LC_ALL, "")
+ encoding = locale.getlocale (locale.LC_CTYPE)[1]
if xml_path == None:
xml_path = os.path.join (os.path.join (os.path.dirname (__file__),
".."),
@@ -610,7 +612,10 @@ def test (xml_path=None, attached=False,
orderedppds = drivertypes.get_ordered_ppdnames (orderedtypes,
ppdsdict, fit)
- print(mm + ":")
+ if sys.version_info >= (3,0,0):
+ print(mm + ":")
+ else:
+ print(mm.encode (encoding) + ":")
i = 1
for t, ppd in orderedppds:
print("%d %s\n (%s)" % (i, ppd, t))
Index: system-config-printer-1.5.7/cupspk.py
===================================================================
--- system-config-printer-1.5.7.orig/cupspk.py
+++ system-config-printer-1.5.7/cupspk.py
@@ -164,6 +164,9 @@ class Connection:
# we accept a mix between int and str
retval.append(str(args[i]))
continue
+ elif sys.version_info < (3,0,0) and types[i] == str and type(args[i]) == unicode:
+ # we accept a mix between unicode and str
+ pass
elif types[i] == str and type(args[i]) == float:
# we accept a mix between float and str
retval.append(str(args[i]))
Index: system-config-printer-1.5.7/debug.py
===================================================================
--- system-config-printer-1.5.7.orig/debug.py
+++ system-config-printer-1.5.7/debug.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2008, 2010 Red Hat, Inc.
## Authors:
Index: system-config-printer-1.5.7/dnssdresolve.py
===================================================================
--- system-config-printer-1.5.7.orig/dnssdresolve.py
+++ system-config-printer-1.5.7/dnssdresolve.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2010, 2011, 2012, 2013, 2014 Red Hat, Inc.
## Authors:
@@ -18,8 +18,13 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-import dbus, re
-import urllib.parse
+import dbus, re, sys
+if sys.version_info >= (3,0,0):
+ import urllib.parse as urlparse
+else:
+ import urlparse
+ import urllib
+
from debug import *
class DNSSDHostNamesResolver:
@@ -50,7 +55,7 @@ class DNSSDHostNamesResolver:
# We need to resolve the DNS-SD hostname in order to
# compare with other network devices.
- result = urllib.parse.urlparse (uri)
+ result = urlparse.urlparse (uri)
hostname = result.netloc
elements = hostname.rsplit (".", 3)
if len (elements) != 4:
@@ -58,7 +63,11 @@ class DNSSDHostNamesResolver:
continue
name, stype, protocol, domain = elements
- name = urllib.parse.unquote (name)
+
+ if sys.version_info >= (3,0,0):
+ name = urlparse.unquote (name)
+ else:
+ name = urllib.unquote (name)
stype += "." + protocol # e.g. _printer._tcp
try:
@@ -87,7 +96,7 @@ class DNSSDHostNamesResolver:
def _reply (self, interface, protocol, name, stype, domain,
host, aprotocol, address, port, txt, flags):
- uri = self._device_uri_by_name[(name, stype, domain)]
+ uri = self._device_uri_by_name[(name.encode ('utf-8'), stype, domain)]
self._devices[uri].address = address
hostname = host
p = hostname.find(".")
Index: system-config-printer-1.5.7/errordialogs.py
===================================================================
--- system-config-printer-1.5.7.orig/errordialogs.py
+++ system-config-printer-1.5.7/errordialogs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
@@ -21,6 +21,7 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+import sys
import config
import cups
from gi.repository import Gtk
@@ -51,6 +52,10 @@ def show_IPP_Error(exception, message, p
# In this case, the user has canceled a retry dialog.
return
else:
+ if sys.version_info >= (3,0,0):
+ # cups.IPPError message is utf-8 encoded
+ if isinstance(message, bytes):
+ message = message.decode ('utf-8', 'replace')
title = _("CUPS server error")
text = _("There was an error during the CUPS "
"operation: '%s'.") % message
Index: system-config-printer-1.5.7/firewallsettings.py
===================================================================
--- system-config-printer-1.5.7.orig/firewallsettings.py
+++ system-config-printer-1.5.7/firewallsettings.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
@@ -183,7 +183,7 @@ class SystemConfigFirewall:
return
p = self._fw.read ()
- self._fw_data = json.loads (p)
+ self._fw_data = json.loads (p.encode ('utf-8'))
except (dbus.exceptions.DBusException, AttributeError, ValueError) as e:
self._fw_data = (None, None)
if error_handler:
@@ -203,7 +203,7 @@ class SystemConfigFirewall:
def reply_handler (self, result):
try:
- self._fw_data = json.loads (result)
+ self._fw_data = json.loads (result.encode ('utf-8'))
except ValueError as e:
self.error_handler (e)
return
Index: system-config-printer-1.5.7/gtkinklevel.py
===================================================================
--- system-config-printer-1.5.7.orig/gtkinklevel.py
+++ system-config-printer-1.5.7/gtkinklevel.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2009, 2010, 2012 Red Hat, Inc.
## Authors:
Index: system-config-printer-1.5.7/gui.py
===================================================================
--- system-config-printer-1.5.7.orig/gui.py
+++ system-config-printer-1.5.7/gui.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
Index: system-config-printer-1.5.7/install-printerdriver.py
===================================================================
--- system-config-printer-1.5.7.orig/install-printerdriver.py
+++ system-config-printer-1.5.7/install-printerdriver.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
from gi.repository import GLib, PackageKitGlib
import sys
Index: system-config-printer-1.5.7/installpackage.py
===================================================================
--- system-config-printer-1.5.7.orig/installpackage.py
+++ system-config-printer-1.5.7/installpackage.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
Index: system-config-printer-1.5.7/jobviewer.py
===================================================================
--- system-config-printer-1.5.7.orig/jobviewer.py
+++ system-config-printer-1.5.7/jobviewer.py
@@ -40,7 +40,10 @@ import smburi
import subprocess
import sys
import time
-import urllib.parse
+if sys.version_info >= (3,0,0):
+ import urllib.parse as urlparse
+else:
+ import urlparse
from xml.sax import saxutils
from debug import *
@@ -143,6 +146,9 @@ class PrinterURIIndex:
try:
if connection == None:
connection = cups.Connection ()
+ if sys.version_info < (3,0,0):
+ if isinstance(name, bytes):
+ name = name.decode ('utf-8')
r = ['printer-name', 'printer-uri-supported', 'printer-more-info']
if uri != None:
@@ -943,18 +949,18 @@ class JobViewer (GtkGUI):
informational_attrs = dict()
auth_info = None
if try_keyring and 'password' in auth_info_required:
- (scheme, rest) = urllib.parse.splittype (device_uri)
+ result = urlparse.urlparse (device_uri)
+ scheme = result.scheme
if scheme == 'smb':
uri = smburi.SMBURI (uri=device_uri)
(group, server, share,
user, password) = uri.separate ()
informational_attrs["domain"] = str (group)
else:
- (serverport, rest) = urllib.parse.splithost (rest)
- if serverport == None:
+ if not result.hostname:
server = None
else:
- (server, port) = urllib.parse.splitnport (serverport)
+ (server, port) = (result.hostname, result.port)
if scheme == None or server == None:
try_keyring = False
@@ -1624,6 +1630,9 @@ class JobViewer (GtkGUI):
for name, value in attrs.items():
if name in ['job-id', 'job-printer-up-time']:
continue
+ if sys.version_info < (3,0,0):
+ if isinstance(value, unicode):
+ value.encode('utf-8')
attr_store.append([name, str(value)])
def job_is_active (self, jobdata):
@@ -1878,8 +1887,8 @@ class JobViewer (GtkGUI):
device_uri = attrs.get ('device-uri')
if device_uri != None:
- (scheme, rest) = urllib.parse.splittype (device_uri)
- if scheme not in ['socket', 'ipp', 'http', 'smb']:
+ result = urlparse.urlparse (device_uri)
+ if result.scheme not in ['socket', 'ipp', 'http', 'smb']:
return
printer = job.get ('job-printer-name', _("Unknown"))
Index: system-config-printer-1.5.7/PhysicalDevice.py
===================================================================
--- system-config-printer-1.5.7.orig/PhysicalDevice.py
+++ system-config-printer-1.5.7/PhysicalDevice.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2008, 2009, 2010, 2012, 2014 Red Hat, Inc.
## Authors:
@@ -18,11 +18,15 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+import sys
import config
import gettext
gettext.install(domain=config.PACKAGE, localedir=config.localedir)
import cupshelpers
-import urllib.parse
+if sys.version_info >= (3,0,0):
+ import urllib.parse as urlparse
+else:
+ import urlparse
import ppdippstr
@@ -54,11 +58,13 @@ class PhysicalDevice:
hostport = None
host = None
dnssdhost = None
- (scheme, rest) = urllib.parse.splittype (uri)
+ result = urlparse.urlparse (uri)
+ scheme = result.scheme
if scheme == 'hp' or scheme == 'hpfax':
ipparam = None
+ rest = uri[len(scheme)+1:]
if rest.startswith ("/net/"):
- (rest, ipparam) = urllib.parse.splitquery (rest[5:])
+ ipparam = result.query
if ipparam != None:
if ipparam.startswith("ip="):
@@ -76,13 +82,17 @@ class PhysicalDevice:
# name of the printer
return None, None
else:
- (hostport, rest) = urllib.parse.splithost (rest)
- if hostport == None:
+ if not result.netloc:
return None, None
- if hostport:
- (host, port) = urllib.parse.splitport (hostport)
+ if result.netloc:
+ (host, port) = (result.hostname, result.port)
+ if sys.version_info < (3,0,0):
+ if type (host) == unicode:
+ host = host.encode ('utf-8')
+ if type (dnssdhost) == unicode:
+ dnssdhost = dnssdhost.encode ('utf-8')
return host, dnssdhost
def add_device (self, device):
@@ -160,10 +170,14 @@ class PhysicalDevice:
if (hasattr (device, 'address') and self._network_host == None):
address = device.address
if address:
+ if sys.version_info < (3,0,0) and type (address) == unicode:
+ address = address.encode ('utf-8')
self._network_host = address
if (hasattr (device, 'hostname') and self.dnssd_hostname == None):
hostname = device.hostname
if hostname:
+ if sys.version_info < (3,0,0) and type (hostname) == unicode:
+ hostname = hostname.encode ('utf-8')
self.dnssd_hostname = hostname
def get_devices (self):
Index: system-config-printer-1.5.7/monitor.py
===================================================================
--- system-config-printer-1.5.7.orig/monitor.py
+++ system-config-printer-1.5.7/monitor.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2014 Red Hat, Inc.
## Author: Tim Waugh <twaugh@redhat.com>
@@ -676,7 +676,7 @@ class Monitor(GObject.GObject):
debugprint ("That's not what we asked for!")
else:
last_jobid = self.fetch_first_job_id + limit - 1
- for jobid in range (self.fetch_first_job_id, last_jobid + 1):
+ for jobid in xrange (self.fetch_first_job_id, last_jobid + 1):
try:
job = fetched[jobid]
if self.specific_dests != None:
@@ -825,6 +825,9 @@ if __name__ == '__main__':
print("*%s: cups connection error" % obj)
def on_cups_ipp_error (self, obj, err, errstring):
+ # cups.IPPError message is (utf-8) encoded
+ if sys.version_info < (3,0,0) and isinstance(errstring, bytes):
+ errstring = errstring.decode('utf-8', 'replace')
print("*%s: IPP error (%d): %s" % (obj, err, errstring))
set_debugging (True)
Index: system-config-printer-1.5.7/newprinter.py
===================================================================
--- system-config-printer-1.5.7.orig/newprinter.py
+++ system-config-printer-1.5.7/newprinter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
@@ -29,7 +29,11 @@ import cupshelpers
from OpenPrintingRequest import OpenPrintingRequest
import errno
-import sys, os, tempfile, time, traceback, re, http.client
+import sys, os, tempfile, time, traceback, re
+if sys.version_info >= (3,0,0):
+ import http.client
+else:
+ import httplib
import locale
import string
import subprocess
@@ -37,8 +41,16 @@ from timedops import *
import dbus
from gi.repository import Gdk
from gi.repository import Gtk
-import requests
-import functools
+if sys.version_info >= (3,0,0):
+ import requests
+ import functools
+else:
+ import pycurl
+ # prefer Python 2 module here, as in Python 2 io.StringIO is broken
+ try:
+ from cStringIO import StringIO
+ except ImportError:
+ from io import StringIO
import cups
@@ -55,7 +67,12 @@ from gui import GtkGUI
from optionwidgets import OptionWidget
from debug import *
import probe_printer
-import urllib.request, urllib.parse
+if sys.version_info >= (3,0,0):
+ import urllib.request
+ import urllib.parse as urlparse
+else:
+ import urllib
+ import urlparse
from smburi import SMBURI
from errordialogs import *
from PhysicalDevice import PhysicalDevice
@@ -75,7 +92,7 @@ TEXT_adjust_firewall = _("The firewall m
def validDeviceURI (uri):
"""Returns True is the provided URI is valid."""
- (scheme, rest) = urllib.parse.splittype (uri)
+ scheme = urlparse.urlparse (uri).scheme
if scheme == None or scheme == '':
return False
return True
@@ -101,7 +118,10 @@ def getCurrentClassMembers(treeview):
iter = model.get_iter_first()
result = []
while iter:
- result.append(model.get(iter, 0)[0])
+ if sys.version_info >= (3,0,0):
+ result.append(model.get(iter, 0)[0])
+ else:
+ result.append(model.get(iter, 0)[0].decode('utf-8'))
iter = model.iter_next(iter)
result.sort()
return result
@@ -109,6 +129,7 @@ def getCurrentClassMembers(treeview):
def checkNPName(printers, name):
if not name: return False
name = name.lower()
+ if sys.version_info < (3,0,0): name = unicode (name)
for printer in printers.values():
if not printer.discovered and printer.name.lower()==name:
return False
@@ -174,12 +195,27 @@ def download_gpg_fingerprint(url):
debugprint('No system SSL certificates available for trust checking')
return None
- try:
- req = requests.get(url, verify=cert)
- content = req.content.decode("utf-8")
- except:
- debugprint('Cannot retrieve %s' % url)
- return None
+ if sys.version_info >= (3,0,0):
+ try:
+ req = requests.get(url, verify=cert)
+ content = req.content.decode("utf-8")
+ except:
+ debugprint('Cannot retrieve %s' % url)
+ return None
+ else:
+ c = pycurl.Curl()
+ c.setopt(pycurl.URL, url)
+ content = StringIO()
+ c.setopt(pycurl.WRITEFUNCTION, content.write)
+ c.setopt(pycurl.FOLLOWLOCATION, 1)
+ c.setopt(pycurl.MAXREDIRS, 5)
+ c.setopt(pycurl.CAINFO, cert)
+ try:
+ c.perform()
+ except pycurl.error as e:
+ debugprint('Cannot retrieve %s: %s' % (url, repr (e)))
+ return None
+ content = content.getvalue()
keyid_re = re.compile(' ((?:(?:[0-9A-F]{4})(?:\s+|$)){10})$', re.M)
@@ -996,7 +1032,7 @@ class NewPrinterGUI(GtkGUI):
ret = True
try:
self.p = subprocess.Popen (args, env=new_environ, close_fds=True,
- stdin=subprocess.DEVNULL,
+ stdin=file("/dev/null"),
stdout=subprocess.PIPE)
# Keep the UI refreshed while we wait for
# the drivers query to complete.
@@ -1109,7 +1145,11 @@ class NewPrinterGUI(GtkGUI):
else:
port = 631
try:
- conn = http.client.HTTPConnection(resg[0], port)
+ if sys.version_info >= (3,0,0):
+ conn = http.client.HTTPConnection(resg[0], port)
+ else:
+ conn = httplib.HTTPConnection(resg[0], port)
+
conn.request("GET", "/printers/%s.ppd" % resg[2])
resp = conn.getresponse()
if resp.status == 200:
@@ -1749,6 +1789,7 @@ class NewPrinterGUI(GtkGUI):
def on_entNPName_changed(self, widget):
# restrict
text = widget.get_text()
+ if sys.version_info < (3,0,0): text = unicode (text, 'utf-8')
new_text = text
new_text = new_text.replace("/", "")
new_text = new_text.replace("#", "")
@@ -1846,7 +1887,7 @@ class NewPrinterGUI(GtkGUI):
debugprint (faxuri + ": " + repr(args))
try:
p = subprocess.Popen (args, env=new_environ, close_fds=True,
- stdin=subprocess.DEVNULL,
+ stdin=file("/dev/null"),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(stdout, stderr) = p.communicate ()
@@ -1855,7 +1896,8 @@ class NewPrinterGUI(GtkGUI):
return None
faxtype = -1
- for line in stdout.decode ().split ("\n"):
+ if sys.version_info >= (3,0,0): stdout = stdout.decode ()
+ for line in stdout.split ("\n"):
if line.find ("fax-type") == -1:
continue
res = re.search ("(\d+)", line)
@@ -1879,7 +1921,7 @@ class NewPrinterGUI(GtkGUI):
debugprint (uri + ": " + repr(args))
try:
p = subprocess.Popen (args, close_fds=True,
- stdin=subprocess.DEVNULL,
+ stdin=file("/dev/null"),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(stdout, stderr) = p.communicate ()
@@ -1889,7 +1931,8 @@ class NewPrinterGUI(GtkGUI):
# Problem executing command.
return None
- scan_type = stdout.decode ().strip ()
+ if sys.version_info >= (3,0,0): stdout = stdout.decode ()
+ scan_type = stdout.strip ()
fields = scan_type.split ("=", 1)
if len (fields) < 2:
return None
@@ -1909,7 +1952,7 @@ class NewPrinterGUI(GtkGUI):
uri = None
try:
p = subprocess.Popen (args, close_fds=True,
- stdin=subprocess.DEVNULL,
+ stdin=file("/dev/null"),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(stdout, stderr) = p.communicate ()
@@ -1919,7 +1962,8 @@ class NewPrinterGUI(GtkGUI):
# Problem executing command.
return None
- uri = stdout.decode ().strip ()
+ if sys.version_info >= (3,0,0): stdout = stdout.decode ()
+ uri = stdout.strip ()
return uri
def getNetworkPrinterMakeModel(self, host=None, device=None):
@@ -1949,7 +1993,7 @@ class NewPrinterGUI(GtkGUI):
stdout = None
try:
p = subprocess.Popen (args, close_fds=True,
- stdin=subprocess.DEVNULL,
+ stdin=file("/dev/null"),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(stdout, stderr) = p.communicate ()
@@ -1960,7 +2004,8 @@ class NewPrinterGUI(GtkGUI):
pass
if stdout != None:
- line = stdout.decode ().strip ()
+ if sys.version_info >= (3,0,0): stdout = stdout.decode ()
+ line = stdout.strip ()
words = probe_printer.wordsep (line)
n = len (words)
if n < 4:
@@ -2775,9 +2820,8 @@ class NewPrinterGUI(GtkGUI):
elif device.type == "socket":
device.menuentry = _("AppSocket/HP JetDirect")
elif device.type == "lpd":
- (scheme, rest) = urllib.parse.splittype (device.uri)
- (hostport, rest) = urllib.parse.splithost (rest)
- (queue, rest) = urllib.parse.splitquery (rest)
+ result = urlparse.urlparse (device.uri)
+ (scheme, hostport, queue) = (result.scheme, result.netloc, result.query)
if queue != '':
if queue[0] == '/':
queue = queue[1:]
@@ -2790,9 +2834,8 @@ class NewPrinterGUI(GtkGUI):
elif device.type == "smb":
device.menuentry = _("Windows Printer via SAMBA")
elif device.type == "ipp":
- (scheme, rest) = urllib.parse.splittype (device.uri)
- (hostport, rest) = urllib.parse.splithost (rest)
- (queue, rest) = urllib.parse.splitquery (rest)
+ result = urlparse.urlparse (device.uri)
+ (scheme, hostport, queue) = (result.scheme, result.netloc, result.query)
if queue != '':
if queue[0] == '/':
queue = queue[1:]
@@ -2805,9 +2848,8 @@ class NewPrinterGUI(GtkGUI):
elif device.type == "http" or device.type == "https":
device.menuentry = _("HTTP")
elif device.type == "dnssd" or device.type == "mdns":
- (scheme, rest) = urllib.parse.splittype (device.uri)
- (name, rest) = urllib.parse.splithost (rest)
- (cupsqueue, rest) = urllib.parse.splitquery (rest)
+ result = urlparse.urlparse (device.uri)
+ (scheme, name, cupsqueue) = (result.scheme, result.netloc, result.query)
if cupsqueue != '' and cupsqueue[0] == '/':
cupsqueue = cupsqueue[1:]
if cupsqueue == 'cups':
@@ -2859,10 +2901,8 @@ class NewPrinterGUI(GtkGUI):
elif device.type in ["socket", "lpd", "ipp", "dnssd", "mdns"]:
# This is a network printer.
if host == None and device.type in ["socket", "lpd", "ipp"]:
- (scheme, rest) = urllib.parse.splittype (device.uri)
- (hostport, rest) = urllib.parse.splithost (rest)
- if hostport != None:
- (host, port) = urllib.parse.splitport (hostport)
+ result = urlparse.urlparse (device.uri)
+ (scheme, host, port) = (result.scheme, result.hostname, result.port)
if host:
is_network = True
remotecups = ((device.uri.startswith('dnssd:') or \
@@ -2966,9 +3006,8 @@ class NewPrinterGUI(GtkGUI):
text = _("Local printer detected by the "
"Hardware Abstraction Layer (HAL).")
elif device.type == "dnssd" or device.type == "mdns":
- (scheme, rest) = urllib.parse.splittype (device.uri)
- (name, rest) = urllib.parse.splithost (rest)
- (cupsqueue, rest) = urllib.parse.splitquery (rest)
+ result = urlparse.urlparse (device.uri)
+ (scheme, name, cupsqueue) = (result.scheme, result.hostname, result.query)
if cupsqueue != '' and cupsqueue[0] == '/':
cupsqueue = cupsqueue[1:]
if cupsqueue == 'cups':
@@ -2990,12 +3029,12 @@ class NewPrinterGUI(GtkGUI):
self.lblNPDeviceDescription.set_text (text)
elif device.type=="socket":
- (scheme, rest) = urllib.parse.splittype (device.uri)
+ result = urlparse.urlparse (device.uri)
+ scheme = result.scheme
host = ''
port = 9100
if scheme == "socket":
- (hostport, rest) = urllib.parse.splithost (rest)
- (host, port) = urllib.parse.splitnport (hostport, defport=port)
+ (host, port) = ( result.hostname, result.port if result.port else port)
debugprint ("socket: host is %s, port is %s" % (host,
repr (port)))
if device.location != '':
@@ -3029,7 +3068,8 @@ class NewPrinterGUI(GtkGUI):
nr = 0
while iter:
value = model.get(iter,1)[0]
- if str (value) == str (option_dict[name]):
+ if (sys.version_info >= (3,0,0) and str (value) == str (option_dict[name])) or \
+ (sys.version_info < (3,0,0) and unicode (value) == unicode (option_dict[name])):
break
iter = model.iter_next(iter)
nr += 1
@@ -3912,11 +3952,14 @@ class NewPrinterGUI(GtkGUI):
p = subprocess.Popen (['/usr/bin/cupstestppd',
'-rvv', filename],
close_fds=True,
- stdin=subprocess.DEVNULL,
+ stdin=file("/dev/null"),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(stdout, stderr) = p.communicate ()
- err += stdout.decode ()
+ if sys.version_info >= (3,0,0):
+ err += stdout.decode ()
+ else:
+ err += stdout.decode ('utf-8', 'replace')
except:
# Problem executing command.
raise
@@ -4024,6 +4067,10 @@ class NewPrinterGUI(GtkGUI):
name = self.entNPName.get_text()
location = self.entNPLocation.get_text()
info = self.entNPDescription.get_text()
+ if sys.version_info < (3,0,0):
+ name = unicode ( name, 'utf-8')
+ location = unicode ( location, 'utf-8')
+ info = unicode ( info, 'utf-8')
else:
name = self._name
@@ -4063,7 +4110,7 @@ class NewPrinterGUI(GtkGUI):
Gtk.main_iteration ()
self.cups._begin_operation (_("adding printer %s") % name)
try:
- if isinstance(ppd, str):
+ if isinstance(ppd, str) or (sys.version_info < (3,0,0) and isinstance(ppd, unicode)):
self.cups.addPrinter(name, ppdname=ppd,
device=uri, info=info, location=location)
elif ppd is None: # raw queue
@@ -4124,7 +4171,7 @@ class NewPrinterGUI(GtkGUI):
# set ppd on server and retrieve it
# cups doesn't offer a way to just download a ppd ;(=
raw = False
- if isinstance(ppd, str):
+ if isinstance(ppd, str) or (sys.version_info < (3,0,0) and isinstance(ppd, unicode)):
if self.rbtnChangePPDasIs.get_active():
# To use the PPD as-is we need to prevent CUPS copying
# the old options over. Do this by setting it to a
Index: system-config-printer-1.5.7/ppdcache.py
===================================================================
--- system-config-printer-1.5.7.orig/ppdcache.py
+++ system-config-printer-1.5.7/ppdcache.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2010, 2011, 2012, 2013, 2014 Red Hat, Inc.
## Authors:
Index: system-config-printer-1.5.7/ppdippstr.py
===================================================================
--- system-config-printer-1.5.7.orig/ppdippstr.py
+++ system-config-printer-1.5.7/ppdippstr.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
Index: system-config-printer-1.5.7/ppdsloader.py
===================================================================
--- system-config-printer-1.5.7.orig/ppdsloader.py
+++ system-config-printer-1.5.7/ppdsloader.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
Index: system-config-printer-1.5.7/printerproperties.py
===================================================================
--- system-config-printer-1.5.7.orig/printerproperties.py
+++ system-config-printer-1.5.7/printerproperties.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
@@ -24,7 +24,7 @@
# config is generated from config.py.in by configure
import config
-import os, tempfile
+import sys, os, tempfile
from gi.repository import Gtk
import cups
import locale
@@ -686,6 +686,9 @@ class PrinterPropertiesDialog(GtkGUI):
old_value = old_values[widget]
+ if sys.version_info < (3,0,0) and type (old_value) == unicode:
+ old_value = old_value.encode ('utf-8')
+
if old_value == value:
self.changed.discard(widget)
else:
@@ -995,6 +998,8 @@ class PrinterPropertiesDialog(GtkGUI):
parent = self.dialog
class_deleted = False
name = printer.name
+ if sys.version_info < (3,0,0) and isinstance (name, bytes):
+ name = name.decode ('utf-8')
if printer.is_class:
self.cups._begin_operation (_("modifying class %s") % name)
@@ -1040,6 +1045,10 @@ class PrinterPropertiesDialog(GtkGUI):
location = self.entPLocation.get_text()
info = self.entPDescription.get_text()
device_uri = self.entPDevice.get_text()
+ if sys.version_info < (3,0,0):
+ location = location.decode ('utf-8')
+ info = info.decode ('utf-8')
+ device_uri = device_uri.decode ('utf-8')
enabled = self.chkPEnabled.get_active()
accepting = self.chkPAccepting.get_active()
@@ -1332,7 +1341,7 @@ class PrinterPropertiesDialog(GtkGUI):
# Either the underlying cupsGetPPD2() function returned
# NULL without setting an IPP error (so it'll be something
# like a failed connection), or the PPD could not be parsed.
- if str (e).startswith ("ppd"):
+ if str (e).startswith ("ppd"): # or e.message.startswith ("ppd")
show_error_dialog (_("Error"),
_("The PPD file for this queue "
"is damaged."),
@@ -1909,6 +1918,9 @@ class PrinterPropertiesDialog(GtkGUI):
self.on_printer_modified (None, printer, False)
def on_printer_removed (self, mon, printer):
+ if sys.version_info < (3,0,0) and isinstance (printer, bytes):
+ printer = printer.decode ('utf-8')
+
if (self.dialog.get_property ('visible') and
self.printer and self.printer.name == printer):
self.dialog.response (Gtk.ResponseType.CANCEL)
Index: system-config-printer-1.5.7/probe_printer.py
===================================================================
--- system-config-printer-1.5.7.orig/probe_printer.py
+++ system-config-printer-1.5.7/probe_printer.py
@@ -18,6 +18,7 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+import sys
import cupshelpers
from debug import *
import errno
@@ -272,14 +273,18 @@ class PrinterFinder:
def _probe_snmp (self):
# Run the CUPS SNMP backend, pointing it at the host.
+ if sys.version_info < (3,0,0):
+ null = file ("/dev/null", "r+")
+ else:
+ null = subprocess.DEVNULL
try:
debugprint ("snmp: trying")
p = subprocess.Popen (args=["/usr/lib/cups/backend/snmp",
self.hostname],
close_fds=True,
- stdin=subprocess.DEVNULL,
+ stdin=null,
stdout=subprocess.PIPE,
- stderr=subprocess.DEVNULL)
+ stderr=null)
except OSError as e:
debugprint ("snmp: no good")
if e.errno == errno.ENOENT:
@@ -296,7 +301,7 @@ class PrinterFinder:
debugprint ("snmp: no good")
return
- for line in stdout.decode ().split ('\n'):
+ for line in stdout.split ('\n'):
words = wordsep (line)
n = len (words)
if n == 6:
@@ -364,13 +369,17 @@ class PrinterFinder:
self._cached_attributes['device-make-and-model'])
return
+ if sys.version_info < (3,0,0):
+ null = file ("/dev/null", "r+")
+ else:
+ null = subprocess.DEVNULL
try:
debugprint ("hplip: trying")
p = subprocess.Popen (args=["hp-makeuri", "-c", self.hostname],
close_fds=True,
- stdin=subprocess.DEVNULL,
+ stdin=null,
stdout=subprocess.PIPE,
- stderr=subprocess.DEVNULL)
+ stderr=null)
except OSError as e:
if e.errno == errno.ENOENT:
return
@@ -386,7 +395,7 @@ class PrinterFinder:
debugprint ("hplip: no good")
return
- uri = stdout.decode ().strip ()
+ uri = stdout.strip ()
debugprint ("hplip: uri is %s" % uri)
if uri.find (":") != -1:
self._new_device(uri, uri)
Index: system-config-printer-1.5.7/profile-ppds.py
===================================================================
--- system-config-printer-1.5.7.orig/profile-ppds.py
+++ system-config-printer-1.5.7/profile-ppds.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
import cups
import cupshelpers
import hotshot
Index: system-config-printer-1.5.7/pysmb.py
===================================================================
--- system-config-printer-1.5.7.orig/pysmb.py
+++ system-config-printer-1.5.7/pysmb.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
## CUPS backend
Index: system-config-printer-1.5.7/scp-dbus-service.py
===================================================================
--- system-config-printer-1.5.7.orig/scp-dbus-service.py
+++ system-config-printer-1.5.7/scp-dbus-service.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
Index: system-config-printer-1.5.7/serversettings.py
===================================================================
--- system-config-printer-1.5.7.orig/serversettings.py
+++ system-config-printer-1.5.7/serversettings.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
Index: system-config-printer-1.5.7/smburi.py
===================================================================
--- system-config-printer-1.5.7.orig/smburi.py
+++ system-config-printer-1.5.7/smburi.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
@@ -20,10 +20,20 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-import urllib.parse
+import sys
+if sys.version_info >= (3,0,0):
+ import urllib.parse as urlparse
+else:
+ import urlparse
+ import urllib
def urlquote (x):
q = urllib.parse.quote (x)
+ if sys.version_info >= (3,0,0):
+ q = urllib.parse.quote (x)
+ else:
+ q = urllib.quote (x)
+
for c in ["/", "@", ":"]:
q = q.replace (c, "%%%02X" % ord (c))
@@ -37,6 +47,8 @@ class SMBURI:
if group or host or share or user or password:
raise RuntimeError
+ if sys.version_info < (3,0,0):
+ uri = uri.encode ('utf-8')
if uri.startswith ("smb://"):
uri = uri[6:]
@@ -97,6 +109,11 @@ class SMBURI:
if p != -1:
host = host[:p]
share = uri
- return (urllib.parse.unquote (group), urllib.parse.unquote (host),
- urllib.parse.unquote (share),
- urllib.parse.unquote (user), urllib.parse.unquote (password))
+ if sys.version_info >= (3,0,0):
+ return (urlparse.unquote (group), urlparse.unquote (host),
+ urlparse.unquote (share),
+ urlparse.unquote (user), urlparse.unquote (password))
+ else:
+ return (urllib.unquote (group), urllib.unquote (host),
+ urllib.unquote (share),
+ urllib.unquote (user), urllib.unquote (password))
Index: system-config-printer-1.5.7/statereason.py
===================================================================
--- system-config-printer-1.5.7.orig/statereason.py
+++ system-config-printer-1.5.7/statereason.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2007, 2008, 2009, 2010, 2012, 2013, 2014 Red Hat, Inc.
## Authors:
Index: system-config-printer-1.5.7/system-config-printer.py
===================================================================
--- system-config-printer-1.5.7.orig/system-config-printer.py
+++ system-config-printer-1.5.7/system-config-printer.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
@@ -25,7 +25,10 @@
import config
import sys, os, time, re
-import _thread
+if sys.version_info >= (3,0,0):
+ import _thread
+else:
+ import thread as _thread
import dbus
try:
from gi.repository import Polkit
@@ -74,7 +77,12 @@ from gi.repository import GObject
from gi.repository import GLib
from gui import GtkGUI
from debug import *
-import urllib.request, urllib.parse, urllib.error
+if sys.version_info >= (3,0,0):
+ import urllib.request, urllib.error
+ import urllib.parse as urlparse
+else:
+ import urllib
+ import urlparse
import troubleshoot
import installpackage
import jobviewer
@@ -498,6 +506,7 @@ class GUI(GtkGUI):
iter = model.get_iter_first ()
while iter != None:
name = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
if name == queue:
path = model.get_path (iter)
self.dests_iconview.scroll_to_path (path, True, 0.5, 0.5)
@@ -537,6 +546,7 @@ class GUI(GtkGUI):
model = iconview.get_model ()
iter = model.get_iter (path)
name = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
object = model.get_value (iter, 0)
self.desensitise_main_window_widgets ()
@@ -586,6 +596,7 @@ class GUI(GtkGUI):
iter = model.get_iter (path)
object = model.get_value (iter, 0)
name = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
if object.discovered:
any_discovered = True
if object.enabled:
@@ -795,6 +806,7 @@ class GUI(GtkGUI):
for path in paths:
iter = model.get_iter (path)
name = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
selected_printers.add (name)
if self.cups:
@@ -930,7 +942,7 @@ class GUI(GtkGUI):
elif object.is_class:
type = 'local-class'
else:
- (scheme, rest) = urllib.parse.splittype (object.device_uri)
+ scheme = urlparse.urlparse (object.device_uri).scheme
if scheme == 'ipp':
type = 'ipp-printer'
elif scheme == 'smb':
@@ -1045,6 +1057,7 @@ class GUI(GtkGUI):
model = self.dests_iconview.get_model ()
def maybe_select (model, path, iter, UNUSED):
name = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
if name in selected_printers:
self.dests_iconview.select_path (path)
model.foreach (maybe_select, None)
@@ -1112,6 +1125,7 @@ class GUI(GtkGUI):
self.connect_encrypt = cups.getEncryption ()
servername = self.cmbServername.get_child().get_text()
+ if sys.version_info < (3,0,0): servername = servername.decode ('utf-8')
self.lblConnecting.set_markup(_("<i>Opening connection to %s</i>")
% servername)
@@ -1391,6 +1405,7 @@ class GUI(GtkGUI):
model = self.dests_iconview.get_model ()
iter = model.get_iter (path)
name = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
if not self.is_rename_possible (name):
return
if not self.rename_confirmed_by_user (name):
@@ -1416,6 +1431,7 @@ class GUI(GtkGUI):
model = self.dests_iconview.get_model ()
iter = model.get_iter (path)
name = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
id = editable.connect('editing-done',
self.printer_name_editing_done,
cell, name)
@@ -1423,6 +1439,7 @@ class GUI(GtkGUI):
def printer_name_editing (self, entry):
newname = origname = entry.get_text()
+ if sys.version_info < (3,0,0): newname = origname = newname.decode ('utf-8')
newname = newname.replace("/", "")
newname = newname.replace("#", "")
newname = newname.replace(" ", "")
@@ -1433,6 +1450,7 @@ class GUI(GtkGUI):
def printer_name_editing_done (self, entry, cell, name):
debugprint (repr (cell))
newname = entry.get_text ()
+ if sys.version_info < (3,0,0): newname = newname.decode ('utf-8')
debugprint ("edited: %s -> %s" % (name, newname))
try:
self.rename_printer (name, newname)
@@ -1561,6 +1579,7 @@ class GUI(GtkGUI):
# ..and select the new printer.
def select_new_printer (model, path, iter, UNUSED):
name = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
if name == new_name:
self.dests_iconview.select_path (path)
self.populateList ()
@@ -1585,6 +1604,7 @@ class GUI(GtkGUI):
model = self.dests_iconview.get_model ()
iter = model.get_iter (paths[0])
name = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
self.entDuplicateName.set_text(name)
self.NewPrinterName.set_transient_for (self.PrintersWindow)
result = self.NewPrinterName.run()
@@ -1607,12 +1627,16 @@ class GUI(GtkGUI):
self.populateList ()
return
- self.duplicate_printer (self.entDuplicateName.get_text ())
+ if sys.version_info >= (3,0,0):
+ self.duplicate_printer (self.entDuplicateName.get_text ())
+ else:
+ self.duplicate_printer (self.entDuplicateName.get_text ().decode ('utf-8'))
self.monitor.update ()
def on_entDuplicateName_changed(self, widget):
# restrict
text = widget.get_text()
+ if sys.version_info < (3,0,0): text = text.decode ('utf-8')
new_text = text
new_text = new_text.replace("/", "")
new_text = new_text.replace("#", "")
@@ -1636,6 +1660,7 @@ class GUI(GtkGUI):
itr = model.get_iter (paths[0])
obj = model.get_value (itr, 0)
name = model.get_value (itr, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
if obj.is_class:
message_format = (_("Really delete class '%s'?") % name)
else:
@@ -1647,6 +1672,7 @@ class GUI(GtkGUI):
for path in paths:
itr = model.get_iter (path)
name = model.get_value (itr, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
to_delete.append (name)
dialog = Gtk.MessageDialog(parent=self.PrintersWindow,
modal=True, destroy_with_parent=True,
@@ -1689,7 +1715,10 @@ class GUI(GtkGUI):
printers.append (printer)
for printer in printers:
- self.cups._begin_operation (_("modifying printer %s") % printer.name)
+ printer_name = printer.name
+ if sys.version_info < (3,0,0) and isinstance(printer_name, bytes):
+ printer_name = printer_name.decode ('utf-8')
+ self.cups._begin_operation (_("modifying printer %s") % printer_name)
try:
printer.setEnabled (enable)
except cups.IPPError as e:
@@ -1719,8 +1748,11 @@ class GUI(GtkGUI):
success = False
for printer in printers:
+ printer_name = printer.name
+ if sys.version_info < (3,0,0) and isinstance(printer_name, bytes):
+ printer_name = printer_name.decode ('utf-8')
self.cups._begin_operation (_("modifying printer %s")
- % printer.name)
+ % printer_name)
try:
printer.setShared (share)
success = True
@@ -1773,6 +1805,7 @@ class GUI(GtkGUI):
return
name = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
self.set_system_or_user_default_printer (name)
def on_edit_activate (self, *UNUSED):
@@ -1786,6 +1819,7 @@ class GUI(GtkGUI):
for path in paths:
iter = model.get_iter (path)
name = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
class_members.append (name)
if not self.newPrinterGUI.init ("class",
host=self.connect_server,
@@ -1813,6 +1847,7 @@ class GUI(GtkGUI):
for path in paths:
iter = model.get_iter (path)
name = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): name = name.decode ('utf-8')
specific_dests.append (name)
viewer = jobviewer.JobViewer (None, None, my_jobs=False,
specific_dests=specific_dests,
@@ -1946,6 +1981,7 @@ class GUI(GtkGUI):
iter = model.get_iter_first ()
while iter != None:
queue = model.get_value (iter, 2)
+ if sys.version_info < (3,0,0): queue = queue.decode ('utf-8')
if queue == name:
path = model.get_path (iter)
self.dests_iconview.scroll_to_path (path, True, 0.5, 0.5)
Index: system-config-printer-1.5.7/timedops.py
===================================================================
--- system-config-printer-1.5.7.orig/timedops.py
+++ system-config-printer-1.5.7/timedops.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2008, 2009, 2010, 2012, 2014 Red Hat, Inc.
## Authors:
Index: system-config-printer-1.5.7/troubleshoot/CheckLocalServerPublishing.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/CheckLocalServerPublishing.py
+++ system-config-printer-1.5.7/troubleshoot/CheckLocalServerPublishing.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/CheckNetworkServerSanity.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/CheckNetworkServerSanity.py
+++ system-config-printer-1.5.7/troubleshoot/CheckNetworkServerSanity.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
@@ -24,6 +24,7 @@ from gi.repository import Gtk
import cups
import os
+import sys
import smburi
import socket
import subprocess
@@ -184,10 +185,15 @@ class CheckNetworkServerSanity(Question)
if (try_connect and
'remote_server_traceroute' not in answers):
try:
+ if sys.version_info >= (3,0,0):
+ null = subprocess.DEVNULL
+ else:
+ null = file("/dev/null")
+
self.op = TimedSubprocess (parent=parent, close_fds=True,
args=['traceroute', '-w', '1',
server_name],
- stdin=subprocess.DEVNULL,
+ stdin=null,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
self.answers['remote_server_traceroute'] = self.op.run ()
Index: system-config-printer-1.5.7/troubleshoot/CheckPPDSanity.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/CheckPPDSanity.py
+++ system-config-printer-1.5.7/troubleshoot/CheckPPDSanity.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
@@ -26,6 +26,7 @@ import cups
import cupshelpers
import installpackage
import os
+import sys
import subprocess
from timedops import TimedOperation, TimedSubprocess
from .base import *
@@ -100,10 +101,14 @@ class CheckPPDSanity(Question):
title = _("Invalid PPD File")
self.answers['cups_printer_ppd_valid'] = False
try:
+ if sys.version_info >= (3,0,0):
+ null = subprocess.DEVNULL
+ else:
+ null = file("/dev/null")
self.op = TimedSubprocess (parent=parent,
args=['cupstestppd', '-rvv', tmpf],
close_fds=True,
- stdin=subprocess.DEVNULL,
+ stdin=null,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
result = self.op.run ()
Index: system-config-printer-1.5.7/troubleshoot/CheckPrinterSanity.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/CheckPrinterSanity.py
+++ system-config-printer-1.5.7/troubleshoot/CheckPrinterSanity.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
@@ -24,10 +24,14 @@ from gi.repository import Gtk
import cups
import os
+import sys
import smburi
import subprocess
from timedops import TimedOperation, TimedSubprocess
-import urllib.parse
+if sys.version_info >= (3,0,0):
+ import urllib.parse as urlparse
+else:
+ import urlparse
from .base import *
class CheckPrinterSanity(Question):
def __init__ (self, troubleshooter):
@@ -72,11 +76,16 @@ class CheckPrinterSanity(Question):
if 'cups_printer_dict' in self.answers:
cups_printer_dict = self.answers['cups_printer_dict']
uri = cups_printer_dict['device-uri']
- (scheme, rest) = urllib.parse.splittype (uri)
+# (scheme, rest) = urllib.parse.splittype (uri)
+ parseresult = urlparse.urlparse (uri)
+ scheme = parseresult.scheme
self.answers['cups_device_uri_scheme'] = scheme
+ if sys.version_info >= (3,0,0):
+ null = subprocess.DEVNULL
+ else:
+ null = file("/dev/null")
if scheme in ["ipp", "http", "https"]:
- (hostport, rest) = urllib.parse.splithost (rest)
- (host, port) = urllib.parse.splitnport (hostport, defport=631)
+ (host, port) = (parseresult.hostname, parseresult.port if parseresult.port else 631)
self.answers['remote_server_name'] = host
self.answers['remote_server_port'] = port
elif scheme == "smb":
@@ -94,7 +103,7 @@ class CheckPrinterSanity(Question):
args=args,
env=new_environ,
close_fds=True,
- stdin=subprocess.DEVNULL,
+ stdin=null,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
result = p.run ()
@@ -121,7 +130,7 @@ class CheckPrinterSanity(Question):
args=["hp-info", "-d" + uri],
close_fds=True,
env=new_environ,
- stdin=subprocess.DEVNULL,
+ stdin=null,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
self.answers['hplip_output'] = p.run ()
Index: system-config-printer-1.5.7/troubleshoot/CheckSELinux.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/CheckSELinux.py
+++ system-config-printer-1.5.7/troubleshoot/CheckSELinux.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
@@ -24,6 +24,7 @@ from gi.repository import Gtk
import subprocess
from .base import *
import os
+import sys
import shlex
from timedops import TimedSubprocess
@@ -48,6 +49,10 @@ class CheckSELinux(Question):
return False
paths = ["/etc/cups/", "/usr/lib/cups/", "/usr/share/cups/"]
+ if sys.version_info >= (3,0,0):
+ null = subprocess.DEVNULL
+ else:
+ null = file("/dev/null", "r+")
parent = self.troubleshooter.get_window ()
contexts = {}
new_environ = os.environ.copy()
@@ -59,9 +64,9 @@ class CheckSELinux(Question):
args=restorecon_args,
close_fds=True,
env=new_environ,
- stdin=subprocess.DEVNULL,
+ stdin=null,
stdout=subprocess.PIPE,
- stderr=subprocess.DEVNULL)
+ stderr=null)
(restorecon_stdout, restorecon_stderr, result) = self.op.run ()
except:
# Problem executing command.
Index: system-config-printer-1.5.7/troubleshoot/CheckUSBPermissions.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/CheckUSBPermissions.py
+++ system-config-printer-1.5.7/troubleshoot/CheckUSBPermissions.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
@@ -22,9 +22,13 @@
import glob
import os
+import sys
import subprocess
from timedops import TimedSubprocess
-import urllib.parse
+if sys.version_info >= (3,0,0):
+ import urllib.parse as urlparse
+else:
+ import urlparse
from .base import *
from gi.repository import Gtk
@@ -47,7 +51,7 @@ class CheckUSBPermissions(Question):
else:
return False
- (scheme, rest) = urllib.parse.splittype (device_uri)
+ scheme = urlparse.urlparse (device_uri).scheme
if scheme not in ['hp', 'hpfax', 'usb', 'hal']:
return False
@@ -64,12 +68,16 @@ class CheckUSBPermissions(Question):
# Run lsusb
parent = self.troubleshooter.get_window ()
+ if sys.version_info >= (3,0,0):
+ null = subprocess.DEVNULL
+ else:
+ null = file("/dev/null", "r+")
try:
self.op = TimedSubprocess (parent=parent,
args=[LSUSB, "-v"],
close_fds=True,
env=new_environ,
- stdin=subprocess.DEVNULL,
+ stdin=null,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(lsusb_stdout, lsusb_stderr, result) = self.op.run ()
@@ -149,7 +157,7 @@ class CheckUSBPermissions(Question):
args=[GETFACL, path],
close_fds=True,
env=new_environ,
- stdin=subprocess.DEVNULL,
+ stdin=null,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(getfacl_stdout, getfacl_stderr, result) = self.op.run ()
Index: system-config-printer-1.5.7/troubleshoot/ChooseNetworkPrinter.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/ChooseNetworkPrinter.py
+++ system-config-printer-1.5.7/troubleshoot/ChooseNetworkPrinter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/ChoosePrinter.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/ChoosePrinter.py
+++ system-config-printer-1.5.7/troubleshoot/ChoosePrinter.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
@@ -19,6 +19,7 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+import sys
from gi.repository import Gtk
class NoPrinter:
@@ -138,7 +139,9 @@ class ChoosePrinter(Question):
def each (self, model, path, iter, user_data):
dest = model.get_value (iter, 3)
if dest != NotListed:
- self.dests.append ((dest.name,
+ self.dests.append ((dest.name.decode ('utf-8') if
+ sys.version_info < (3,0,0) and isinstance(dest.name, bytes) else
+ dest.name,
dest.instance))
return { 'cups_queue_listed': False,
@@ -146,7 +149,9 @@ class ChoosePrinter(Question):
else:
return { 'cups_queue_listed': True,
'cups_dest': dest,
- 'cups_queue': dest.name,
+ 'cups_queue': dest.name.decode ('utf-8') if
+ sys.version_info < (3,0,0) and isinstance(dest.name, bytes) else
+ dest.name,
'cups_instance': dest.instance }
def cancel_operation (self):
Index: system-config-printer-1.5.7/troubleshoot/DeviceListed.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/DeviceListed.py
+++ system-config-printer-1.5.7/troubleshoot/DeviceListed.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/ErrorLogCheckpoint.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/ErrorLogCheckpoint.py
+++ system-config-printer-1.5.7/troubleshoot/ErrorLogCheckpoint.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/ErrorLogFetch.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/ErrorLogFetch.py
+++ system-config-printer-1.5.7/troubleshoot/ErrorLogFetch.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/ErrorLogParse.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/ErrorLogParse.py
+++ system-config-printer-1.5.7/troubleshoot/ErrorLogParse.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/LocalOrRemote.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/LocalOrRemote.py
+++ system-config-printer-1.5.7/troubleshoot/LocalOrRemote.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/Locale.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/Locale.py
+++ system-config-printer-1.5.7/troubleshoot/Locale.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/NetworkCUPSPrinterShared.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/NetworkCUPSPrinterShared.py
+++ system-config-printer-1.5.7/troubleshoot/NetworkCUPSPrinterShared.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/PrintTestPage.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/PrintTestPage.py
+++ system-config-printer-1.5.7/troubleshoot/PrintTestPage.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
@@ -20,6 +20,7 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+import sys
import cups
import dbus
import dbus.glib
@@ -418,6 +419,8 @@ class PrintTestPage(Question):
break
except cups.IPPError as e:
(e, s) = e.args
+ if sys.version_info < (3,0,0) and isinstance(s, bytes):
+ s = s.decode('utf-8', 'replace')
if (e == cups.IPP_DOCUMENT_FORMAT and
mimetypes.index (mimetype) < (len (mimetypes) - 1)):
# Try next format.
@@ -446,6 +449,8 @@ class PrintTestPage(Question):
c.cancelJob (jobid)
except cups.IPPError as e:
(e, s) = e.args
+ if sys.version_info < (3,0,0) and isinstance(s, bytes):
+ s = s.decode('utf-8', 'replace')
if e != cups.IPP_NOT_POSSIBLE:
self.persistent_answers['test_page_cancel_failure'] = (e, s)
Index: system-config-printer-1.5.7/troubleshoot/PrinterStateReasons.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/PrinterStateReasons.py
+++ system-config-printer-1.5.7/troubleshoot/PrinterStateReasons.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
@@ -22,6 +22,7 @@
from gi.repository import Gtk
+import sys
import cups
import ppdcache
import statereason
@@ -66,7 +67,8 @@ class PrinterStateReasons(Question):
text += '\n\n'
state_reasons_list = dict['printer-state-reasons']
- if type (state_reasons_list) == str:
+ if (sys.version_info >= (3,0,0) and type (state_reasons_list) == str) or
+ (sys.version_info < (3,0,0) and type (state_reasons_list) == unicode):
state_reasons_list = [state_reasons_list]
self.state_message = state_message
Index: system-config-printer-1.5.7/troubleshoot/QueueNotEnabled.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/QueueNotEnabled.py
+++ system-config-printer-1.5.7/troubleshoot/QueueNotEnabled.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/QueueRejectingJobs.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/QueueRejectingJobs.py
+++ system-config-printer-1.5.7/troubleshoot/QueueRejectingJobs.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/RemoteAddress.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/RemoteAddress.py
+++ system-config-printer-1.5.7/troubleshoot/RemoteAddress.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/SchedulerNotRunning.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/SchedulerNotRunning.py
+++ system-config-printer-1.5.7/troubleshoot/SchedulerNotRunning.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/ServerFirewalled.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/ServerFirewalled.py
+++ system-config-printer-1.5.7/troubleshoot/ServerFirewalled.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/Shrug.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/Shrug.py
+++ system-config-printer-1.5.7/troubleshoot/Shrug.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/VerifyPackages.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/VerifyPackages.py
+++ system-config-printer-1.5.7/troubleshoot/VerifyPackages.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
@@ -23,7 +23,7 @@ from gi.repository import Gtk
import subprocess
from .base import *
-import os
+import os, sys
from timedops import TimedSubprocess
class VerifyPackages(Question):
@@ -45,6 +45,11 @@ class VerifyPackages(Question):
"hpijs",
"hplip",
"system-config-printer"]
+ if sys.version_info < (3,0,0):
+ null = file ("/dev/null", "r+")
+ else:
+ null = subprocess.DEVNULL
+
parent = self.troubleshooter.get_window ()
new_environ = os.environ.copy()
@@ -57,9 +62,9 @@ class VerifyPackages(Question):
args=verification_args,
close_fds=True,
env=new_environ,
- stdin=subprocess.DEVNULL,
+ stdin=null,
stdout=subprocess.PIPE,
- stderr=subprocess.DEVNULL)
+ stderr=null)
(verif_stdout, verif_stderr, result) = self.op.run ()
except:
# Problem executing command.
Index: system-config-printer-1.5.7/troubleshoot/Welcome.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/Welcome.py
+++ system-config-printer-1.5.7/troubleshoot/Welcome.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/__init__.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/__init__.py
+++ system-config-printer-1.5.7/troubleshoot/__init__.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/troubleshoot/base.py
===================================================================
--- system-config-printer-1.5.7.orig/troubleshoot/base.py
+++ system-config-printer-1.5.7/troubleshoot/base.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Printing troubleshooter
Index: system-config-printer-1.5.7/udev/udev-add-printer
===================================================================
--- system-config-printer-1.5.7.orig/udev/udev-add-printer
+++ system-config-printer-1.5.7/udev/udev-add-printer
@@ -1,4 +1,4 @@
-#!/usr/bin/python3 -sB
+#!/usr/bin/python -sB
## udev-add-printer
@@ -34,7 +34,10 @@ MFG_BLACKLIST=[
def create_queue (c, printers, name, device_uri, ppdname, info, installer):
# Make sure the name is unique.
- namel = str (name.lower ())
+ if sys.version_info >= (3,0,0):
+ namel = str (name.lower ())
+ else:
+ namel = unicode (name.lower ())
unique = False
suffix = 1
while not unique:
Index: system-config-printer-1.5.7/userdefault.py
===================================================================
--- system-config-printer-1.5.7.orig/userdefault.py
+++ system-config-printer-1.5.7/userdefault.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## Copyright (C) 2006, 2007, 2008, 2010, 2012, 2014 Red Hat, Inc.
## Author: Tim Waugh <twaugh@redhat.com>
@@ -20,6 +20,7 @@
from gi.repository import Gtk
import os
import subprocess
+import sys
class UserDefaultPrinter:
def __init__ (self):
@@ -73,10 +74,14 @@ class UserDefaultPrinter:
return None
def set (self, default):
+ if sys.version_info < (3,0,0):
+ null = file ("/dev/null", "r+")
+ else:
+ null = subprocess.DEVNULL
p = subprocess.Popen ([ "lpoptions", "-d", default ],
close_fds=True,
- stdin=subprocess.DEVNULL,
- stdout=subprocess.DEVNULL,
+ stdin=null,
+ stdout=null,
stderr=subprocess.PIPE)
(stdout, stderr) = p.communicate ()
exitcode = p.wait ()
Index: system-config-printer-1.5.7/xml/validate.py
===================================================================
--- system-config-printer-1.5.7.orig/xml/validate.py
+++ system-config-printer-1.5.7/xml/validate.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python3
+#!/usr/bin/python
## system-config-printer
@@ -60,8 +60,8 @@ class Validator:
for name in names:
validates = False
- print(("*** Driver type \"%s\" is never used" %
- name), file=sys.stderr)
+ print >>sys.stderr, ("*** Driver type \"%s\" is never used" %
+ name)
return validates
Index: system-config-printer-1.5.7/configure
===================================================================
--- system-config-printer-1.5.7.orig/configure
+++ system-config-printer-1.5.7/configure
@@ -6722,13 +6722,13 @@ $as_echo "#define HAVE_DCGETTEXT 1" >>co
if test -n "$PYTHON"; then
# If the user set $PYTHON, use it and don't search something else.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 3" >&5
-$as_echo_n "checking whether $PYTHON version is >= 3... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version is >= 2.7" >&5
+$as_echo_n "checking whether $PYTHON version is >= 2.7... " >&6; }
prog="import sys
# split strings by '.' and convert to numeric. Append some zeros
# because we need at least 4 digits for the hex conversion.
# map returns an iterator in Python 3.0 and a list in 2.x
-minver = list(map(int, '3'.split('.'))) + [0, 0, 0]
+minver = list(map(int, '2.7'.split('.'))) + [0, 0, 0]
minverhex = 0
# xrange is not present in Python 3.0 and range returns an iterator
for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
@@ -6749,8 +6749,8 @@ fi
else
# Otherwise, try each interpreter until we find one that satisfies
# VERSION.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 3" >&5
-$as_echo_n "checking for a Python interpreter with version >= 3... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.7" >&5
+$as_echo_n "checking for a Python interpreter with version >= 2.7... " >&6; }
if ${am_cv_pathless_PYTHON+:} false; then :
$as_echo_n "(cached) " >&6
else
@@ -6761,7 +6761,7 @@ else
# split strings by '.' and convert to numeric. Append some zeros
# because we need at least 4 digits for the hex conversion.
# map returns an iterator in Python 3.0 and a list in 2.x
-minver = list(map(int, '3'.split('.'))) + [0, 0, 0]
+minver = list(map(int, '2.7'.split('.'))) + [0, 0, 0]
minverhex = 0
# xrange is not present in Python 3.0 and range returns an iterator
for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[i]
Index: system-config-printer-1.5.7/killtimer.py
===================================================================
--- system-config-printer-1.5.7.orig/killtimer.py
+++ system-config-printer-1.5.7/killtimer.py
@@ -21,6 +21,7 @@
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import threading
+import sys
from gi.repository import GLib