[Buildroot] [PATCH v2] package/tcl: bump to version 9.0.3

Shubham Chakraborty <[email protected]>
Newsgroups net.busybox.buildroot
Message-ID <[email protected]>
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 <[email protected]>
---
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
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.