From df0671701ea2df8dbe6778b3aa08c5116b40df93 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 2 Jul 2026 06:56:30 -0400 Subject: [PATCH 1/3] Find{TCL,Tclsh,TclStub,Wish}: Remove outdated Windows registry searches Installers from "Scriptics" have not been available for many years. Issue: #27914 Reported-by: FeRD (Frank Dana) --- Modules/FindTCL.cmake | 12 ------------ Modules/FindTclStub.cmake | 6 ------ Modules/FindTclsh.cmake | 6 ------ Modules/FindWish.cmake | 6 ------ 4 files changed, 30 deletions(-) diff --git a/Modules/FindTCL.cmake b/Modules/FindTCL.cmake index d5931f3e07..2c6075b962 100644 --- a/Modules/FindTCL.cmake +++ b/Modules/FindTCL.cmake @@ -133,12 +133,6 @@ if(WIN32) NAME) set(TCLTK_POSSIBLE_LIB_PATHS ${TCLTK_POSSIBLE_LIB_PATHS} "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/lib" "$ENV{ProgramFiles}/Tcl/Lib" "C:/Program Files/Tcl/lib" "C:/Tcl/lib" @@ -227,12 +221,6 @@ set(TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES if(WIN32) set(TCLTK_POSSIBLE_INCLUDE_PATHS ${TCLTK_POSSIBLE_INCLUDE_PATHS} "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/include" "$ENV{ProgramFiles}/Tcl/include" "C:/Program Files/Tcl/include" "C:/Tcl/include" diff --git a/Modules/FindTclStub.cmake b/Modules/FindTclStub.cmake index cf57b9e392..1c7afbdfed 100644 --- a/Modules/FindTclStub.cmake +++ b/Modules/FindTclStub.cmake @@ -109,12 +109,6 @@ if(WIN32) NAME) set(TCLTK_POSSIBLE_LIB_PATHS ${TCLTK_POSSIBLE_LIB_PATHS} "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/lib" "$ENV{ProgramFiles}/Tcl/Lib" "C:/Program Files/Tcl/lib" "C:/Tcl/lib" diff --git a/Modules/FindTclsh.cmake b/Modules/FindTclsh.cmake index f57b8b2bf2..df868847b1 100644 --- a/Modules/FindTclsh.cmake +++ b/Modules/FindTclsh.cmake @@ -108,12 +108,6 @@ if(WIN32) NAME) set(TCLTK_POSSIBLE_BIN_PATHS ${TCLTK_POSSIBLE_BIN_PATHS} "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/bin" ) endif() diff --git a/Modules/FindWish.cmake b/Modules/FindWish.cmake index 7e9038f009..53fbf8b2d7 100644 --- a/Modules/FindWish.cmake +++ b/Modules/FindWish.cmake @@ -84,12 +84,6 @@ if(WIN32) NAME) set(TCLTK_POSSIBLE_BIN_PATHS ${TCLTK_POSSIBLE_BIN_PATHS} "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/bin" ) endif() From 7ab991f5b67c33005bbf017dea0f9727aa0b4ccf Mon Sep 17 00:00:00 2001 From: "FeRD (Frank Dana)" Date: Tue, 30 Jun 2026 19:39:02 -0400 Subject: [PATCH 2/3] Find{TCL,Tclsh,TclStub}: Remove matches for non-existent Tcl/Tk 8.7 Version 8.7 of Tcl/Tk never made it past alpha status. What was briefly labeled 8.7a5 eventually released as 9.0.0. And in FindTclStub, also remove patterns for ttkstub8.8, which even more than 8.7 never actually existed. --- Modules/FindTCL.cmake | 6 ------ Modules/FindTclStub.cmake | 4 ---- Modules/FindTclsh.cmake | 1 - 3 files changed, 11 deletions(-) diff --git a/Modules/FindTCL.cmake b/Modules/FindTCL.cmake index 2c6075b962..f38d97f923 100644 --- a/Modules/FindTCL.cmake +++ b/Modules/FindTCL.cmake @@ -116,8 +116,6 @@ set(TCLTK_POSSIBLE_LIB_PATHS ) set(TCLTK_POSSIBLE_LIB_PATH_SUFFIXES - lib/tcl/tcl8.7 - lib/tcl/tk8.7 lib/tcl/tcl8.6 lib/tcl/tk8.6 lib/tcl/tcl8.5 @@ -143,7 +141,6 @@ find_library(TCL_LIBRARY NAMES tcl tcl${TCL_LIBRARY_VERSION} tcl${TCL_TCLSH_VERSION} tcl${TK_WISH_VERSION} - tcl87 tcl8.7 tcl87t tcl8.7t tcl86 tcl8.6 tcl86t tcl8.6t tcl85 tcl8.5 tcl84 tcl8.4 @@ -158,7 +155,6 @@ find_library(TK_LIBRARY NAMES tk tk${TK_LIBRARY_VERSION} tk${TCL_TCLSH_VERSION} tk${TK_WISH_VERSION} - tk87 tk8.7 tk87t tk8.7t tk86 tk8.6 tk86t tk8.6t tk85 tk8.5 tk84 tk8.4 @@ -205,8 +201,6 @@ set(TCLTK_POSSIBLE_INCLUDE_PATHS set(TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES include/tcl${TK_LIBRARY_VERSION} include/tcl${TCL_LIBRARY_VERSION} - include/tcl8.7 - include/tk8.7 include/tcl8.6 include/tk8.6 include/tcl8.5 diff --git a/Modules/FindTclStub.cmake b/Modules/FindTclStub.cmake index 1c7afbdfed..ba017f4787 100644 --- a/Modules/FindTclStub.cmake +++ b/Modules/FindTclStub.cmake @@ -119,7 +119,6 @@ find_library(TCL_STUB_LIBRARY NAMES tclstub tclstub${TK_LIBRARY_VERSION} tclstub${TCL_TCLSH_VERSION} tclstub${TK_WISH_VERSION} - tclstub87 tclstub8.7 tclstub86 tclstub8.6 tclstub85 tclstub8.5 tclstub84 tclstub8.4 @@ -133,7 +132,6 @@ find_library(TK_STUB_LIBRARY NAMES tkstub tkstub${TCL_LIBRARY_VERSION} tkstub${TCL_TCLSH_VERSION} tkstub${TK_WISH_VERSION} - tkstub87 tkstub8.7 tkstub86 tkstub8.6 tkstub85 tkstub8.5 tkstub84 tkstub8.4 @@ -147,8 +145,6 @@ find_library(TTK_STUB_LIBRARY NAMES ttkstub ttkstub${TCL_LIBRARY_VERSION} ttkstub${TCL_TCLSH_VERSION} ttkstub${TK_WISH_VERSION} - ttkstub88 ttkstub8.8 - ttkstub87 ttkstub8.7 ttkstub86 ttkstub8.6 ttkstub85 ttkstub8.5 PATHS ${TCLTK_POSSIBLE_LIB_PATHS} diff --git a/Modules/FindTclsh.cmake b/Modules/FindTclsh.cmake index df868847b1..810c8696b0 100644 --- a/Modules/FindTclsh.cmake +++ b/Modules/FindTclsh.cmake @@ -114,7 +114,6 @@ endif() set(TCL_TCLSH_NAMES tclsh tclsh${TCL_LIBRARY_VERSION} tclsh${TK_LIBRARY_VERSION} tclsh${TK_WISH_VERSION} - tclsh87 tclsh8.7 tclsh86 tclsh8.6 tclsh85 tclsh8.5 tclsh84 tclsh8.4 From b4534a9b7ca52e0cd2f928eab9e3746407892319 Mon Sep 17 00:00:00 2001 From: "FeRD (Frank Dana)" Date: Tue, 30 Jun 2026 01:59:03 -0400 Subject: [PATCH 3/3] Find{TCL,Tclsh,TclStub,Wish}: Add support for Tcl/Tk 9.0 & 9.1 Tcl/Tk 9.0.0 was released[1] in 2024, and is already up to version 9.0.4 (just released 2026-07-26). Tcl/Tk 9.1 is currently nearing beta,[2] and will likely release soon. Since it's still possible to have both of these libraries installed without Tclsh or Wish (making version detection via those tools unviable), add 9.0 and 9.1 variants to the explicit library/include path and file matches performed by FindTCL. Also add 9.0 and 9.1 patterns to the tool detections in FindTclsh, FindTclStub, and FindWish. [1]: https://sourceforge.net/projects/tcl/files/Tcl/9.0.0/ [2]: https://sourceforge.net/projects/tcl/files/Tcl/9.1b0/ --- Modules/FindTCL.cmake | 12 ++++++++++++ Modules/FindTclStub.cmake | 6 ++++++ Modules/FindTclsh.cmake | 2 ++ Modules/FindWish.cmake | 2 ++ 4 files changed, 22 insertions(+) diff --git a/Modules/FindTCL.cmake b/Modules/FindTCL.cmake index f38d97f923..103a2317d6 100644 --- a/Modules/FindTCL.cmake +++ b/Modules/FindTCL.cmake @@ -116,6 +116,10 @@ set(TCLTK_POSSIBLE_LIB_PATHS ) set(TCLTK_POSSIBLE_LIB_PATH_SUFFIXES + lib/tcl/tcl9.1 + lib/tcl/tk9.1 + lib/tcl/tcl9.0 + lib/tcl/tk9.0 lib/tcl/tcl8.6 lib/tcl/tk8.6 lib/tcl/tcl8.5 @@ -141,6 +145,8 @@ find_library(TCL_LIBRARY NAMES tcl tcl${TCL_LIBRARY_VERSION} tcl${TCL_TCLSH_VERSION} tcl${TK_WISH_VERSION} + tcl91 tcl9.1 tcl91t tcl9.1t + tcl90 tcl9.0 tcl90t tcl9.0t tcl86 tcl8.6 tcl86t tcl8.6t tcl85 tcl8.5 tcl84 tcl8.4 @@ -155,6 +161,8 @@ find_library(TK_LIBRARY NAMES tk tk${TK_LIBRARY_VERSION} tk${TCL_TCLSH_VERSION} tk${TK_WISH_VERSION} + tk91 tk9.1 tk91t tk9.1t + tk90 tk9.0 tk90t tk9.0t tk86 tk8.6 tk86t tk8.6t tk85 tk8.5 tk84 tk8.4 @@ -201,6 +209,10 @@ set(TCLTK_POSSIBLE_INCLUDE_PATHS set(TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES include/tcl${TK_LIBRARY_VERSION} include/tcl${TCL_LIBRARY_VERSION} + include/tcl9.1 + include/tk9.1 + include/tcl9.0 + include/tk9.0 include/tcl8.6 include/tk8.6 include/tcl8.5 diff --git a/Modules/FindTclStub.cmake b/Modules/FindTclStub.cmake index ba017f4787..764e067f0b 100644 --- a/Modules/FindTclStub.cmake +++ b/Modules/FindTclStub.cmake @@ -119,6 +119,8 @@ find_library(TCL_STUB_LIBRARY NAMES tclstub tclstub${TK_LIBRARY_VERSION} tclstub${TCL_TCLSH_VERSION} tclstub${TK_WISH_VERSION} + tclstub91 tclstub9.1 + tclstub90 tclstub9.0 tclstub86 tclstub8.6 tclstub85 tclstub8.5 tclstub84 tclstub8.4 @@ -132,6 +134,8 @@ find_library(TK_STUB_LIBRARY NAMES tkstub tkstub${TCL_LIBRARY_VERSION} tkstub${TCL_TCLSH_VERSION} tkstub${TK_WISH_VERSION} + tkstub91 tkstub9.1 + tkstub90 tkstub9.0 tkstub86 tkstub8.6 tkstub85 tkstub8.5 tkstub84 tkstub8.4 @@ -145,6 +149,8 @@ find_library(TTK_STUB_LIBRARY NAMES ttkstub ttkstub${TCL_LIBRARY_VERSION} ttkstub${TCL_TCLSH_VERSION} ttkstub${TK_WISH_VERSION} + ttkstub91 ttkstub9.1 + ttkstub90 ttkstub9.0 ttkstub86 ttkstub8.6 ttkstub85 ttkstub8.5 PATHS ${TCLTK_POSSIBLE_LIB_PATHS} diff --git a/Modules/FindTclsh.cmake b/Modules/FindTclsh.cmake index 810c8696b0..2d9d0fb29b 100644 --- a/Modules/FindTclsh.cmake +++ b/Modules/FindTclsh.cmake @@ -114,6 +114,8 @@ endif() set(TCL_TCLSH_NAMES tclsh tclsh${TCL_LIBRARY_VERSION} tclsh${TK_LIBRARY_VERSION} tclsh${TK_WISH_VERSION} + tclsh91 tclsh9.1 + tclsh90 tclsh9.0 tclsh86 tclsh8.6 tclsh85 tclsh8.5 tclsh84 tclsh8.4 diff --git a/Modules/FindWish.cmake b/Modules/FindWish.cmake index 53fbf8b2d7..35d72cc130 100644 --- a/Modules/FindWish.cmake +++ b/Modules/FindWish.cmake @@ -90,6 +90,8 @@ endif() set(TK_WISH_NAMES wish wish${TCL_LIBRARY_VERSION} wish${TK_LIBRARY_VERSION} wish${TCL_TCLSH_VERSION} + wish91 wish9.1 + wish90 wish9.0 wish86 wish8.6 wish85 wish8.5 wish84 wish8.4