]> granicus.if.org Git - python/commitdiff
Issue #20644: Keep build-installer.py in sync across active versions.
authorNed Deily <nad@acm.org>
Wed, 9 Apr 2014 23:15:20 +0000 (16:15 -0700)
committerNed Deily <nad@acm.org>
Wed, 9 Apr 2014 23:15:20 +0000 (16:15 -0700)
Mac/BuildScript/build-installer.py

index ad672997370f94b4e8f18404a9c8541a6a5d68d9..d4962ff8411239445d9e98dd1c058e463829b643 100755 (executable)
@@ -8,7 +8,9 @@ OS X 10.5 and the 10.5 SDK.
 Please ensure that this script keeps working with Python 2.5, to avoid
 bootstrap issues (/usr/bin/python is Python 2.5 on OSX 10.5).  Sphinx,
 which is used to build the documentation, currently requires at least
-Python 2.4.
+Python 2.4.  However, as of Python 3.4.1, Doc builds require an external
+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
@@ -21,8 +23,8 @@ 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 svn (for the documentation
-build).
+(2.5 is needed for Python parser updates), hg, 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.
 """
@@ -365,7 +367,8 @@ def library_recipes():
 # Instructions for building packages inside the .mpkg.
 def pkg_recipes():
     unselected_for_python3 = ('selected', 'unselected')[PYTHON_3]
-    unselected_for_lt_python34 = ('selected', 'unselected')[getVersionTuple() < (3, 4)]
+    # unselected if 3.0 through 3.3, selected otherwise (2.x or >= 3.4)
+    unselected_for_lt_python34 = ('selected', 'unselected')[(3, 0) <= getVersionTuple() < (3, 4)]
     result = [
         dict(
             name="PythonFramework",
@@ -610,8 +613,8 @@ def checkEnvironment():
     # Ensure ws have access to hg and to sphinx-build.
     # You may have to create links in /usr/bin for them.
     runCommand('hg --version')
-    runCommand('sphinx-build --version')
-
+    if getVersionTuple() >= (3, 4):
+        runCommand('sphinx-build --version')
 
 def parseOptions(args=None):
     """
@@ -924,9 +927,15 @@ def buildPythonDocs():
     docdir = os.path.join(rootDir, 'pydocs')
     curDir = os.getcwd()
     os.chdir(buildDir)
-    runCommand('make clean')
-    # Assume sphinx-build is on our PATH, checked in checkEnvironment
-    runCommand('make html')
+    # The Doc build changed for 3.4 (technically, for 3.4.1)
+    if getVersionTuple() < (3, 4):
+        # This step does an svn checkout of sphinx and its dependencies
+        runCommand('make update')
+        runCommand("make html PYTHON='%s'" % os.path.abspath(sys.executable))
+    else:
+        runCommand('make clean')
+        # Assume sphinx-build is on our PATH, checked in checkEnvironment
+        runCommand('make html')
     os.chdir(curDir)
     if not os.path.exists(docdir):
         os.mkdir(docdir)