* [Buildroot] [PATCH] package/tcl: bump to version 9.0.3
@ 2026-05-03 8:12 Shubham Chakraborty
2026-05-31 6:11 ` Thomas Petazzoni via buildroot
2026-08-10 11:31 ` [Buildroot] [PATCH v2] " Shubham Chakraborty
0 siblings, 2 replies; 4+ messages in thread
From: Shubham Chakraborty @ 2026-05-03 8:12 UTC (permalink / raw)
To: buildroot; +Cc: Shubham Chakraborty
Major version upgrade from 8.6 to 9.0 series.
Key changes in Tcl 9.0:
- Full Unicode support (UTF-16/UTF-32/UCS-2 encodings)
- 64-bit integer support
- Enhanced encoding with -profile/-failindex options
- Script library packaged with binary
- Improved virtual filesystem support
Also remove bundled itcl and thread packages to reduce bloat.
https://www.tcl-lang.org/software/tcltk/9.0.html
Tested Using:
- tils/test-pkg -n 13 -p tcl
Signed-off-by: Shubham Chakraborty <chakrabortyshubham66@gmail.com>
---
package/tcl/tcl.hash | 2 +-
package/tcl/tcl.mk | 12 +++++++-----
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/package/tcl/tcl.hash b/package/tcl/tcl.hash
index d67a7c4e74..b5f401e83d 100644
--- a/package/tcl/tcl.hash
+++ b/package/tcl/tcl.hash
@@ -1,3 +1,3 @@
# Locally calculated
-sha256 861e159753f2e2fbd6ec1484103715b0be56be3357522b858d3cbb5f893ffef1 tcl8.6.15-src.tar.gz
+sha256 2537ba0c86112c8c953f7c09d33f134dd45c0fb3a71f2d7f7691fd301d2c33a6 tcl9.0.3-src.tar.gz
sha256 c0a69a2bfd757361ec7e6143973b103c90409316b49e9c88db26ad6388e79f16 license.terms
diff --git a/package/tcl/tcl.mk b/package/tcl/tcl.mk
index 0cd242a2e9..4a34f71693 100644
--- a/package/tcl/tcl.mk
+++ b/package/tcl/tcl.mk
@@ -4,8 +4,8 @@
#
################################################################################
-TCL_VERSION_MAJOR = 8.6
-TCL_VERSION = $(TCL_VERSION_MAJOR).15
+TCL_VERSION_MAJOR = 9.0
+TCL_VERSION = $(TCL_VERSION_MAJOR).3
TCL_SOURCE = tcl$(TCL_VERSION)-src.tar.gz
TCL_SITE = http://downloads.sourceforge.net/project/tcl/Tcl/$(TCL_VERSION)
TCL_LICENSE = TCL
@@ -28,17 +28,19 @@ HOST_TCL_CONF_OPTS = \
# I haven't found a good way to force pkgs to not build
# or configure without just removing the entire pkg directory.
define HOST_TCL_REMOVE_PACKAGES
- rm -fr $(@D)/pkgs/sqlite3* $(@D)/pkgs/tdbc*
+ rm -fr $(@D)/pkgs/itcl* $(@D)/pkgs/sqlite3* $(@D)/pkgs/tdbc* $(@D)/pkgs/thread*
endef
HOST_TCL_PRE_CONFIGURE_HOOKS += HOST_TCL_REMOVE_PACKAGES
# We remove the bundled sqlite as we prefer to not use bundled stuff at all.
define TCL_REMOVE_PACKAGES
- rm -fr $(@D)/pkgs/sqlite3* \
+ rm -fr $(@D)/pkgs/itcl* \
+ $(@D)/pkgs/sqlite3* \
$(if $(BR2_PACKAGE_MARIADB),,$(@D)/pkgs/tdbcmysql*) \
$(@D)/pkgs/tdbcodbc* \
$(if $(BR2_PACKAGE_POSTGRESQL),,$(@D)/pkgs/tdbcpostgres*) \
- $(if $(BR2_PACKAGE_SQLITE),,$(@D)/pkgs/tdbcsqlite3*)
+ $(if $(BR2_PACKAGE_SQLITE),,$(@D)/pkgs/tdbcsqlite3*) \
+ $(@D)/pkgs/thread*
endef
TCL_PRE_CONFIGURE_HOOKS += TCL_REMOVE_PACKAGES
--
2.54.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH] package/tcl: bump to version 9.0.3
2026-05-03 8:12 [Buildroot] [PATCH] package/tcl: bump to version 9.0.3 Shubham Chakraborty
@ 2026-05-31 6:11 ` Thomas Petazzoni via buildroot
2026-08-10 11:31 ` [Buildroot] [PATCH v2] " Shubham Chakraborty
1 sibling, 0 replies; 4+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-05-31 6:11 UTC (permalink / raw)
To: Shubham Chakraborty; +Cc: buildroot
On Sun, May 03, 2026 at 01:42:03PM +0530, Shubham Chakraborty wrote:
> Major version upgrade from 8.6 to 9.0 series.
>
> Key changes in Tcl 9.0:
> - Full Unicode support (UTF-16/UTF-32/UCS-2 encodings)
> - 64-bit integer support
> - Enhanced encoding with -profile/-failindex options
> - Script library packaged with binary
> - Improved virtual filesystem support
Where is this list of key changes coming from? It doesn't match with
what is at https://www.tcl-lang.org/software/tcltk/9.0.html. Is this
just AI-generated slop?
> Also remove bundled itcl and thread packages to reduce bloat.
And this will not break existing users? Is it because those packages
are new?
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH v2] package/tcl: bump to version 9.0.3
2026-05-03 8:12 [Buildroot] [PATCH] package/tcl: bump to version 9.0.3 Shubham Chakraborty
2026-05-31 6:11 ` Thomas Petazzoni via buildroot
@ 2026-08-10 11:31 ` Shubham Chakraborty
2026-08-24 20:24 ` Thomas Petazzoni via buildroot
1 sibling, 1 reply; 4+ messages in thread
From: Shubham Chakraborty @ 2026-08-10 11:31 UTC (permalink / raw)
To: buildroot; +Cc: Shubham Chakraborty
Bump the version of tcl to 9.0.3. This is a major version upgrade
from 8.6 to 9.0 series.
Notable changes in Tcl 9.0 include:
- 64-bit Capacity: Data values larger than 2Gb
- Unicode and Encodings: full codepoint range, added encodings,
encoding profiles to govern I/O, and more.
- Zip Filesystems: mount zipfiles as filesystems
- Attached Archives: enable starkit-style deployment of apps,
with support data in filesystem archives attached to executable
or libraries. Build tclsh and wish this way.
- New Notifiers: The central event handling engine in Tcl is now
constructed on top of the system calls epoll or kqueue when they
are available. The select based implementation also remains for
platforms where they are not.
Build / Cross-compilation fixes for Tcl 9.0 ZipFS:
- In Tcl 9.0, Zip virtual filesystems (ZipFS) are built into the core
package and bundled packages (itcl, thread). Generating these zip
archives during cross-compilation requires running a native tclsh.
- Add host-tcl to TCL_DEPENDENCIES and add a HOST_TCL_SYMLINK_TCLSH
hook so $(HOST_DIR)/bin/tclsh is available.
- Pass TCLSH and TCLSH_PROG explicitly in TCL_MAKE_OPTS pointing to
$(HOST_DIR)/bin/tclsh$(TCL_VERSION_MAJOR) to ensure sub-Makefiles
use the native host interpreter without inheriting target
LD_LIBRARY_PATH settings.
Note on bundled packages:
Unlike v1, we do not remove the bundled itcl (Incr Tcl) and thread
packages. These packages were already present in 8.6 and built by
default. Removing them in Tcl 9.0 would break compatibility for existing
runtime scripts relying on them (Buildroot has no standalone packages for
them).
More Details & Changelogs:
- https://www.tcl-lang.org/software/tcltk/9.0.html
Tested using:
utils/test-pkg -a -c /tmp/tcl.config -p tcl
(Result: 32 builds, 4 skipped, 0 build failed)
Signed-off-by: Shubham Chakraborty <chakrabortyshubham66@gmail.com>
---
Changes v1 -> v2:
- Reverted removal of bundled 'itcl' and 'thread' packages to prevent
breaking runtime scripts relying on them.
- Rewrote commit message highlights to accurately match official Tcl 9.0
release notes at https://www.tcl-lang.org/software/tcltk/9.0.html.
- Added explicit note on bundled packages rationale in commit body.
- Added host-tcl dependency and host tclsh symlink to fix ZipFS build
failures during cross-compilation.
- Overrode TCLSH and TCLSH_PROG in TCL_MAKE_OPTS to prevent
LD_LIBRARY_PATH pollution during cross-compilation.
- Ran full 32-toolchain test matrix via test-pkg -a (28 builds OK, 4 skipped, 0 failed).
---
package/tcl/tcl.hash | 2 +-
package/tcl/tcl.mk | 14 ++++++++++++--
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/package/tcl/tcl.hash b/package/tcl/tcl.hash
index d67a7c4e74..b5f401e83d 100644
--- a/package/tcl/tcl.hash
+++ b/package/tcl/tcl.hash
@@ -1,3 +1,3 @@
# Locally calculated
-sha256 861e159753f2e2fbd6ec1484103715b0be56be3357522b858d3cbb5f893ffef1 tcl8.6.15-src.tar.gz
+sha256 2537ba0c86112c8c953f7c09d33f134dd45c0fb3a71f2d7f7691fd301d2c33a6 tcl9.0.3-src.tar.gz
sha256 c0a69a2bfd757361ec7e6143973b103c90409316b49e9c88db26ad6388e79f16 license.terms
diff --git a/package/tcl/tcl.mk b/package/tcl/tcl.mk
index 0cd242a2e9..9f50985263 100644
--- a/package/tcl/tcl.mk
+++ b/package/tcl/tcl.mk
@@ -4,8 +4,8 @@
#
################################################################################
-TCL_VERSION_MAJOR = 8.6
-TCL_VERSION = $(TCL_VERSION_MAJOR).15
+TCL_VERSION_MAJOR = 9.0
+TCL_VERSION = $(TCL_VERSION_MAJOR).3
TCL_SOURCE = tcl$(TCL_VERSION)-src.tar.gz
TCL_SITE = http://downloads.sourceforge.net/project/tcl/Tcl/$(TCL_VERSION)
TCL_LICENSE = TCL
@@ -73,9 +73,19 @@ define TCL_REMOVE_EXTRA
endef
TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_EXTRA
+define HOST_TCL_SYMLINK_TCLSH
+ ln -sf tclsh$(TCL_VERSION_MAJOR) $(HOST_DIR)/bin/tclsh
+endef
+HOST_TCL_POST_INSTALL_HOOKS += HOST_TCL_SYMLINK_TCLSH
+
+TCL_MAKE_OPTS = \
+ TCLSH="$(HOST_DIR)/bin/tclsh$(TCL_VERSION_MAJOR)" \
+ TCLSH_PROG="$(HOST_DIR)/bin/tclsh$(TCL_VERSION_MAJOR)"
+
TCL_DEPENDENCIES = $(if $(BR2_PACKAGE_SQLITE),sqlite) \
$(if $(BR2_PACKAGE_MARIADB),mariadb) \
$(if $(BR2_PACKAGE_POSTGRESQL),postgresql) \
+ host-tcl \
zlib
$(eval $(autotools-package))
--
2.55.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH v2] package/tcl: bump to version 9.0.3
2026-08-10 11:31 ` [Buildroot] [PATCH v2] " Shubham Chakraborty
@ 2026-08-24 20:24 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-08-24 20:24 UTC (permalink / raw)
To: Shubham Chakraborty; +Cc: buildroot
Hello,
On Mon, Aug 10, 2026 at 05:01:52PM +0530, Shubham Chakraborty wrote:
> -TCL_VERSION_MAJOR = 8.6
> -TCL_VERSION = $(TCL_VERSION_MAJOR).15
> +TCL_VERSION_MAJOR = 9.0
> +TCL_VERSION = $(TCL_VERSION_MAJOR).3
> TCL_SOURCE = tcl$(TCL_VERSION)-src.tar.gz
> TCL_SITE = http://downloads.sourceforge.net/project/tcl/Tcl/$(TCL_VERSION)
> TCL_LICENSE = TCL
> @@ -73,9 +73,19 @@ define TCL_REMOVE_EXTRA
> endef
> TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_EXTRA
>
> +define HOST_TCL_SYMLINK_TCLSH
> + ln -sf tclsh$(TCL_VERSION_MAJOR) $(HOST_DIR)/bin/tclsh
> +endef
> +HOST_TCL_POST_INSTALL_HOOKS += HOST_TCL_SYMLINK_TCLSH
Are you sure you need to symlink, since...
> +
> +TCL_MAKE_OPTS = \
> + TCLSH="$(HOST_DIR)/bin/tclsh$(TCL_VERSION_MAJOR)" \
> + TCLSH_PROG="$(HOST_DIR)/bin/tclsh$(TCL_VERSION_MAJOR)"
... you're passing the full path to
$(HOST_DIR)/bin/tclsh$(TCL_VERSION_MAJOR) here?
From my quick experiment, it seems like the symlink is not needed.
Also, could you verify that both TCLSH= and TCLSH_PROG= are needed?
> +
> TCL_DEPENDENCIES = $(if $(BR2_PACKAGE_SQLITE),sqlite) \
> $(if $(BR2_PACKAGE_MARIADB),mariadb) \
> $(if $(BR2_PACKAGE_POSTGRESQL),postgresql) \
> + host-tcl \
> zlib
With your patch:
- host-tcl fails to build because <zlib.h> is not found. Seems like
host-zlib is now needed as a dependency of host-tcl. Make sure to
build in a minimal Docker container to figure out this kind of
issue. You can trivially do that in Buildroot: "./utils/docker-run
make".
- tcllib fails to build, because version 1.21 is not designed to work
with Tcl 9.0, you need to bump tcllib to 2.0 apparently.
Could you look into these different issues, and get back to us with an
updated patch?
Thanks a lot!
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-08-24 20:24 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-03 8:12 [Buildroot] [PATCH] package/tcl: bump to version 9.0.3 Shubham Chakraborty
2026-05-31 6:11 ` Thomas Petazzoni via buildroot
2026-08-10 11:31 ` [Buildroot] [PATCH v2] " Shubham Chakraborty
2026-08-24 20:24 ` Thomas Petazzoni via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox