From 8768ba76f8b6aa760822e1c83ba82477ae601314 Mon Sep 17 00:00:00 2001 From: TingPing Date: Sun, 29 Dec 2013 19:41:10 -0500 Subject: Port redshift-gtk to Python3 Python 2 is no longer supported --- configure.ac | 2 +- src/redshift-gtk/Makefile.am | 7 +++++-- src/redshift-gtk/redshift-gtk | 23 ----------------------- src/redshift-gtk/redshift-gtk.in | 27 +++++++++++++++++++++++++++ src/redshift-gtk/statusicon.py | 10 +++++----- 5 files changed, 38 insertions(+), 31 deletions(-) delete mode 100644 src/redshift-gtk/redshift-gtk create mode 100644 src/redshift-gtk/redshift-gtk.in diff --git a/configure.ac b/configure.ac index e82ee03..550ed0f 100644 --- a/configure.ac +++ b/configure.ac @@ -27,7 +27,7 @@ PKG_CHECK_MODULES([GEOCLUE], [geoclue], [have_geoclue=yes], [have_geoclue=no]) AC_CHECK_HEADER([windows.h], [have_windows_h=yes], [have_windows_h=no]) # Check for Python -AM_PATH_PYTHON([2.6], [have_python=yes], [have_python=no]) +AM_PATH_PYTHON([3.3], [have_python=yes], [have_python=no]) # Check RANDR method AC_MSG_CHECKING([whether to enable RANDR method]) diff --git a/src/redshift-gtk/Makefile.am b/src/redshift-gtk/Makefile.am index 9eb0cdb..96d7718 100644 --- a/src/redshift-gtk/Makefile.am +++ b/src/redshift-gtk/Makefile.am @@ -11,11 +11,14 @@ redshift_gtkdir = $(pythondir)/redshift_gtk dist_bin_SCRIPTS = redshift-gtk endif -EXTRA_DIST = defs.py.in -CLEANFILES = defs.py +EXTRA_DIST = defs.py.in redshift-gtk.in +CLEANFILES = defs.py redshift-gtk # Local python definitions defs.py: defs.py.in $(AM_V_GEN)sed -e "s|\@bindir\@|$(bindir)|g" \ -e "s|\@localedir\@|$(localedir)|g" $< > $@ + +redshift-gtk: redshift-gtk.in + $(AM_V_GEN)sed -e "s|\@pythondir\@|$(pythondir)|g" $< > $@ diff --git a/src/redshift-gtk/redshift-gtk b/src/redshift-gtk/redshift-gtk deleted file mode 100644 index 3ec3010..0000000 --- a/src/redshift-gtk/redshift-gtk +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env python -# redshift-gtk -- GTK+ Redshift launcher script -# This file is part of Redshift. - -# Redshift is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# Redshift is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with Redshift. If not, see . - -# Copyright (c) 2010 Jon Lund Steffensen - - -if __name__ == '__main__': - from redshift_gtk.statusicon import run - run() diff --git a/src/redshift-gtk/redshift-gtk.in b/src/redshift-gtk/redshift-gtk.in new file mode 100644 index 0000000..ba6e1ac --- /dev/null +++ b/src/redshift-gtk/redshift-gtk.in @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 +# redshift-gtk -- GTK+ Redshift launcher script +# This file is part of Redshift. + +# Redshift is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# Redshift is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with Redshift. If not, see . + +# Copyright (c) 2010 Jon Lund Steffensen + +import sys + +# Some non-standard install paths may need to be added +sys.path.append('@pythondir@') + +if __name__ == '__main__': + from redshift_gtk.statusicon import run + run() diff --git a/src/redshift-gtk/statusicon.py b/src/redshift-gtk/statusicon.py index 15a822b..626b9e3 100644 --- a/src/redshift-gtk/statusicon.py +++ b/src/redshift-gtk/statusicon.py @@ -34,8 +34,8 @@ try: except ImportError: appindicator = None -import defs -import utils +from . import defs +from . import utils _ = gettext.gettext @@ -99,7 +99,7 @@ class RedshiftStatusIcon(object): try: autostart_item.set_active(utils.get_autostart()) except IOError as strerror: - print strerror + print(strerror) autostart_item.set_property('sensitive', False) else: autostart_item.connect('toggled', self.autostart_cb) @@ -185,7 +185,7 @@ class RedshiftStatusIcon(object): # Start child process with C locale so we can parse the output env = os.environ.copy() env['LANG'] = env['LANGUAGE'] = env['LC_ALL'] = env['LC_MESSAGES'] = 'C' - self.process = GLib.spawn_async(args, envp=['{}={}'.format(k,v) for k, v in env.iteritems()], + self.process = GLib.spawn_async(args, envp=['{}={}'.format(k,v) for k, v in env.items()], flags=GLib.SPAWN_DO_NOT_REAP_CHILD, standard_output=True, standard_error=True) @@ -299,7 +299,7 @@ class RedshiftStatusIcon(object): def child_data_cb(self, f, cond, data): stdout, ib = data - ib.buf += os.read(f, 256) + ib.buf += os.read(f, 256).decode('utf-8') # Split input at line break sep = True -- cgit v1.2.3-70-g09d2