[Python-checkins] cpython (3.4): Issue #20644: OS X installer build support for documentation build changes

ned.deily python-checkins at python.org
Wed Apr 9 02:48:15 CEST 2014


http://hg.python.org/cpython/rev/01f1e14cad23
changeset:   90190:01f1e14cad23
branch:      3.4
parent:      90187:372b19005011
user:        Ned Deily <nad at acm.org>
date:        Mon Apr 07 12:10:21 2014 -0700
summary:
  Issue #20644: OS X installer build support for documentation build changes
in 3.4.1: assume externally supplied sphinx-build is available in /usr/bin.

files:
  Mac/BuildScript/README.txt         |  44 ++++++++++-------
  Mac/BuildScript/build-installer.py |  11 +++-
  Misc/NEWS                          |   6 ++
  3 files changed, 40 insertions(+), 21 deletions(-)


diff --git a/Mac/BuildScript/README.txt b/Mac/BuildScript/README.txt
--- a/Mac/BuildScript/README.txt
+++ b/Mac/BuildScript/README.txt
@@ -12,9 +12,9 @@
 for each release.
 
 1.  32-bit-only, i386 and PPC universal, capable on running on all machines
-    supported by Mac OS X 10.5 through (at least) 10.8::
+    supported by Mac OS X 10.5 through (at least) 10.9::
 
-        /usr/bin/python build-installer.py \
+        /path/to/bootstrap/python2.7 build-installer.py \
             --sdk-path=/Developer/SDKs/MacOSX10.5.sdk \
             --universal-archs=32-bit \
             --dep-target=10.5
@@ -22,14 +22,14 @@
     - builds the following third-party libraries
 
         * NCurses 5.9 (http://bugs.python.org/issue15037)
-        * SQLite 3.8.1
+        * SQLite 3.8.3.1
         * XZ 5.0.5
 
     - uses system-supplied versions of third-party libraries
 
         * readline module links with Apple BSD editline (libedit)
 
-    - requires ActiveState ``Tcl/Tk 8.4`` (currently 8.4.19) to be installed for building
+    - requires ActiveState ``Tcl/Tk 8.4`` (currently 8.4.20) to be installed for building
 
     - recommended build environment:
 
@@ -38,7 +38,8 @@
         * ``MacOSX10.5`` SDK
         * ``MACOSX_DEPLOYMENT_TARGET=10.5``
         * Apple ``gcc-4.2``
-        * system Python 2.5 for documentation build with Sphinx
+        * bootstrap non-framework Python 2.7 for documentation build with
+          Sphinx (as of 3.4.1)
 
     - alternate build environments:
 
@@ -48,7 +49,7 @@
 
 2.  64-bit / 32-bit, x86_64 and i386 universal, for OS X 10.6 (and later)::
 
-        /usr/bin/python build-installer.py \
+        /path/to/bootstrap/python2.7 build-installer.py \
             --sdk-path=/Developer/SDKs/MacOSX10.6.sdk \
             --universal-archs=intel \
             --dep-target=10.6
@@ -56,14 +57,14 @@
     - builds the following third-party libraries
 
         * NCurses 5.9 (http://bugs.python.org/issue15037)
-        * SQLite 3.8.1
+        * SQLite 3.8.3.1
         * XZ 5.0.5
 
     - uses system-supplied versions of third-party libraries
 
         * readline module links with Apple BSD editline (libedit)
 
-    - requires ActiveState Tcl/Tk 8.5.15 (or later) to be installed for building
+    - requires ActiveState Tcl/Tk 8.5.15.1 (or later) to be installed for building
 
     - recommended build environment:
 
@@ -72,7 +73,8 @@
         * ``MacOSX10.6`` SDK
         * ``MACOSX_DEPLOYMENT_TARGET=10.6``
         * Apple ``gcc-4.2``
-        * system Python 2.6 for documentation build with Sphinx
+        * bootstrap non-framework Python 2.7 for documentation build with
+          Sphinx (as of 3.4.1)
 
     - alternate build environments:
 
@@ -82,10 +84,10 @@
           considered a migration aid by Apple and is not likely to be fixed,
           its use should be avoided.  The other compiler, ``clang``, has been
           undergoing rapid development.  While it appears to have become
-          production-ready in the most recent Xcode 4 releases (Xcode 4.6.3
-          as of this writing), there are still some open issues when
-          building Python and there has not yet been the level of exposure in
-          production environments that the Xcode 3 gcc-4.2 compiler has had.
+          production-ready in the most recent Xcode 5 releases, the versions
+          available on the deprecated Xcode 4.x for 10.6 were early releases
+          and did not receive the level of exposure in production environments
+          that the Xcode 3 gcc-4.2 compiler has had.
 
 
 *   For Python 2.7.x and 3.2.x, the 32-bit-only installer was configured to
@@ -111,7 +113,7 @@
         * Zlib 1.2.3
         * Oracle Sleepycat DB 4.8 (Python 2.x only)
 
-    - requires ActiveState ``Tcl/Tk 8.4`` (currently 8.4.19) to be installed for building
+    - requires ActiveState ``Tcl/Tk 8.4`` (currently 8.4.20) to be installed for building
 
     - recommended build environment:
         
@@ -137,7 +139,13 @@
   interfere with the build.
 
 * The documentation for the release is built using Sphinx
-  because it is included in the installer.
+  because it is included in the installer.  For 2.7.x and 3.x.x up to and
+  including 3.4.0, the ``Doc/Makefile`` uses ``svn`` to download repos of
+  ``Sphinx`` and its dependencies.  Beginning with 3.4.1, the ``Doc/Makefile``
+  assumes there is an externally-provided ``sphinx-build`` and requires at
+  least Python 2.6 to run.  Because of this, it is no longer possible to
+  build a 3.4.1 or later installer on OS X 10.5 using the Apple-supplied
+  Python 2.5.
 
 * It is safest to start each variant build with an empty source directory
   populated with a fresh copy of the untarred source.
@@ -195,8 +203,8 @@
 on all supported OS X releases and architectures.  As a practical matter,
 that is generally not possible.  At a minimum, variant 1 should be run on
 a PPC G4 system with OS X 10.5 and at least one Intel system running OS X
-10.8, 10.7, 10.6, or 10.5.  Variant 2 should be run on 10.8, 10.7, and 10.6
-systems in both 32-bit and 64-bit modes.::
+10.9, 10.8, 10.7, 10.6, or 10.5.  Variant 2 should be run on 10.9, 10.8,
+10.7, and 10.6 systems in both 32-bit and 64-bit modes.::
 
     /usr/local/bin/pythonn.n -m test -w -u all,-largefile
     /usr/local/bin/pythonn.n-32 -m test -w -u all
@@ -207,7 +215,7 @@
 during testing and can be ignored.
 
 It is also recommend to launch IDLE and verify that it is at least
-functional.  Double-click on the IDLE app icon in ``/Applications/Pythonn.n``.
+functional.  Double-click on the IDLE app icon in ``/Applications/Python n.n``.
 It should also be tested from the command line::
 
     /usr/local/bin/idlen.n
diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py
--- a/Mac/BuildScript/build-installer.py
+++ b/Mac/BuildScript/build-installer.py
@@ -194,7 +194,7 @@
     LT_10_5 = bool(DEPTARGET < '10.5')
 
 #   Disable for now
-    if (DEPTARGET > '10.5') and (getVersionTuple() >= (3, 5)):
+    if False:   # if (DEPTARGET > '10.5') and (getVersionTuple() >= (3, 5)):
         result.extend([
           dict(
               name="Tcl 8.5.15",
@@ -607,6 +607,10 @@
         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')
+    runCommand('sphinx-build --version')
 
 
 def parseOptions(args=None):
@@ -920,8 +924,9 @@
     docdir = os.path.join(rootDir, 'pydocs')
     curDir = os.getcwd()
     os.chdir(buildDir)
-    runCommand('make update')
-    runCommand("make html PYTHON='%s'" % os.path.abspath(sys.executable))
+    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)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -117,6 +117,12 @@
 - Issue #17654: Ensure IDLE menus are customized properly on OS X for
   non-framework builds and for all variants of Tk.
 
+Build
+-----
+
+- Issue #20644: OS X installer build support for documentation build changes
+  in 3.4.1: assume externally supplied sphinx-build is available in /usr/bin.
+
 C API
 -----
 - Issue #20942: PyImport_ImportFrozenModuleObject() no longer sets __file__ to

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list