Commit d1e81187 authored by Ned Deily's avatar Ned Deily

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.
parent 5f8ed5e7
...@@ -12,9 +12,9 @@ For Python 3.4.0, PSF practice is to build two installer variants ...@@ -12,9 +12,9 @@ For Python 3.4.0, PSF practice is to build two installer variants
for each release. for each release.
1. 32-bit-only, i386 and PPC universal, capable on running on all machines 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 \ --sdk-path=/Developer/SDKs/MacOSX10.5.sdk \
--universal-archs=32-bit \ --universal-archs=32-bit \
--dep-target=10.5 --dep-target=10.5
...@@ -22,14 +22,14 @@ for each release. ...@@ -22,14 +22,14 @@ for each release.
- builds the following third-party libraries - builds the following third-party libraries
* NCurses 5.9 (http://bugs.python.org/issue15037) * NCurses 5.9 (http://bugs.python.org/issue15037)
* SQLite 3.8.1 * SQLite 3.8.3.1
* XZ 5.0.5 * XZ 5.0.5
- uses system-supplied versions of third-party libraries - uses system-supplied versions of third-party libraries
* readline module links with Apple BSD editline (libedit) * 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: - recommended build environment:
...@@ -38,7 +38,8 @@ for each release. ...@@ -38,7 +38,8 @@ for each release.
* ``MacOSX10.5`` SDK * ``MacOSX10.5`` SDK
* ``MACOSX_DEPLOYMENT_TARGET=10.5`` * ``MACOSX_DEPLOYMENT_TARGET=10.5``
* Apple ``gcc-4.2`` * 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: - alternate build environments:
...@@ -48,7 +49,7 @@ for each release. ...@@ -48,7 +49,7 @@ for each release.
2. 64-bit / 32-bit, x86_64 and i386 universal, for OS X 10.6 (and later):: 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 \ --sdk-path=/Developer/SDKs/MacOSX10.6.sdk \
--universal-archs=intel \ --universal-archs=intel \
--dep-target=10.6 --dep-target=10.6
...@@ -56,14 +57,14 @@ for each release. ...@@ -56,14 +57,14 @@ for each release.
- builds the following third-party libraries - builds the following third-party libraries
* NCurses 5.9 (http://bugs.python.org/issue15037) * NCurses 5.9 (http://bugs.python.org/issue15037)
* SQLite 3.8.1 * SQLite 3.8.3.1
* XZ 5.0.5 * XZ 5.0.5
- uses system-supplied versions of third-party libraries - uses system-supplied versions of third-party libraries
* readline module links with Apple BSD editline (libedit) * 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: - recommended build environment:
...@@ -72,7 +73,8 @@ for each release. ...@@ -72,7 +73,8 @@ for each release.
* ``MacOSX10.6`` SDK * ``MacOSX10.6`` SDK
* ``MACOSX_DEPLOYMENT_TARGET=10.6`` * ``MACOSX_DEPLOYMENT_TARGET=10.6``
* Apple ``gcc-4.2`` * 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: - alternate build environments:
...@@ -82,10 +84,10 @@ for each release. ...@@ -82,10 +84,10 @@ for each release.
considered a migration aid by Apple and is not likely to be fixed, considered a migration aid by Apple and is not likely to be fixed,
its use should be avoided. The other compiler, ``clang``, has been its use should be avoided. The other compiler, ``clang``, has been
undergoing rapid development. While it appears to have become undergoing rapid development. While it appears to have become
production-ready in the most recent Xcode 4 releases (Xcode 4.6.3 production-ready in the most recent Xcode 5 releases, the versions
as of this writing), there are still some open issues when available on the deprecated Xcode 4.x for 10.6 were early releases
building Python and there has not yet been the level of exposure in and did not receive the level of exposure in production environments
production environments that the Xcode 3 gcc-4.2 compiler has had. 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 * For Python 2.7.x and 3.2.x, the 32-bit-only installer was configured to
...@@ -111,7 +113,7 @@ for each release. ...@@ -111,7 +113,7 @@ for each release.
* Zlib 1.2.3 * Zlib 1.2.3
* Oracle Sleepycat DB 4.8 (Python 2.x only) * 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: - recommended build environment:
...@@ -137,7 +139,13 @@ General Prerequisites ...@@ -137,7 +139,13 @@ General Prerequisites
interfere with the build. interfere with the build.
* The documentation for the release is built using Sphinx * 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 * It is safest to start each variant build with an empty source directory
populated with a fresh copy of the untarred source. 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 ...@@ -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, 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 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 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 10.9, 10.8, 10.7, 10.6, or 10.5. Variant 2 should be run on 10.9, 10.8,
systems in both 32-bit and 64-bit modes.:: 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 -m test -w -u all,-largefile
/usr/local/bin/pythonn.n-32 -m test -w -u all /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 ...@@ -207,7 +215,7 @@ to be generated at several points during a test run. These are normal
during testing and can be ignored. during testing and can be ignored.
It is also recommend to launch IDLE and verify that it is at least 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:: It should also be tested from the command line::
/usr/local/bin/idlen.n /usr/local/bin/idlen.n
......
...@@ -194,7 +194,7 @@ def library_recipes(): ...@@ -194,7 +194,7 @@ def library_recipes():
LT_10_5 = bool(DEPTARGET < '10.5') LT_10_5 = bool(DEPTARGET < '10.5')
# Disable for now # Disable for now
if (DEPTARGET > '10.5') and (getVersionTuple() >= (3, 5)): if False: # if (DEPTARGET > '10.5') and (getVersionTuple() >= (3, 5)):
result.extend([ result.extend([
dict( dict(
name="Tcl 8.5.15", name="Tcl 8.5.15",
...@@ -607,6 +607,10 @@ def checkEnvironment(): ...@@ -607,6 +607,10 @@ def checkEnvironment():
base_path = base_path + ':' + OLD_DEVELOPER_TOOLS base_path = base_path + ':' + OLD_DEVELOPER_TOOLS
os.environ['PATH'] = base_path os.environ['PATH'] = base_path
print("Setting default PATH: %s"%(os.environ['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): def parseOptions(args=None):
...@@ -920,8 +924,9 @@ def buildPythonDocs(): ...@@ -920,8 +924,9 @@ def buildPythonDocs():
docdir = os.path.join(rootDir, 'pydocs') docdir = os.path.join(rootDir, 'pydocs')
curDir = os.getcwd() curDir = os.getcwd()
os.chdir(buildDir) os.chdir(buildDir)
runCommand('make update') runCommand('make clean')
runCommand("make html PYTHON='%s'" % os.path.abspath(sys.executable)) # Assume sphinx-build is on our PATH, checked in checkEnvironment
runCommand('make html')
os.chdir(curDir) os.chdir(curDir)
if not os.path.exists(docdir): if not os.path.exists(docdir):
os.mkdir(docdir) os.mkdir(docdir)
......
...@@ -117,6 +117,12 @@ IDLE ...@@ -117,6 +117,12 @@ IDLE
- Issue #17654: Ensure IDLE menus are customized properly on OS X for - Issue #17654: Ensure IDLE menus are customized properly on OS X for
non-framework builds and for all variants of Tk. 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 C API
----- -----
- Issue #20942: PyImport_ImportFrozenModuleObject() no longer sets __file__ to - Issue #20942: PyImport_ImportFrozenModuleObject() no longer sets __file__ to
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment