mirror of https://github.com/python/cpython
Merged revisions 80179 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r80179 | ronald.oussoren | 2010-04-18 16:01:05 +0200 (Sun, 18 Apr 2010) | 5 lines Add check to build-installer.py to ensure that the right version of Tcl/Tk is available (on OSX) Fixes issue #5651 ........
This commit is contained in:
parent
501aeffba3
commit
c45c3d9950
|
@ -377,6 +377,23 @@ def captureCommand(commandline):
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
def getTclTkVersion(configfile, versionline):
|
||||||
|
"""
|
||||||
|
search Tcl or Tk configuration file for version line
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
f = open(configfile, "r")
|
||||||
|
except:
|
||||||
|
fatal("Framework configuration file not found: %s" % configfile)
|
||||||
|
|
||||||
|
for l in f:
|
||||||
|
if l.startswith(versionline):
|
||||||
|
f.close()
|
||||||
|
return l
|
||||||
|
|
||||||
|
fatal("Version variable %s not found in framework configuration file: %s"
|
||||||
|
% (versionline, configfile))
|
||||||
|
|
||||||
def checkEnvironment():
|
def checkEnvironment():
|
||||||
"""
|
"""
|
||||||
Check that we're running on a supported system.
|
Check that we're running on a supported system.
|
||||||
|
@ -392,6 +409,38 @@ def checkEnvironment():
|
||||||
fatal("Please install the latest version of Xcode and the %s SDK"%(
|
fatal("Please install the latest version of Xcode and the %s SDK"%(
|
||||||
os.path.basename(SDKPATH[:-4])))
|
os.path.basename(SDKPATH[:-4])))
|
||||||
|
|
||||||
|
# Because we only support dynamic load of only one major/minor version of
|
||||||
|
# Tcl/Tk, ensure:
|
||||||
|
# 1. there are no user-installed frameworks of Tcl/Tk with version
|
||||||
|
# higher than the Apple-supplied system version
|
||||||
|
# 2. there is a user-installed framework in /Library/Frameworks with the
|
||||||
|
# same version as the system version. This allows users to choose
|
||||||
|
# to install a newer patch level.
|
||||||
|
|
||||||
|
for framework in ['Tcl', 'Tk']:
|
||||||
|
fw = dict(lower=framework.lower(),
|
||||||
|
upper=framework.upper(),
|
||||||
|
cap=framework.capitalize())
|
||||||
|
fwpth = "Library/Frameworks/%(cap)s.framework/%(lower)sConfig.sh" % fw
|
||||||
|
sysfw = os.path.join('/System', fwpth)
|
||||||
|
libfw = os.path.join('/', fwpth)
|
||||||
|
usrfw = os.path.join(os.getenv('HOME'), fwpth)
|
||||||
|
version = "%(upper)s_VERSION" % fw
|
||||||
|
if getTclTkVersion(libfw, version) != getTclTkVersion(sysfw, version):
|
||||||
|
fatal("Version of %s must match %s" % (libfw, sysfw) )
|
||||||
|
if os.path.exists(usrfw):
|
||||||
|
fatal("Please rename %s to avoid possible dynamic load issues."
|
||||||
|
% usrfw)
|
||||||
|
|
||||||
|
# Remove inherited environment variables which might influence build
|
||||||
|
environ_var_prefixes = ['CPATH', 'C_INCLUDE_', 'DYLD_', 'LANG', 'LC_',
|
||||||
|
'LD_', 'LIBRARY_', 'PATH', 'PYTHON']
|
||||||
|
for ev in list(os.environ):
|
||||||
|
for prefix in environ_var_prefixes:
|
||||||
|
if ev.startswith(prefix) :
|
||||||
|
print "INFO: deleting environment variable %s=%s" % (
|
||||||
|
ev, os.environ[ev])
|
||||||
|
del os.environ[ev]
|
||||||
|
|
||||||
|
|
||||||
def parseOptions(args=None):
|
def parseOptions(args=None):
|
||||||
|
@ -1084,6 +1133,8 @@ def main():
|
||||||
shutil.rmtree(WORKDIR)
|
shutil.rmtree(WORKDIR)
|
||||||
os.mkdir(WORKDIR)
|
os.mkdir(WORKDIR)
|
||||||
|
|
||||||
|
os.environ['LC_ALL'] = 'C'
|
||||||
|
|
||||||
# Then build third-party libraries such as sleepycat DB4.
|
# Then build third-party libraries such as sleepycat DB4.
|
||||||
buildLibraries()
|
buildLibraries()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue