diff --git a/Misc/NEWS b/Misc/NEWS
index fc97d962603..b8794f446c1 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -402,7 +402,7 @@ Documentation
Build
-----
-- Update SQLite to 3.8.1 and xz to 5.0.5 on Windows.
+- Update SQLite to 3.8.1, xz to 5.0.5, and Tcl/Tk to 8.6.1 on Windows.
- Issue #16632: Enable DEP and ASLR on Windows.
diff --git a/PCbuild/build_tkinter.py b/PCbuild/build_tkinter.py
index 9f08631f2c7..c807e7b19cf 100644
--- a/PCbuild/build_tkinter.py
+++ b/PCbuild/build_tkinter.py
@@ -11,9 +11,9 @@ import sys
here = os.path.abspath(os.path.dirname(__file__))
par = os.path.pardir
-TCL = "tcl8.5.11"
-TK = "tk8.5.11"
-TIX = "tix-8.4.3.x"
+TCL = "tcl8.6.1"
+TK = "tk8.6.1"
+TIX = "tix-8.4.3.3"
ROOT = os.path.abspath(os.path.join(here, par, par))
NMAKE = ('nmake /nologo /f %s %s %s')
diff --git a/PCbuild/pyproject.props b/PCbuild/pyproject.props
index c78a523ad09..7b65961073c 100644
--- a/PCbuild/pyproject.props
+++ b/PCbuild/pyproject.props
@@ -23,10 +23,10 @@
$(externalsDir)\openssl-1.0.1e
$(externalsDir)\tcltk
$(externalsDir)\tcltk64
- $(tcltkDir)\lib\tcl85.lib;$(tcltkDir)\lib\tk85.lib
- $(tcltkDir)\lib\tcl85g.lib;$(tcltkDir)\lib\tk85g.lib
- $(tcltk64Dir)\lib\tcl85.lib;$(tcltk64Dir)\lib\tk85.lib
- $(tcltk64Dir)\lib\tcl85g.lib;$(tcltk64Dir)\lib\tk85g.lib
+ $(tcltkDir)\lib\tcl86t.lib;$(tcltkDir)\lib\tk86t.lib
+ $(tcltkDir)\lib\tcl86tg.lib;$(tcltkDir)\lib\tk86tg.lib
+ $(tcltk64Dir)\lib\tcl86t.lib;$(tcltk64Dir)\lib\tk86t.lib
+ $(tcltk64Dir)\lib\tcl86tg.lib;$(tcltk64Dir)\lib\tk86tg.lib
diff --git a/PCbuild/readme.txt b/PCbuild/readme.txt
index de8e93c7b69..32635709c13 100644
--- a/PCbuild/readme.txt
+++ b/PCbuild/readme.txt
@@ -211,7 +211,7 @@ _sqlite3
Homepage:
http://www.sqlite.org/
_tkinter
- Wraps version 8.5.11 of the Tk windowing system.
+ Wraps version 8.6.1 of the Tk windowing system.
Homepage:
http://www.tcl.tk/
@@ -261,7 +261,7 @@ The external-amd64.bat file contains this for tcl:
So for a release build, you'd call it as:
nmake -f makefile.vc MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all install
-Note that the above command is called from within ..\..\tcl-8.5.11.0\win
+Note that the above command is called from within ..\..\tcl-8.6.1.0\win
(relative to this directory); don't forget to build Tk as well as Tcl!
This will be cleaned up in the future; http://bugs.python.org/issue15968
diff --git a/Tools/buildbot/external-amd64.bat b/Tools/buildbot/external-amd64.bat
index a44c6623c04..4c3b67b55f3 100644
--- a/Tools/buildbot/external-amd64.bat
+++ b/Tools/buildbot/external-amd64.bat
@@ -4,18 +4,18 @@
call "Tools\buildbot\external-common.bat"
call "%VS100COMNTOOLS%\..\..\VC\vcvarsall.bat" x86_amd64
-if not exist tcltk64\bin\tcl85g.dll (
- cd tcl-8.5.11.0\win
+if not exist tcltk64\bin\tcl86tg.dll (
+ cd tcl-8.6.1.0\win
nmake -f makefile.vc DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 clean all
nmake -f makefile.vc DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 install
cd ..\..
)
-if not exist tcltk64\bin\tk85g.dll (
- cd tk-8.5.11.0\win
- nmake -f makefile.vc OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.11.0 clean
- nmake -f makefile.vc OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.11.0 all
- nmake -f makefile.vc OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.5.11.0 install
+if not exist tcltk64\bin\tk86tg.dll (
+ cd tk-8.6.1.0\win
+ nmake -f makefile.vc OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.6.1.0 clean
+ nmake -f makefile.vc OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.6.1.0 all
+ nmake -f makefile.vc OPTS=noxp DEBUG=1 MACHINE=AMD64 INSTALLDIR=..\..\tcltk64 TCLDIR=..\..\tcl-8.6.1.0 install
cd ..\..
)
diff --git a/Tools/buildbot/external-common.bat b/Tools/buildbot/external-common.bat
index e8ee936f8bf..244abd2d932 100644
--- a/Tools/buildbot/external-common.bat
+++ b/Tools/buildbot/external-common.bat
@@ -30,11 +30,11 @@ if not exist openssl-1.0.1e (
)
@rem tcl/tk
-if not exist tcl-8.5.11.0 (
- rd /s/q tcltk tcltk64
- svn export http://svn.python.org/projects/external/tcl-8.5.11.0
+if not exist tcl-8.6.1.0 (
+ rd /s/q tcltk tcltk64 tcl-8.5.11.0 tk-8.5.11.0
+ svn export http://svn.python.org/projects/external/tcl-8.6.1.0
)
-if not exist tk-8.5.11.0 svn export http://svn.python.org/projects/external/tk-8.5.11.0
+if not exist tk-8.6.1.0 svn export http://svn.python.org/projects/external/tk-8.6.1.0
@rem sqlite3
if not exist sqlite-3.8.1 (
diff --git a/Tools/buildbot/external.bat b/Tools/buildbot/external.bat
index 83b3861591a..c580a149705 100644
--- a/Tools/buildbot/external.bat
+++ b/Tools/buildbot/external.bat
@@ -4,18 +4,18 @@
call "Tools\buildbot\external-common.bat"
call "%VS100COMNTOOLS%\vsvars32.bat"
-if not exist tcltk\bin\tcl85g.dll (
+if not exist tcltk\bin\tcl86tg.dll (
@rem all and install need to be separate invocations, otherwise nmakehlp is not found on install
- cd tcl-8.5.11.0\win
+ cd tcl-8.6.1.0\win
nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk clean all
nmake -f makefile.vc DEBUG=1 INSTALLDIR=..\..\tcltk install
cd ..\..
)
-if not exist tcltk\bin\tk85g.dll (
- cd tk-8.5.11.0\win
- nmake -f makefile.vc OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.11.0 clean
- nmake -f makefile.vc OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.11.0 all
- nmake -f makefile.vc OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.5.11.0 install
+if not exist tcltk\bin\tk86tg.dll (
+ cd tk-8.6.1.0\win
+ nmake -f makefile.vc OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.6.1.0 clean
+ nmake -f makefile.vc OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.6.1.0 all
+ nmake -f makefile.vc OPTS=noxp DEBUG=1 INSTALLDIR=..\..\tcltk TCLDIR=..\..\tcl-8.6.1.0 install
cd ..\..
)