Skip to content

Commit d0d09b5

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

File tree

4 files changed

+107
-99
lines changed

4 files changed

+107
-99
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.

Mac/BuildScript/resources/ReadMe.rtf

Lines changed: 80 additions & 81 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\vieww15240\viewh15540\viewkind0
@@ -9,145 +10,143 @@
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 2.7.15]
13-
\b0 \ulnone \
14-
\
15-
16-
\b **NEW**
17-
\b0 With Python 2.7.15, the python.org website now provides two installer variants for download: one that installs a
18-
\i 64-bit-only
19-
\i0 Python capable of running on
20-
\i macOS 10.9 (Mavericks)
21-
\i0 or later; and one that installs a
22-
\i 64-bit/32-bit Intel
23-
\i0 Python capable of running on
24-
\i macOS 10.6 (Snow Leopard)
25-
\i0 or later. (This ReadMe was installed with the
26-
\i $MACOSX_DEPLOYMENT_TARGET
27-
\i0 variant.) Previous Python 2.7.x releases provided the 10.6 or later installer and a 10.5 or later 32-bit-only variant. 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 2.7.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
28-
\f1 License.rtf
13+
\f1\b \cf0 \ul \ulc0 Which installer variant should I use? [CHANGED in 2.7.15]
14+
\f0\b0 \ulnone \
15+
\
16+
With Python 2.7.15, the python.org website now provides two installer variants for download: one that installs a
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 2.7.x releases provided the 10.6 or later installer and a 10.5 or later 32-bit-only variant. 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 2.7.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
27+
\f3 License.rtf
2928
\f0 file.\
3029

31-
\b \ul \
30+
\f1\b \ul \
3231
Certificate verification and OpenSSL_[CHANGED in 2.7.15]\
3332
34-
\b0 \ulnone \
33+
\f0\b0 \ulnone \
3534
This variant of Python 2.7 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
36-
\i Keychain Access
37-
\i0 application and the
38-
\i security
39-
\i0 command line utility are no longer used as defaults by the Python
40-
\f1 ssl
35+
\f2\i Keychain Access
36+
\f0\i0 application and the
37+
\f2\i security
38+
\f0\i0 command line utility are no longer used as defaults by the Python
39+
\f3 ssl
4140
\f0 module. A sample command script is included in
42-
\f1 /Applications/Python 2.7
41+
\f3 /Applications/Python 2.7
4342
\f0 to install a curated bundle of default root certificates from the third-party
44-
\f1 certifi
43+
\f3 certifi
4544
\f0 package ({\field{\*\fldinst{HYPERLINK "https://pypi.python.org/pypi/certifi"}}{\fldrslt https://pypi.python.org/pypi/certifi}}). Click on
46-
\f1 Install Certificates
45+
\f3 Install Certificates
4746
\f0 to run it. If you choose to use
48-
\f1 certifi
47+
\f3 certifi
4948
\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.\
5049
\
5150
The bundled
52-
\f1 pip
51+
\f3 pip
5352
\f0 included with the Python 2.7 installer has its own default certificate store for verifying download connections.\
5453
\
5554

56-
\b \ul Using IDLE or other Tk applications [NEW/CHANGED in 2.7.15]
57-
\b0 \ulnone \
55+
\f1\b \ul Using IDLE or other Tk applications [NEW/CHANGED in 2.7.15]
56+
\f0\b0 \ulnone \
5857
\
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.\
58+
As of 2.7.15, 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.\
6059
\
61-
For the 10.6+ variant, 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+
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
61+
62+
\f1\b \cf0 CHANGED in 2.7.16:
63+
\f0\b0 The 10.6+ variant now also uses a private version of Tcl/Tk 8.6.\
64+
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
6665

67-
\b \ul \
66+
\f1\b \cf0 \ul \ulc0 \
6867
Binary installer support for Mac OS X 10.5 and earlier discontinued [CHANGED for Python 2.7.15]
69-
\b0 \ulnone \
68+
\f0\b0 \ulnone \
7069
\
7170
As of Python 2.7.15, binary installers from python.org no longer support Mac OS X 10.5 (Leopard) systems. Binary installer support for Mac OS X 10.3.9 (Panther) and 10.4.x (Tiger) systems was previously dropped in Python 2.7.9. Mac OS X 10.5 was originally released by Apple in 2007 and last updated in 2009 and was the last OS X release for PPC machines (G4 and G5). If needed, it is still possible to build Python from source for 10.3.9, 10.4, or 10.5.\
7271
\
7372

74-
\b \ul Packages installed with the system Python 2.7 are no longer searched for [CHANGED for Python 2.7.13]
75-
\b0 \ulnone \
73+
\f1\b \ul Packages installed with the system Python 2.7 are no longer searched for [CHANGED for Python 2.7.13]
74+
\f0\b0 \ulnone \
7675
\
7776
As of Python 2.7.0, user-installed Python 2.7 versions from python.org installers added the system-wide site-packages directory for the Apple-supplied Python 2.7 to the end of their search path. This meant that packages installed with the system Python 2.7 could also be used by the user-installed Python 2.7. While sometimes convenient, this also often caused confusion with the implicit coupling between the two Python instances. Separately, as of macOS 10.12, Apple changed the layout of the system site-packages directory,
78-
\f1 /Library/Python/2.7/site-packages
77+
\f3 /Library/Python/2.7/site-packages
7978
\f0 , in a way that can now cause installation of
80-
\f1 pip
79+
\f3 pip
8180
\f0 components to fail. To avoid the confusion and the installation failures, as of 2.7.13 user-installed Pythons no longer add
82-
\f1 /Library/Python/2.7/site-packages
81+
\f3 /Library/Python/2.7/site-packages
8382
\f0 to
84-
\f1 sys.path
83+
\f3 sys.path
8584
\f0 . If you are using a package with both a user-installed Python 2.7 and the system Python 2.7, you will now need to ensure that separate copies of the package are installed for each instance.\
8685
\
8786

88-
\b \ul Installing on OS X 10.8 (Mountain Lion) or later systems [CHANGED for Python 2.7.9]
89-
\b0 \ulnone \
87+
\f1\b \ul Installing on OS X 10.8 (Mountain Lion) or later systems [CHANGED for Python 2.7.9]
88+
\f0\b0 \ulnone \
9089
\
9190
As of Python 2.7.9, installer packages from python.org are now compatible with the Gatekeeper security feature introduced in OS X 10.8. Downloaded packages can now be directly installed by double-clicking with the default system security settings. Python.org installer packages for macOS are signed with the Developer ID of the builder, as identified on {\field{\*\fldinst{HYPERLINK "https://www.python.org/downloads/"}}{\fldrslt the download page}} for this release. To inspect the digital signature of the package, click on the lock icon in the upper right corner of the
92-
\i Install Python
93-
\i0 installer window. Refer to Apple\'92s support pages for {\field{\*\fldinst{HYPERLINK "http://support.apple.com/kb/ht5290"}}{\fldrslt more information on Gatekeeper}}.\
91+
\f2\i Install Python
92+
\f0\i0 installer window. Refer to Apple\'92s support pages for {\field{\*\fldinst{HYPERLINK "http://support.apple.com/kb/ht5290"}}{\fldrslt more information on Gatekeeper}}.\
9493
\
9594

96-
\b \ul Simplified web-based installs [NEW for Python 2.7.9]
97-
\b0 \ulnone \
95+
\f1\b \ul Simplified web-based installs [NEW for Python 2.7.9]
96+
\f0\b0 \ulnone \
9897
\
9998
With the change to the newer flat format installer package, the download file now has a
100-
\f1 .pkg
99+
\f3 .pkg
101100
\f0 extension as it is no longer necessary to embed the installer within a disk image (
102-
\f1 .dmg
101+
\f3 .dmg
103102
\f0 ) container. If you download the Python installer through a web browser, the macOS installer application may open automatically to allow you to perform the install. If your browser settings do not allow automatic open, double click on the downloaded installer file.\
104103
\
105104

106-
\b \ul New Installation Options and Defaults [NEW for Python 2.7.9]
107-
\b0 \ulnone \
105+
\f1\b \ul New Installation Options and Defaults [NEW for Python 2.7.9]
106+
\f0\b0 \ulnone \
108107
\
109108
The Python installer now includes an option to automatically install or upgrade
110-
\f1 pip
109+
\f3 pip
111110
\f0 , a tool for installing and managing Python packages. This option is enabled by default and no Internet access is required. If you do not want the installer to do this, select the
112-
\i Customize
113-
\i0 option at the
114-
\i Installation Type
115-
\i0 step and uncheck the
116-
\i Install or upgrade pip
117-
\i0 option. For other changes in this release, see the
118-
\i Release Notes
119-
\i0 link for this release at {\field{\*\fldinst{HYPERLINK "https://www.python.org/downloads/"}}{\fldrslt https://www.python.org/downloads/}}.\
111+
\f2\i Customize
112+
\f0\i0 option at the
113+
\f2\i Installation Type
114+
\f0\i0 step and uncheck the
115+
\f2\i Install or upgrade pip
116+
\f0\i0 option. For other changes in this release, see the
117+
\f2\i Release Notes
118+
\f0\i0 link for this release at {\field{\*\fldinst{HYPERLINK "https://www.python.org/downloads/"}}{\fldrslt https://www.python.org/downloads/}}.\
120119
\
121120

122-
\b \ul Python 3 and Python 2 Co-existence\
121+
\f1\b \ul Python 3 and Python 2 Co-existence\
123122
124-
\b0 \ulnone \
123+
\f0\b0 \ulnone \
125124
Python.org Python 2.7 and 3.x versions can both be installed on your system and will not conflict. Python 2.7 command names contain a 2 or no digit:
126-
\f1 python2
125+
\f3 python2
127126
\f0 (or
128-
\f1 python2.7
127+
\f3 python2.7
129128
\f0 or
130-
\f1 python
129+
\f3 python
131130
\f0 ),
132-
\f1 idle2
131+
\f3 idle2
133132
\f0 (or
134-
\f1 idle2.7
133+
\f3 idle2.7
135134
\f0 or
136-
\f1 idle
135+
\f3 idle
137136
\f0 ),
138-
\f1 pip2
137+
\f3 pip2
139138
\f0 (or
140-
\f1 pip2.7
139+
\f3 pip2.7
141140
\f0 or
142-
\f1 pip
141+
\f3 pip
143142
\f0 ), etc. Command names for Python 3 contain a 3 in them,
144-
\f1 python3
143+
\f3 python3
145144
\f0 ,
146-
\f1 idle3
145+
\f3 idle3
147146
\f0 ,
148-
\f1 pip3
147+
\f3 pip3
149148
\f0 , etc. Also, installing a python.org Python 2.7 does not alter or remove any Apple-supplied system Pythons, found in
150-
\f1 /usr/bin
149+
\f3 /usr/bin
151150
\f0 .\
152151
\
153152
\

Mac/BuildScript/resources/Welcome.rtf

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,33 @@
1-
{\rtf1\ansi\ansicpg1252\cocoartf1561\cocoasubrtf400
2-
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fmodern\fcharset0 CourierNewPSMT;}
1+
{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf100
2+
\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fswiss\fcharset0 Helvetica-Bold;\f2\fmodern\fcharset0 CourierNewPSMT;
3+
}
34
{\colortbl;\red255\green255\blue255;}
45
{\*\expandedcolortbl;;}
56
\paperw11905\paperh16837\margl1440\margr1440\vieww13360\viewh10920\viewkind0
67
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
78

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

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 .\
17+
\f1\b Python for macOS
18+
\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
19+
\f1\b IDLE
20+
\f0\b0 .\
2021
\
2122

22-
\b NEW in 2.7.15:
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!), updated
24-
\f1 pip,
23+
\f1\b NEW in 2.7.15:
24+
\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!), updated
25+
\f2 pip,
2526
\f0 built-in OpenSSL 1.0.2 (click on
26-
\f1 Install Certificates
27+
\f2 Install Certificates
2728
\f0 for root certificates)\
29+
\
30+
31+
\f1\b CHANGED in 2.7.16:
32+
\f0\b0 the 10.6+ variant now also uses a built-in Tcl/Tk 8.6\
2833
}
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)