Skip to content

Commit f74cabd

Browse files
authored
[3.6] bpo-15663: the 10.6+ macOS installers for 3.6/2.7 now provide a private Tcl/Tk 8.6 (GH-11109)
1 parent 8855d93 commit f74cabd

File tree

4 files changed

+80
-76
lines changed

4 files changed

+80
-76
lines changed

‎Mac/BuildScript/build-installer.py‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
"""
33
This script is used to build "official" universal installers on macOS.
44
5+
NEW for 3.6.8 / 2.7.16:
6+
- also build and use Tk 8.6 for 10.6+ installers
57
NEW for 3.6.5:
68
- support Intel 64-bit-only () and 32-bit-only installer builds
79
- build and link with private Tcl/Tk 8.6 for 10.9+ builds
@@ -20,8 +22,8 @@
2022
so will fetch them from PyPI if necessary. Since python3 is now used for
2123
Sphinx, build-installer.py should also be converted to use python3!
2224
23-
For 10.9 or greater deployment targets, build-installer builds and links
24-
with its own copy of Tcl/Tk 8.5 and the rest of this paragraph does not
25+
For 10.6 or greater deployment targets, build-installer builds and links
26+
with its own copy of Tcl/Tk 8.6 and the rest of this paragraph does not
2527
apply. Otherwise, build-installer requires an installed third-party version
2628
of Tcl/Tk 8.4 (for OS X 10.4 and 10.5 deployment targets) or Tcl/TK 8.5
2729
(for 10.6 or later) installed in /Library/Frameworks. When installed,
@@ -188,9 +190,9 @@ def getTargetCompilers():
188190
EXPECTED_SHARED_LIBS = {}
189191

190192
# Are we building and linking with our own copy of Tcl/TK?
191-
# For now, do so if deployment target is 10.9+.
193+
# For now, do so if deployment target is 10.6+.
192194
def internalTk():
193-
return getDeptargetTuple() >= (10, 9)
195+
return getDeptargetTuple() >= (10, 6)
194196

195197
# List of names of third party software built with this installer.
196198
# The names will be inserted into the rtf version of the License.
Lines changed: 53 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
2-
{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fmodern\fcharset0 CourierNewPSMT;}
1+
{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf100
2+
{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fswiss\fcharset0 Helvetica-Bold;\f2\fswiss\fcharset0 Helvetica-Oblique;
3+
\f3\fmodern\fcharset0 CourierNewPSMT;}
34
{\colortbl;\red255\green255\blue255;}
45
{\*\expandedcolortbl;;}
56
\margl1440\margr1440\vieww13380\viewh14600\viewkind0
@@ -9,104 +10,98 @@
910
\
1011
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
1112

12-
\b \cf0 \ul \ulc0 Which installer variant should I use? [CHANGED in 3.6.6]
13-
\b0 \ulnone \
13+
\f1\b \cf0 \ul \ulc0 Which installer variant should I use? [CHANGED in 3.6.6]
14+
\f0\b0 \ulnone \
1415
\
1516
With Python 3.6.5, the python.org website now provides two installer variants for download: one that installs a
16-
\i 64-bit-only
17-
\i0 Python capable of running on
18-
\i macOS 10.9 (Mavericks)
19-
\i0 or later; and one that installs a
20-
\i 64-bit/32-bit Intel
21-
\i0 Python capable of running on
22-
\i macOS 10.6 (Snow Leopard)
23-
\i0 or later. (This ReadMe was installed with the
24-
\i $MACOSX_DEPLOYMENT_TARGET
25-
\i0 variant.) Previous Python 3.6.x releases only provided the 10.6 or later installer. If you are running on macOS 10.9 or later and if you have no need for compatibility with older systems, use the 10.9 variant. Use the 10.6 variant if you are running on macOS 10.6 through 10.8, if you need to maintain compatibility with previous 3.6.x releases, or if you want to produce standalone applications that can run on systems from 10.6. The Pythons installed by these installers are built with private copies of some third-party libraries not included with or newer than those in macOS itself. The list of these libraries varies by installer variant and is included at the end of the License.rtf file.\
17+
\f2\i 64-bit-only
18+
\f0\i0 Python capable of running on
19+
\f2\i macOS 10.9 (Mavericks)
20+
\f0\i0 or later; and one that installs a
21+
\f2\i 64-bit/32-bit Intel
22+
\f0\i0 Python capable of running on
23+
\f2\i macOS 10.6 (Snow Leopard)
24+
\f0\i0 or later. (This ReadMe was installed with the
25+
\f2\i $MACOSX_DEPLOYMENT_TARGET
26+
\f0\i0 variant.) Previous Python 3.6.x releases only provided the 10.6 or later installer. If you are running on macOS 10.9 or later and if you have no need for compatibility with older systems, use the 10.9 variant. Use the 10.6 variant if you are running on macOS 10.6 through 10.8, if you need to maintain compatibility with previous 3.6.x releases, or if you want to produce standalone applications that can run on systems from 10.6. The Pythons installed by these installers are built with private copies of some third-party libraries not included with or newer than those in macOS itself. The list of these libraries varies by installer variant and is included at the end of the License.rtf file.\
2627
\
2728
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\partightenfactor0
2829

29-
\b \cf0 CHANGED in 3.6.6:
30-
\b0 the 10.9+ 64-bit-only installer variant is now the default download. The 10.6+ variant is available from the $FULL_VERSION release page.\
30+
\f1\b \cf0 CHANGED in 3.6.6:
31+
\f0\b0 the 10.9+ 64-bit-only installer variant is now the default download. The 10.6+ variant is available from the $FULL_VERSION release page.\
3132
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
3233

33-
\b \cf0 \ul \
34+
\f1\b \cf0 \ul \
3435
Certificate verification and OpenSSL\
3536
36-
\b0 \ulnone \
37+
\f0\b0 \ulnone \
3738
This variant of Python 3.6 now includes its own private copy of OpenSSL 1.0.2. Unlike previous releases, the deprecated Apple-supplied OpenSSL libraries are no longer used. This also means that the trust certificates in system and user keychains managed by the
38-
\i Keychain Access
39-
\i0 application and the
40-
\i security
41-
\i0 command line utility are no longer used as defaults by the Python
42-
\f1 ssl
39+
\f2\i Keychain Access
40+
\f0\i0 application and the
41+
\f2\i security
42+
\f0\i0 command line utility are no longer used as defaults by the Python
43+
\f3 ssl
4344
\f0 module. A sample command script is included in
44-
\f1 /Applications/Python 3.6
45+
\f3 /Applications/Python 3.6
4546
\f0 to install a curated bundle of default root certificates from the third-party
46-
\f1 certifi
47+
\f3 certifi
4748
\f0 package ({\field{\*\fldinst{HYPERLINK "https://pypi.org/project/certifi/"}}{\fldrslt https://pypi.org/project/certifi/}}). If you choose to use
48-
\f1 certifi
49+
\f3 certifi
4950
\f0 , you should consider subscribing to the{\field{\*\fldinst{HYPERLINK "https://certifi.io/en/latest/"}}{\fldrslt project's email update service}} to be notified when the certificate bundle is updated.\
5051
\
5152
The bundled
52-
\f1 pip
53+
\f3 pip
5354
\f0 included with the Python 3.6 installer has its own default certificate store for verifying download connections.\
5455
\
5556

56-
\b \ul Using IDLE or other Tk applications [NEW/CHANGED in 3.6.5]
57-
\b0 \ulnone \
57+
\f1\b \ul Using IDLE or other Tk applications [NEW/CHANGED in 3.6.5]
58+
\f0\b0 \ulnone \
5859
\
59-
The 10.9+ installer variant comes with its own private version of Tcl/Tk 8.6. It does not use system-supplied or third-party supplied versions of Tcl/Tk.\
60-
\
61-
For the 10.6+ variant in 3.6.6, you continue to need to install a newer third-party version of the
62-
\i Tcl/Tk
63-
\i0 8.5 (not 8.6) frameworks to use IDLE or other programs that use the Tkinter graphical user interface toolkit. Visit {\field{\*\fldinst{HYPERLINK "https://www.python.org/download/mac/tcltk/"}}{\fldrslt https://www.python.org/download/mac/tcltk/}} for current information about supported and recommended versions of
64-
\i Tcl/Tk
65-
\i0 for this version of Python and of macOS.\
60+
As of 3.6.5, the 10.9+ installer variant comes with its own private version of Tcl/Tk 8.6. It does not use system-supplied or third-party supplied versions of Tcl/Tk.\
6661
\
6762
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
6863

69-
\b \cf0 NOTE:
70-
\b0 As of the next 3.6.x release, 3.6.7, the 10.6+ variant will also include Tcl/Tk 8.6.\
64+
\f1\b \cf0 CHANGED in 3.6.8:
65+
\f0\b0 The 10.6+ variant now also uses a private version of Tcl/Tk 8.6.\
7166
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
7267

73-
\b \cf0 \ul \
68+
\f1\b \cf0 \ul \
7469
Other changes\
7570
76-
\b0 \ulnone \
71+
\f0\b0 \ulnone \
7772
For other changes in this release, see the
78-
\i What's new
79-
\i0 section in the {\field{\*\fldinst{HYPERLINK "https://www.python.org/doc/"}}{\fldrslt Documentation Set}} for this release and its
80-
\i Release Notes
81-
\i0 link at {\field{\*\fldinst{HYPERLINK "https://www.python.org/downloads/"}}{\fldrslt https://www.python.org/downloads/}}.\
73+
\f2\i What's new
74+
\f0\i0 section in the {\field{\*\fldinst{HYPERLINK "https://www.python.org/doc/"}}{\fldrslt Documentation Set}} for this release and its
75+
\f2\i Release Notes
76+
\f0\i0 link at {\field{\*\fldinst{HYPERLINK "https://www.python.org/downloads/"}}{\fldrslt https://www.python.org/downloads/}}.\
8277

83-
\b \ul \
78+
\f1\b \ul \
8479
Python 3 and Python 2 Co-existence\
8580
86-
\b0 \ulnone \
81+
\f0\b0 \ulnone \
8782
Python.org Python $VERSION and 2.7.x versions can both be installed on your system and will not conflict. Command names for Python 3 contain a 3 in them,
88-
\f1 python3
83+
\f3 python3
8984
\f0 (or
90-
\f1 python$VERSION
85+
\f3 python$VERSION
9186
\f0 ),
92-
\f1 idle3
87+
\f3 idle3
9388
\f0 (or i
94-
\f1 dle$VERSION
89+
\f3 dle$VERSION
9590
\f0 ),
96-
\f1 pip3
91+
\f3 pip3
9792
\f0 (or
98-
\f1 pip$VERSION
93+
\f3 pip$VERSION
9994
\f0 ), etc. Python 2.7 command names contain a 2 or no digit:
100-
\f1 python2
95+
\f3 python2
10196
\f0 (or
102-
\f1 python2.7
97+
\f3 python2.7
10398
\f0 or
104-
\f1 python
99+
\f3 python
105100
\f0 ),
106-
\f1 idle2
101+
\f3 idle2
107102
\f0 (or
108-
\f1 idle2.7
103+
\f3 idle2.7
109104
\f0 or
110-
\f1 idle
105+
\f3 idle
111106
\f0 ), etc.\
112107
}
Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,32 @@
1-
{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
2-
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
1+
{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf100
2+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fswiss\fcharset0 Helvetica-Bold;}
33
{\colortbl;\red255\green255\blue255;}
44
{\*\expandedcolortbl;;}
55
\paperw11905\paperh16837\margl1440\margr1440\vieww12200\viewh10880\viewkind0
66
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
77

88
\f0\fs24 \cf0 This package will install
9-
\b Python $FULL_VERSION
10-
\b0 for
11-
\b macOS $MACOSX_DEPLOYMENT_TARGET
12-
\b0 .\
9+
\f1\b Python $FULL_VERSION
10+
\f0\b0 for
11+
\f1\b macOS $MACOSX_DEPLOYMENT_TARGET
12+
\f0\b0 .\
1313
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\partightenfactor0
1414
\cf0 \
1515

16-
\b Python for macOS
17-
\b0 consists of the Python programming language interpreter, plus a set of programs to allow easy access to it for macOS users including an integrated development environment
18-
\b IDLE
19-
\b0 .\
16+
\f1\b Python for macOS
17+
\f0\b0 consists of the Python programming language interpreter, plus a set of programs to allow easy access to it for macOS users including an integrated development environment
18+
\f1\b IDLE
19+
\f0\b0 .\
2020
\
2121

22-
\b NEW in 3.6.5:
23-
\b0 two installer variants (10.9+ 64-bit-only, 10.6+ 64-/32-bit), built-in Tcl/Tk 8.6 support in the 10.9+ variant (no additional third-party downloads!)\
22+
\f1\b NEW in 3.6.5:
23+
\f0\b0 two installer variants (10.9+ 64-bit-only, 10.6+ 64-/32-bit), built-in Tcl/Tk 8.6 support in the 10.9+ variant (no additional third-party downloads!)\
2424
\
2525

26-
\b CHANGED in 3.6.6:
27-
\b0 the 10.9+ 64-bit-only installer variant is now the default download}
26+
\f1\b CHANGED in 3.6.6:
27+
\f0\b0 the 10.9+ 64-bit-only installer variant is now the default download\
28+
\
29+
30+
\f1\b CHANGED in 3.6.8:
31+
\f0\b0 the 10.6+ variant now also uses a built-in Tcl/Tk 8.6\
32+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
The macOS 10.6+ installer now provides a private copy of Tcl/Tk 8.6, like
2+
the 10.9+ installer does.

0 commit comments

Comments
 (0)