[system-config-printer/f21] Python3 fixes from upstream.

Tim Waugh twaugh at fedoraproject.org
Thu Sep 11 16:31:30 UTC 2014


commit cbf665aad2bcaa22e0d072188a41b192c94291a4
Author: Tim Waugh <twaugh at redhat.com>
Date:   Thu Sep 11 17:21:01 2014 +0100

    Python3 fixes from upstream.

 system-config-printer-python3.patch |  219 +++++++++++++++++++++++++++++++++++
 system-config-printer.spec          |    9 ++-
 2 files changed, 227 insertions(+), 1 deletions(-)
---
diff --git a/system-config-printer-python3.patch b/system-config-printer-python3.patch
new file mode 100644
index 0000000..acd7959
--- /dev/null
+++ b/system-config-printer-python3.patch
@@ -0,0 +1,219 @@
+diff -up system-config-printer-1.5.1/newprinter.py.python3 system-config-printer-1.5.1/newprinter.py
+--- system-config-printer-1.5.1/newprinter.py.python3	2014-08-22 12:34:40.000000000 +0100
++++ system-config-printer-1.5.1/newprinter.py	2014-09-11 17:19:36.138730318 +0100
+@@ -1803,7 +1803,7 @@ class NewPrinterGUI(GtkGUI):
+             return None
+ 
+         faxtype = -1
+-        for line in stdout.split ("\n"):
++        for line in stdout.decode ().split ("\n"):
+             if line.find ("fax-type") == -1:
+                 continue
+             res = re.search ("(\d+)", line)
+@@ -1834,7 +1834,7 @@ class NewPrinterGUI(GtkGUI):
+             # Problem executing command.
+             return None
+ 
+-        scan_type = stdout.strip ()
++        scan_type = stdout.decode ().strip ()
+         fields = scan_type.split ("=", 1)
+         if len (fields) < 2:
+             return None
+@@ -1864,7 +1864,7 @@ class NewPrinterGUI(GtkGUI):
+             # Problem executing command.
+             return None
+ 
+-        uri = stdout.strip ()
++        uri = stdout.decode ().strip ()
+         return uri
+ 
+     def getNetworkPrinterMakeModel(self, host=None, device=None):
+@@ -1905,7 +1905,7 @@ class NewPrinterGUI(GtkGUI):
+                 pass
+ 
+             if stdout != None:
+-                line = stdout.strip ()
++                line = stdout.decode ().strip ()
+                 words = probe_printer.wordsep (line)
+                 n = len (words)
+                 if n < 4:
+@@ -3874,7 +3874,7 @@ class NewPrinterGUI(GtkGUI):
+                                           stdout=subprocess.PIPE,
+                                           stderr=subprocess.PIPE)
+                     (stdout, stderr) = p.communicate ()
+-                    err += stdout
++                    err += stdout.decode ()
+                 except:
+                     # Problem executing command.
+                     raise
+diff -up system-config-printer-1.5.1/probe_printer.py.python3 system-config-printer-1.5.1/probe_printer.py
+--- system-config-printer-1.5.1/probe_printer.py.python3	2014-08-22 12:20:15.000000000 +0100
++++ system-config-printer-1.5.1/probe_printer.py	2014-09-11 17:19:36.139730323 +0100
+@@ -1,8 +1,8 @@
+ ## system-config-printer
+ 
+-## Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
++## Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2014 Red Hat, Inc.
+ ## Copyright (C) 2006 Florian Festi <ffesti at redhat.com>
+-## Copyright (C) 2007, 2008, 2009 Tim Waugh <twaugh at redhat.com>
++## Copyright (C) 2007, 2008, 2009, 2014 Tim Waugh <twaugh at redhat.com>
+ 
+ ## This program is free software; you can redistribute it and/or modify
+ ## it under the terms of the GNU General Public License as published by
+@@ -272,15 +272,14 @@ class PrinterFinder:
+ 
+     def _probe_snmp (self):
+         # Run the CUPS SNMP backend, pointing it at the host.
+-        null = open ("/dev/null", "r+")
+         try:
+             debugprint ("snmp: trying")
+             p = subprocess.Popen (args=["/usr/lib/cups/backend/snmp",
+                                         self.hostname],
+                                   close_fds=True,
+-                                  stdin=null,
++                                  stdin=subprocess.DEVNULL,
+                                   stdout=subprocess.PIPE,
+-                                  stderr=null)
++                                  stderr=subprocess.DEVNULL)
+         except OSError as e:
+             debugprint ("snmp: no good")
+             if e == errno.ENOENT:
+@@ -297,7 +296,7 @@ class PrinterFinder:
+             debugprint ("snmp: no good")
+             return
+ 
+-        for line in stdout.decode('utf-8').split ('\n'):
++        for line in stdout.decode ().split ('\n'):
+             words = wordsep (line)
+             n = len (words)
+             if n == 6:
+@@ -365,14 +364,13 @@ class PrinterFinder:
+                         self._cached_attributes['device-make-and-model'])
+             return
+ 
+-        null = open ("/dev/null", "r+")
+         try:
+             debugprint ("hplip: trying")
+             p = subprocess.Popen (args=["hp-makeuri", "-c", self.hostname],
+                                   close_fds=True,
+-                                  stdin=null,
++                                  stdin=subprocess.DEVNULL,
+                                   stdout=subprocess.PIPE,
+-                                  stderr=null)
++                                  stderr=subprocess.DEVNULL)
+         except OSError as e:
+             if e == errno.ENOENT:
+                 return
+@@ -388,7 +386,7 @@ class PrinterFinder:
+             debugprint ("hplip: no good")
+             return
+ 
+-        uri = stdout.strip ()
++        uri = stdout.decode ().strip ()
+         debugprint ("hplip: uri is %s" % uri)
+         if uri.find (":") != -1:
+             self._new_device(uri, uri)
+diff -up system-config-printer-1.5.1/system-config-printer.py.python3 system-config-printer-1.5.1/system-config-printer.py
+--- system-config-printer-1.5.1/system-config-printer.py.python3	2014-08-22 12:20:15.000000000 +0100
++++ system-config-printer-1.5.1/system-config-printer.py	2014-09-11 17:19:36.140730329 +0100
+@@ -736,7 +736,7 @@ class GUI(GtkGUI):
+                                   self.cups_connection_error)
+             self.monitor.connect ('cups-connection-recovered',
+                                   self.cups_connection_recovered)
+-            GObject.idle_add (self.monitor.refresh)
++            GLib.idle_add (self.monitor.refresh)
+             self.propertiesDlg.set_monitor (self.monitor)
+ 
+         if connected:
+diff -up system-config-printer-1.5.1/troubleshoot/CheckSELinux.py.python3 system-config-printer-1.5.1/troubleshoot/CheckSELinux.py
+--- system-config-printer-1.5.1/troubleshoot/CheckSELinux.py.python3	2014-08-22 12:20:15.000000000 +0100
++++ system-config-printer-1.5.1/troubleshoot/CheckSELinux.py	2014-09-11 17:19:40.508754380 +0100
+@@ -2,7 +2,7 @@
+ 
+ ## Printing troubleshooter
+ 
+-## Copyright (C) 2010 Red Hat, Inc.
++## Copyright (C) 2010, 2014 Red Hat, Inc.
+ ## Copyright (C) 2010 Jiri Popelka <jpopelka at redhat.com>
+ 
+ ## This program is free software; you can redistribute it and/or modify
+@@ -48,7 +48,6 @@ class CheckSELinux(Question):
+             return False
+ 
+         paths = ["/etc/cups/", "/usr/lib/cups/", "/usr/share/cups/"]
+-        null = open ("/dev/null", "r+")
+         parent = self.troubleshooter.get_window ()
+         contexts = {}
+         new_environ = os.environ.copy()
+@@ -60,9 +59,9 @@ class CheckSELinux(Question):
+                                        args=restorecon_args,
+                                        close_fds=True,
+                                        env=new_environ,
+-                                       stdin=null,
++                                       stdin=subprocess.DEVNULL,
+                                        stdout=subprocess.PIPE,
+-                                       stderr=null)
++                                       stderr=subprocess.DEVNULL)
+             (restorecon_stdout, restorecon_stderr, result) = self.op.run ()
+         except:
+             # Problem executing command.
+diff -up system-config-printer-1.5.1/troubleshoot/VerifyPackages.py.python3 system-config-printer-1.5.1/troubleshoot/VerifyPackages.py
+--- system-config-printer-1.5.1/troubleshoot/VerifyPackages.py.python3	2014-08-22 12:20:15.000000000 +0100
++++ system-config-printer-1.5.1/troubleshoot/VerifyPackages.py	2014-09-11 17:19:40.508754380 +0100
+@@ -2,7 +2,7 @@
+ 
+ ## Printing troubleshooter
+ 
+-## Copyright (C) 2010 Red Hat, Inc.
++## Copyright (C) 2010, 2014 Red Hat, Inc.
+ ## Copyright (C) 2010 Jiri Popelka <jpopelka at redhat.com>
+ 
+ ## This program is free software; you can redistribute it and/or modify
+@@ -45,7 +45,6 @@ class VerifyPackages(Question):
+                     "hpijs",
+                     "hplip",
+                     "system-config-printer"]
+-        null = open ("/dev/null", "r+")
+         parent = self.troubleshooter.get_window ()
+ 
+         new_environ = os.environ.copy()
+@@ -58,9 +57,9 @@ class VerifyPackages(Question):
+                                            args=verification_args,
+                                            close_fds=True,
+                                            env=new_environ,
+-                                           stdin=null,
++                                           stdin=subprocess.DEVNULL,
+                                            stdout=subprocess.PIPE,
+-                                           stderr=null)
++                                           stderr=subprocess.DEVNULL)
+                 (verif_stdout, verif_stderr, result) = self.op.run ()
+             except:
+                 # Problem executing command.
+diff -up system-config-printer-1.5.1/userdefault.py.python3 system-config-printer-1.5.1/userdefault.py
+--- system-config-printer-1.5.1/userdefault.py.python3	2014-08-22 12:20:15.000000000 +0100
++++ system-config-printer-1.5.1/userdefault.py	2014-09-11 17:19:40.508754380 +0100
+@@ -1,6 +1,6 @@
+ #!/usr/bin/python3
+ 
+-## Copyright (C) 2006, 2007, 2008, 2010, 2012 Red Hat, Inc.
++## Copyright (C) 2006, 2007, 2008, 2010, 2012, 2014 Red Hat, Inc.
+ ## Author: Tim Waugh <twaugh at redhat.com>
+ 
+ ## This program is free software; you can redistribute it and/or modify
+@@ -75,13 +75,13 @@ class UserDefaultPrinter:
+     def set (self, default):
+         p = subprocess.Popen ([ "lpoptions", "-d", default ],
+                               close_fds=True,
+-                              stdin=open ("/dev/null"),
+-                              stdout=open ("/dev/null", "w"),
++                              stdin=subprocess.DEVNULL,
++                              stdout=subprocess.DEVNULL,
+                               stderr=subprocess.PIPE)
+         (stdout, stderr) = p.communicate ()
+         exitcode = p.wait ()
+         if exitcode != 0:
+-            raise RuntimeError (exitcode, stderr.strip ())
++            raise RuntimeError (exitcode, stderr.decode ().strip ())
+         return
+ 
+     def __repr__ (self):
diff --git a/system-config-printer.spec b/system-config-printer.spec
index 9781152..b1bb9a5 100644
--- a/system-config-printer.spec
+++ b/system-config-printer.spec
@@ -7,13 +7,14 @@
 Summary: A printer administration tool
 Name: system-config-printer
 Version: 1.5.1
-Release: 2%{?dist}
+Release: 3%{?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-lock.patch
+Patch3: system-config-printer-python3.patch
 
 BuildRequires: cups-devel >= 1.2
 BuildRequires: desktop-file-utils >= 0.2.92
@@ -88,6 +89,9 @@ printers.
 # Take the gdk lock before entering gtk_main() (bug #1052203 comment #24).
 %patch2 -p1 -b .lock
 
+# Python3 fixes from upstream.
+%patch3 -p1 -b .python3
+
 %build
 %configure --with-udev-rules
 make %{?_smp_mflags}
@@ -187,6 +191,9 @@ touch %buildroot%{_localstatedir}/run/udev-configure-printer/usb-uris
 exit 0
 
 %changelog
+* Thu Sep 11 2014 Tim Waugh <twaugh at redhat.com> - 1.5.1-3
+- Python3 fixes from upstream.
+
 * Sat Sep  6 2014 Tim Waugh <twaugh at redhat.com> - 1.5.1-2
 - Take the gdk lock before entering gtk_main() (bug #1052203 comment #24).
 


More information about the scm-commits mailing list