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.
This commit is contained in:
Ned Deily 2014-04-07 12:10:21 -07:00
parent af8a4dfb04
commit 7e60f51486
3 changed files with 40 additions and 21 deletions

View File

@ -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

View File

@ -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)

View File

@ -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