summaryrefslogtreecommitdiffstats
path: root/Mac/BuildScript
diff options
context:
space:
mode:
authorNed Deily <nad@acm.org>2013-11-05 10:44:17 (GMT)
committerNed Deily <nad@acm.org>2013-11-05 10:44:17 (GMT)
commit6fc5f98480a197e434816d4b7dacd096c9f66d09 (patch)
tree01d6808923d5ab00ab17dc7f1cb223ff1e8c7150 /Mac/BuildScript
parent2c1adcb62ba60ad067d222160b695722742954da (diff)
downloadcpython-6fc5f98480a197e434816d4b7dacd096c9f66d09.zip
cpython-6fc5f98480a197e434816d4b7dacd096c9f66d09.tar.gz
cpython-6fc5f98480a197e434816d4b7dacd096c9f66d09.tar.bz2
Issue #15663: Revert OS X installer built-in Tcl/Tk support for 3.3.3.
Some third-party projects, such as matplotlib and PIL/Pillow, depended on being able to build with Tcl and Tk frameworks in /Library/Frameworks. They were unable to build with the built-in Tcl/Tk and/or execute correctly.
Diffstat (limited to 'Mac/BuildScript')
-rw-r--r--Mac/BuildScript/README.txt29
-rwxr-xr-xMac/BuildScript/build-installer.py10
-rw-r--r--Mac/BuildScript/resources/ReadMe.txt23
-rw-r--r--Mac/BuildScript/resources/Welcome.rtf10
4 files changed, 20 insertions, 52 deletions
diff --git a/Mac/BuildScript/README.txt b/Mac/BuildScript/README.txt
index 38470c5..56c769a 100644
--- a/Mac/BuildScript/README.txt
+++ b/Mac/BuildScript/README.txt
@@ -57,40 +57,13 @@ for each release.
* NCurses 5.9 (http://bugs.python.org/issue15037)
* SQLite 3.7.13
- * Tcl 8.5.15
- * Tk 8.5.15
* XZ 5.0.3
- uses system-supplied versions of third-party libraries
* readline module links with Apple BSD editline (libedit)
- - requires ActiveState Tcl/Tk 8.5.14 (or later) to be installed for building
-
- * Beginning with Python 3.3.3, this installer now includes its own
- builtin copy of Tcl and Tk 8.5.15 libraries and thus is no longer
- dependent on the buggy releases of Aqua Cocoa Tk 8.5 shipped with
- OS X 10.6 or on installing a newer third-party version of Tcl/Tk
- in /Library/Frameworks, such as from ActiveState. If it is
- necessary to fallback to using a third-party Tcl/Tk because of
- a problem with the builtin Tcl/Tk, there is a backup version of
- the _tkinter extension included which will dynamically link to
- Tcl and Tk frameworks in /Library/Frameworks as in previous releases.
- To enable (for all users of this Python 3.3)::
-
- sudo bash
- cd /Library/Frameworks/Python.framework/Versions/3.3
- cd ./lib/python3.3
- cp -p ./lib-tkinter/library/_tkinter.so ./lib-dynload
- exit
-
- To restore using Python's builtin versions of Tcl and Tk::
-
- sudo bash
- cd /Library/Frameworks/Python.framework/Versions/3.3
- cd ./lib/python3.3
- cp -p ./lib-tkinter/builtin/_tkinter.so ./lib-dynload
- exit
+ - requires ActiveState Tcl/Tk 8.5.9 (or later) to be installed for building
- recommended build environment:
diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py
index 0859b3a..fd5d5c3 100755
--- a/Mac/BuildScript/build-installer.py
+++ b/Mac/BuildScript/build-installer.py
@@ -193,7 +193,7 @@ def library_recipes():
LT_10_5 = bool(DEPTARGET < '10.5')
- if DEPTARGET > '10.5':
+ if (DEPTARGET > '10.5') and (getVersionTuple() >= (3, 4)):
result.extend([
dict(
name="Tcl 8.5.15",
@@ -571,7 +571,7 @@ def checkEnvironment():
# - the traditional version (renamed to _tkinter_library.so) linked
# with /Library/Frameworks/{Tcl,Tk}.framework
# - the default version linked with our builtin copies of Tcl and Tk
- if DEPTARGET > '10.5':
+ if (DEPTARGET > '10.5') and (getVersionTuple() >= (3, 4)):
EXPECTED_SHARED_LIBS['_tkinter_library.so'] = \
EXPECTED_SHARED_LIBS['_tkinter.so']
EXPECTED_SHARED_LIBS['_tkinter.so'] = [
@@ -971,7 +971,7 @@ def buildPython():
# out-of-date and has critical bugs. Save the _tkinter.so that was
# linked with /Library/Frameworks/{Tck,Tk}.framework and build
# another _tkinter.so linked with our builtin Tcl and Tk libs.
- if DEPTARGET > '10.5':
+ if (DEPTARGET > '10.5') and (getVersionTuple() >= (3, 4)):
runCommand("find build -name '_tkinter.so' "
" -execdir mv '{}' _tkinter_library.so \;")
print("Running make to build builtin _tkinter")
@@ -1012,7 +1012,7 @@ def buildPython():
# users to select which to import by manipulating sys.path
# directly or with PYTHONPATH.
- if DEPTARGET > '10.5':
+ if (DEPTARGET > '10.5') and (getVersionTuple() >= (3, 4)):
TKINTERS = ['builtin', 'library']
tkinter_moves = [('_tkinter_' + tkn + '.so',
os.path.join(path_to_lib, 'lib-tkinter', tkn))
@@ -1059,7 +1059,7 @@ def buildPython():
# The files are moved after the entire tree has been walked
# since the shared library checking depends on the files
# having unique names.
- if DEPTARGET > '10.5':
+ if (DEPTARGET > '10.5') and (getVersionTuple() >= (3, 4)):
for tkm in tkinter_moves:
if fn == tkm[0]:
moves_list.append(
diff --git a/Mac/BuildScript/resources/ReadMe.txt b/Mac/BuildScript/resources/ReadMe.txt
index e5c49f0..212d963 100644
--- a/Mac/BuildScript/resources/ReadMe.txt
+++ b/Mac/BuildScript/resources/ReadMe.txt
@@ -17,27 +17,18 @@ instead of double-clicking, control-click or right click the "Python"
installer package icon. Then select "Open using ... Installer" from
the contextual menu that appears.
- **** IMPORTANT changes if you use IDLE and Tkinter ****
-
-Installing a third-party version of Tcl/Tk is no longer required
-================================================================
+ **** IMPORTANT ****
-As of Python 3.3.3, the 10.6+ 64-bit installer now
-comes with its own private copy of Tcl and Tk 8.5 libraries. For
-this version of Python, it is no longer necessary to install
-a third-party version of Tcl/Tk 8.5, such as those from ActiveState,
-to work around the problematic versions of Tcl/Tk 8.5 shipped by
-Apple in OS X 10.6 and later. (This does not change the requirements
-for older versions of Python installed from python.org.) By default,
-this version of Python will always use its own private version,
-regardless of whether a third-party Tcl/Tk is installed.
-The 10.5+ 32-bit-only installer continues to use Tcl/Tk 8.4,
-either a third-party or system-supplied version.
+Update your version of Tcl/Tk to use IDLE or other Tk applications
+==================================================================
-Visit http://www.python.org/download/mac/tcltk/
+To use IDLE or other programs that use the Tkinter graphical user
+interface toolkit, you may need to install a newer third-party version
+of the Tcl/Tk frameworks. Visit http://www.python.org/download/mac/tcltk/
for current information about supported and recommended versions of
Tcl/Tk for this version of Python and of Mac OS X.
+
Using this version of Python on OS X
====================================
diff --git a/Mac/BuildScript/resources/Welcome.rtf b/Mac/BuildScript/resources/Welcome.rtf
index c3b4b7c..239d76e 100644
--- a/Mac/BuildScript/resources/Welcome.rtf
+++ b/Mac/BuildScript/resources/Welcome.rtf
@@ -25,7 +25,11 @@ See the ReadMe file and the Python documentation for more information.\
\b0 at any time to make $FULL_VERSION the default Python 3 version. This version can co-exist with other installed versions of Python 3 and Python 2.\
\
-\b IMPORTANT for users of IDLE and tkinter:
-\b0 As of Python 3.3.3, it is no longer necessary to install third-party versions of the
+\b IMPORTANT:
+\b0
+\b IDLE
+\b0 and other programs using the
+\b tkinter
+\b0 graphical user interface toolkit require specific versions of the
\b Tcl/Tk
-\b0 platform independent windowing toolkit. Please read the ReadMe file and visit {\field{\*\fldinst{HYPERLINK "http://www.python.org/download/mac/tcltk/"}}{\fldrslt http://www.python.org/download/mac/tcltk/}} for more information on supported and recommended versions of Tcl/Tk for this version of Python and Mac OS X.} \ No newline at end of file
+\b0 platform independent windowing toolkit. Visit {\field{\*\fldinst{HYPERLINK "http://www.python.org/download/mac/tcltk/"}}{\fldrslt http://www.python.org/download/mac/tcltk/}} for current information on supported and recommended versions of Tcl/Tk for this version of Python and Mac OS X.} \ No newline at end of file