diff options
author | Ned Deily <nad@python.org> | 2017-07-24 04:29:32 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-24 04:29:32 -0400 |
commit | 123a58bfc893ee30498b0d208dc1bbef34324772 (patch) | |
tree | ba40304b8f6baa57445ae8f944d08fbdabac8593 /Mac | |
parent | 8d41de62b9e21090c3a1ccb951ba7034a2b74180 (diff) | |
download | cpython-git-123a58bfc893ee30498b0d208dc1bbef34324772.tar.gz |
Backport Mac installer fixes for git-based workflow (#2837)
Diffstat (limited to 'Mac')
-rwxr-xr-x | Mac/BuildScript/build-installer.py | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py index c7b2e8c590..cf395fb38f 100755 --- a/Mac/BuildScript/build-installer.py +++ b/Mac/BuildScript/build-installer.py @@ -13,7 +13,7 @@ sphinx-build and the current versions of Sphinx now require at least Python 2.6. In addition to what is supplied with OS X 10.5+ and Xcode 3+, the script -requires an installed version of hg and a third-party version of +requires an installed third-party version of Tcl/Tk 8.4 (for OS X 10.4 and 10.5 deployment targets) or Tcl/TK 8.5 (for 10.6 or later) installed in /Library/Frameworks. When installed, the Python built by this script will attempt to dynamically link first to @@ -23,7 +23,7 @@ installing the most recent ActiveTcl 8.4 or 8.5 version. 32-bit-only installer builds are still possible on OS X 10.4 with Xcode 2.5 and the installation of additional components, such as a newer Python -(2.5 is needed for Python parser updates), hg, and for the documentation +(2.5 is needed for Python parser updates) and for the documentation build either svn (pre-3.4.1) or sphinx-build (3.4.1 and later). Usage: see USAGE variable in the script. @@ -577,7 +577,7 @@ def getTclTkVersion(configfile, versionline): """ try: f = open(configfile, "r") - except: + except OSError: fatal("Framework configuration file not found: %s" % configfile) for l in f: @@ -663,9 +663,8 @@ def checkEnvironment(): base_path = base_path + ':' + OLD_DEVELOPER_TOOLS os.environ['PATH'] = base_path print("Setting default PATH: %s"%(os.environ['PATH'])) - # Ensure ws have access to hg and to sphinx-build. - # You may have to create links in /usr/bin for them. - runCommand('hg --version') + # Ensure we have access to sphinx-build. + # You may have to create a link in /usr/bin for it. runCommand('sphinx-build --version') def parseOptions(args=None): @@ -819,7 +818,7 @@ def downloadURL(url, fname): except: try: os.unlink(fname) - except: + except OSError: pass def verifyThirdPartyFile(url, checksum, fname): @@ -1115,7 +1114,6 @@ def buildPythonDocs(): docdir = os.path.join(rootDir, 'pydocs') curDir = os.getcwd() os.chdir(buildDir) - # The Doc build changed for 3.4 (technically, for 3.4.1) and for 2.7.9 runCommand('make clean') # Assume sphinx-build is on our PATH, checked in checkEnvironment runCommand('make html') @@ -1168,8 +1166,25 @@ def buildPython(): shellQuote(WORKDIR)[1:-1], shellQuote(WORKDIR)[1:-1])) - print("Running make") - runCommand("make") + # Look for environment value BUILDINSTALLER_BUILDPYTHON_MAKE_EXTRAS + # and, if defined, append its value to the make command. This allows + # us to pass in version control tags, like GITTAG, to a build from a + # tarball rather than from a vcs checkout, thus eliminating the need + # to have a working copy of the vcs program on the build machine. + # + # A typical use might be: + # export BUILDINSTALLER_BUILDPYTHON_MAKE_EXTRAS=" \ + # GITVERSION='echo 123456789a' \ + # GITTAG='echo v3.6.0' \ + # GITBRANCH='echo 3.6'" + + make_extras = os.getenv("BUILDINSTALLER_BUILDPYTHON_MAKE_EXTRAS") + if make_extras: + make_cmd = "make " + make_extras + else: + make_cmd = "make" + print("Running " + make_cmd) + runCommand(make_cmd) print("Running make install") runCommand("make install DESTDIR=%s"%( |