summaryrefslogtreecommitdiff
path: root/sci-geosciences/gpsd/files/gpsd-3.17-scons-py3.patch
blob: d6154c47687bf39df1ce4c8d910b2d23affe9f58 (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
From b2ba8d5ade0f9d55c2b51ca41d9c9604662452ad Mon Sep 17 00:00:00 2001
From: Robert Norris <rw_norris@hotmail.com>
Date: Mon, 12 Feb 2018 14:16:17 -0800
Subject: [PATCH] SConstruct: Allow building for Python 3

Still usable with Python 2

Tested:
scons build-all check

Debian Unstable with python 2.7.14
OpenSUSE Tumbleweed with python 3.6.4
---
 SConstruct | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

diff --git a/SConstruct b/SConstruct
index c6a309ec3c30..17b47e21342f 100644
--- a/SConstruct
+++ b/SConstruct
@@ -370,7 +370,7 @@ for flag in ["LDFLAGS", "SHLINKFLAGS", "CPPFLAGS"]:
 
 
 # Keep scan-build options in the environment
-for key, value in os.environ.iteritems():
+for key, value in os.environ.items():
     if key.startswith('CCC_'):
         env.Append(ENV={key: value})
 
@@ -476,6 +476,8 @@ if env['sysroot']:
     env.MergeFlags({"LINKFLAGS": ["--sysroot=%s" % env['sysroot']]})
 
 # Build help
+def cmp(a, b):
+    return (a > b) - (a < b)
 
 Help("""Arguments may be a mixture of switches and targets in any order.
 Switches apply to the entire build regardless of where they are in the order.
@@ -859,9 +861,9 @@ else:
         "dbus_export": ["libdbus-1"],
     }
 
-    keys = map(lambda x: (x[0], x[2]), boolopts)  \
-        + map(lambda x: (x[0], x[2]), nonboolopts) \
-        + map(lambda x: (x[0], x[2]), pathopts)
+    keys = list(map(lambda x: (x[0], x[2]), boolopts))  \
+        + list(map(lambda x: (x[0], x[2]), nonboolopts)) \
+        + list(map(lambda x: (x[0], x[2]), pathopts))
     keys.sort()
     for (key, help) in keys:
         value = env[key]
@@ -998,7 +1000,7 @@ else:
 if env['python']:  # May have been turned off by error
     env['PYTHON'] = target_python_path
     env['ENV']['PYTHON'] = target_python_path  # For regress-driver
-    py_config_vars = ast.literal_eval(py_config_text)
+    py_config_vars = ast.literal_eval(py_config_text.decode())
     py_config_vars = [[] if x is None else x for x in py_config_vars]
     python_config = dict(zip(PYTHON_CONFIG_NAMES, py_config_vars))
 
@@ -1387,7 +1389,7 @@ else:
 
     python_objects = {}
     python_compiled_libs = {}
-    for ext, sources in python_extensions.iteritems():
+    for ext, sources in python_extensions.items():
         python_objects[ext] = []
         for src in sources:
             python_objects[ext].append(
@@ -1417,7 +1419,7 @@ Platform: UNKNOWN
     python_egg_info = python_env.Textfile(target="gps-%s.egg-info"
                                           % (gpsd_version, ),
                                           source=python_egg_info_source)
-    python_built_extensions = python_compiled_libs.values()
+    python_built_extensions = list(python_compiled_libs.values())
     python_targets = python_built_extensions + [python_egg_info]
 
 env.Command(target="packet_names.h", source="packet_states.h", action="""
@@ -1624,14 +1626,14 @@ if env['xgps']:
         "xgpsspeed.1": "gps.xml",
         "xgps.1": "gps.xml",
     })
-all_manpages = base_manpages.keys() + python_manpages.keys()
+all_manpages = list(base_manpages.keys()) + list(python_manpages.keys())
 
 man_env = env.Clone()
 if man_env.GetOption('silent'):
     man_env['SPAWN'] = filtered_spawn  # Suppress stderr chatter
 manpage_targets = []
 if manbuilder:
-    for (man, xml) in base_manpages.items() + python_manpages.items():
+    for (man, xml) in list(base_manpages.items()) + list(python_manpages.items()):
         manpage_targets.append(man_env.Man(source=xml, target=man))
 
 # Where it all comes together
@@ -1682,7 +1684,7 @@ if ((not env['debug'] and not env['profiling'] and not env['nostrip']
 if not env['python']:
     python_install = []
 else:
-    python_module_dir = python_libdir + os.sep + 'gps'
+    python_module_dir = str(python_libdir) + os.sep + 'gps'
     python_extensions_install = python_env.Install(DESTDIR + python_module_dir,
                                                    python_built_extensions)
     if ((not env['debug'] and not env['profiling']
@@ -1695,7 +1697,7 @@ else:
     python_progs_install = python_env.Install(installdir('bindir'),
                                               python_progs)
 
-    python_egg_info_install = python_env.Install(DESTDIR + python_libdir,
+    python_egg_info_install = python_env.Install(DESTDIR + str(python_libdir),
                                                  python_egg_info)
     python_install = [python_extensions_install,
                       python_modules_install,
@@ -1712,7 +1714,7 @@ if qt_env:
 
 
 maninstall = []
-for manpage in base_manpages.keys() + python_manpages.keys():
+for manpage in list(base_manpages.keys()) + list(python_manpages.keys()):
     if not manbuilder and not os.path.exists(manpage):
         continue
     section = manpage.split(".")[1]
@@ -2198,7 +2200,7 @@ htmlpages = Split('''
     www/writing-a-driver.html
     ''')
 
-webpages = htmlpages + asciidocs + map(lambda f: f[:-3], glob.glob("www/*.in"))
+webpages = htmlpages + asciidocs + list(map(lambda f: f[:-3], glob.glob("www/*.in")))
 
 www = env.Alias('www', webpages)
 
@@ -2376,7 +2378,7 @@ if os.path.exists("gpsd.c") and os.path.exists(".gitignore"):
     if ".gitignore" in distfiles:
         distfiles.remove(".gitignore")
     distfiles += generated_sources
-    distfiles += base_manpages.keys() + python_manpages.keys()
+    distfiles += list(base_manpages.keys()) + list(python_manpages.keys())
     if "packaging/rpm/gpsd.spec" not in distfiles:
         distfiles.append("packaging/rpm/gpsd.spec")
 
-- 
2.19.1