From 7e60f514863f751404459f356d00f762f1649e02 Mon Sep 17 00:00:00 2001 From: Ned Deily Date: Mon, 7 Apr 2014 12:10:21 -0700 Subject: 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. --- 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 index 0a6b544..3ced066 100644 --- a/Mac/BuildScript/README.txt +++ b/Mac/BuildScript/README.txt @@ -12,9 +12,9 @@ For Python 3.4.0, PSF practice is to build two installer variants 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 @@ for each release. - 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 @@ for each release. * ``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 @@ for each release. 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 @@ for each release. - 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 @@ for each release. * ``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 @@ for each release. 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 @@ for each release. * 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 @@ General Prerequisites 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 @@ Ideally, the resulting binaries should be installed and the test suite run 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 @@ to be generated at several points during a test run. These are normal 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 index 7c1d90f..ad67299 100755 --- a/Mac/BuildScript/build-installer.py +++ b/Mac/BuildScript/build-installer.py @@ -194,7 +194,7 @@ def library_recipes(): 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 @@ 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') + runCommand('sphinx-build --version') def parseOptions(args=None): @@ -920,8 +924,9 @@ def buildPythonDocs(): 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 index c82bff3..25ee8d6 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -117,6 +117,12 @@ IDLE - 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 -- cgit v0.12