commit:     d665cc2c4191962079a90267c2ba0fca8083ddac
Author:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
AuthorDate: Thu Mar  5 16:15:08 2026 +0000
Commit:     Alfredo Tupone <tupone <AT> gentoo <DOT> org>
CommitDate: Thu Mar  5 16:15:08 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d665cc2c

dev-lang/tcl: add 9.0.3

Signed-off-by: Alfredo Tupone <tupone <AT> gentoo.org>

 dev-lang/tcl/Manifest                           |   1 +
 dev-lang/tcl/files/tcl-9.0.3-include-spec.patch |  12 +++
 dev-lang/tcl/files/tcl-9.0.3-multilib.patch     |  11 ++
 dev-lang/tcl/tcl-9.0.3.ebuild                   | 130 ++++++++++++++++++++++++
 profiles/package.mask                           |   5 +
 5 files changed, 159 insertions(+)

diff --git a/dev-lang/tcl/Manifest b/dev-lang/tcl/Manifest
index 1789820f14af..be0c963fcfc2 100644
--- a/dev-lang/tcl/Manifest
+++ b/dev-lang/tcl/Manifest
@@ -1,2 +1,3 @@
 DIST tcl-core8.6.16-src.tar.gz 7022932 BLAKE2B 
9a20cc72a2654c8b4f2c9088fabef13321c414d4cc1125afbb0151ae198c6e665a7f18ffa798fcf2ed0ae1160e586819b834d745c5dfbb2b2ed5dc6d0e022d4d
 SHA512 
b25de457523e1f884326db37acebc329d5f1a8ac2a2e0fbdfcefafc76de202ff8d1efe8ff687afa5da486c0a95ab4bde893aad6f70f0e570fa6911c5cf56d458
 DIST tcl-core8.6.17-src.tar.gz 7030881 BLAKE2B 
3120f53dfe238a750eface9b6f2c715432e8a640b65748c2ccafcebb0c8f4b9ee49d214fa708ea3cf17a7563e8a993a7b7fc1dbdde70055358e1c0d35a62efb4
 SHA512 
cc6ef374b4d005365d2453a1d25b22d9961631c8f4081ccdfba43c55901edd9f925d0ef66132b7d9d6c285445738028def243e727ecc5ffad94fb4851e5ae735
+DIST tcl-core9.0.3-src.tar.gz 7164480 BLAKE2B 
8aa9a38e9bb6f290dadf6f90a2aeede23ceb6c7df114c974c4d64ca0cfdc6db813d66e8b29df35f9985bafd7ee74ce4beb42fdeb39ba6bc9747395467eb38428
 SHA512 
9d2b8eee54e27ee9c7a951ac799ba1b08bc3cc11d957d65a1d78c3d42a234304ea09677e84af85e41dd9a32c91a77b82483805bf0a822288af1ab15e18c494d1

diff --git a/dev-lang/tcl/files/tcl-9.0.3-include-spec.patch 
b/dev-lang/tcl/files/tcl-9.0.3-include-spec.patch
new file mode 100644
index 000000000000..ab803b99974a
--- /dev/null
+++ b/dev-lang/tcl/files/tcl-9.0.3-include-spec.patch
@@ -0,0 +1,12 @@
+This resolves https://bugs.gentoo.org/731120
+--- a/unix/configure.ac
++++ b/unix/configure.ac
+@@ -895,7 +895,7 @@ TCL_BUILD_STUB_LIB_PATH="`pwd`/${TCL_STUB_LIB_FILE}"
+ TCL_STUB_LIB_PATH="${TCL_STUB_LIB_DIR}/${TCL_STUB_LIB_FILE}"
+ 
+ # Install time header dir can be set via --includedir
+-eval "TCL_INCLUDE_SPEC=\"-I${includedir}\""
++eval "TCL_INCLUDE_SPEC=\"\""
+ 
+ #------------------------------------------------------------------------
+ # tclConfig.sh refers to this by a different name

diff --git a/dev-lang/tcl/files/tcl-9.0.3-multilib.patch 
b/dev-lang/tcl/files/tcl-9.0.3-multilib.patch
new file mode 100644
index 000000000000..8dab3b4834c3
--- /dev/null
+++ b/dev-lang/tcl/files/tcl-9.0.3-multilib.patch
@@ -0,0 +1,11 @@
+--- a/unix/configure.ac        2020-12-26 10:39:12.107965844 +0100
++++ b/unix/configure.ac        2020-12-26 10:39:44.821378776 +0100
+@@ -773,7 +773,7 @@
+ 
+ eval "TCL_LIB_FILE=${TCL_LIB_FILE}"
+ 
+-test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)'
++test -z "$TCL_LIBRARY" && TCL_LIBRARY='$(libdir)/tcl$(VERSION)'
+ PRIVATE_INCLUDE_DIR='$(includedir)'
+ HTML_DIR='$(DISTDIR)/html'
+ 

diff --git a/dev-lang/tcl/tcl-9.0.3.ebuild b/dev-lang/tcl/tcl-9.0.3.ebuild
new file mode 100644
index 000000000000..3345f303aaab
--- /dev/null
+++ b/dev-lang/tcl/tcl-9.0.3.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with dev-lang/tk!
+
+inherit autotools flag-o-matic multilib-minimal multilib toolchain-funcs
+
+MY_P="${PN}${PV}"
+
+DESCRIPTION="Tool Command Language"
+HOMEPAGE="http://www.tcl.tk/";
+SRC_URI="https://downloads.sourceforge.net/tcl/${PN}-core${PV}-src.tar.gz";
+
+SPARENT="${WORKDIR}/${MY_P}"
+S="${SPARENT}"/unix
+
+LICENSE="tcltk Spencer-99"
+SLOT="0/8.6"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="debug"
+
+RDEPEND="virtual/zlib:=[${MULTILIB_USEDEP}]"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-9.0.3-multilib.patch
+       "${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971
+       "${FILESDIR}"/${PN}-9.0.3-include-spec.patch # Bug 731120
+)
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+       stat64 opendir64 rewinddir64 closedir64 # used to test for Large File 
Support
+)
+
+src_prepare() {
+       # Drop -Werror
+       sed -i \
+               -e "s: -Werror::g" \
+               dltest/Makefile.in \
+               || die
+
+       pushd "${SPARENT}" &>/dev/null || die
+
+       # By dropping part of the compat directory a lot of licensing and 
attribution burden
+       # (BSD-3,...) is lifted from the user
+       rm compat/fake-* || die
+       rm compat/{dlfcn.h,gettod.c,mkstemp.c,strncasecmp.c,waitpid.c} \
+               || die
+       rm doc/try.n || die
+
+       default
+       popd &>/dev/null || die
+
+       # httpold tests require network
+       rm ../tests/env.test \
+               ../tests/http.test \
+               || die
+
+       # workaround stack check issues, bug #280934
+       use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1"
+
+       tc-export CC
+
+       sed \
+               -e '/chmod/s:555:755:g' \
+               -i Makefile.in || die
+
+       sed \
+               -e 's:-O[2s]\?::g' \
+               -i tcl.m4 || die
+
+       eautoconf
+
+       multilib_copy_sources
+}
+
+multilib_src_configure() {
+       # We went ahead and deleted the whole compat/ subdir which means
+       # the configure tests to detect broken versions need to pass (else
+       # we'll fail to build).  This comes up when cross-compiling, but
+       # might as well get a minor configure speed up normally.
+       export ac_cv_func_memcmp_working="yes"
+       export tcl_cv_str{str,toul,tod}_unbroken="ok"
+       export tcl_cv_strtod_buggy="no"
+
+       econf \
+               $(use_enable debug symbols)
+}
+
+multilib_src_install() {
+       #short version number
+       local v1=$(ver_cut 1-2)
+       local mylibdir=$(get_libdir)
+
+       S= default
+       # fix the tclConfig.sh to eliminate refs to the build directory
+       # and drop unnecessary -L inclusion to default system libdir
+
+       sed \
+               -e "/^TCL_BUILD_LIB_SPEC=/s:-L$(pwd) *::g" \
+               -e "/^TCL_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
+               -e 
"/^TCL_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tcl${v1}/include:g" \
+               -e "/^TCL_BUILD_STUB_LIB_SPEC=/s:-L$(pwd) *::g" \
+               -e "/^TCL_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
+               -e 
"/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \
+               -e 
"/^TCL_LIBW_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g"
 \
+               -i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
+       if use prefix && [[ ${CHOST} != *-darwin* ]] ; then
+               sed \
+                       -e 
"/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
+                       -e 
"/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
+                       -i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
+       fi
+
+       # install private headers
+       insinto /usr/${mylibdir}/tcl${v1}/include/unix
+       doins *.h
+       insinto /usr/${mylibdir}/tcl${v1}/include/generic
+       doins "${SPARENT}"/generic/*.h
+       rm -f 
"${ED}"/usr/${mylibdir}/tcl${v1}/include/generic/{tcl,tclDecls,tclPlatDecls}.h 
|| die
+
+       # install symlink for libraries
+       dosym libtcl${v1}$(get_libname) /usr/${mylibdir}/libtcl$(get_libname)
+
+       if multilib_is_native_abi; then
+               dosym tclsh${v1} /usr/bin/tclsh
+       fi
+}

diff --git a/profiles/package.mask b/profiles/package.mask
index 34827e1e964d..dfd1733d31aa 100644
--- a/profiles/package.mask
+++ b/profiles/package.mask
@@ -36,6 +36,11 @@
 
 #--- END OF EXAMPLES ---
 
+# Alfredo Tupone <[email protected]> (2026-03-05)
+# Need more testing
+>=dev-lang/tcl-9
+>=dev-lang/tk-9
+
 # Michał Górny <[email protected]> (2026-02-28)
 # The test suite is broken since 1.16.0 (Nov 2025), and upstream did not
 # address the problem so far: https://github.com/pypa/hatch/issues/2123

Reply via email to