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:
parent
af8a4dfb04
commit
7e60f51486
@ -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.
|
|||||||
- 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.
|
|||||||
* ``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.
|
|||||||
|
|
||||||
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.
|
|||||||
- 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.
|
|||||||
* ``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.
|
|||||||
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.
|
|||||||
* 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
|
|||||||
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
|
|||||||
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
|
|||||||
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():
|
|||||||
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():
|
|||||||
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():
|
|||||||
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
|
|||||||
- 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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user