diff options
author | Fred Wright <fw@fwright.net> | 2017-10-07 19:54:55 -0700 |
---|---|---|
committer | Fred Wright <fw@fwright.net> | 2017-10-07 19:54:55 -0700 |
commit | ed205512dd05a7dd4b0dab8af760d13e9efbbb25 (patch) | |
tree | 2895f70c5a9dfe02df13aa0155101ecfa1f71c8d /SConstruct | |
parent | dc247f7147fe344987895950d6ccdf9dd3eba4f1 (diff) | |
download | gpsd-ed205512dd05a7dd4b0dab8af760d13e9efbbb25.tar.gz |
Fixes SConstruct for SCons 3.0.0.
SCons 3.0.0 introduced a bug where the print_funtion future import is
inflicted on the SConstruct script, making 'print' as a statement
illegal. This is expected to be fixed in SCons 3.0.1, but in the
meantime it's necessary to switch to the print_function mode for
compatibility. Fortunately, there were only three print statements in
the whole file.
This is not a complete Python 3 fix; it simply restores correct
operation when running SCons under Python 2.
TESTED:
Arraged to test all three print() instances under OSX.
Tested "scons build-all check" under OSX, Ubuntu, CentOS, Fedora,
FreeBSD, OpenBSD, and NetBSD.
Diffstat (limited to 'SConstruct')
-rw-r--r-- | SConstruct | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -23,6 +23,13 @@ # * Out-of-directory builds: see http://www.scons.org/wiki/UsingBuildDir # * Coveraging mode: gcc "-coverage" flag requires a hack # for building the python bindings +# * Python 3 compatibility in this recipe + +# Since SCons 3.0.0 forces print_function on us, it needs to be unconditional. +# This is recognized to be a bug in SCons, but we need to live with it for now, +# and we'll need this for eventual Python 3 compatibility, anyway. +# Python requires this to precede any non-comment code. +from __future__ import print_function # Release identification begins here gpsd_version = "3.18~dev" @@ -375,7 +382,7 @@ if env.GetOption("silent"): def announce(msg): if not env.GetOption("silent"): - print msg + print(msg) # DESTDIR environment variable means user prefix the installation root. DESTDIR = os.environ.get('DESTDIR', '') @@ -1546,8 +1553,8 @@ def substituter(target, source, env): content = content.replace(s, t) m = re.search("@[A-Z]+@", content) if m and m.group(0) not in map(lambda x: x[0], substmap): - print >>sys.stderr, "Unknown subst token %s in %s." \ - % (m.group(0), sfp.name) + print("Unknown subst token %s in %s." % (m.group(0), sfp.name), + file=sys.stderr) tfp = open(str(target[0]), "w") tfp.write(content) tfp.close() @@ -2191,7 +2198,7 @@ def validation_list(target, source, env): if '-head' not in page: fp = open(page) if "Valid HTML" in fp.read(): - print os.path.join(website, os.path.basename(page)) + print(os.path.join(website, os.path.basename(page))) fp.close() Utility("validation-list", [www], validation_list) |