Description
The Apple-supplied Tcl
and Tk
frameworks on macOS releases have been deprecated and not updated in years. They are ancient 8.5.9 versions that have many known critical problems and should not be being used by anyone at this point. As of Python 3.11, we no longer fall back to using the system version if no other Tcl/Tk
libraries are found and simply skip building the _tkinter
extension module in that case. But we still do for older branches that are in the security-fix-only
phase of their life, currently 3.8, 3.9, and 3.10, and this misbehavior can cause CI and/or buildbot tests for these branches to fail.
Since properly running GUI tests are difficult in this environment anyway, the attached PR removes the fallback check in setup.py
for the system-supplied Tcl/Tk
on macOS. For these branches, no other behavior is changed: it is still possible to specify locations for Tcl/Tk
headers and libs using the --with-tcltk-includes=
and --with-tcltk-libs=
./configure
options and, on 3.10, through the use of pkg-config
. (Starting with 3.11, the --with-tcltk-*
options have been removed in favor of generalized *_CFLAGS=
and *_LIBS=
./configure
options along with full pkg-config
support.)