summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2013-02-22 22:45:17 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2013-02-22 22:45:17 (GMT)
commit41a6cedc263023c820f67a408ce46c46926116d8 (patch)
tree8cdaca3c32dc552c9cf04fb3d96e2654f04bca49
parent9eb5708331e848fe37b63578ece26b1af278b3f7 (diff)
downloadSCons-41a6cedc263023c820f67a408ce46c46926116d8.zip
SCons-41a6cedc263023c820f67a408ce46c46926116d8.tar.gz
SCons-41a6cedc263023c820f67a408ce46c46926116d8.tar.bz2
Changes to setup.py to allow it to be parsed by python3.x. This allows it to get far enough that it can check the python version and issue a sensible error message if running under unsupported python3 or above
-rw-r--r--src/setup.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/setup.py b/src/setup.py
index d3b9a25..8bf36bd 100644
--- a/src/setup.py
+++ b/src/setup.py
@@ -46,6 +46,14 @@ man_pages = [
'scons-time.1',
]
+# Exit with error if trying to install with Python >= 3.0
+if sys.version_info >= (3,0,0):
+ msg = "scons: *** SCons does not run under Python version %s.\n\
+Python 3 and above are not yet supported.\n"
+ sys.stderr.write(msg % (sys.version.split()[0]))
+ sys.exit(1)
+
+
# change to setup.py directory if it was executed from other dir
(head, tail) = os.path.split(sys.argv[0])
if head:
@@ -333,7 +341,9 @@ class install_scripts(_install_scripts):
# log.info("changing mode of %s", file)
pass
else:
- mode = ((os.stat(file)[stat.ST_MODE]) | 0555) & 07777
+ exec_and_read_permission = stat.S_IXOTH | stat.S_IXUSR | stat.S_IXGRP | stat.S_IROTH | stat.S_IRUSR | stat.S_IRGRP
+ mode_mask = 4095 # Octal 07777 used because python3 has different octal syntax than python 2
+ mode = ((os.stat(file)[stat.ST_MODE]) | exec_and_read_permission) & mode_mask
# log.info("changing mode of %s to %o", file, mode)
os.chmod(file, mode)
# --- /distutils copy/paste ---
@@ -414,7 +424,8 @@ arguments = {
distutils.core.setup(**arguments)
if Installed:
- print '\n'.join(Installed)
+ for i in Installed:
+ print(i)
# Local Variables:
# tab-width:4