summaryrefslogtreecommitdiffstats
path: root/openbox/build/patches/openbox_python3.patch
blob: 60c11dc34588d23f56d559bafd36bf28629c4b42 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
From acfbbc4ea40932f183617bb7006700140fe5f61e Mon Sep 17 00:00:00 2001
From: Troy Curtis Jr <troycurtisjr@gmail.com>
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())