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
