From acfbbc4ea40932f183617bb7006700140fe5f61e Mon Sep 17 00:00:00 2001 From: Troy Curtis Jr Date: Wed, 13 Sep 2017 21:59:48 -0500 Subject: [PATCH] Add python3 support to openbox-xdg-autostart. Updated syntax in openbox-xdg-autostart to support both python2 and python3. Added a configure substitution to set the choosen python at build time. https://bugzilla.icculus.org/show_bug.cgi?id=6444 --- .gitignore | 1 + configure.ac | 3 + ...xdg-autostart => openbox-xdg-autostart.in} | 70 +++++++++---------- 3 files changed, 38 insertions(+), 36 deletions(-) rename data/autostart/{openbox-xdg-autostart => openbox-xdg-autostart.in} (77%) diff --git a/configure.ac b/configure.ac index ca1602670..9a31e9845 100644 --- a/configure.ac +++ b/configure.ac @@ -103,6 +103,8 @@ AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h grp.h locale.h pwd.h) AC_CHECK_HEADERS(signal.h string.h stdio.h stdlib.h unistd.h sys/stat.h) AC_CHECK_HEADERS(sys/select.h sys/socket.h sys/time.h sys/types.h sys/wait.h) +AM_PATH_PYTHON([2],,) + AC_PATH_PROG([SED], [sed], [no]) if test "$SED" = "no"; then AC_MSG_ERROR([The program "sed" is not available. This program is required to build Openbox.]) @@ -259,6 +261,7 @@ AC_CONFIG_FILES([ obrender/version.h obt/version.h version.h + data/autostart/openbox-xdg-autostart ]) AC_CONFIG_COMMANDS([doc], [test -d doc || mkdir doc]) diff --git a/data/autostart/openbox-xdg-autostart b/data/autostart/openbox-xdg-autostart.in similarity index 77% rename from data/autostart/openbox-xdg-autostart rename to data/autostart/openbox-xdg-autostart.in index 04a17a199..3c365b112 100755 --- a/data/autostart/openbox-xdg-autostart +++ b/data/autostart/openbox-xdg-autostart.in @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!@PYTHON@ # openbox-xdg-autostart runs things based on the XDG autostart specification # Copyright (C) 2008 Dana Jansens @@ -28,9 +28,7 @@ try: from xdg.DesktopEntry import DesktopEntry from xdg.Exceptions import ParsingError except ImportError: - print - print >>sys.stderr, "ERROR:", ME, "requires PyXDG to be installed" - print + sys.stderr.write("\nERROR: %s requires PyXDG to be installed\n" % ME) sys.exit(1) def main(argv=sys.argv): @@ -51,7 +49,7 @@ def main(argv=sys.argv): try: autofile = AutostartFile(path) except ParsingError: - print "Invalid .desktop file: " + path + print("Invalid .desktop file: " + path) else: if not autofile in files: files.append(autofile) @@ -99,9 +97,9 @@ class AutostartFile: def _alert(self, str, info=False): if info: - print "\t ", str + print("\t ", str) else: - print "\t*", str + print("\t*", str) def _showInEnvironment(self, envs, verbose=False): default = not self.de.getOnlyShowIn() @@ -146,14 +144,14 @@ class AutostartFile: def display(self, envs): if self._shouldRun(envs): - print "[*] " + self.de.getName() + print("[*] " + self.de.getName()) else: - print "[ ] " + self.de.getName() + print("[ ] " + self.de.getName()) self._alert("File: " + self.path, info=True) if self.de.getExec(): self._alert("Executes: " + self.de.getExec(), info=True) self._shouldRun(envs, True) - print + print() def run(self, envs): here = os.getcwd() @@ -165,34 +163,34 @@ class AutostartFile: os.chdir(here) def show_help(): - print "Usage:", ME, "[OPTION]... [ENVIRONMENT]..." - print - print "This tool will run xdg autostart .desktop files" - print - print "OPTIONS" - print " --list Show a list of the files which would be run" - print " Files which would be run are marked with an asterix" - print " symbol [*]. For files which would not be run," - print " information is given for why they are excluded" - print " --help Show this help and exit" - print " --version Show version and copyright information" - print - print "ENVIRONMENT specifies a list of environments for which to run autostart" - print "applications. If none are specified, only applications which do not " - print "limit themselves to certain environments will be run." - print - print "ENVIRONMENT can be one or more of:" - print " GNOME Gnome Desktop" - print " KDE KDE Desktop" - print " ROX ROX Desktop" - print " XFCE XFCE Desktop" - print " Old Legacy systems" - print + print("Usage:", ME, "[OPTION]... [ENVIRONMENT]...") + print() + print("This tool will run xdg autostart .desktop files") + print() + print("OPTIONS") + print(" --list Show a list of the files which would be run") + print(" Files which would be run are marked with an asterix") + print(" symbol [*]. For files which would not be run,") + print(" information is given for why they are excluded") + print(" --help Show this help and exit") + print(" --version Show version and copyright information") + print() + print("ENVIRONMENT specifies a list of environments for which to run autostart") + print("applications. If none are specified, only applications which do not ") + print("limit themselves to certain environments will be run.") + print() + print("ENVIRONMENT can be one or more of:") + print(" GNOME Gnome Desktop") + print(" KDE KDE Desktop") + print(" ROX ROX Desktop") + print(" XFCE XFCE Desktop") + print(" Old Legacy systems") + print() def show_version(): - print ME, VERSION - print "Copyright (c) 2008 Dana Jansens" - print + print(ME, VERSION) + print("Copyright (c) 2008 Dana Jansens") + print() if __name__ == "__main__": sys.exit(main())