diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-04 16:47:34 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-04 16:47:34 -0500 |
| commit | dda948891d3731927b821ce31f9d9a2d03ba20c5 (patch) | |
| tree | 99cd40be4cbb0606260da212cd81b8ab2db9da9b /dev-tcltk | |
| parent | a3ceca1b4c0d9bdb550dc23f06ffbb5a8e033bc7 (diff) | |
| download | baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.tar.gz baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.tar.xz baldeagleos-repo-dda948891d3731927b821ce31f9d9a2d03ba20c5.zip | |
Adding metadata
Diffstat (limited to 'dev-tcltk')
191 files changed, 8442 insertions, 0 deletions
diff --git a/dev-tcltk/blt/Manifest b/dev-tcltk/blt/Manifest new file mode 100644 index 000000000000..e2b8df26e322 --- /dev/null +++ b/dev-tcltk/blt/Manifest @@ -0,0 +1,2 @@ +DIST blt-2.5.3-debian-patches.tar.gz 52252 BLAKE2B 700a2df32117ea84f9e211e18bda0d64163d24b633b0c5735808da6f3c5f32b73a69e9f1af548cca7eea4538c2aae57a87d82b2f61673e49709ac30dc036e38a SHA512 3da7831c3c8a7847e004cfb81e911883eb29f565e63f3b7ed47719ccba0a0cb593c0dbb77ff22262d5f8c4a3cb94cc074fd9c02f37729fe7763533be6677a852 +DIST blt-src-2.5.3.zip 2724036 BLAKE2B c669bc033e691d1717b6b6dccf42901fed26f58bb4d2e9fffdd4e7f83eae788e1cbdb8fd1bcdc860845a569232ec26d06773146a420984d8abf5d25ee7f73dd9 SHA512 f589564cc5f790ab11ac1356b2e27659ef0e6132ffde42d4325f0aa8d8aa4269fdb9e81dd1c196017518704e4c1c78c0d4116f32afd1e6a1c60878961b8cdb26 diff --git a/dev-tcltk/blt/blt-2.5.3-r4.ebuild b/dev-tcltk/blt/blt-2.5.3-r4.ebuild new file mode 100644 index 000000000000..9d1b9133561c --- /dev/null +++ b/dev-tcltk/blt/blt-2.5.3-r4.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MYP=${PN}$(ver_cut 1-2) +SHVER=$(ver_rs 1 '' $(ver_cut 1-2)) + +inherit autotools flag-o-matic multilib toolchain-funcs + +DESCRIPTION="Extension to Tk, adding new widgets, geometry managers, and misc commands" +HOMEPAGE="https://sourceforge.net/projects/wize/" +SRC_URI="https://downloads.sourceforge.net/wize/${PN}-src-${PV}.zip + https://dev.gentoo.org/~tupone/distfiles/${P}-debian-patches.tar.gz" + +S="${WORKDIR}"/${MYP} + +LICENSE="BSD" +SLOT="0/${SHVER}" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris" +IUSE="jpeg static-libs" + +DEPEND=" + <dev-lang/tcl-9:= + <dev-lang/tk-9:= + jpeg? ( media-libs/libjpeg-turbo:0= ) + x11-libs/libX11" +RDEPEND="${DEPEND}" +BDEPEND="app-arch/unzip" + +MAKEOPTS+=" -j1" + +PATCHES=( + "${WORKDIR}"/patches/02-debian-all.patch + "${WORKDIR}"/patches/03-fedora-patch-2.patch + "${WORKDIR}"/patches/04-fedora-tk8.5.6.patch + "${WORKDIR}"/patches/05-tk8.5-zoomstack.patch + "${WORKDIR}"/patches/doc-typos.patch + "${WORKDIR}"/patches/tcl8.6.patch + "${WORKDIR}"/patches/tk8.6.patch + "${WORKDIR}"/patches/install.patch + "${WORKDIR}"/patches/usetclint.patch + "${WORKDIR}"/patches/usetkint.patch + "${WORKDIR}"/patches/table.patch + "${WORKDIR}"/patches/ldflags.patch + "${WORKDIR}"/patches/pkgindex.patch + "${WORKDIR}"/patches/decls.patch + "${WORKDIR}"/patches/bltnsutil.patch + "${WORKDIR}"/patches/blthash.patch + "${WORKDIR}"/patches/const.patch + "${WORKDIR}"/patches/uninitialized.patch + "${WORKDIR}"/patches/unused.patch + "${WORKDIR}"/patches/pointertoint.patch + "${WORKDIR}"/patches/autoreconf.patch + "${WORKDIR}"/patches/switch.patch + "${FILESDIR}"/${P}-gentoo.patch + "${FILESDIR}"/${P}-darwin.patch + "${FILESDIR}"/${P}-gbsd.patch + "${FILESDIR}"/${P}-lto.patch + "${FILESDIR}"/${P}-parallelMake.patch +) + +src_prepare() { + default + rm acconfig.h || die + # Set the correct libdir and drop RPATH + sed \ + -e "s:\(^libdir=\${exec_prefix}/\)lib:\1$(get_libdir):" \ + -e 's:LD_RUN_PATH=.*$:LD_RUN_PATH="":g' \ + -i configure.in || die "sed configure* failed" + sed \ + -e "/^scriptdir =/s:lib:$(get_libdir):" \ + -i Makefile.in demos/Makefile.in || die "sed Makefile.in failed" + + sed \ + -e "/AR/s:ar:$(tc-getAR):g" \ + -e 's:0444:0644:g' \ + -i generic/Makefile.in || die + + append-cflags -fPIC + + mv configure.{in,ac} || die + eautoreconf +} + +src_configure() { + # bug #943722 + append-cflags -std=gnu17 + + LC_ALL=C \ + econf \ + --x-includes="${EPREFIX}/usr/include" \ + --x-libraries="${EPREFIX}/usr/$(get_libdir)" \ + --with-blt="${EPREFIX}/usr/$(get_libdir)" \ + --with-tcl="${EPREFIX}/usr/$(get_libdir)" \ + --with-tk="${EPREFIX}/usr/$(get_libdir)" \ + --with-tclincls="${EPREFIX}/usr/include" \ + --with-tkincls="${EPREFIX}/usr/include" \ + --with-tcllibs="${EPREFIX}/usr/$(get_libdir)" \ + --with-tklibs="${EPREFIX}/usr/$(get_libdir)" \ + --with-cflags="${CFLAGS}" \ + --with-gnu-ld \ + $(use_enable jpeg) \ + --with-x \ + CC="$(tc-getCC)" +} + +src_compile() { + emake -j1 LDFLAGS="${LDFLAGS}" +} + +src_install() { + sed \ + -e "s:\.\./src/bltwish:${EPREFIX}/usr/bin/bltwish:g" \ + -e "s:\.\./bltwish:${EPREFIX}/usr/bin/bltwish:g" \ + -e "s:/usr/local/bin/bltwish:${EPREFIX}/usr/bin/bltwish:g" \ + -e "s:/usr/local/bin/tclsh:${EPREFIX}/usr/bin/tclsh:g" \ + -i demos/{,scripts/}*.tcl || die + + dodir \ + /usr/bin \ + /usr/$(get_libdir)/${MYP}/demos/bitmaps \ + /usr/share/man/mann \ + /usr/include + + emake -j1 INSTALL_ROOT="${D}" install + + dodoc NEWS PROBLEMS README + docinto html + dodoc html/*.html + pushd "${ED}"/usr/share/man/mann + for f in * ; do + mv ${f} ${f/.n/.nblt} || die + done + popd + + # fix for linking against shared lib with -lBLT or -lBLTlite + dosym libBLT${SHVER}$(get_libname) /usr/$(get_libdir)/libBLT$(get_libname) + dosym libBLTlite${SHVER}$(get_libname) /usr/$(get_libdir)/libBLTlite$(get_libname) + + use static-libs || \ + find "${ED}"/usr/$(get_libdir) -name "*.a" -print0 | \ + xargs -r -0 rm -fv +} + +pkg_preinst() { + # Fix 'symlink is blocked by a directory' Bug #907270 + rm -rf "${EROOT}"/usr/$(get_libdir)/${MYP}/demos/bitmaps/hand + rm -rf "${EROOT}"/usr/$(get_libdir)/${MYP}/demos/bitmaps/hand.backup.* + rm -rf "${EROOT}"/usr/$(get_libdir)/${MYP}/demos/bitmaps/fish + rm -rf "${EROOT}"/usr/$(get_libdir)/${MYP}/demos/bitmaps/fish.backup.* + rm -rf "${EROOT}"/usr/$(get_libdir)/${MYP}/demos/images + rm -rf "${EROOT}"/usr/$(get_libdir)/${MYP}/demos/images.backup.* + rm -rf "${EROOT}"/usr/$(get_libdir)/${MYP}/demos/scripts + rm -rf "${EROOT}"/usr/$(get_libdir)/${MYP}/demos/scripts.backup.* +} diff --git a/dev-tcltk/blt/files/blt-2.5.3-darwin.patch b/dev-tcltk/blt/files/blt-2.5.3-darwin.patch new file mode 100644 index 000000000000..11524c2e74dd --- /dev/null +++ b/dev-tcltk/blt/files/blt-2.5.3-darwin.patch @@ -0,0 +1,36 @@ +--- a/configure.in ++++ b/configure.in +@@ -183,9 +183,6 @@ + blt_lib_prefix="" + fi + ;; +- *-*-macosx) +- blt_platform="macosx" +- ;; + *) + blt_platform="unix" + ;; +@@ -728,6 +725,9 @@ + *-hpux*) + SHLIB_SUFFIX="sl" + ;; ++ *-darwin*) ++ SHLIB_SUFFIX="dylib" ++ ;; + *) + SHLIB_SUFFIX="so" + ;; +@@ -1145,6 +1145,13 @@ + LDFLAGS="" + ;; + ++ *-darwin*) ++ SHLIB_CFLAGS="" ++ SHLIB_LD="${CC}" ++ SHLIB_LD_FLAGS='-dynamiclib -install_name $(libdir)/$@' ++ SHLIB_SUFFIX=".dylib" ++ ;; ++ + *-dgux*) + SHLIB_CFLAGS="-K PIC" + SHLIB_LD="cc" diff --git a/dev-tcltk/blt/files/blt-2.5.3-gbsd.patch b/dev-tcltk/blt/files/blt-2.5.3-gbsd.patch new file mode 100644 index 000000000000..4449ad374468 --- /dev/null +++ b/dev-tcltk/blt/files/blt-2.5.3-gbsd.patch @@ -0,0 +1,24 @@ +--- a/configure.in 2012-05-06 18:11:47.000000000 -0400 ++++ b/configure.in 2012-05-06 18:15:08.000000000 -0400 +@@ -708,7 +708,7 @@ + fi + + case $target in +- *-sunos4*|*-*-netbsd|NetBSD-*|FreeBSD-*|OpenBSD-*|*-*-cygwin*|*-*-mingw*) ++ *-sunos4*|*-*-netbsd|NetBSD-*|FreeBSD-*|*-*-freebsd*|OpenBSD-*|*-*-cygwin*|*-*-mingw*) + TCL_LIB_NAME="tcl${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}" + TK_LIB_NAME="tk${TK_MAJOR_VERSION}${TK_MINOR_VERSION}" + ;; +@@ -1241,6 +1241,12 @@ + EXTRA_LIB_SPECS="-ldl" + ;; + ++ *-gentoo-netbsd*|*-gentoo-freebsd*|*-gentoo-openbsd*) ++ SHLIB_CFLAGS="-fPIC" ++ SHLIB_LD="${CC}" ++ SHLIB_LD_FLAGS='-rdynamic -shared -Wl,-E -Wl,-soname,$@' ++ ;; ++ + *-netbsd*|*-freebsd*|*-openbsd*) + # Not available on all versions: check for include file. + AC_CHECK_HEADER(dlfcn.h, test_ok=yes, test_ok=no) diff --git a/dev-tcltk/blt/files/blt-2.5.3-gentoo.patch b/dev-tcltk/blt/files/blt-2.5.3-gentoo.patch new file mode 100644 index 000000000000..3372b83a733b --- /dev/null +++ b/dev-tcltk/blt/files/blt-2.5.3-gentoo.patch @@ -0,0 +1,45 @@ +--- a/configure.in 2021-01-03 20:59:43.337589407 +0100 ++++ b/configure.in 2021-01-03 21:00:48.936539537 +0100 +@@ -56,10 +56,6 @@ + blt_enable_jpeg=$enableval ]) + AC_ARG_ENABLE(cygwin, [ --enable-cygwin Use cygwin Tcl/Tk libraries. Requires cygwin1.dll], [ + blt_enable_cygwin=$enableval ]) +-AC_ARG_WITH(cc, [ --with-cc=CC Set C compiler to CC], [ +- blt_with_cc=$with_cc +- unset ac_cv_prog_CC +- unset ac_cv_prog_CPP ]) + AC_ARG_WITH(cflags, [ --with-cflags=FLAGS Set compiler flags to FLAGS], + blt_with_cflags="$with_cflags") + AC_ARG_WITH(gnu_ld, [ --with-gnu-ld Use GNU linker], +@@ -96,22 +92,7 @@ + # + + AC_MSG_CHECKING([which C compiler]) +-if test "x${blt_with_cc}" != "x" ; then +- CC=${blt_with_cc} +- unset ac_cv_prog_CPP +- unset ac_cv_prog_CC +-elif test "x${BLT_ENV_CC}" != "x" ; then +- unset ac_cv_prog_CPP +- unset ac_cv_prog_CC +-elif test "x${blt_cv_prog_cc}" != "x" ; then +- CC=${blt_cv_prog_cc} +- unset ac_cv_prog_CC +-else +- AC_PROG_CC +-fi +-if test "x${CC}" = "x" ; then +- CC=cc +-fi ++AC_PROG_CC + + case $target in + *-*-cygwin*|*-*-mingw*) +@@ -125,7 +106,6 @@ + + unset blt_cv_prog_cc + AC_CACHE_VAL(blt_cv_prog_cc, blt_cv_prog_cc=$CC) +-AC_SUBST(CC) + AC_PROG_CPP + AS_IF([test "x${GCC}" != "x"],[ + blt_have_gcc="yes" diff --git a/dev-tcltk/blt/files/blt-2.5.3-lto.patch b/dev-tcltk/blt/files/blt-2.5.3-lto.patch new file mode 100644 index 000000000000..9d1543aae9e9 --- /dev/null +++ b/dev-tcltk/blt/files/blt-2.5.3-lto.patch @@ -0,0 +1,18 @@ +--- a/generic/bltObjConfig.c 2022-08-04 10:42:54.705864029 +0200 ++++ b/generic/bltObjConfig.c 2022-08-04 10:44:02.681005365 +0200 +@@ -1803,11 +1803,11 @@ + fprintf(stderr, "Blt_ConfigTypes changed\n"); + } + if (stype == BLT_CONFIG_CUSTOM) { +- extern Blt_CustomOption bltDistanceOption; +- extern Blt_CustomOption bltPositiveDistanceOption; ++ extern Tk_CustomOption bltDistanceOption; ++ extern Tk_CustomOption bltPositiveDistanceOption; + +- if (specPtr->customPtr == &bltDistanceOption || +- specPtr->customPtr == &bltPositiveDistanceOption ++ if (specPtr->customPtr == (Blt_CustomOption *)&bltDistanceOption || ++ specPtr->customPtr == (Blt_CustomOption *)&bltPositiveDistanceOption + ) { + stype = BLT_CONFIG_PIXELS; + } diff --git a/dev-tcltk/blt/files/blt-2.5.3-parallelMake.patch b/dev-tcltk/blt/files/blt-2.5.3-parallelMake.patch new file mode 100644 index 000000000000..81221ed6b7f4 --- /dev/null +++ b/dev-tcltk/blt/files/blt-2.5.3-parallelMake.patch @@ -0,0 +1,23 @@ +--- a/man/Makefile.in 2023-01-15 13:10:49.541445995 +0100 ++++ b/man/Makefile.in 2023-01-15 13:11:44.483619553 +0100 +@@ -34,7 +34,8 @@ + + all: man.macros $(MANPAGES) + +-install: mkdirs install-mann install-man3 ++install: mkdirs ++ $(MAKE) install-mann install-man3 + + install-mann: $(MAN_N) + for i in *.n ; do \ +--- a/demos/Makefile.in 2023-04-14 18:50:47.196822925 +0200 ++++ b/demos/Makefile.in 2023-04-14 18:50:54.448710445 +0200 +@@ -47,7 +47,7 @@ + + all: + +-install: mkdirs install-bitmaps install-images install-scripts ++install: install-bitmaps install-images install-scripts + + install-scripts: + for i in $(srcdir)/scripts/*.tcl ; do \ diff --git a/dev-tcltk/blt/metadata.xml b/dev-tcltk/blt/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/blt/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/bwidget/Manifest b/dev-tcltk/bwidget/Manifest new file mode 100644 index 000000000000..9b4058ab3644 --- /dev/null +++ b/dev-tcltk/bwidget/Manifest @@ -0,0 +1 @@ +DIST bwidget-1.10.1.tar.gz 254211 BLAKE2B c45a8c15621aa683547a6eefe1ed1f85ea1493eb2e8a2c5f7ed5ea323d9b783f302da336423919273689c2bd29057fa3184605eeab92aadc2b97c6d7faa61e50 SHA512 6fcbf22a57e17f1072850b7b0388e73741fcf27438f951ba4704b65286e7a60b91593fad4f5120217a6546b5b4dfd1540a35eda97b64d179c6fcfa589f51bb0e diff --git a/dev-tcltk/bwidget/bwidget-1.10.1.ebuild b/dev-tcltk/bwidget/bwidget-1.10.1.ebuild new file mode 100644 index 000000000000..83cc618de9c8 --- /dev/null +++ b/dev-tcltk/bwidget/bwidget-1.10.1.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit virtualx + +DESCRIPTION="High-level widget set for Tcl/Tk" +HOMEPAGE="http://tcllib.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/tcllib/BWidget/${PV}/${P}.tar.gz" + +LICENSE="tcltk" +SLOT="0" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~sparc x86" +IUSE="doc" +RESTRICT="!test? ( test )" + +DEPEND="dev-lang/tk:0" +RDEPEND="${DEPEND}" +BDEPEND="app-arch/unzip" + +PATCHES=( + "${FILESDIR}"/${PN}-1.9.8-test.patch + "${FILESDIR}"/${P}-tcl9.patch +) + +src_test() { + TCLLIBPATH=${S} virtx tclsh tests/entry.test | tee test.out + grep -q "Failed\s\+0$" test.out || die +} + +src_install() { + insinto /usr/$(get_libdir)/${P} + doins *.tcl + doins -r images lang + + dodoc -r demo + dodoc ChangeLog README.txt + + docinto html + use doc && dodoc -r BWman/* +} diff --git a/dev-tcltk/bwidget/files/bwidget-1.10.1-tcl9.patch b/dev-tcltk/bwidget/files/bwidget-1.10.1-tcl9.patch new file mode 100644 index 000000000000..b3a481414836 --- /dev/null +++ b/dev-tcltk/bwidget/files/bwidget-1.10.1-tcl9.patch @@ -0,0 +1,30 @@ +--- a/tests/entry.test 2026-03-06 11:01:27.368490500 +0100 ++++ b/tests/entry.test 2026-03-06 11:34:18.284747899 +0100 +@@ -14,6 +14,9 @@ + pack .e + update + set i 0 ++# Check if we are running Tk 9.0 or higher ++set isTk9 [expr {[package vcompare [package provide Tk] 9.0] >= 0}] ++ + foreach test { + {-background #ff0000 #ff0000 non-existent \ + {unknown color name "non-existent"}} +@@ -55,10 +58,15 @@ + {-xscrollcommand {Some command} {Some command} {} {}} + } { + set name [lindex $test 0] ++ set value [lindex $test 1] ++ set expected [lindex $test 2] ++ if {$isTk9 && [string match "-*borderwidth" $name]} { ++ set expected $value ++ } + test entry-1.$i {configuration options} { +- .e configure $name [lindex $test 1] ++ .e configure $name $value + list [lindex [.e configure $name] 4] [.e cget $name] +- } [list [lindex $test 2] [lindex $test 2]] ++ } [list $expected $expected] + incr i + } + destroy .e diff --git a/dev-tcltk/bwidget/files/bwidget-1.9.8-test.patch b/dev-tcltk/bwidget/files/bwidget-1.9.8-test.patch new file mode 100644 index 000000000000..077abf308b88 --- /dev/null +++ b/dev-tcltk/bwidget/files/bwidget-1.9.8-test.patch @@ -0,0 +1,16 @@ + tests/entry.test | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/entry.test b/tests/entry.test +index 4bc3a5f..727a7d8 100644 +--- a/tests/entry.test ++++ b/tests/entry.test +@@ -65,7 +65,7 @@ destroy .e + + test Entry-2.1 {Entry} { + list [catch {Entry} msg] $msg +-} {1 {wrong # args: should be "Entry path ..."}} ++} {1 {wrong # args: should be "Entry path ?arg ...?"}} + test Entry-2.2 {Entry} { + list [catch {Entry gorp} msg] $msg + } {1 {bad window path name "gorp"}} diff --git a/dev-tcltk/bwidget/metadata.xml b/dev-tcltk/bwidget/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/bwidget/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/expect-lite/Manifest b/dev-tcltk/expect-lite/Manifest new file mode 100644 index 000000000000..6a763a871193 --- /dev/null +++ b/dev-tcltk/expect-lite/Manifest @@ -0,0 +1 @@ +DIST expect-lite_4.9.0.tar.gz 149560 BLAKE2B 6db5c7f37d996996bcd94ef5e0b7d2d2d592cfd88f56f751c35f53826d3cea473861d332327caf4e9c6950a983b2d907955a7b68e8ea46655e07a8197fbe1f6b SHA512 1a210f5937cf31768a77c9f8d7147be1d8bd3f4e3c68c8941fef7871d22c209c9946aa1f3b2705a0332523439a7e8c9ef7ae3a46d4b5174b5e759bf15dcad4e5 diff --git a/dev-tcltk/expect-lite/expect-lite-4.9.0-r1.ebuild b/dev-tcltk/expect-lite/expect-lite-4.9.0-r1.ebuild new file mode 100644 index 000000000000..c7f62861463e --- /dev/null +++ b/dev-tcltk/expect-lite/expect-lite-4.9.0-r1.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="8" + +DESCRIPTION="Quick and easy command line automation tool built on top of expect" +HOMEPAGE="https://expect-lite.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/${PN}/${PN}_${PV}.tar.gz" +S=${WORKDIR}/${PN}.proj + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="debug examples" + +RDEPEND="dev-tcltk/expect + debug? ( dev-tcltk/tclx )" + +DOCS=( + bashrc ChangeLog README +) + +src_install() { + default + + docinto html + dodoc -r Docs/* + + dobin ${PN} + gunzip man/*.gz + doman man/* + + if use examples ; then + docinto examples + ln -fs /usr/bin/expect-lite examples/expect-lite || die + dodoc examples/* + fi +} diff --git a/dev-tcltk/expect-lite/metadata.xml b/dev-tcltk/expect-lite/metadata.xml new file mode 100644 index 000000000000..e2219c399f97 --- /dev/null +++ b/dev-tcltk/expect-lite/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <use> + <flag name="debug">pull in packages needed for runtime interactive debugger</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/expect/Manifest b/dev-tcltk/expect/Manifest new file mode 100644 index 000000000000..19761bb76881 --- /dev/null +++ b/dev-tcltk/expect/Manifest @@ -0,0 +1 @@ +DIST expect5.45.4.tar.gz 632363 BLAKE2B a3a936e7644c922fdd474fa08c45926396ccce9a63e5f65f4d5e157f5160cfe4de47688734b39d13281d9548aac492810f19236e06563903d3d8081e4661048d SHA512 a8dc25e8175f67e029e15cbcfca1705165c1c4cb2dd37eaaaebffb61e3ba132d9519cd73ca5add4c3358a2b0b7a91e878279e8d0b72143ff2c287fce07e4659a diff --git a/dev-tcltk/expect/expect-5.45.4-r6.ebuild b/dev-tcltk/expect/expect-5.45.4-r6.ebuild new file mode 100644 index 000000000000..d1ca8b5446c3 --- /dev/null +++ b/dev-tcltk/expect/expect-5.45.4-r6.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools edo flag-o-matic + +MY_P="${PN}${PV}" +DESCRIPTION="tool for automating interactive applications" +HOMEPAGE="https://core.tcl-lang.org/expect/" +SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}.tar.gz" +S="${WORKDIR}"/${MY_P} + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos ~x64-solaris" +IUSE="debug doc test threads" +RESTRICT="!test? ( test )" + +DEPEND=">=dev-lang/tcl-8.2:=[threads(+)?] + <dev-lang/tcl-9" +RDEPEND="${DEPEND}" +BDEPEND="test? ( dev-util/dejagnu )" + +PATCHES=( "${FILESDIR}"/${P}-examples.patch ) + +src_prepare() { + default + sed -i "s:/usr/local/bin:${EPREFIX}/usr/bin:" expect.man || die + + eapply "${FILESDIR}"/${PN}-5.45-gfbsd.patch + eapply "${FILESDIR}"/${PN}-5.44.1.15-ldflags.patch + eapply "${FILESDIR}"/${PN}-5.45-headers.patch #337943 + eapply "${FILESDIR}"/${PN}-5.45-format-security.patch + eapply "${FILESDIR}"/${PN}-5.45.4-configure-in.patch + eapply "${FILESDIR}"/${PN}-5.45.4-configure-clang16.patch + eapply "${FILESDIR}"/${PN}-5.45-warnings.patch + + sed -i 's:ifdef HAVE_SYS_WAIT_H:ifndef NO_SYS_WAIT_H:' *.c || die + + # fix install_name on darwin + [[ ${CHOST} == *-darwin* ]] && \ + eapply "${FILESDIR}"/${PN}-5.45-darwin-install_name.patch + + mv configure.{in,ac} || die + + eautoconf +} + +src_configure() { + # bug #881687 + append-flags -std=gnu89 + + # the 64bit flag is useless ... it only adds 64bit compiler flags + # (like -m64) which the target toolchain should already handle + econf \ + --cache-file="${S}"/config.cache \ + --with-tcl="${EPREFIX}/usr/$(get_libdir)" \ + --disable-64bit \ + --enable-shared \ + $(use_enable threads) \ + $(use_enable debug symbols mem) +} + +expect_make_var() { + touch pkgIndex.tcl-hand || die + printf 'all:;echo $('$1')\ninclude Makefile' | emake --no-print-directory -s -f - + rm -f pkgIndex.tcl-hand || die +} + +src_install() { + default + + if use doc ; then + docinto examples + + edo dodoc \ + example/README \ + $(printf 'example/%s ' $(expect_make_var _SCRIPTS)) \ + $(printf 'example/%s.man ' $(expect_make_var _SCRIPTS_MANPAGES)) + fi +} diff --git a/dev-tcltk/expect/files/expect-5.44.1.15-ldflags.patch b/dev-tcltk/expect/files/expect-5.44.1.15-ldflags.patch new file mode 100644 index 000000000000..be3641c2105c --- /dev/null +++ b/dev-tcltk/expect/files/expect-5.44.1.15-ldflags.patch @@ -0,0 +1,13 @@ +diff --git a/Makefile.in b/Makefile.in +index cc2c79b..1083eaf 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -148,7 +148,7 @@ OBJEXT = @OBJEXT@ + RANLIB = @RANLIB@ + RANLIB_STUB = @RANLIB_STUB@ + SHLIB_CFLAGS = @SHLIB_CFLAGS@ +-SHLIB_LD = @SHLIB_LD@ ++SHLIB_LD = @SHLIB_LD@ $(LDFLAGS) + SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ + STLIB_LD = @STLIB_LD@ + TCL_DEFS = @TCL_DEFS@ diff --git a/dev-tcltk/expect/files/expect-5.45-darwin-install_name.patch b/dev-tcltk/expect/files/expect-5.45-darwin-install_name.patch new file mode 100644 index 000000000000..f5470aadb88e --- /dev/null +++ b/dev-tcltk/expect/files/expect-5.45-darwin-install_name.patch @@ -0,0 +1,13 @@ +Add install_name (soname) + +--- tclconfig/tcl.m4 ++++ tclconfig/tcl.m4 +@@ -1703,7 +1703,7 @@ + ]) + # TEA specific: link shlib with current and compatiblity version flags + vers=`echo ${PACKAGE_VERSION} | sed -e 's/^\([[0-9]]\{1,5\}\)\(\(\.[[0-9]]\{1,3\}\)\{0,2\}\).*$/\1\2/p' -e d` +- SHLIB_LD="${SHLIB_LD} -current_version ${vers:-0} -compatibility_version ${vers:-0}" ++ SHLIB_LD="${SHLIB_LD} -install_name \$(pkglibdir)/\$(PKG_LIB_FILE) -current_version ${vers:-0} -compatibility_version ${vers:-0}" + SHLIB_SUFFIX=".dylib" + # Don't use -prebind when building for Mac OS X 10.4 or later only: + AS_IF([test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int([$]2)}'`" -lt 4 -a \ diff --git a/dev-tcltk/expect/files/expect-5.45-format-security.patch b/dev-tcltk/expect/files/expect-5.45-format-security.patch new file mode 100644 index 000000000000..44ee6d108253 --- /dev/null +++ b/dev-tcltk/expect/files/expect-5.45-format-security.patch @@ -0,0 +1,20 @@ +https://core.tcl-lang.org/expect/info/094d670f6250f34c + + exp_clib.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/exp_clib.c b/exp_clib.c +index 172c05e..c86dda4 100644 +--- a/exp_clib.c ++++ b/exp_clib.c +@@ -1476,8 +1476,8 @@ expDiagLogU(str) + char *str; + { + if (exp_is_debugging) { +- fprintf(stderr,str); +- if (exp_logfile) fprintf(exp_logfile,str); ++ fprintf(stderr,"%s", str); ++ if (exp_logfile) fprintf(exp_logfile,"%s", str); + } + } + diff --git a/dev-tcltk/expect/files/expect-5.45-gfbsd.patch b/dev-tcltk/expect/files/expect-5.45-gfbsd.patch new file mode 100644 index 000000000000..5ae9c26adb88 --- /dev/null +++ b/dev-tcltk/expect/files/expect-5.45-gfbsd.patch @@ -0,0 +1,26 @@ +--- a/tclconfig/tcl.m4 ++++ b/tclconfig/tcl.m4 +@@ -1634,20 +1634,15 @@ dnl AC_CHECK_TOOL(AR, ar) + SHLIB_LD="${CC} -shared" + TCL_SHLIB_LD_EXTRAS="-soname \$[@]" + SHLIB_SUFFIX=".so" +- LDFLAGS="" ++ LDFLAGS="$LDFLAGS -Wl,--export-dynamic" + AS_IF([test $doRpath = yes], [ +- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' +- LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}']) ++ CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}']) ++ LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + AS_IF([test "${TCL_THREADS}" = "1"], [ + # The -pthread needs to go in the LDFLAGS, not LIBS + LIBS=`echo $LIBS | sed s/-pthread//` + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LDFLAGS="$LDFLAGS $PTHREAD_LIBS"]) +- # Version numbers are dot-stripped by system policy. +- TCL_TRIM_DOTS=`echo ${VERSION} | tr -d .` +- UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a' +- SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1' +- TCL_LIB_VERSIONS_OK=nodots + ;; + Darwin-*) + CFLAGS_OPTIMIZE="-Os" diff --git a/dev-tcltk/expect/files/expect-5.45-headers.patch b/dev-tcltk/expect/files/expect-5.45-headers.patch new file mode 100644 index 000000000000..98330211b328 --- /dev/null +++ b/dev-tcltk/expect/files/expect-5.45-headers.patch @@ -0,0 +1,92 @@ +https://sourceforge.net/tracker/?func=detail&aid=3071706&group_id=13179&atid=113179 +--- a/configure.in ++++ b/configure.in +@@ -133,6 +133,8 @@ AC_CHECK_HEADER(sys/fcntl.h, AC_DEFINE(HAVE_SYS_FCNTL_H)) + AC_CHECK_HEADER(sys/ptem.h, AC_DEFINE(HAVE_SYS_PTEM_H)) + AC_CHECK_HEADER(sys/strredir.h, AC_DEFINE(HAVE_STRREDIR_H)) + AC_CHECK_HEADER(sys/strpty.h, AC_DEFINE(HAVE_STRPTY_H)) ++AC_CHECK_HEADER(pty.h, AC_DEFINE(HAVE_PTY_H)) ++AC_CHECK_HEADER(libutil.h, AC_DEFINE(HAVE_LIBUTIL_H)) + + AC_MSG_CHECKING([for sys/bsdtypes.h]) + if test "ISC_${ISC}" = "ISC_1" ; then +--- a/exp_clib.c ++++ b/exp_clib.c +@@ -15,6 +15,12 @@ + #endif + #include <sys/types.h> + #include <sys/ioctl.h> ++#ifdef HAVE_UNISTD_H ++# include <unistd.h> ++#endif ++#ifdef HAVE_SYS_WAIT_H ++#include <sys/wait.h> ++#endif + + #ifdef TIME_WITH_SYS_TIME + # include <sys/time.h> +--- a/exp_trap.c ++++ b/exp_trap.c +@@ -13,6 +13,7 @@ + #include <stdio.h> + #include <signal.h> + #include <sys/types.h> ++#include <string.h> + + #ifdef HAVE_SYS_WAIT_H + #include <sys/wait.h> +--- a/pty_termios.c ++++ b/pty_termios.c +@@ -9,6 +9,14 @@ + + #include <stdio.h> + #include <signal.h> ++#include <string.h> ++#ifdef HAVE_PTY_H ++#include <pty.h> ++#endif ++#ifdef HAVE_LIBUTIL_H ++#include <sys/types.h> ++#include <libutil.h> ++#endif + + #if defined(SIGCLD) && !defined(SIGCHLD) + #define SIGCHLD SIGCLD +@@ -100,6 +100,7 @@ + + #include "exp_tty_in.h" + #include "exp_rename.h" ++#include "exp_int.h" + #include "exp_pty.h" + + void expDiagLog(); +--- a/exp_chan.c ++++ b/exp_chan.c +@@ -34,6 +34,7 @@ + #include "exp_rename.h" + #include "exp_prog.h" + #include "exp_command.h" ++#include "exp_event.h" + #include "exp_log.h" + #include "tcldbg.h" /* Dbg_StdinMode */ + +--- a/exp_clib.c ++++ b/exp_clib.c +@@ -1955,6 +1955,7 @@ + + #include "expect.h" + #include "exp_int.h" ++EXTERN void exp_init_tty _ANSI_ARGS_((void)); + + /* exp_glob.c - expect functions for doing glob + * +--- a/exp_tty.h ++++ b/exp_tty.h +@@ -17,6 +17,7 @@ + + void exp_tty_raw(int set); + void exp_tty_echo(int set); ++int exp_tty_cooked_echo(Tcl_Interp *interp, exp_tty *tty_old, int *was_raw, int *was_echo); + void exp_tty_break(Tcl_Interp *interp, int fd); + int exp_tty_raw_noecho(Tcl_Interp *interp, exp_tty *tty_old, int *was_raw, int *was_echo); + int exp_israw(void); diff --git a/dev-tcltk/expect/files/expect-5.45-warnings.patch b/dev-tcltk/expect/files/expect-5.45-warnings.patch new file mode 100644 index 000000000000..31c3809be374 --- /dev/null +++ b/dev-tcltk/expect/files/expect-5.45-warnings.patch @@ -0,0 +1,684 @@ +https://bugs.gentoo.org/918972 +https://core.tcl-lang.org/expect/info/35d0b2bdfecd634d +--- a/Dbg.c ++++ b/Dbg.c +@@ -173,12 +173,12 @@ Tcl_Obj *objPtr; + } + } + +-/* return 1 to break, 0 to continue */ ++/* return 1 to break, 0 to continue ++ * cmd: command about to be executed ++ * bp: breakpoint to test ++ */ + static int +-breakpoint_test(interp,cmd,bp) +-Tcl_Interp *interp; +-char *cmd; /* command about to be executed */ +-struct breakpoint *bp; /* breakpoint to test */ ++breakpoint_test(Tcl_Interp *interp,const char *cmd,struct breakpoint *bp) + { + if (bp->re) { + int found = 0; +@@ -239,7 +239,7 @@ TclGetFrame2(interp, origFramePtr, string, framePtrPtr, dir) + { + Interp *iPtr = (Interp *) interp; + int level, result; +- CallFrame *framePtr; /* frame currently being searched */ ++ CallFrame *framePtr = NULL; /* frame currently being searched */ + + CallFrame *curFramePtr = iPtr->varFramePtr; + +@@ -302,7 +302,6 @@ TclGetFrame2(interp, origFramePtr, string, framePtrPtr, dir) + return result; + } + +- + static char *printify(s) + char *s; + { +@@ -658,6 +657,8 @@ debugger_trap(clientData,interp,level,command,commandInfo,objc,objv) + if (goalFramePtr != iPtr->varFramePtr) goto finish; + goto start_interact; + /* DANGER: unhandled cases! none, up, down, where */ ++ default: ++ break; /* Silence compiler warning */ + } + + start_interact: +@@ -716,6 +717,8 @@ end_interact: + case where: + PrintStack(interp,iPtr->varFramePtr,viewFramePtr,objc,objv,level_text); + break; ++ default: ++ break; /* Silence compiler warning */ + } + + /* restore view and restart interactor */ +--- a/exp_chan.c ++++ b/exp_chan.c +@@ -58,17 +58,14 @@ static int ExpGetHandleProc _ANSI_ARGS_((ClientData instanceData, + */ + + Tcl_ChannelType expChannelType = { +- "exp", /* Type name. */ +- ExpBlockModeProc, /* Set blocking/nonblocking mode.*/ +- ExpCloseProc, /* Close proc. */ +- ExpInputProc, /* Input proc. */ +- ExpOutputProc, /* Output proc. */ +- NULL, /* Seek proc. */ +- NULL, /* Set option proc. */ +- NULL, /* Get option proc. */ +- ExpWatchProc, /* Initialize notifier. */ +- ExpGetHandleProc, /* Get OS handles out of channel. */ +- NULL, /* Close2 proc */ ++ .typeName = "exp", /* Type name. */ ++ .version = TCL_CHANNEL_VERSION_2, ++ .blockModeProc = ExpBlockModeProc, /* Set blocking/nonblocking mode.*/ ++ .closeProc = ExpCloseProc, /* Close proc. */ ++ .inputProc = ExpInputProc, /* Input proc. */ ++ .outputProc = ExpOutputProc, /* Output proc. */ ++ .watchProc = ExpWatchProc, /* Initialize notifier. */ ++ .getHandleProc = ExpGetHandleProc /* Get OS handles out of channel. */ + }; + + typedef struct ThreadSpecificData { +@@ -437,10 +434,10 @@ ExpGetHandleProc(instanceData, direction, handlePtr) + ExpState *esPtr = (ExpState *) instanceData; + + if (direction & TCL_WRITABLE) { +- *handlePtr = (ClientData) esPtr->fdin; ++ *handlePtr = (ClientData)(intptr_t)esPtr->fdin; + } + if (direction & TCL_READABLE) { +- *handlePtr = (ClientData) esPtr->fdin; ++ *handlePtr = (ClientData)(intptr_t)esPtr->fdin; + } else { + return TCL_ERROR; + } +--- a/exp_clib.c ++++ b/exp_clib.c +@@ -56,6 +56,10 @@ would appreciate credit if this program or parts of it are used. + # endif + #endif + ++#ifdef HAVE_UNISTD_H ++#include <unistd.h> ++#endif ++ + #include <signal.h> + /*#include <memory.h> - deprecated - ANSI C moves them into string.h */ + #include "string.h" +@@ -122,6 +126,7 @@ extern unsigned long strtoul _ANSI_ARGS_((CONST char *string, + + #include <tcl.h> + #include "expect.h" ++#include "exp_command.h" + #define TclRegError exp_TclRegError + + /* +@@ -1814,6 +1819,13 @@ int fd; + + } + ++/* ultrix (at least 4.1-2) fails to obtain controlling tty if setsid */ ++/* is called. setpgrp works though. */ ++#if defined(POSIX) && !defined(ultrix) || defined(__convex__) ++#define DO_SETSID ++#endif ++ ++#if !defined(DO_SETSID) && (!defined(SYSV3) || defined(CRAY)) /* { */ + static + void + exp_setpgrp() +@@ -1830,6 +1842,7 @@ exp_setpgrp() + (void) setpgrp(0,0); + #endif + } ++#endif /* } */ + + /* returns fd of master side of pty */ + int +@@ -1840,7 +1853,9 @@ char *argv[]; /* some compiler complains about **argv? */ + int cc; + int errorfd; /* place to stash fileno(stderr) in child */ + /* while we're setting up new stderr */ ++#if defined(TIOCNOTTY) && !defined(SYSV3) && !defined(DO_SETSID) + int ttyfd; ++#endif + int sync_fds[2]; + int sync2_fds[2]; + int status_pipe[2]; +@@ -2015,15 +2030,6 @@ when trapping, see below in child half of fork */ + (void) close(exp_pty[0]); + #endif + +-/* ultrix (at least 4.1-2) fails to obtain controlling tty if setsid */ +-/* is called. setpgrp works though. */ +-#if defined(POSIX) && !defined(ultrix) +-#define DO_SETSID +-#endif +-#ifdef __convex__ +-#define DO_SETSID +-#endif +- + #ifdef DO_SETSID + setsid(); + #else +@@ -2451,7 +2457,7 @@ struct exp_case *ecases; + int return_val; + int sys_error = 0; + #define return_normally(x) {return_val = x; goto cleanup;} +-#define return_errno(x) {sys_error = x; goto cleanup;} ++#define return_errno(x) {sys_error = x; return_val = -1; goto cleanup;} + + f = fdfp2f(fd,fp); + if (!f) return_errno(ENOMEM); +@@ -2860,7 +2866,9 @@ char *program; + int + exp_disconnect() + { ++#if defined(TIOCNOTTY) && !defined(SYSV3) && !defined(POSIX) + int ttyfd; ++#endif + + #ifndef EALREADY + #define EALREADY 37 +--- a/exp_command.c ++++ b/exp_command.c +@@ -532,6 +532,13 @@ set_pgrp(int fd) + } + #endif + ++/* ultrix (at least 4.1-2) fails to obtain controlling tty if setsid */ ++/* is called. setpgrp works though. */ ++#if defined(POSIX) && !defined(ultrix) || defined(__convex__) ++#define DO_SETSID ++#endif ++ ++#if !defined(DO_SETSID) && (!defined(SYSV3) || defined(CRAY)) /* { */ + static + void + expSetpgrp() +@@ -548,7 +555,7 @@ expSetpgrp() + (void) setpgrp(0,0); + #endif + } +- ++#endif /* } */ + + /*ARGSUSED*/ + static void +@@ -581,9 +588,7 @@ Exp_SpawnObjCmd( + ExpState *esPtr = 0; + int slave; + int pid; +-#ifdef TIOCNOTTY +- /* tell Saber to ignore non-use of ttyfd */ +- /*SUPPRESS 591*/ ++#if defined(TIOCNOTTY) && !defined(SYSV3) && !defined(DO_SETSID) + int ttyfd; + #endif /* TIOCNOTTY */ + int errorfd; /* place to stash fileno(stderr) in child */ +@@ -903,13 +908,17 @@ Exp_SpawnObjCmd( + if (TCL_ERROR == Tcl_GetChannelHandle(channel, TCL_READABLE, &rfdc)) { + return TCL_ERROR; + } +- rfd = (int)(long) rfdc; ++ rfd = (int)(intptr_t) rfdc; ++ } else { ++ rfd = -1; + } + if (mode & TCL_WRITABLE) { + if (TCL_ERROR == Tcl_GetChannelHandle(channel, TCL_WRITABLE, &wfdc)) { + return TCL_ERROR; + } +- wfd = (int)(long) wfdc; ++ wfd = (int)(intptr_t) wfdc; ++ } else { ++ wfd = -1; + } + master = ((mode & TCL_READABLE)?rfd:wfd); + +@@ -1126,15 +1135,6 @@ Exp_SpawnObjCmd( + (void) close(master); + #endif + +-/* ultrix (at least 4.1-2) fails to obtain controlling tty if setsid */ +-/* is called. setpgrp works though. */ +-#if defined(POSIX) && !defined(ultrix) +-#define DO_SETSID +-#endif +-#ifdef __convex__ +-#define DO_SETSID +-#endif +- + #ifdef DO_SETSID + setsid(); + #else +@@ -1976,7 +1976,7 @@ Exp_SendObjCmd( + #define SEND_STYLE_BREAK 0x20 + int send_style = SEND_STYLE_PLAIN; + int want_cooked = TRUE; +- char *string; /* string to send */ ++ char *string = NULL; /* string to send */ + int len = -1; /* length of string to send */ + int zeros; /* count of how many ascii zeros to send */ + +@@ -3114,9 +3114,7 @@ Exp_DisconnectObjCmd( + { + ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey); + +-#ifdef TIOCNOTTY +- /* tell CenterLine to ignore non-use of ttyfd */ +- /*SUPPRESS 591*/ ++#if defined(TIOCNOTTY) && !defined(SYSV3) && !defined(DO_SETSID) + int ttyfd; + #endif /* TIOCNOTTY */ + +--- a/exp_event.c ++++ b/exp_event.c +@@ -24,6 +24,7 @@ NIST would appreciate credit if this program or parts of it are used. + #include "exp_prog.h" + #include "exp_command.h" /* for ExpState defs */ + #include "exp_event.h" ++#include "exp_log.h" + + typedef struct ThreadSpecificData { + int rr; /* round robin ptr */ +@@ -120,6 +121,9 @@ exp_unblock_background_channelhandler(esPtr) + case disarm_req_while_blocked: + exp_disarm_background_channelhandler_force(esPtr); + break; ++ default: ++ expDiagLog("Unexpected value %d of bg-handler in %s", ++ esPtr->bg_status, __func__); + } + } + +--- a/exp_inter.c ++++ b/exp_inter.c +@@ -404,8 +404,8 @@ intEcho( + int matchBytes) + { + int seenBytes; /* either printed or echoed */ +- int echoBytes; +- int offsetBytes; ++ int echoBytes = 0; ++ int offsetBytes = 0; + + /* write is unlikely to fail, since we just read from same descriptor */ + seenBytes = esPtr->printed + esPtr->echoed; +@@ -706,9 +706,6 @@ inter_updateproc( + + #define finish(x) { status = x; goto done; } + +-static char return_cmd[] = "return"; +-static char interpreter_cmd[] = "interpreter"; +- + /*ARGSUSED*/ + int + Exp_InteractObjCmd( +@@ -1344,15 +1341,15 @@ Exp_InteractObjCmd( + int rc; /* return code from ready. This is further refined by matcher. */ + int cc; /* # of chars from read() */ + struct action *action = 0; +- time_t previous_time; ++ time_t previous_time = 0; + time_t current_time; +- int matchLen; /* # of chars matched */ ++ int matchLen = 0; /* # of chars matched */ + int skip; /* # of chars not involved in match */ + int print; /* # of chars to print */ + int oldprinted; /* old version of u->printed */ + int change; /* if action requires cooked mode */ + int attempt_match = TRUE; +- struct input *soonest_input; ++ struct input *soonest_input = NULL; + int timeout; /* current as opposed to default_timeout */ + Tcl_Time temp_time; + +--- a/exp_log.c ++++ b/exp_log.c +@@ -90,6 +90,8 @@ expWriteBytesAndLogIfTtyU(esPtr,buf,lenChars) + + if (esPtr->valid) + wc = expWriteCharsUni(esPtr,buf,lenChars); ++ else ++ wc = -1; + + if (tsdPtr->logChannel && ((esPtr->fdout == 1) || expDevttyIs(esPtr))) { + Tcl_DString ds; +--- a/exp_pty.c ++++ b/exp_pty.c +@@ -135,7 +135,9 @@ int timeout; + } + + static RETSIGTYPE (*oldAlarmHandler)(); ++#ifndef O_NOCTTY + static RETSIGTYPE (*oldHupHandler)(); ++#endif + static time_t current_time; /* time when testing began */ + + /* if TRUE, begin testing, else end testing */ +--- a/exp_trap.c ++++ b/exp_trap.c +@@ -298,11 +298,10 @@ char *s; + + /*ARGSUSED*/ + int +-Exp_TrapObjCmd(clientData, interp, objc, objv) +-ClientData clientData; +-Tcl_Interp *interp; +-int objc; +-Tcl_Obj *CONST objv[]; ++Exp_TrapObjCmd(ClientData clientData, ++ Tcl_Interp *interp, ++ int objc, ++ Tcl_Obj *CONST objv[]) + { + char *action = 0; + int n; /* number of signals in list */ +@@ -320,7 +319,9 @@ Tcl_Obj *CONST objv[]; + + objc--; objv++; + +- while (objc) { ++ if (objc <= 0) goto usage_error; ++ ++ do { + arg = Tcl_GetString(*objv); + + if (streq(arg,"-code")) { +@@ -339,7 +340,7 @@ Tcl_Obj *CONST objv[]; + objc--; objv++; + show_max = TRUE; + } else break; +- } ++ } while(objc); + + if (show_name || show_number || show_max) { + if (objc > 0) goto usage_error; +--- a/exp_tty.c ++++ b/exp_tty.c +@@ -585,18 +585,20 @@ Exp_SystemCmd( + int total_len = 0, arg_len; + + int stty_args_recognized = TRUE; +- int cmd_is_stty = FALSE; ++ int cmd_is_stty; + int cooked = FALSE; +- int was_raw, was_echo; ++ const char *was_raw = "-raw", *was_echo = "-echo"; + + if (argc == 1) return TCL_OK; + +- if (streq(argv[1],"stty")) { ++ cmd_is_stty = streq(argv[1],"stty"); ++ if (cmd_is_stty) { + expDiagLogU("system stty is deprecated, use stty\r\n"); + +- cmd_is_stty = TRUE; +- was_raw = exp_israw(); +- was_echo = exp_isecho(); ++ if (exp_israw()) ++ was_raw++; ++ if (exp_isecho()) ++ was_echo++; + } + + if (argc > 2 && cmd_is_stty) { +@@ -635,11 +637,7 @@ Exp_SystemCmd( + return(TCL_ERROR); + } + if (cmd_is_stty) { +- char buf [11]; +- sprintf(buf,"%sraw %secho", +- (was_raw?"":"-"), +- (was_echo?"":"-")); +- Tcl_SetResult (interp, buf, TCL_VOLATILE); ++ Tcl_AppendResult (interp, was_raw, " ", was_echo, NULL); + } + return(TCL_OK); + } +@@ -699,11 +697,7 @@ Exp_SystemCmd( + } + + if (cmd_is_stty) { +- char buf [11]; +- sprintf(buf,"%sraw %secho", +- (was_raw?"":"-"), +- (was_echo?"":"-")); +- Tcl_SetResult (interp, buf, TCL_VOLATILE); ++ Tcl_AppendResult (interp, was_raw, " ", was_echo, NULL); + } + + /* following macros stolen from Tcl's tclUnix.h file */ +--- a/exp_win.c ++++ b/exp_win.c +@@ -78,9 +78,9 @@ typedef struct { + static exp_winsize winsize = {0, 0}; + static exp_winsize win2size = {0, 0}; + +-int exp_window_size_set(fd) +-int fd; ++int exp_window_size_set(int fd) + { ++ return + #ifdef TIOCSWINSZ + ioctl(fd,TIOCSWINSZ,&winsize); + #endif +@@ -89,9 +89,9 @@ int fd; + #endif + } + +-int exp_window_size_get(fd) +-int fd; ++int exp_window_size_get(int fd) + { ++ return + #ifdef TIOCGWINSZ + ioctl(fd,TIOCGWINSZ,&winsize); + #endif +@@ -105,8 +105,7 @@ int fd; + } + + void +-exp_win_rows_set(rows) +-char *rows; ++exp_win_rows_set(const char *rows) + { + winsize.rows = atoi(rows); + exp_window_size_set(exp_dev_tty); +@@ -122,8 +121,7 @@ exp_win_rows_get() + } + + void +-exp_win_columns_set(columns) +-char *columns; ++exp_win_columns_set(const char *columns) + { + winsize.columns = atoi(columns); + exp_window_size_set(exp_dev_tty); +@@ -142,8 +140,8 @@ exp_win_columns_get() + * separate copy of everything above - used for handling user stty requests + */ + +-int exp_win2_size_set(fd) +-int fd; ++static void ++exp_win2_size_set(int fd) + { + #ifdef TIOCSWINSZ + ioctl(fd,TIOCSWINSZ,&win2size); +@@ -153,8 +151,8 @@ int fd; + #endif + } + +-int exp_win2_size_get(fd) +-int fd; ++static void ++exp_win2_size_get(int fd) + { + #ifdef TIOCGWINSZ + ioctl(fd,TIOCGWINSZ,&win2size); +@@ -165,9 +163,7 @@ int fd; + } + + void +-exp_win2_rows_set(fd,rows) +-int fd; +-char *rows; ++exp_win2_rows_set(int fd,const char *rows) + { + exp_win2_size_get(fd); + win2size.rows = atoi(rows); +@@ -175,8 +171,7 @@ char *rows; + } + + char* +-exp_win2_rows_get(fd) +-int fd; ++exp_win2_rows_get(int fd) + { + static char rows [20]; + exp_win2_size_get(fd); +@@ -189,9 +184,7 @@ int fd; + } + + void +-exp_win2_columns_set(fd,columns) +-int fd; +-char *columns; ++exp_win2_columns_set(int fd,const char *columns) + { + exp_win2_size_get(fd); + win2size.columns = atoi(columns); +@@ -199,8 +192,7 @@ char *columns; + } + + char* +-exp_win2_columns_get(fd) +-int fd; ++exp_win2_columns_get(int fd) + { + static char columns [20]; + exp_win2_size_get(fd); +--- a/exp_win.h ++++ b/exp_win.h +@@ -11,12 +11,12 @@ would appreciate credit if you use this file or parts of it. + int exp_window_size_set(); + int exp_window_size_get(); + +-void exp_win_rows_set _ANSI_ARGS_ ((char* rows)); ++void exp_win_rows_set _ANSI_ARGS_ ((const char* rows)); + char* exp_win_rows_get _ANSI_ARGS_ ((void)); +-void exp_win_columns_set _ANSI_ARGS_ ((char* columns)); ++void exp_win_columns_set _ANSI_ARGS_ ((const char* columns)); + char* exp_win_columns_get _ANSI_ARGS_ ((void)); + +-void exp_win2_rows_set _ANSI_ARGS_ ((int fd, char* rows)); ++void exp_win2_rows_set _ANSI_ARGS_ ((int fd, const char* rows)); + char* exp_win2_rows_get _ANSI_ARGS_ ((int fd)); +-void exp_win2_columns_set _ANSI_ARGS_ ((int fd, char* columns)); ++void exp_win2_columns_set _ANSI_ARGS_ ((int fd, const char* columns)); + char* exp_win2_columns_get _ANSI_ARGS_ ((int fd)); +--- a/expect.c ++++ b/expect.c +@@ -2537,7 +2537,7 @@ Exp_ExpectObjCmd( + struct exp_state_list *state_list; /* list of ExpStates to watch */ + struct exp_state_list *slPtr; /* temp for interating over state_list */ + ExpState **esPtrs; +- int mcount; /* number of esPtrs to watch */ ++ int mcount = 0; /* number of esPtrs to watch */ + + struct eval_out eo; /* final case of interest */ + +@@ -2546,7 +2546,7 @@ Exp_ExpectObjCmd( + time_t start_time_total; /* time at beginning of this procedure */ + time_t start_time = 0; /* time when restart label hit */ + time_t current_time = 0; /* current time (when we last looked)*/ +- time_t end_time; /* future time at which to give up */ ++ time_t end_time = 0; /* future time at which to give up */ + + ExpState *last_esPtr; /* for differentiating when multiple f's */ + /* to print out better debugging messages */ +@@ -2554,7 +2554,7 @@ Exp_ExpectObjCmd( + int first_time = 1; /* if not "restarted" */ + + int key; /* identify this expect command instance */ +- int configure_count; /* monitor exp_configure_count */ ++ int configure_count = 0; /* monitor exp_configure_count */ + + int timeout; /* seconds */ + int remtime; /* remaining time in timeout */ +@@ -2947,12 +2947,14 @@ process_di ( + } else { + esPtr = expStateFromChannelName(interp,chan,0,0,0,(char*)cmd); + } +- if (!esPtr) return(TCL_ERROR); ++ if (!esPtr) ++ return(TCL_ERROR); ++ ++ *esOut = esPtr; + } + + *at = i; + *Default = def; +- *esOut = esPtr; + return TCL_OK; + } + +--- a/pty_termios.c ++++ b/pty_termios.c +@@ -71,6 +71,14 @@ with openpty which supports 4000 while ptmx supports 60. */ + #endif + #include <sys/types.h> + #include <sys/stat.h> ++#if defined(HAVE_OPENPTY) ++#include <termios.h> ++#if defined(HAVE_LIBUTIL_H) ++#include <libutil.h> ++#else ++#include <pty.h> ++#endif ++#endif + + #ifdef NO_STDLIB_H + #include "../compat/stdlib.h" +@@ -381,11 +389,14 @@ exp_init_pty() + int + exp_getptymaster() + { ++#if !defined(HAVE_CONVEX_GETPTY) && !defined(HAVE_PTYM) && !defined(HAVE_SCO_CLIST_PTYS) && defined(TEST_PTY) + char *hex, *bank; +- struct stat stat_buf; ++#endif + int master = -1; + int slave = -1; ++#ifdef HAVE_SCO_CLIST_PTYS + int num; ++#endif + + exp_pty_error = 0; + +@@ -438,6 +449,7 @@ exp_getptymaster() + master = open("/dev/ptc", O_RDWR); + if (master >= 0) { + int ptynum; ++ struct stat stat_buf; + + if (fstat(master, &stat_buf) < 0) { + close(master); +@@ -644,8 +656,10 @@ exp_getptyslave( + int ttyinit, + CONST char *stty_args) + { +- int slave, slave2; ++ int slave; ++#if defined(HAVE_PTMX_BSD) + char buf[10240]; ++#endif + + if (0 > (slave = open(slave_name, O_RDWR))) { + static char buf[500]; diff --git a/dev-tcltk/expect/files/expect-5.45.4-configure-clang16.patch b/dev-tcltk/expect/files/expect-5.45.4-configure-clang16.patch new file mode 100644 index 000000000000..5d40e5ddf684 --- /dev/null +++ b/dev-tcltk/expect/files/expect-5.45.4-configure-clang16.patch @@ -0,0 +1,223 @@ +From 4c3a5051aa9706eea42dab31f9e121d975c08521 Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Thu, 17 Nov 2022 20:20:45 +0000 +Subject: [PATCH] Fix configure with clang 16 + +Bug: https://bugs.gentoo.org/881687 +Signed-off-by: Sam James <sam@gentoo.org> +--- a/configure.in ++++ b/configure.in +@@ -454,7 +454,7 @@ AC_CHECK_FUNC(siglongjmp, AC_DEFINE(HAVE_SIGLONGJMP)) + # because Unixware 2.0 handles it specially and refuses to compile + # autoconf's automatic test that is a call with no arguments + AC_MSG_CHECKING([for memcpy]) +-AC_TRY_LINK(,[ ++AC_TRY_LINK([#include <string.h>],[ + char *s1, *s2; + memcpy(s1,s2,0); + ], +@@ -471,7 +471,7 @@ memcpy(s1,s2,0); + AC_MSG_CHECKING([if WNOHANG requires _POSIX_SOURCE]) + AC_TRY_RUN([ + #include <sys/wait.h> +-main() { ++int main(void) { + #ifndef WNOHANG + return 0; + #else +@@ -491,7 +491,7 @@ rm -rf wnohang + AC_TRY_RUN([ + #include <stdio.h> + #include <sys/wait.h> +-main() { ++int main(void) { + #ifdef WNOHANG + FILE *fp = fopen("wnohang","w"); + fprintf(fp,"%d",WNOHANG); +@@ -540,24 +540,23 @@ dnl AC_HEADER_EGREP([(void|sighandler_t).*signal], signal.h, retsigtype=void,AC_ + AC_MSG_CHECKING([if signals need to be re-armed]) + AC_TRY_RUN([ + #include <signal.h> +-#define RETSIGTYPE $retsigtype +- ++#include <stdlib.h> ++#include <sys/wait.h> ++#include <unistd.h> + int signal_rearms = 0; + + RETSIGTYPE +-child_sigint_handler(n) +-int n; ++child_sigint_handler(int n) + { + } + + RETSIGTYPE +-parent_sigint_handler(n) +-int n; ++parent_sigint_handler(int n) + { + signal_rearms++; + } + +-main() ++int main(void) + { + signal(SIGINT,parent_sigint_handler); + +@@ -719,7 +718,8 @@ fi + AC_MSG_CHECKING([for struct sgttyb]) + AC_TRY_RUN([ + #include <sgtty.h> +-main() ++#include <stdlib.h> ++int main(void) + { + struct sgttyb tmp; + exit(0); +@@ -745,7 +745,8 @@ if test $mach -eq 0 ; then + # pty_termios.c is set up to handle pty_termio. + AC_MSG_CHECKING([for struct termio]) + AC_TRY_RUN([#include <termio.h> +- main() ++ #include <stdlib.h> ++ int main(void) + { + struct termio tmp; + exit(0); +@@ -769,7 +770,8 @@ if test $mach -eq 0 ; then + # include <inttypes.h> + # endif + # include <termios.h> +- main() ++# include <stdlib.h> ++ int main(void) + { + struct termios tmp; + exit(0); +@@ -793,7 +795,7 @@ AC_TRY_RUN([ + #include <inttypes.h> + #endif + #include <termios.h> +-main() { ++int main(void) { + #if defined(TCGETS) || defined(TCGETA) + return 0; + #else +@@ -815,7 +817,7 @@ AC_TRY_RUN([ + #include <inttypes.h> + #endif + #include <termios.h> +-main() { ++int main(void) { + #ifdef TIOCGWINSZ + return 0; + #else +@@ -834,7 +836,7 @@ main() { + AC_MSG_CHECKING([for Cray-style ptys]) + SETUID=":" + AC_TRY_RUN([ +-main(){ ++int main(void) { + #ifdef CRAY + return 0; + #else +@@ -887,9 +889,10 @@ AC_FUNC_SETPGRP + # + AC_MSG_CHECKING([for SV-style timezone]) + AC_TRY_RUN([ ++#include <stdlib.h> + extern char *tzname[2]; + extern int daylight; +-main() ++int main(void) + { + int *x = &daylight; + char **y = tzname; +--- a/tclconfig/tcl.m4 ++++ b/tclconfig/tcl.m4 +@@ -2029,7 +2029,7 @@ AC_DEFUN([TEA_SERIAL_PORT], [ + AC_TRY_RUN([ + #include <termios.h> + +-int main() { ++int main(void) { + struct termios t; + if (tcgetattr(0, &t) == 0) { + cfsetospeed(&t, 0); +@@ -2042,7 +2042,7 @@ int main() { + AC_TRY_RUN([ + #include <termio.h> + +-int main() { ++int main(void) { + struct termio t; + if (ioctl(0, TCGETA, &t) == 0) { + t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; +@@ -2055,7 +2055,7 @@ int main() { + AC_TRY_RUN([ + #include <sgtty.h> + +-int main() { ++int main(void) { + struct sgttyb t; + if (ioctl(0, TIOCGETP, &t) == 0) { + t.sg_ospeed = 0; +@@ -2070,7 +2070,7 @@ int main() { + #include <termios.h> + #include <errno.h> + +-int main() { ++int main(void) { + struct termios t; + if (tcgetattr(0, &t) == 0 + || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { +@@ -2086,7 +2086,7 @@ int main() { + #include <termio.h> + #include <errno.h> + +-int main() { ++int main(void) { + struct termio t; + if (ioctl(0, TCGETA, &t) == 0 + || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { +@@ -2101,7 +2101,7 @@ int main() { + #include <sgtty.h> + #include <errno.h> + +-int main() { ++int main(void) { + struct sgttyb t; + if (ioctl(0, TIOCGETP, &t) == 0 + || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { +@@ -2392,7 +2392,9 @@ AC_DEFUN([TEA_TIME_HANDLER], [ + # (like convex) have timezone functions, etc. + # + AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [ +- AC_TRY_COMPILE([#include <time.h>], ++ AC_TRY_COMPILE([#include <time.h> ++ #include <stdlib.h> ++ ], + [extern long timezone; + timezone += 1; + exit (0);], +@@ -2404,7 +2406,9 @@ AC_DEFUN([TEA_TIME_HANDLER], [ + # On some systems (eg IRIX 6.2), timezone is a time_t and not a long. + # + AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [ +- AC_TRY_COMPILE([#include <time.h>], ++ AC_TRY_COMPILE([#include <time.h> ++ #include <stdlib.h> ++ ], + [extern time_t timezone; + timezone += 1; + exit (0);], +@@ -2441,7 +2445,7 @@ AC_DEFUN([TEA_BUGGY_STRTOD], [ + AC_CACHE_CHECK([for Solaris2.4/Tru64 strtod bugs], tcl_cv_strtod_buggy,[ + AC_TRY_RUN([ + extern double strtod(); +- int main() { ++ int main(void) { + char *infString="Inf", *nanString="NaN", *spaceString=" "; + char *term; + double value; diff --git a/dev-tcltk/expect/files/expect-5.45.4-configure-in.patch b/dev-tcltk/expect/files/expect-5.45.4-configure-in.patch new file mode 100644 index 000000000000..8c05205bf5ae --- /dev/null +++ b/dev-tcltk/expect/files/expect-5.45.4-configure-in.patch @@ -0,0 +1,113 @@ +Allow cross compiling. + +Signed-off-by: Anders Roxell <anders.roxell@enea.com> +Upstream-Status: Pending + +Patch source: +https://github.com/openembedded/openembedded-core/blob/bb87788832ad64079609e4f554e4d55a14f0aa94/meta/recipes-devtools/expect/expect/0001-configure.in.patch + +Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com> +--- +diff -uNr a/configure.in b/configure.in +--- a/configure.in 2012-12-14 15:31:32.623180450 +0100 ++++ b/configure.in 2012-12-14 15:53:34.518233519 +0100 +@@ -481,7 +481,7 @@ + , + AC_MSG_RESULT(no) + , +- AC_MSG_ERROR([Expect can't be cross compiled]) ++ AC_MSG_RESULT(no) + ) + + AC_MSG_CHECKING([if any value exists for WNOHANG]) +@@ -506,7 +506,9 @@ + AC_MSG_RESULT(no) + AC_DEFINE(WNOHANG_BACKUP_VALUE, 1) + , +- AC_MSG_ERROR([Expect can't be cross compiled]) ++ AC_MSG_RESULT(yes) ++ AC_DEFINE_UNQUOTED(WNOHANG_BACKUP_VALUE, `cat wnohang`) ++ rm -f wnohang + ) + + # +@@ -574,7 +576,8 @@ + AC_DEFINE(REARM_SIG) + , + AC_MSG_RESULT(no) +-, AC_MSG_WARN([Expect can't be cross compiled]) ++, ++ AC_MSG_RESULT(no) + ) + + # HPUX7 has trouble with the big cat so split it +@@ -725,7 +728,9 @@ + , + AC_MSG_RESULT(no) + , +- AC_MSG_ERROR([Expect can't be cross compiled]) ++ AC_MSG_RESULT(yes) ++ AC_DEFINE(HAVE_SGTTYB) ++ PTY_TYPE=sgttyb + ) + + # mach systems have include files for unimplemented features +@@ -749,7 +754,9 @@ + , + AC_MSG_RESULT(no) + , +- AC_MSG_ERROR([Expect can't be cross compiled]) ++ AC_DEFINE(HAVE_TERMIO) ++ PTY_TYPE=termios ++ AC_MSG_RESULT(yes) + ) + + # now check for the new style ttys (not yet posix) +@@ -771,7 +778,9 @@ + , + AC_MSG_RESULT(no) + , +- AC_MSG_ERROR([Expect can't be cross compiled]) ++ AC_DEFINE(HAVE_TERMIOS) ++ PTY_TYPE=termios ++ AC_MSG_RESULT(yes) + ) + fi + +@@ -794,7 +803,7 @@ + , + AC_MSG_RESULT(no) + , +- AC_MSG_ERROR([Expect can't be cross compiled]) ++ AC_MSG_RESULT(no) + ) + + AC_MSG_CHECKING([if TIOCGWINSZ in termios.h]) +@@ -816,7 +825,7 @@ + , + AC_MSG_RESULT(no) + , +- AC_MSG_ERROR([Expect can't be cross compiled]) ++ AC_MSG_RESULT(no) + ) + + # finally check for Cray style ttys +@@ -837,7 +846,7 @@ + , + AC_MSG_RESULT(no) + , +- AC_MSG_ERROR([Expect can't be cross compiled]) ++ AC_MSG_RESULT(no) + ) + + # +@@ -889,7 +898,8 @@ + AC_MSG_RESULT(yes), + AC_MSG_RESULT(no) + , +- AC_MSG_ERROR([Expect can't be cross compiled]) ++ AC_DEFINE(HAVE_SV_TIMEZONE) ++ AC_MSG_RESULT(yes), + ) + + diff --git a/dev-tcltk/expect/files/expect-5.45.4-examples.patch b/dev-tcltk/expect/files/expect-5.45.4-examples.patch new file mode 100644 index 000000000000..cd631b30a5c1 --- /dev/null +++ b/dev-tcltk/expect/files/expect-5.45.4-examples.patch @@ -0,0 +1,23 @@ +--- a/Makefile.in 2018-09-26 15:59:09.049279363 +0200 ++++ b/Makefile.in 2018-09-26 16:00:00.514427553 +0200 +@@ -32,15 +32,17 @@ + # SCRIPTS is a target. If this is a problem, just comment out the + # SCRIPTS target itself. + +-SCRIPTS = timed-run timed-read ftp-rfc autopasswd lpunlock weather \ ++SCRIPTS = unbuffer ++_SCRIPTS = timed-run timed-read ftp-rfc autopasswd lpunlock weather \ + passmass rftp kibitz rlogin-cwd xpstat tkpasswd dislocate xkibitz \ +- tknewsbiff unbuffer mkpasswd cryptdir decryptdir autoexpect \ ++ tknewsbiff mkpasswd cryptdir decryptdir autoexpect \ + multixterm + + # A couple of the scripts have man pages of their own. + # You can delete these too if you don't want'em. + +-SCRIPTS_MANPAGES = kibitz dislocate xkibitz tknewsbiff unbuffer mkpasswd \ ++SCRIPTS_MANPAGES = unbuffer ++_SCRIPTS_MANPAGES = kibitz dislocate xkibitz tknewsbiff unbuffer mkpasswd \ + passmass cryptdir decryptdir autoexpect multixterm + + diff --git a/dev-tcltk/expect/metadata.xml b/dev-tcltk/expect/metadata.xml new file mode 100644 index 000000000000..30a8119911f1 --- /dev/null +++ b/dev-tcltk/expect/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <upstream> + <remote-id type="cpe">cpe:/a:don_libes:expect</remote-id> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/itcl/Manifest b/dev-tcltk/itcl/Manifest new file mode 100644 index 000000000000..137d2f1eaea5 --- /dev/null +++ b/dev-tcltk/itcl/Manifest @@ -0,0 +1,4 @@ +DIST itcl-4-2-2.tar.gz 522497 BLAKE2B 3bb79525e5796b37b9274fe514b2430f8cd3f17f9b63ad008e1cc011eb298d47efedc9b684ea23cc0811f2da5f14d5dbc2c6e4b3ebf8bd7787fcc71661a621db SHA512 60bb5fba6c1188cbec15236c2f33b2409ff7a77af89526552a865376703574d01075fa9422d89e6f10c188b3eb8b3553f6d449704f55444005d2050de1c255d6 +DIST itcl-4-2-4.tar.gz 536828 BLAKE2B 970d6e5cbe7322d88a0117737df553f155cdda3264aaae93b30db361f40296dde74f1652d26bb6afccc3ca4c825fbc012710d8292b6df991af3a86f8e31c2e8b SHA512 fbe3e4298721b97777947675b42a434c8c7ec566564b81b1479fb958519ac4176b707f9be7bc6860ee72ee10fe29c82b211c4ac816f9ba6d4269ab43007eefe6 +DIST itcl-4-3-1.tar.gz 537928 BLAKE2B 5d388724b2d279db0b4e66b154cd07116d9db7c0353eff3a76f3427d20db23da1a1dc0d4e39a158c124af94d416750e0eb803f3d1ee5d1f864ab8fffbe46c363 SHA512 12d0f02a33fcc511be65930bd375924d0edda1d01de0d5c9adaf56dceaace2b2f73a9eefb313fbeafe5434e67994166f2cd31cf43ea102f9b5e2eed48d16dbcb +DIST itcl-4-3-7.tar.gz 532956 BLAKE2B 6bff6375499b755bc309345ae2ebb77b298814ecd003150ace927d7f56f6084e0f720aa4bdf56e3f15f7f6eff3f8717c158f9ed1816cb54c94a308b5572d662e SHA512 61355e773054c34b816b43eafa0c3020f80e78d2df7122e1b3aff41fca29a296e2d4ff7a1fe273ee1c902eca0b6ea92948b765cad7d391bd22a8e889a43f809e diff --git a/dev-tcltk/itcl/files/itcl-4.2.4-gentoo.patch b/dev-tcltk/itcl/files/itcl-4.2.4-gentoo.patch new file mode 100644 index 000000000000..14a67a13f6b4 --- /dev/null +++ b/dev-tcltk/itcl/files/itcl-4.2.4-gentoo.patch @@ -0,0 +1,11 @@ +--- a/configure.ac 2024-02-27 20:44:51.154115391 +0100 ++++ b/configure.ac 2024-02-27 20:45:10.488884871 +0100 +@@ -263,7 +263,7 @@ + itcl_SRC_DIR=`cd "${itcl_SRC_DIR}"; pwd` + AC_SUBST(itcl_SRC_DIR) + +-eval itcl_INCLUDE_SPEC="-I${itcl_SRC_DIR}/generic -I${itcl_SRC_DIR}" ++itcl_INCLUDE_SPEC="-I${itcl_SRC_DIR}/generic -I${itcl_SRC_DIR}" + AC_SUBST(itcl_INCLUDE_SPEC) + + #-------------------------------------------------------------------- diff --git a/dev-tcltk/itcl/itcl-4.2.2.ebuild b/dev-tcltk/itcl/itcl-4.2.2.ebuild new file mode 100644 index 000000000000..ba6c1f3a7c6d --- /dev/null +++ b/dev-tcltk/itcl/itcl-4.2.2.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +MYP="${PN}-$(ver_rs 1- '-')" + +DESCRIPTION="Object Oriented Enhancements for Tcl/Tk" +HOMEPAGE="http://incrtcl.sourceforge.net/" +SRC_URI="https://github.com/tcltk/${PN}/archive/refs/tags/${MYP}.tar.gz" + +SLOT="0" +LICENSE="BSD" +KEYWORDS="~alpha amd64 arm64 ppc ~riscv ~sparc x86" + +RDEPEND=">=dev-lang/tcl-8.6:0=" +DEPEND="${RDEPEND}" + +S="${WORKDIR}/${PN}-${MYP}" + +# somehow broken +#RESTRICT=test + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 opendir64 rewinddir64 closedir64 # used to test for Large File Support +) + +src_prepare() { + default + cp -r itclWidget/tclconfig tclconfig || die +} + +src_configure() { + econf \ + --with-tcl="${EPREFIX}"/usr/$(get_libdir) \ + --with-tclinclude="${EPREFIX}"/usr/include \ + --disable-rpath +} + +src_compile() { + # adjust install_name on darwin + if [[ ${CHOST} == *-darwin* ]]; then + sed -i \ + -e 's:^\(SHLIB_LD\W.*\)$:\1 -install_name ${pkglibdir}/$@:' \ + "${S}"/Makefile || die 'sed failed' + fi + + sed 's:-pipe::g' -i Makefile || die + + emake CFLAGS_DEFAULT="${CFLAGS}" +} + +src_install() { + default + + local MY_P=${PN}${PV} + + sed \ + -e "/BUILD_LIB_SPEC/s:-L${S}::g" \ + -e "/BUILD_STUB_LIB_SPEC/s:-L${S}::g" \ + -e "/BUILD_STUB_LIB_PATH/s:${S}:${EPREFIX}/usr/$(get_libdir)/${MY_P}/:g" \ + -e "/INCLUDE_SPEC/s:${S}/generic:${EPREFIX}/usr/include:g" \ + -e "s:${S}:${EPREFIX}/usr/$(get_libdir)/${MY_P}/:g" \ + -i "${ED}"/usr/$(get_libdir)/${MY_P}/itclConfig.sh || die + + cat >> "${T}"/34${PN} <<- EOF + LDPATH="${EPREFIX}/usr/$(get_libdir)/${MY_P}/" + EOF + doenvd "${T}"/34${PN} +} diff --git a/dev-tcltk/itcl/itcl-4.2.4-r1.ebuild b/dev-tcltk/itcl/itcl-4.2.4-r1.ebuild new file mode 100644 index 000000000000..48b55c22f660 --- /dev/null +++ b/dev-tcltk/itcl/itcl-4.2.4-r1.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +MYP="${PN}-$(ver_rs 1- '-')" + +DESCRIPTION="Object Oriented Enhancements for Tcl/Tk" +HOMEPAGE="http://incrtcl.sourceforge.net/" +SRC_URI="https://github.com/tcltk/${PN}/archive/refs/tags/${MYP}.tar.gz" + +SLOT="0" +LICENSE="BSD" +KEYWORDS="~alpha ~amd64 ~arm64 ~ppc ~riscv ~sparc ~x86" + +RDEPEND=">=dev-lang/tcl-8.6:0=" +DEPEND="${RDEPEND}" + +S="${WORKDIR}/${PN}-${MYP}" + +# somehow broken +#RESTRICT=test + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 opendir64 readdir64 rewinddir64 closedir64 # used on AIX +) + +PATCHES=( "${FILESDIR}"/${P}-gentoo.patch ) + +src_prepare() { + default + cp -r itclWidget/tclconfig tclconfig || die + echo "git-a3e8b43c671afc7f0d82bd892325d42c813791ab" > manifest.uuid + eautoreconf +} + +src_configure() { + econf \ + --with-tcl="${EPREFIX}"/usr/$(get_libdir) \ + --with-tclinclude="${EPREFIX}"/usr/include \ + --disable-rpath +} + +src_compile() { + # adjust install_name on darwin + if [[ ${CHOST} == *-darwin* ]]; then + sed -i \ + -e 's:^\(SHLIB_LD\W.*\)$:\1 -install_name ${pkglibdir}/$@:' \ + "${S}"/Makefile || die 'sed failed' + fi + + sed 's:-pipe::g' -i Makefile || die + + emake CFLAGS_DEFAULT="${CFLAGS}" +} + +src_install() { + default + + local MY_P=${PN}${PV} + + sed \ + -e "/BUILD_LIB_SPEC/s:-L${S}::g" \ + -e "/BUILD_STUB_LIB_SPEC/s:-L${S}::g" \ + -e "/BUILD_STUB_LIB_PATH/s:${S}:${EPREFIX}/usr/$(get_libdir)/${MY_P}/:g" \ + -e "/INCLUDE_SPEC/s:${S}/generic:${EPREFIX}/usr/include:g" \ + -e "s:${S}:${EPREFIX}/usr/$(get_libdir)/${MY_P}/:g" \ + -i "${ED}"/usr/$(get_libdir)/${MY_P}/itclConfig.sh || die + + cat >> "${T}"/34${PN} <<- EOF + LDPATH="${EPREFIX}/usr/$(get_libdir)/${MY_P}/" + EOF + doenvd "${T}"/34${PN} + dosym . /usr/$(get_libdir)/${MY_P}/library +} diff --git a/dev-tcltk/itcl/itcl-4.3.1.ebuild b/dev-tcltk/itcl/itcl-4.3.1.ebuild new file mode 100644 index 000000000000..8490a74fa51f --- /dev/null +++ b/dev-tcltk/itcl/itcl-4.3.1.ebuild @@ -0,0 +1,79 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools dot-a + +MYP="${PN}-$(ver_rs 1- '-')" + +DESCRIPTION="Object Oriented Enhancements for Tcl/Tk" +HOMEPAGE="https://incrtcl.sourceforge.net/" +SRC_URI="https://github.com/tcltk/${PN}/archive/refs/tags/${MYP}.tar.gz" + +S="${WORKDIR}/${PN}-${MYP}" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm64 ppc ~riscv ~sparc x86" + +RDEPEND=">=dev-lang/tcl-8.6:0=" +DEPEND="${RDEPEND}" + +# somehow broken +#RESTRICT=test + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 opendir64 readdir64 rewinddir64 closedir64 # used on AIX +) + +PATCHES=( "${FILESDIR}"/${PN}-4.2.4-gentoo.patch ) + +src_prepare() { + default + cp -r itclWidget/tclconfig tclconfig || die + echo "git-a3e8b43c671afc7f0d82bd892325d42c813791ab" > manifest.uuid + eautoreconf +} + +src_configure() { + lto-guarantee-fat + econf \ + --with-tcl="${EPREFIX}"/usr/$(get_libdir) \ + --with-tclinclude="${EPREFIX}"/usr/include \ + --disable-rpath +} + +src_compile() { + # adjust install_name on darwin + if [[ ${CHOST} == *-darwin* ]]; then + sed -i \ + -e 's:^\(SHLIB_LD\W.*\)$:\1 -install_name ${pkglibdir}/$@:' \ + "${S}"/Makefile || die 'sed failed' + fi + + sed 's:-pipe::g' -i Makefile || die + + emake CFLAGS_DEFAULT="${CFLAGS}" +} + +src_install() { + default + strip-lto-bytecode + + local MY_P=${PN}${PV} + + sed \ + -e "/BUILD_LIB_SPEC/s:-L${S}::g" \ + -e "/BUILD_STUB_LIB_SPEC/s:-L${S}::g" \ + -e "/BUILD_STUB_LIB_PATH/s:${S}:${EPREFIX}/usr/$(get_libdir)/${MY_P}/:g" \ + -e "/INCLUDE_SPEC/s:${S}/generic:${EPREFIX}/usr/include:g" \ + -e "s:${S}:${EPREFIX}/usr/$(get_libdir)/${MY_P}/:g" \ + -i "${ED}"/usr/$(get_libdir)/${MY_P}/itclConfig.sh || die + + cat >> "${T}"/34${PN} <<- EOF + LDPATH="${EPREFIX}/usr/$(get_libdir)/${MY_P}/" + EOF + doenvd "${T}"/34${PN} + dosym . /usr/$(get_libdir)/${MY_P}/library +} diff --git a/dev-tcltk/itcl/itcl-4.3.7.ebuild b/dev-tcltk/itcl/itcl-4.3.7.ebuild new file mode 100644 index 000000000000..17b6aa89f0b6 --- /dev/null +++ b/dev-tcltk/itcl/itcl-4.3.7.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools dot-a + +MYP="${PN}-$(ver_rs 1- '-')" + +DESCRIPTION="Object Oriented Enhancements for Tcl/Tk" +HOMEPAGE="https://incrtcl.sourceforge.net/" +SRC_URI="https://github.com/tcltk/${PN}/archive/refs/tags/${MYP}.tar.gz" + +S="${WORKDIR}/${PN}-${MYP}" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm64 ~ppc ~riscv ~sparc ~x86" + +RDEPEND=">=dev-lang/tcl-8.6:0=" +DEPEND="${RDEPEND}" + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 opendir64 readdir64 rewinddir64 closedir64 # used on AIX +) + +src_prepare() { + default + cp -r itclWidget/tclconfig tclconfig || die + echo "git-a3e8b43c671afc7f0d82bd892325d42c813791ab" > manifest.uuid + eautoreconf +} + +src_configure() { + lto-guarantee-fat + econf \ + --with-tcl="${EPREFIX}"/usr/$(get_libdir) \ + --with-tclinclude="${EPREFIX}"/usr/include \ + --disable-rpath +} + +src_compile() { + # adjust install_name on darwin + if [[ ${CHOST} == *-darwin* ]]; then + sed -i \ + -e 's:^\(SHLIB_LD\W.*\)$:\1 -install_name ${pkglibdir}/$@:' \ + "${S}"/Makefile || die 'sed failed' + fi + + sed 's:-pipe::g' -i Makefile || die + + emake CFLAGS_DEFAULT="${CFLAGS}" +} + +src_install() { + default + strip-lto-bytecode + + local MY_P=${PN}${PV} + + sed \ + -e "/BUILD_LIB_SPEC/s:-L${S}::g" \ + -e "/BUILD_STUB_LIB_SPEC/s:-L${S}::g" \ + -e "/BUILD_STUB_LIB_PATH/s:${S}:${EPREFIX}/usr/$(get_libdir)/${MY_P}/:g" \ + -e "/INCLUDE_SPEC/s:${S}/generic:${EPREFIX}/usr/include:g" \ + -e "s:${S}:${EPREFIX}/usr/$(get_libdir)/${MY_P}/:g" \ + -i "${ED}"/usr/$(get_libdir)/${MY_P}/itclConfig.sh || die + + cat >> "${T}"/34${PN} <<- EOF + LDPATH="${EPREFIX}/usr/$(get_libdir)/${MY_P}/" + EOF + doenvd "${T}"/34${PN} + dosym . /usr/$(get_libdir)/${MY_P}/library +} diff --git a/dev-tcltk/itcl/metadata.xml b/dev-tcltk/itcl/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/itcl/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/itk/Manifest b/dev-tcltk/itk/Manifest new file mode 100644 index 000000000000..83fb2e8fab9c --- /dev/null +++ b/dev-tcltk/itk/Manifest @@ -0,0 +1,2 @@ +DIST itk-4-2-3.tar.gz 168217 BLAKE2B 450c9f3393228b93a716cf338ad322ecc8934aca08a1f7c4a81dab07a38ac6729ab2ae43b7197130e3cda1bc03ed61c81f9d63cac542d8dcbb199764d47ae4d7 SHA512 0c5c70119b0d0dd950a8e3a52f5a508935bad920f647c38193980a414f617589711a65f4eac3ec67c4bef72f787205cae12513d4d3d35c3b8a795b1bb763fac4 +DIST tclconfig-2023.12.11.tar.gz 49691 BLAKE2B 53bb91d125fd080b79ac83af1053d8bb981a8e917b7c8e4db71da89c43263d75a9604623a85d560bcbf3d686f61ccf21bffd794d333aa6cb35c959ab3042991d SHA512 c4eaa31ca1ec585536cd6d31a548b347dae3167197433674d2f3912ce85bad00dda55b0c60eebf26cb5f9d651c8437688e1829f7d3996a22bba2d93e4538946c diff --git a/dev-tcltk/itk/itk-4.2.3-r2.ebuild b/dev-tcltk/itk/itk-4.2.3-r2.ebuild new file mode 100644 index 000000000000..9ff220014e46 --- /dev/null +++ b/dev-tcltk/itk/itk-4.2.3-r2.ebuild @@ -0,0 +1,78 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a virtualx + +MY_PV=${PN}-$(ver_rs 1- '-') +TCLCONFIGId=4a924db4fb37fa0c7cc2ae987b294dbaa97bc713 + +DESCRIPTION="Object Oriented Enhancements for Tcl/Tk" +HOMEPAGE="https://incrtcl.sourceforge.net/" +SRC_URI=" + https://github.com/tcltk/${PN}/archive/refs/tags/${MY_PV}.tar.gz + https://github.com/tcltk/tclconfig/archive/${TCLCONFIGId}.tar.gz + -> tclconfig-2023.12.11.tar.gz +" + +SLOT="0" +LICENSE="BSD" +KEYWORDS="amd64 ~arm64 ppc ~riscv ~sparc x86" +RESTRICT="!test? ( test )" + +DEPEND=" + >=dev-lang/tk-8.6:= + >=dev-tcltk/itcl-4.2.4" +RDEPEND="${DEPEND}" + +S="${WORKDIR}/${PN}-${MY_PV}" + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 readdir64 rewinddir64 closedir64 stat64 # used on AIX +) + +UNINSTALL_IGNORE='/usr/lib.*/itk.*/library' + +src_prepare() { + ln -s ../tclconfig-${TCLCONFIGId} tclconfig || die + sed 's:-pipe::g' -i configure || die + default + echo "unknown" > manifest.uuid +} + +src_configure() { + lto-guarantee-fat + local itcl_package=$(best_version dev-tcltk/itcl) + local itcl_version=${itcl_package#*/*-} + local ITCL_VERSION="${itcl_version%-*}" + source "${EPREFIX}"/usr/$(get_libdir)/itcl${ITCL_VERSION}*/itclConfig.sh || die + econf \ + --with-tcl="${EPREFIX}"/usr/$(get_libdir) \ + --with-tclinclude="${EPREFIX}"/usr/include \ + --with-tk="${EPREFIX}"/usr/$(get_libdir) \ + --with-tkinclude="${EPREFIX}"/usr/include \ + --with-itcl="${ITCL_SRC_DIR}" \ + --with-x +} + +src_compile() { + emake CFLAGS_DEFAULT="${CFLAGS}" +} + +src_test() { + virtx default +} + +src_install() { + default + strip-lto-bytecode + + dodoc license.terms + + cat >> "${T}"/34${PN} <<- EOF + LDPATH="${EPREFIX}/usr/$(get_libdir)/${PN}${MY_PV}/" + EOF + doenvd "${T}"/34${PN} + dosym . /usr/$(get_libdir)/${PN}${PV}/library +} diff --git a/dev-tcltk/itk/metadata.xml b/dev-tcltk/itk/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/itk/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/iwidgets/Manifest b/dev-tcltk/iwidgets/Manifest new file mode 100644 index 000000000000..fc1c4c0a9f90 --- /dev/null +++ b/dev-tcltk/iwidgets/Manifest @@ -0,0 +1 @@ +DIST iwidgets-4.1.1.tar.gz 720630 BLAKE2B f276159893b19d7af7cbbe3653f9e406184c76065ae7906c34388545bdfff1b9e427a6e9b1985f349e9229c69c935b5b85ae8a0fd15ef28b0a1312fc4fcec8f4 SHA512 56fd91d832c59426b030bde2ec7136e46751503dac1b650d195251cac7ef1d1a7024adb2d995fe835f1039a0f99eb616db97a9e9c591f827a911eea2c233c305 diff --git a/dev-tcltk/iwidgets/files/iwidgets-4.1.1-dash.patch b/dev-tcltk/iwidgets/files/iwidgets-4.1.1-dash.patch new file mode 100644 index 000000000000..0a928506ee6c --- /dev/null +++ b/dev-tcltk/iwidgets/files/iwidgets-4.1.1-dash.patch @@ -0,0 +1,11 @@ +--- a/tclconfig/tcl.m4 2023-03-16 08:23:24.920934671 +0100 ++++ b/tclconfig/tcl.m4 2023-03-16 08:24:06.288775313 +0100 +@@ -794,7 +794,7 @@ + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then +- system=MP-RAS-`awk '{print $3}' /etc/.relid'` ++ system=MP-RAS-`awk '{print $3}' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` diff --git a/dev-tcltk/iwidgets/iwidgets-4.1.1-r4.ebuild b/dev-tcltk/iwidgets/iwidgets-4.1.1-r4.ebuild new file mode 100644 index 000000000000..801be19292ec --- /dev/null +++ b/dev-tcltk/iwidgets/iwidgets-4.1.1-r4.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit virtualx autotools + +BASE_URI_ITCLTK="https://downloads.sourceforge.net/incrtcl/%5BIncr%20Tcl_Tk%5D-4-source" + +DESCRIPTION="Widget collection for incrTcl/incrTk" +HOMEPAGE="http://incrtcl.sourceforge.net/itcl/" +SRC_URI="https://downloads.sourceforge.net/incrtcl/%5BIncr%20Widgets%5D/${PV}/${P}.tar.gz" + +LICENSE="HPND Old-MIT tcltk" +SLOT="0" +KEYWORDS="amd64 ppc ~sparc x86" +RESTRICT="!test? ( test )" + +DEPEND=" + >=dev-tcltk/itcl-4.2.4-r1 + >=dev-tcltk/itk-4.1.0-r1 + <dev-lang/tcl-9" +RDEPEND="${DEPEND}" + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 # used to test for Large File Support +) + +PATCHES=( "${FILESDIR}"/${P}-dash.patch ) + +src_prepare() { + default + sed \ + -e "/^\(LIB\|SCRIPT\)_INSTALL_DIR =/s|lib|$(get_libdir)|" \ + -i Makefile.in || die + + eautoreconf + + # Bug 115470 + rm doc/panedwindow.n + + rm tests/hierarchy.test || die +} + +src_configure() { + local itcl_package=$(best_version dev-tcltk/itcl) + local itcl_version=${itcl_package#*/*-} + local itcl="itcl${itcl_version%-*}" + local itk_package=$(best_version dev-tcltk/itk) + local itk_version=${itk_package#*/*-} + local itk="itk${itk_version%-*}" + econf \ + --with-tcl="${EPREFIX}"/usr/$(get_libdir) \ + --with-tk="${EPREFIX}"/usr/$(get_libdir) \ + --with-itcl="${EPREFIX}"/usr/$(get_libdir)/${itcl} \ + --with-itk="${EPREFIX}"/usr/$(get_libdir)/${itk} +} + +src_compile() { + : +} + +src_test() { + virtx default +} + +src_install() { + default + + # demos are in the wrong place: + mv "${ED}/usr/$(get_libdir)/${PN}${PV}/demos" "${ED}/usr/share/doc/${PF}/" +} diff --git a/dev-tcltk/iwidgets/metadata.xml b/dev-tcltk/iwidgets/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/iwidgets/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/metadata.xml b/dev-tcltk/metadata.xml new file mode 100644 index 000000000000..536f5e4c8095 --- /dev/null +++ b/dev-tcltk/metadata.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE catmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<catmetadata> + <longdescription lang="en"> + The dev-tcltk category contains Tcl- and Tk-related libraries and tools. + </longdescription> + <longdescription lang="de"> + Die Kategorie dev-tcltk enthält Bibliotheken und Werkzeuge für Tcl und Tk. + </longdescription> + <longdescription lang="es"> + La categoría dev-tcltk contiene herramientas y librerías referentes + a Tcl y Tk. + </longdescription> + <longdescription lang="ja"> + dev-tcltkカテゴリーにはTclとTkに関連したライブラリーとツールが含まれます。 + </longdescription> + <longdescription lang="nl"> + De dev-tcltk categorie bevat bibliotheken en hulpmiddelen voor het gebruik van de + programmeertalen Tcl en Tk. + </longdescription> + <longdescription lang="vi"> + Nhóm dev-tcltk chứa các thư viện và tiện ích liên quan + đến ngôn ngữ lập trình Tcl/Tk. + </longdescription> + <longdescription lang="it"> + La categoria dev-tcltk contiene utilità e librerie per Tcl e Tk. + </longdescription> + <longdescription lang="pt"> + A categoria dev-tcltk contém bibliotecas e ferramentas + referentes a Tcl e Tk. + </longdescription> + <longdescription lang="pl"> + Kategoria dev-tcltk zawiera biblioteki i narzędzia związane z Tcl i Tk. + </longdescription> +</catmetadata> diff --git a/dev-tcltk/mysqltcl/Manifest b/dev-tcltk/mysqltcl/Manifest new file mode 100644 index 000000000000..edd471ae1392 --- /dev/null +++ b/dev-tcltk/mysqltcl/Manifest @@ -0,0 +1 @@ +DIST mysqltcl-3.052.tar.gz 187781 BLAKE2B 0fe9b145556de22364187de980d737cae99a5a18763b1e3b28e4aa849f7b0b30be543cfa956c37b15e756f75ec5804e92b8b452410d542c3c3390e52d88d0419 SHA512 f5af18ad9bbaedb1fdcdbaa326b5c4cc3f754b14ee9bdf9cbfa0e1a44227ec918426022aaa0f26a71fa1a3bce6b6d8d75f8612de7f540f287fd418088c91fddf diff --git a/dev-tcltk/mysqltcl/files/mysqltcl-3.05-API.patch b/dev-tcltk/mysqltcl/files/mysqltcl-3.05-API.patch new file mode 100644 index 000000000000..579057268889 --- /dev/null +++ b/dev-tcltk/mysqltcl/files/mysqltcl-3.05-API.patch @@ -0,0 +1,11 @@ +--- a/generic/mysqltcl.c 2022-12-24 18:24:12.451620838 +0100 ++++ b/generic/mysqltcl.c 2022-12-24 18:24:24.075438534 +0100 +@@ -911,7 +911,7 @@ + #if (MYSQL_VERSION_ID>=32350) + if(mysql_options_reconnect) + { +- my_bool reconnect = 1; ++ bool reconnect = 1; + mysql_options(handle->connection, MYSQL_OPT_RECONNECT, &reconnect); + } + mysql_options(handle->connection,MYSQL_READ_DEFAULT_GROUP,groupname); diff --git a/dev-tcltk/mysqltcl/files/mysqltcl-3.05-ldflags.patch b/dev-tcltk/mysqltcl/files/mysqltcl-3.05-ldflags.patch new file mode 100644 index 000000000000..5aa440332153 --- /dev/null +++ b/dev-tcltk/mysqltcl/files/mysqltcl-3.05-ldflags.patch @@ -0,0 +1,16 @@ + Makefile.in | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 0552d56..e32a0b4 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -107,7 +107,7 @@ OBJEXT = @OBJEXT@ + RANLIB = @RANLIB@ + RANLIB_STUB = @RANLIB_STUB@ + SHLIB_CFLAGS = @SHLIB_CFLAGS@ +-SHLIB_LD = @SHLIB_LD@ ++SHLIB_LD = @SHLIB_LD@ $(LDFLAGS) + SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ @MYSQL_LIBS@ + STLIB_LD = @STLIB_LD@ + #TCL_DEFS = @TCL_DEFS@ diff --git a/dev-tcltk/mysqltcl/files/mysqltcl-3.052-c23.patch b/dev-tcltk/mysqltcl/files/mysqltcl-3.052-c23.patch new file mode 100644 index 000000000000..df66202afa25 --- /dev/null +++ b/dev-tcltk/mysqltcl/files/mysqltcl-3.052-c23.patch @@ -0,0 +1,22 @@ +--- a/generic/mysqltcl.c 2025-04-06 09:16:50.402168333 +0200 ++++ b/generic/mysqltcl.c 2025-04-06 09:17:26.718696196 +0200 +@@ -2642,8 +2642,7 @@ + #ifdef _WINDOWS + __declspec( dllexport ) + #endif +-int Mysqltcl_Init(interp) +- Tcl_Interp *interp; ++int Mysqltcl_Init(Tcl_Interp *interp) + { + char nbuf[MYSQL_SMALL_SIZE]; + MysqltclState *statePtr; +@@ -2763,8 +2762,7 @@ + #ifdef _WINDOWS + __declspec( dllexport ) + #endif +-int Mysqltcl_SafeInit(interp) +- Tcl_Interp *interp; ++int Mysqltcl_SafeInit(Tcl_Interp *interp) + { + return Mysqltcl_Init(interp); + } diff --git a/dev-tcltk/mysqltcl/metadata.xml b/dev-tcltk/mysqltcl/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/mysqltcl/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/mysqltcl/mysqltcl-3.052-r3.ebuild b/dev-tcltk/mysqltcl/mysqltcl-3.052-r3.ebuild new file mode 100644 index 000000000000..3056060ee30b --- /dev/null +++ b/dev-tcltk/mysqltcl/mysqltcl-3.052-r3.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +inherit edos2unix + +DESCRIPTION="TCL MySQL Interface" +HOMEPAGE="http://www.xdobry.de/mysqltcl/" +SRC_URI="http://www.xdobry.de/mysqltcl/${P}.tar.gz" + +LICENSE="HPND" +SLOT="0" +KEYWORDS="amd64 ~ppc ~sparc x86" + +DEPEND=" + <dev-lang/tcl-9:0= + dev-db/mysql-connector-c:0=" +RDEPEND="${DEPEND}" + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 # used to test for Large File Support +) + +PATCHES=( + "${FILESDIR}"/${PN}-3.05-ldflags.patch + "${FILESDIR}"/${PN}-3.05-API.patch + "${FILESDIR}"/${P}-c23.patch +) +HTML_DOCS=( doc/mysqltcl.html ) + +src_prepare() { + edos2unix generic/mysqltcl.c + default_src_prepare + sed -i 's/-pipe//g;s/-O2//g;s/-fomit-frame-pointer//g' configure || die +} + +src_configure() { + econf --with-mysql-lib=$(mysql_config --variable=pkglibdir) +} diff --git a/dev-tcltk/scwoop/Manifest b/dev-tcltk/scwoop/Manifest new file mode 100644 index 000000000000..ed2a5d75abc3 --- /dev/null +++ b/dev-tcltk/scwoop/Manifest @@ -0,0 +1 @@ +DIST scwoop-4.1.tar.gz 86368 BLAKE2B 3bd736e2f3aad4b6ca10582e78c0b6bafdb8314577c6176ca386f98074d1ecc81151fe724423e09a6c2fa553d9ecee7f246b4297f74e42c78539f1ef169f2c6b SHA512 8fd3fc01bd133aa155b45dcc5a821986aa72115fe248e0382611604f9e23596506f0d34ac331c4824bfd84dce7958b7a10186551604a0614572ee4e84fa3be21 diff --git a/dev-tcltk/scwoop/metadata.xml b/dev-tcltk/scwoop/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/scwoop/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/scwoop/scwoop-4.1-r2.ebuild b/dev-tcltk/scwoop/scwoop-4.1-r2.ebuild new file mode 100644 index 000000000000..b075312c0286 --- /dev/null +++ b/dev-tcltk/scwoop/scwoop-4.1-r2.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Simple Composite Widget Object Oriented Package" +HOMEPAGE="http://jfontain.free.fr/scwoop41.htm" +SRC_URI="http://jfontain.free.fr/${P}.tar.gz" + +LICENSE="jfontain" +SLOT="0" +KEYWORDS="amd64 ~ppc x86" + +DEPEND="dev-tcltk/tcllib + <dev-lang/tcl-9" +RDEPEND="${DEPEND}" + +HTML_DOCS=( scwoop.htm ) + +src_install() { + dodir /usr/lib/scwoop + ./instapkg.tcl "${D}"/usr/lib/scwoop || die + + einstalldocs + docompress -x /usr/share/doc/${PF}/demo + docinto demo + dodoc demo* +} diff --git a/dev-tcltk/snack/Manifest b/dev-tcltk/snack/Manifest new file mode 100644 index 000000000000..34d54a7cbe8c --- /dev/null +++ b/dev-tcltk/snack/Manifest @@ -0,0 +1 @@ +DIST snack2.2.10.tar.gz 1798252 BLAKE2B e27b8e7d6082cdcfc06e7eea5ab832fb78ba104de9e56a69c6c9cd688183f7d4c6bdb974e4d5d2bf5ef2bc5518a913ddf17c90db8d10cef4dbee533307cc7718 SHA512 c17ad332fa4f3ded006b97ceca85cada079e4c7cd933768b289c13dadca1b8803fccaf709ec2def5af4abe92c307f25597ebfa6f94df2d681e40815cd7eccb9b diff --git a/dev-tcltk/snack/files/alsa-undef-sym.patch b/dev-tcltk/snack/files/alsa-undef-sym.patch new file mode 100644 index 000000000000..c46b9371c752 --- /dev/null +++ b/dev-tcltk/snack/files/alsa-undef-sym.patch @@ -0,0 +1,49 @@ +--- a/unix/jkAudIO_alsa.c 2005-12-14 12:29:38.000000000 +0100 ++++ b/unix/jkAudIO_alsa.c 2008-09-01 22:51:20.000000000 +0200 +@@ -49,6 +49,8 @@ + + static int minNumChan = 1; + ++static snd_pcm_uframes_t hw_bufsize = 0; ++ + int + SnackAudioOpen(ADesc *A, Tcl_Interp *interp, char *device, int mode, int freq, + int nchannels, int encoding) +@@ -135,6 +137,9 @@ + Tcl_AppendResult(interp, "Failed setting HW params.", NULL); + return TCL_ERROR; + } ++ ++ snd_pcm_hw_params_get_buffer_size (hw_params, &hw_bufsize); ++ + snd_pcm_hw_params_free(hw_params); + snd_pcm_prepare(A->handle); + if (A->mode == RECORD) { +@@ -202,6 +207,8 @@ + int i; + static char buf[64]; + ++ return; ++ + if (A->debug > 1) Snack_WriteLog(" Enter SnackAudioPost\n"); + + for (i = 0; i < 1000; i++) { +@@ -267,12 +274,14 @@ + long + SnackAudioPlayed(ADesc *A) + { +- long avail = _snd_pcm_mmap_hw_ptr(A->handle); ++ // FIX Here, _snd_pcm_mmap_hw_ptr is deprecated in new alsalib ++ long played = A->nWritten - (hw_bufsize - SnackAudioWriteable(A)); ++ // long avail = _snd_pcm_mmap_hw_ptr(A->handle); + +- if (avail < 0) +- avail = 0; ++ if (played < 0) ++ return 0; + +- return (avail+A->nPlayed); ++ return (played); + } + + void diff --git a/dev-tcltk/snack/files/snack-2.2.10-CVE-2012-6303-fix.patch b/dev-tcltk/snack/files/snack-2.2.10-CVE-2012-6303-fix.patch new file mode 100644 index 000000000000..6326e8a48d04 --- /dev/null +++ b/dev-tcltk/snack/files/snack-2.2.10-CVE-2012-6303-fix.patch @@ -0,0 +1,19 @@ +diff -up snack2.2.10/generic/jkSoundFile.c.CVE20126303 snack2.2.10/generic/jkSoundFile.c +--- snack2.2.10/generic/jkSoundFile.c.CVE20126303 2013-01-02 11:26:15.496231056 -0500 ++++ snack2.2.10/generic/jkSoundFile.c 2013-01-02 11:27:26.134250662 -0500 +@@ -1798,7 +1798,14 @@ static int + GetHeaderBytes(Sound *s, Tcl_Interp *interp, Tcl_Channel ch, char *buf, + int len) + { +- int rlen = Tcl_Read(ch, &buf[s->firstNRead], len - s->firstNRead); ++ int rlen; ++ ++ if (len > max(CHANNEL_HEADER_BUFFER, HEADBUF)){ ++ Tcl_AppendResult(interp, "Excessive header size", NULL); ++ return TCL_ERROR; ++ } ++ ++ rlen = Tcl_Read(ch, &buf[s->firstNRead], len - s->firstNRead); + + if (rlen < len - s->firstNRead){ + Tcl_AppendResult(interp, "Failed reading header bytes", NULL); diff --git a/dev-tcltk/snack/files/snack-2.2.10-configure-clang16.patch b/dev-tcltk/snack/files/snack-2.2.10-configure-clang16.patch new file mode 100644 index 000000000000..e038bf570abf --- /dev/null +++ b/dev-tcltk/snack/files/snack-2.2.10-configure-clang16.patch @@ -0,0 +1,12 @@ +Issue in autoconf which is already fixed upstream but we can't autoreconf, +it seems. +--- a/unix/configure ++++ b/unix/configure +@@ -2928,6 +2928,7 @@ cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + #include <ctype.h> ++#include <stdlib.h> + #if ((' ' & 0x0FF) == 0x020) + # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') + # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) diff --git a/dev-tcltk/snack/files/snack-2.2.10-darwin.patch b/dev-tcltk/snack/files/snack-2.2.10-darwin.patch new file mode 100644 index 000000000000..8c6dc5285863 --- /dev/null +++ b/dev-tcltk/snack/files/snack-2.2.10-darwin.patch @@ -0,0 +1,28 @@ +* grobian@gentoo.org: need all symbols to be satisfied, need + install_name for actual usage + +--- unix/Makefile.in ++++ unix/Makefile.in +@@ -35,7 +35,7 @@ + + LIBSO = -lc @ALIB@ @TCL_LIB_SPEC@ + +-LIBSN = -lc @TK_LIBS@ @ALIB@ @TCL_LIB_SPEC@ @TK_LIB_SPEC@ ++LIBSN = -lc -lX11 -ltk @TK_LIBS@ @ALIB@ @TCL_LIB_SPEC@ @TK_LIB_SPEC@ + + SHLIB_LD = @SHLIB_LD@ + SHLIB_SUFFIX = @SHLIB_SUFFIX@ +@@ -158,11 +158,11 @@ + $(CC) -c $(CFLAGS) $(GENERIC_DIR)/snackStubLib.c + + libsound${SHLIB_SUFFIX}: ${OBJSO} +- ${SHLIB_LD} ${OBJSO} ${LIBSO} -o libsound${SHLIB_SUFFIX} ++ ${SHLIB_LD} ${OBJSO} ${LIBSO} -install_name $(SNACK_INSTALL_PATH)/snack${VERSION}/libsound${SHLIB_SUFFIX} -o libsound${SHLIB_SUFFIX} + sed s/.dll/${SHLIB_SUFFIX}/ < $(UNIX_DIR)/pkgIndex.tcl.dll > pkgIndex.tcl + + libsnack${SHLIB_SUFFIX}: ${OBJSN} +- ${SHLIB_LD} ${OBJSN} ${LIBSN} -o libsnack${SHLIB_SUFFIX} ++ ${SHLIB_LD} ${OBJSN} ${LIBSN} -install_name $(SNACK_INSTALL_PATH)/snack${VERSION}/libsnack${SHLIB_SUFFIX} -o libsnack${SHLIB_SUFFIX} + sed s/.dll/${SHLIB_SUFFIX}/ < $(UNIX_DIR)/pkgIndex.tcl.dll > pkgIndex.tcl + + stublib: ${OBJSNST} diff --git a/dev-tcltk/snack/files/snack-2.2.10-debian-args.patch b/dev-tcltk/snack/files/snack-2.2.10-debian-args.patch new file mode 100644 index 000000000000..1f306d612669 --- /dev/null +++ b/dev-tcltk/snack/files/snack-2.2.10-debian-args.patch @@ -0,0 +1,154 @@ +Patch by Sergei Golovan fixes several cases of access beyond array boundaries. + +--- a/generic/jkFilterIIR.c ++++ b/generic/jkFilterIIR.c +@@ -125,6 +125,12 @@ + return TCL_ERROR; + } + ++ if (arg + 1 == objc) { ++ Tcl_AppendResult(interp, "No argument given for ", ++ optionStrings[index], " option", (char *) NULL); ++ return TCL_ERROR; ++ } ++ + switch ((enum options) index) { + /* size of triangular dithering on output */ + case DITHER: +--- a/generic/jkPitchCmd.c ++++ b/generic/jkPitchCmd.c +@@ -850,7 +850,7 @@ + + for (arg = 2; arg < objc; arg += 2) { + char *opt = Tcl_GetStringFromObj(objv[arg], NULL); +- char *val = Tcl_GetStringFromObj(objv[arg+1], NULL); ++ char *val = (arg + 1 == objc) ? "" : Tcl_GetStringFromObj(objv[arg+1], NULL); + + if ((strcmp("-method", opt) == 0) && (strcasecmp("esps", val) == 0)) { + Get_f0(s, interp, objc, objv); +--- a/generic/jkSoundEdit.c ++++ b/generic/jkSoundEdit.c +@@ -291,6 +291,12 @@ + string = Tcl_GetStringFromObj(objv[arg], &len); + + if (strncmp(string, "-units", len) == 0) { ++ if (arg + 1 == objc) { ++ Tcl_AppendResult(interp, "No argument given for ", ++ string, " option", (char *) NULL); ++ return TCL_ERROR; ++ } ++ + string = Tcl_GetStringFromObj(objv[arg+1], &len); + if (strncasecmp(string, "seconds", len) == 0) type = 1; + if (strncasecmp(string, "samples", len) == 0) type = 0; +@@ -1152,6 +1158,12 @@ + return TCL_ERROR; + } + ++ if (arg + 1 == objc) { ++ Tcl_AppendResult(interp, "No argument given for ", ++ subOptionStrings[index], " option", (char *) NULL); ++ return TCL_ERROR; ++ } ++ + switch ((enum subOptions) index) { + case RATE: + case FREQUENCY: +--- a/generic/shape.c ++++ b/generic/shape.c +@@ -103,6 +103,12 @@ + "option", 0, &index) != TCL_OK) { + return TCL_ERROR; + } ++ if (arg + 1 == objc) { ++ Tcl_AppendResult(interp, "No argument given for ", ++ subOptionStrings[index], " option", (char *) NULL); ++ return TCL_ERROR; ++ } ++ + switch ((enum subOptions) index) { + case START: + { +@@ -155,6 +161,12 @@ + "option", 0, &index) != TCL_OK) { + return TCL_ERROR; + } ++ if (arg + 1 == objc) { ++ Tcl_AppendResult(interp, "No argument given for ", ++ subOptionStrings[index], " option", (char *) NULL); ++ return TCL_ERROR; ++ } ++ + switch ((enum subOptions) index) { + case START: + { +@@ -384,6 +396,12 @@ + "option", 0, &index) != TCL_OK) { + return TCL_ERROR; + } ++ if (arg + 1 == objc) { ++ Tcl_AppendResult(interp, "No argument given for ", ++ subOptionStrings[index], " option", (char *) NULL); ++ return TCL_ERROR; ++ } ++ + switch ((enum subOptions) index) { + case START: + { +--- /dev/null ++++ b/tests/zargs.test +@@ -0,0 +1,54 @@ ++# Tests cover lack of command arguments ++ ++package require -exact snack 2.2 ++ ++if {[lsearch [namespace children] ::tcltest] == -1} { ++ package require tcltest ++ namespace import ::tcltest::* ++} ++ ++test zargs-1.1 {pitch command, with missing argument for -start option} { ++ set s [snack::sound snd -load ex1.wav] ++ catch {$s pitch -start} msg ++ $s destroy ++ set msg ++} {No argument given for -start option} ++ ++test zargs-1.2 {length command, with missing argument for -units option} { ++ set s [snack::sound snd -load ex1.wav] ++ catch {$s length 10 10 -units} msg ++ $s destroy ++ set msg ++} {No argument given for -units option} ++ ++test zargs-1.3 {convert command, with missing argument for -rate option} { ++ set s [snack::sound snd -load ex1.wav] ++ catch {$s convert -rate 1 -rate} msg ++ $s destroy ++ set msg ++} {No argument given for -rate option} ++ ++test zargs-1.4 {iir filter, with missing argument for -denominator option} { ++ set s [snack::sound snd -load ex1.wav] ++ catch {snack::filter iir -denominator} msg ++ $s destroy ++ set msg ++} {No argument given for -denominator option} ++ ++test zargs-1.5 {shape command, with missing argument for -start option} { ++ set s [snack::sound snd -load ex1.wav] ++ catch {$s shape -start 0 -start} msg ++ $s destroy ++ set msg ++} {No argument given for -start option} ++ ++test zargs-1.6 {datasamples command, with missing argument for -start option} { ++ set s [snack::sound snd -load ex1.wav] ++ catch {$s datasamples -start 0 -start} msg ++ $s destroy ++ set msg ++} {No argument given for -start option} ++ ++# cleanup ++::tcltest::cleanupTests ++return diff --git a/dev-tcltk/snack/files/snack-2.2.10-implicit.patch b/dev-tcltk/snack/files/snack-2.2.10-implicit.patch new file mode 100644 index 000000000000..965b1af0dbe2 --- /dev/null +++ b/dev-tcltk/snack/files/snack-2.2.10-implicit.patch @@ -0,0 +1,92 @@ +--- a/generic/sigproc2.c 2023-01-16 08:03:06.605091947 +0100 ++++ b/generic/sigproc2.c 2023-01-16 08:11:03.641089339 +0100 +@@ -465,9 +465,7 @@ + } + + /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +-int get_window(dout, n, type) +- register double *dout; +- register int n; ++int get_window(register double *dout, register int n, int type) + { + static short *din = NULL; + static int n0 = 0; +@@ -506,9 +504,7 @@ + } + + /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +-int get_float_window(fout, n, type) +- register float *fout; +- register int n; ++int get_float_window(register float *fout, register int n, int type) + { + static int n0 = 0; + static double *dout = NULL; +@@ -533,10 +529,7 @@ + } + + /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +-int fwindow(din, dout, n, preemp, type) +- register short *din; +- register float *dout, preemp; +- register int n; ++int fwindow(register short *din, register float *dout, register int n, register float preemp, int type) + { + static float *fwind=NULL; + static int size=0, otype= (-100); +@@ -572,10 +565,7 @@ + + /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ + /* same as fwindow() but input is float */ +-int fwindow_f(din, dout, n, preemp, type) +- register float *din; +- register float *dout, preemp; +- register int n; ++int fwindow_f(register float *din, register float *dout, register int n, register float preemp, int type) + { + static float *fwind=NULL; + static int size=0, otype= (-100); +@@ -611,10 +601,7 @@ + + /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ + /* same as fwindow() but I/O is double */ +-int fwindow_d(din, dout, n, preemp, type) +- register double *din; +- register double *dout, preemp; +- register int n; ++int fwindow_d(register double *din, register double *dout, register int n, register double preemp, int type) + { + static float *fwind=NULL; + static int size=0, otype= (-100); +@@ -651,10 +638,7 @@ + + + /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ +-void w_window(din, dout, n, preemp, type) +- register short *din; +- register double *dout, preemp; +- register int n; ++void w_window(register short *din, register double *dout, register int n, register double preemp, int type) + { + switch(type) { + case 0: +--- a/generic/jkCanvSpeg.c 2023-01-16 08:25:51.880415841 +0100 ++++ b/generic/jkCanvSpeg.c 2023-01-16 08:26:43.667561725 +0100 +@@ -92,7 +92,7 @@ + Tk_Window tkwin, CONST84 char *value, char *recordPtr, + int offset); + +-static char *PrintColorMap(ClientData clientData, Tk_Window tkwin, ++static const char *PrintColorMap(ClientData clientData, Tk_Window tkwin, + char *recordPtr, int offset, + Tcl_FreeProc **freeProcPtr); + +@@ -1797,7 +1797,7 @@ + return TCL_OK; + } + +-static char* ++static const char* + PrintColorMap(ClientData clientData, Tk_Window tkwin, char *recordPtr, + int offset, Tcl_FreeProc **freeProcPtr) + { diff --git a/dev-tcltk/snack/files/snack-2.2.10-lto.patch b/dev-tcltk/snack/files/snack-2.2.10-lto.patch new file mode 100644 index 000000000000..27c6b6c9126f --- /dev/null +++ b/dev-tcltk/snack/files/snack-2.2.10-lto.patch @@ -0,0 +1,28 @@ +--- a/generic/sound.c 2022-07-18 08:21:20.492977432 +0200 ++++ b/generic/sound.c 2022-07-18 08:21:44.720698702 +0200 +@@ -120,9 +120,9 @@ + int littleEndian = 0; + + #ifdef __cplusplus +-extern "C" SnackStubs *snackStubs; ++extern "C" SnackStubs snackStubs; + #else +-extern SnackStubs *snackStubs; ++extern SnackStubs snackStubs; + #endif + + extern Tcl_HashTable *filterHashTable; +--- a/generic/snack.c 2022-07-18 08:21:29.953868734 +0200 ++++ b/generic/snack.c 2022-07-18 08:22:05.978453035 +0200 +@@ -203,9 +203,9 @@ + int littleEndian = 0; + + #ifdef __cplusplus +-extern "C" SnackStubs *snackStubs; ++extern "C" SnackStubs snackStubs; + #else +-extern SnackStubs *snackStubs; ++extern SnackStubs snackStubs; + #endif + + extern Tcl_HashTable *filterHashTable; diff --git a/dev-tcltk/snack/files/snack-2.2.10-parallelMake.patch b/dev-tcltk/snack/files/snack-2.2.10-parallelMake.patch new file mode 100644 index 000000000000..53e79c0f1eff --- /dev/null +++ b/dev-tcltk/snack/files/snack-2.2.10-parallelMake.patch @@ -0,0 +1,20 @@ +--- a/unix/Makefile.in 2023-01-16 08:39:23.021056229 +0100 ++++ b/unix/Makefile.in 2023-01-16 08:40:31.485926112 +0100 +@@ -290,7 +290,7 @@ + SphereFile.o: $(GENERIC_DIR)/SphereFile.c + $(CC) -c $(CFLAGS) -DUSE_SNACK_STUBS $(GENERIC_DIR)/SphereFile.c + +-libsnacksphere${SHLIB_SUFFIX}: ${OBJNIST} ++libsnacksphere${SHLIB_SUFFIX}: ${OBJNIST} stublib + ${SHLIB_LD} ${OBJNIST} ${LIBNIST} -o libsnacksphere${SHLIB_SUFFIX} + + LIBOGG = @OGGLIBS@ -lc @TCL_LIB_SPEC@ -L. @SNACK_STUB_LIB_FLAG@ +@@ -299,7 +299,7 @@ + SnackOgg.o: $(GENERIC_DIR)/SnackOgg.c + $(CC) @OGGINC@ -c $(CFLAGS) -DUSE_SNACK_STUBS $(GENERIC_DIR)/SnackOgg.c + +-libsnackogg${SHLIB_SUFFIX}: ${OBJOGG} ++libsnackogg${SHLIB_SUFFIX}: ${OBJOGG} stublib + ${SHLIB_LD} ${OBJOGG} ${LIBOGG} -o libsnackogg${SHLIB_SUFFIX} + + install: diff --git a/dev-tcltk/snack/files/snack-2.2.10-py3.8.patch b/dev-tcltk/snack/files/snack-2.2.10-py3.8.patch new file mode 100644 index 000000000000..ec42b50eac88 --- /dev/null +++ b/dev-tcltk/snack/files/snack-2.2.10-py3.8.patch @@ -0,0 +1,11 @@ +--- a/python/tkSnack.py 2024-04-20 16:01:28.403396211 +0200 ++++ b/python/tkSnack.py 2024-04-20 16:01:55.094084757 +0200 +@@ -267,7 +267,7 @@ + + def pitch(self, method=None, **kw): + """Returns a list of pitch values.""" +- if method is None or method is "amdf" or method is "AMDF": ++ if method is None or method == "amdf" or method == "AMDF": + result = self.tk.call((self.name, 'pitch') + self._options(kw)) + return self._getdoubles(result) + else: diff --git a/dev-tcltk/snack/files/snack-2.2.10-test.patch b/dev-tcltk/snack/files/snack-2.2.10-test.patch new file mode 100644 index 000000000000..ba8a91c8774d --- /dev/null +++ b/dev-tcltk/snack/files/snack-2.2.10-test.patch @@ -0,0 +1,149 @@ +--- a/tests/pitch.test 2018-12-02 21:56:08.315195566 +0100 ++++ b/tests/pitch.test 2018-12-02 21:54:19.853964344 +0100 +@@ -28,7 +28,7 @@ + set res [$s pitch -method ESPS] + $s destroy + set res +-} {{0.0 0.0 0.0 0.7046} {0.0 0.0 773.75 0.65552} {0.0 0.0 818.19 0.24061} {0.0 0.0 813.11 0.56787} {0.0 0.0 808.38 0.51307} {0.0 0.0 826.19 0.49327} {0.0 0.0 856.39 0.9469} {0.0 0.0 851.94 0.0} {0.0 0.0 869.07 0.48861} {0.0 0.0 842.5 0.39768} {0.0 0.0 839.18 0.4009} {0.0 0.0 820.35 0.81465} {0.0 0.0 833.41 0.95806} {0.0 0.0 855.43 0.89539} {0.0 0.0 853.1 0.28335} {0.0 0.0 889.35 0.59169} {0.0 0.0 1070.4 0.68884} {0.0 0.0 878.07 0.5143} {0.0 0.0 893.05 0.3997} {0.0 0.0 873.35 0.68623} {0.0 0.0 965.28 0.57252} {0.0 0.0 882.13 0.49351} {0.0 0.0 1196.0 0.70511} {209.81 1.0 3310.1 0.88756} {162.78 1.0 3659.8 0.99115} {161.92 1.0 3512.8 0.99646} {158.92 1.0 3547.8 0.99354} {155.91 1.0 3468.3 0.98505} {149.48 1.0 3284.6 0.99364} {143.31 1.0 3007.4 0.98736} {133.77 1.0 2823.2 0.94805} {126.48 1.0 2640.0 0.98759} {119.94 1.0 2332.5 0.9852} {112.98 1.0 2040.0 0.95218} {109.81 1.0 2122.5 0.9571} {107.68 1.0 2418.8 0.92161} {106.6 1.0 2507.1 0.95998} {105.57 1.0 2478.7 0.95695} {105.43 1.0 2671.9 0.96458} {106.74 1.0 2706.4 0.98918} {109.0 1.0 2755.5 0.99448} {111.84 1.0 2716.9 0.97564} {115.73 1.0 2274.5 0.87201} {99.183 1.0 920.17 0.60726} {120.34 1.0 860.54 0.84981} {150.88 1.0 2140.9 0.93803} {136.25 1.0 2838.7 0.98336} {141.73 1.0 2877.0 0.99704} {145.06 1.0 2894.6 0.98906} {146.54 1.0 2748.1 0.98797} {149.82 1.0 2700.2 0.94096} {149.23 1.0 2838.5 0.98879} {146.53 1.0 2629.4 0.95378} {141.86 1.0 2179.6 0.97326} {133.37 1.0 1887.6 0.85003} {124.99 1.0 1659.4 0.94212} {117.97 1.0 1442.7 0.96375} {109.74 1.0 1090.7 0.96917} {103.63 1.0 915.58 0.92499} {111.49 1.0 852.97 0.69573} {107.37 1.0 786.45 0.86455} {93.37 1.0 815.31 0.81332} {123.3 1.0 804.19 0.61468} {84.033 1.0 762.64 0.74945} {121.1 1.0 725.97 0.5574} {114.08 1.0 700.18 0.82347} {101.78 1.0 704.91 0.57994} {103.43 1.0 695.82 0.75774} {101.42 1.0 699.76 0.79472} {105.86 1.0 714.6 0.70127} {0.0 0.0 745.64 0.828} {0.0 0.0 736.29 0.64289} {0.0 0.0 696.31 0.40449} {0.0 0.0 684.55 0.44551} {0.0 0.0 639.39 0.38997} {0.0 0.0 561.58 0.0} {0.0 0.0 628.03 0.34976} {0.0 0.0 717.81 0.38937} {0.0 0.0 748.32 0.41932} {0.0 0.0 750.33 0.86962} {0.0 0.0 783.32 0.82826} {0.0 0.0 761.07 0.20038} {0.0 0.0 809.66 0.35076} {0.0 0.0 831.98 0.7714} {0.0 0.0 872.36 0.67117} {0.0 0.0 826.35 0.6413} {0.0 0.0 717.04 0.0} {0.0 0.0 723.39 0.54415} {0.0 0.0 751.84 0.33728} {0.0 0.0 818.29 0.31209} {0.0 0.0 837.27 0.4341} {0.0 0.0 849.58 0.3289} {0.0 0.0 862.31 0.28854} {0.0 0.0 845.67 0.68362} {0.0 0.0 868.24 0.74526}} ++} {{0.0 0.0 0.0 0.7046} {0.0 0.0 773.7 0.65552} {0.0 0.0 818.08 0.24061} {0.0 0.0 813.13 0.56787} {0.0 0.0 808.39 0.51307} {0.0 0.0 826.01 0.49327} {0.0 0.0 856.56 0.9469} {0.0 0.0 851.72 0.0} {0.0 0.0 869.15 0.48861} {0.0 0.0 842.57 0.39768} {0.0 0.0 839.14 0.4009} {0.0 0.0 820.39 0.81465} {0.0 0.0 833.47 0.95806} {0.0 0.0 855.33 0.89539} {0.0 0.0 852.97 0.28335} {0.0 0.0 889.07 0.59169} {0.0 0.0 1070.5 0.68884} {0.0 0.0 878.41 0.5143} {0.0 0.0 892.74 0.3997} {0.0 0.0 873.53 0.68623} {0.0 0.0 965.13 0.57252} {0.0 0.0 882.69 0.49351} {0.0 0.0 1193.0 0.70511} {209.81 1.0 3304.3 0.88756} {162.78 1.0 3660.9 0.99115} {161.92 1.0 3512.7 0.99646} {158.92 1.0 3547.9 0.99354} {155.91 1.0 3468.7 0.98505} {149.48 1.0 3285.3 0.99364} {143.31 1.0 3008.2 0.98736} {133.77 1.0 2823.7 0.94805} {126.48 1.0 2640.8 0.98759} {119.94 1.0 2333.7 0.9852} {112.98 1.0 2040.5 0.95218} {109.81 1.0 2121.6 0.9571} {107.68 1.0 2418.1 0.92161} {106.6 1.0 2507.3 0.95998} {105.57 1.0 2478.0 0.95695} {105.43 1.0 2671.9 0.96458} {106.74 1.0 2706.6 0.98918} {109.0 1.0 2755.4 0.99448} {111.84 1.0 2717.5 0.97564} {115.73 1.0 2277.5 0.87201} {99.183 1.0 924.36 0.60726} {120.34 1.0 859.79 0.84981} {150.88 1.0 2136.3 0.93803} {136.25 1.0 2838.1 0.98336} {141.73 1.0 2877.0 0.99704} {145.06 1.0 2894.6 0.98906} {146.54 1.0 2749.1 0.98797} {149.82 1.0 2699.5 0.94096} {149.23 1.0 2838.4 0.98879} {146.53 1.0 2630.6 0.95378} {141.86 1.0 2181.0 0.97326} {133.37 1.0 1888.3 0.85003} {124.99 1.0 1660.0 0.94212} {117.97 1.0 1443.6 0.96375} {109.74 1.0 1091.7 0.96917} {103.63 1.0 915.75 0.92499} {111.49 1.0 853.13 0.69573} {107.37 1.0 786.42 0.86455} {93.37 1.0 815.44 0.81332} {123.3 1.0 804.05 0.61468} {84.033 1.0 762.98 0.74945} {121.1 1.0 725.91 0.5574} {114.08 1.0 700.22 0.82347} {101.78 1.0 704.95 0.57994} {103.43 1.0 695.87 0.75774} {101.42 1.0 699.81 0.79472} {105.86 1.0 714.47 0.70127} {0.0 0.0 745.7 0.828} {0.0 0.0 736.31 0.64289} {0.0 0.0 696.35 0.40449} {0.0 0.0 684.65 0.44551} {0.0 0.0 639.58 0.38997} {0.0 0.0 561.77 0.0} {0.0 0.0 627.65 0.34976} {0.0 0.0 717.62 0.38937} {0.0 0.0 748.27 0.41932} {0.0 0.0 750.33 0.86962} {0.0 0.0 783.3 0.82826} {0.0 0.0 761.05 0.20038} {0.0 0.0 809.51 0.35076} {0.0 0.0 831.97 0.7714} {0.0 0.0 872.22 0.67117} {0.0 0.0 826.62 0.6413} {0.0 0.0 717.3 0.0} {0.0 0.0 723.3 0.54415} {0.0 0.0 751.75 0.33728} {0.0 0.0 818.03 0.31209} {0.0 0.0 837.29 0.4341} {0.0 0.0 849.53 0.3289} {0.0 0.0 862.33 0.28854} {0.0 0.0 845.65 0.68362} {0.0 0.0 868.25 0.74526}} + + test pitch-2.1 {pitch command, with missing argument for -start option} { + set s [snack::sound snd -load ex1.wav] +--- a/tests/power.test 2020-10-12 21:45:55.843838864 +0200 ++++ b/tests/power.test 2020-10-12 21:46:21.732387559 +0200 +@@ -8,14 +8,6 @@ + namespace import ::tcltest::* + } + +-test power-1.1 {power command} { +- set s [snack::sound snd -load ex1.wav] +- set tcl_precision 5 +- set res [$s power] +- $s destroy +- set res +-} {57.668 58.916 57.992 58.647 58.462 58.415 58.353 58.948 58.897 59.02 58.761 58.745 58.248 58.595 59.158 58.846 58.467 61.37 59.153 59.315 58.301 60.035 59.451 58.963 71.281 71.387 71.13 71.213 71.01 70.635 69.845 68.822 68.986 68.525 67.103 66.664 67.365 67.627 66.72 67.337 67.657 68.365 68.854 68.204 58.26 58.141 66.927 69.789 69.122 69.601 69.076 68.909 69.337 68.621 67.11 65.266 64.678 64.223 61.751 60.287 59.447 57.811 58.444 58.209 57.645 57.279 56.377 56.572 56.467 56.796 57.045 57.735 57.858 57.081 56.943 56.421 54.929 56.202 57.349 57.643 57.477 58.207 57.706 58.385 58.601 59.228 58.694 57.176 57.423 57.733 58.599 58.614 58.771 59.005 58.651 59.077 59.001 58.113 58.374} +- + test power-1.2 {power command} { + set s [snack::sound snd -load ex1.wav] + set tcl_precision 5 +--- a/tests/mixer.test 2019-05-15 08:41:24.761148030 +0200 ++++ b/tests/mixer.test 2019-05-15 08:41:37.902919720 +0200 +@@ -13,12 +13,6 @@ + set msg + } {bad option "junk": must be devices, select, input, inputs, output, outputs, channels, volume, lines, or update} + +-test mixer-1.2 {snack::mixer devices command} { +- set devs [snack::mixer devices] +- set res [expr [string length $devs] > 0] +- set res +-} 1 +- + test mixer-1.3 {snack::mixer select command} { + catch {snack::mixer select junk} msg + set msg +--- a/tests/audio.test 2019-06-22 19:02:01.803975186 +0200 ++++ b/tests/audio.test 2019-06-22 19:04:12.368034556 +0200 +@@ -13,38 +13,16 @@ + set msg + } {bad option "junk": must be outputDevices, inputDevices, selectOutput, selectInput, formats, frequencies, active, play_gain, record_gain, elapsedTime, currentSound, playLatency, scaling, encodings, rates, play, stop, or pause} + +-test audio-1.2 {snack::audio outputDevices command} { +- set devs [snack::audio outputDevices] +- set res [expr [string length $devs] > 0] +- set res +-} 1 +- +-test audio-1.3 {snack::audio inputDevices command} { +- set devs [snack::audio inputDevices] +- set res [expr [string length $devs] > 0] +- set res +-} 1 +- + test audio-1.4 {snack::audio selectOutput command} { + catch {snack::audio selectOutput junk} msg + set msg + } {No such device: junk} + +-test audio-1.5 {snack::audio selectOutput command} { +- set dev [lindex [snack::audio outputDevices] 0] +- catch {snack::audio selectOutput $dev} +-} 0 +- + test audio-1.6 {snack::audio selectInput command} { + catch {snack::audio selectInput junk} msg + set msg + } {No such device: junk} + +-test audio-1.7 {snack::audio selectInput command} { +- set dev [lindex [snack::audio inputDevices] 0] +- catch {snack::audio selectInput $dev} +-} 0 +- + # cleanup + ::tcltest::cleanupTests + return +--- a/tests/pitch.test 2020-10-12 21:45:27.248337664 +0200 ++++ b/tests/pitch.test 2020-10-12 21:45:47.250988708 +0200 +@@ -22,14 +22,6 @@ + set res + } {141.0 133.0 126.0} + +-test pitch-1.3 {pitch command} { +- set tcl_precision 5 +- set s [snack::sound snd -load ex1.wav] +- set res [$s pitch -method ESPS] +- $s destroy +- set res +-} {{0.0 0.0 0.0 0.7046} {0.0 0.0 773.7 0.65552} {0.0 0.0 818.08 0.24061} {0.0 0.0 813.13 0.56787} {0.0 0.0 808.39 0.51307} {0.0 0.0 826.01 0.49327} {0.0 0.0 856.56 0.9469} {0.0 0.0 851.72 0.0} {0.0 0.0 869.15 0.48861} {0.0 0.0 842.57 0.39768} {0.0 0.0 839.14 0.4009} {0.0 0.0 820.39 0.81465} {0.0 0.0 833.47 0.95806} {0.0 0.0 855.33 0.89539} {0.0 0.0 852.97 0.28335} {0.0 0.0 889.07 0.59169} {0.0 0.0 1070.5 0.68884} {0.0 0.0 878.41 0.5143} {0.0 0.0 892.74 0.3997} {0.0 0.0 873.53 0.68623} {0.0 0.0 965.13 0.57252} {0.0 0.0 882.69 0.49351} {0.0 0.0 1193.0 0.70511} {209.81 1.0 3304.3 0.88756} {162.78 1.0 3660.9 0.99115} {161.92 1.0 3512.7 0.99646} {158.92 1.0 3547.9 0.99354} {155.91 1.0 3468.7 0.98505} {149.48 1.0 3285.3 0.99364} {143.31 1.0 3008.2 0.98736} {133.77 1.0 2823.7 0.94805} {126.48 1.0 2640.8 0.98759} {119.94 1.0 2333.7 0.9852} {112.98 1.0 2040.5 0.95218} {109.81 1.0 2121.6 0.9571} {107.68 1.0 2418.1 0.92161} {106.6 1.0 2507.3 0.95998} {105.57 1.0 2478.0 0.95695} {105.43 1.0 2671.9 0.96458} {106.74 1.0 2706.6 0.98918} {109.0 1.0 2755.4 0.99448} {111.84 1.0 2717.5 0.97564} {115.73 1.0 2277.5 0.87201} {99.183 1.0 924.36 0.60726} {120.34 1.0 859.79 0.84981} {150.88 1.0 2136.3 0.93803} {136.25 1.0 2838.1 0.98336} {141.73 1.0 2877.0 0.99704} {145.06 1.0 2894.6 0.98906} {146.54 1.0 2749.1 0.98797} {149.82 1.0 2699.5 0.94096} {149.23 1.0 2838.4 0.98879} {146.53 1.0 2630.6 0.95378} {141.86 1.0 2181.0 0.97326} {133.37 1.0 1888.3 0.85003} {124.99 1.0 1660.0 0.94212} {117.97 1.0 1443.6 0.96375} {109.74 1.0 1091.7 0.96917} {103.63 1.0 915.75 0.92499} {111.49 1.0 853.13 0.69573} {107.37 1.0 786.42 0.86455} {93.37 1.0 815.44 0.81332} {123.3 1.0 804.05 0.61468} {84.033 1.0 762.98 0.74945} {121.1 1.0 725.91 0.5574} {114.08 1.0 700.22 0.82347} {101.78 1.0 704.95 0.57994} {103.43 1.0 695.87 0.75774} {101.42 1.0 699.81 0.79472} {105.86 1.0 714.47 0.70127} {0.0 0.0 745.7 0.828} {0.0 0.0 736.31 0.64289} {0.0 0.0 696.35 0.40449} {0.0 0.0 684.65 0.44551} {0.0 0.0 639.58 0.38997} {0.0 0.0 561.77 0.0} {0.0 0.0 627.65 0.34976} {0.0 0.0 717.62 0.38937} {0.0 0.0 748.27 0.41932} {0.0 0.0 750.33 0.86962} {0.0 0.0 783.3 0.82826} {0.0 0.0 761.05 0.20038} {0.0 0.0 809.51 0.35076} {0.0 0.0 831.97 0.7714} {0.0 0.0 872.22 0.67117} {0.0 0.0 826.62 0.6413} {0.0 0.0 717.3 0.0} {0.0 0.0 723.3 0.54415} {0.0 0.0 751.75 0.33728} {0.0 0.0 818.03 0.31209} {0.0 0.0 837.29 0.4341} {0.0 0.0 849.53 0.3289} {0.0 0.0 862.33 0.28854} {0.0 0.0 845.65 0.68362} {0.0 0.0 868.25 0.74526}} +- + test pitch-2.1 {pitch command, with missing argument for -start option} { + set s [snack::sound snd -load ex1.wav] + catch {$s pitch -start} msg +--- a/tests/dbpower.test 2020-10-14 19:03:17.821543729 +0200 ++++ b/tests/dbpower.test 2020-10-14 19:03:36.234218978 +0200 +@@ -17,15 +17,6 @@ + set res + } {-76.131 -82.843 -107.69 -102.82 -101.37 -102.09 -95.375 -95.568 -95.339 -98.854 -101.56 -98.987 -126.39 -106.92 -107.49 -105.77} + +-test dbpower-1.2 {dBPowerSpectrum command, -end option} { +- set s [snack::sound snd -load ex1.wav] +- set tcl_precision 5 +- set res [$s dBPowerSpectrum -start 1000 -end 2000 -fftlength 32 \ +- -windowlength 32] +- $s destroy +- set res +-} {-44.938 -51.981 -83.818 -91.582 -95.218 -97.588 -97.686 -99.849 -99.143 -100.16 -102.67 -102.81 -102.91 -104.24 -104.26 -107.86} +- + test dbpower-1.3 {dBPowerSpectrum command, -end and -skip options} { + set s [snack::sound snd -load ex1.wav] + set tcl_precision 5 +--- a/tests/filter.test 2023-03-17 22:53:35.463977748 +0100 ++++ b/tests/filter.test 2023-03-17 22:55:40.931996456 +0100 +@@ -362,27 +362,6 @@ + set res + } {16000 16000 10026 -6287 Lin16 1 RAW 0} + +-test filter-7.1 {iir filter, applied to sound} { +- set s [snack::sound snd -load ex1.wav] +- set f [snack::filter iir -numerator "0.99 -0.99" -denominator "1 -0.99"] +- $s filter $f -continuedrain 0 +- set res [$s info] +- $f destroy +- $s destroy +- set res +-} {15820 16000 13222 -9615 Lin16 1 WAV 44} +- +-test filter-7.2 {iir filter, applied to stereo sound} { +- set s [snack::sound snd -load ex1.wav] +- $s convert -channels 2 +- set f [snack::filter iir -numerator "0.99 -0.99" -denominator "1 -0.99"] +- $s filter $f -continuedrain 0 +- set res [$s info] +- $f destroy +- $s destroy +- set res +-} {15820 16000 13222 -9616 Lin16 2 WAV 44} +- + test filter-8.1 {fade filter, applied to sound} { + set s [snack::sound snd -rate 4000] + $s length 4 diff --git a/dev-tcltk/snack/files/snack2.2.10-seektell-fix.patch b/dev-tcltk/snack/files/snack2.2.10-seektell-fix.patch new file mode 100644 index 000000000000..3519b12c85d0 --- /dev/null +++ b/dev-tcltk/snack/files/snack2.2.10-seektell-fix.patch @@ -0,0 +1,12 @@ +diff -up snack2.2.10/generic/jkSound.h.seektell snack2.2.10/generic/jkSound.h +--- snack2.2.10/generic/jkSound.h.seektell 2019-07-30 16:01:37.310992628 -0400 ++++ snack2.2.10/generic/jkSound.h 2019-07-30 16:02:29.859840865 -0400 +@@ -603,7 +603,7 @@ extern void Snack_RemoveOptions(int objc + + extern void SnackPauseAudio(); + +-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION < 4 ++#if 1 || TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION < 4 + #define TCL_SEEK Tcl_Seek + #define TCL_TELL Tcl_Tell + #else diff --git a/dev-tcltk/snack/files/tcl-snack-2.2.10-python3.patch b/dev-tcltk/snack/files/tcl-snack-2.2.10-python3.patch new file mode 100644 index 000000000000..63c13885b637 --- /dev/null +++ b/dev-tcltk/snack/files/tcl-snack-2.2.10-python3.patch @@ -0,0 +1,385 @@ +diff -up snack2.2.10/demos/python/dataCmd.py.py3 snack2.2.10/demos/python/dataCmd.py +--- snack2.2.10/demos/python/dataCmd.py.py3 2018-10-04 15:46:14.974999306 -0400 ++++ snack2.2.10/demos/python/dataCmd.py 2018-10-04 15:46:50.295216897 -0400 +@@ -1,7 +1,12 @@ + #! /usr/bin/env python + # -*- coding: iso-8859-1 -*- + +-import Tkinter ++import sys ++if sys.version_info[0] == 2: ++ import Tkinter ++else: ++ import tkinter as Tkinter ++ + import tkSnack + + root = Tkinter.Tk() +diff -up snack2.2.10/demos/python/echo.py.py3 snack2.2.10/demos/python/echo.py +--- snack2.2.10/demos/python/echo.py.py3 2018-10-04 15:46:59.535012224 -0400 ++++ snack2.2.10/demos/python/echo.py 2018-10-04 15:47:37.093180236 -0400 +@@ -1,6 +1,11 @@ + #! /usr/bin/env python + +-from Tkinter import * ++import sys ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + + root = Tkinter.Tk() +diff -up snack2.2.10/demos/python/generator.py.py3 snack2.2.10/demos/python/generator.py +--- snack2.2.10/demos/python/generator.py.py3 2018-10-04 15:47:47.332953411 -0400 ++++ snack2.2.10/demos/python/generator.py 2018-10-04 15:48:06.435530261 -0400 +@@ -1,6 +1,11 @@ + #! /usr/bin/env python + +-from Tkinter import * ++import sys ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + + root = Tkinter.Tk() +diff -up snack2.2.10/demos/python/MinSect.py.py3 snack2.2.10/demos/python/MinSect.py +--- snack2.2.10/demos/python/MinSect.py.py3 2018-10-04 15:48:16.444308540 -0400 ++++ snack2.2.10/demos/python/MinSect.py 2018-10-04 15:48:45.907655882 -0400 +@@ -1,6 +1,11 @@ + #! /usr/bin/env python + +-from Tkinter import * ++import sys ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + + root = Tkinter.Tk() +diff -up snack2.2.10/demos/python/MinSpeg.py.py3 snack2.2.10/demos/python/MinSpeg.py +--- snack2.2.10/demos/python/MinSpeg.py.py3 2018-10-04 15:48:57.586397173 -0400 ++++ snack2.2.10/demos/python/MinSpeg.py 2018-10-04 15:49:16.562976809 -0400 +@@ -1,6 +1,11 @@ + #! /usr/bin/env python + +-from Tkinter import * ++import sys ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + + root = Tkinter.Tk() +diff -up snack2.2.10/demos/python/MinWave.py.py3 snack2.2.10/demos/python/MinWave.py +--- snack2.2.10/demos/python/MinWave.py.py3 2018-10-04 15:49:26.578754945 -0400 ++++ snack2.2.10/demos/python/MinWave.py 2018-10-04 15:49:39.057478518 -0400 +@@ -1,6 +1,11 @@ + #! /usr/bin/env python + +-from Tkinter import * ++import sys ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + + root = Tkinter.Tk() +diff -up snack2.2.10/demos/python/mixplay.py.py3 snack2.2.10/demos/python/mixplay.py +--- snack2.2.10/demos/python/mixplay.py.py3 2018-10-04 15:49:49.602244931 -0400 ++++ snack2.2.10/demos/python/mixplay.py 2018-10-04 15:50:04.440916236 -0400 +@@ -1,6 +1,11 @@ + #! /usr/bin/env python + +-from Tkinter import * ++import sys ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + + root = Tkinter.Tk() +diff -up snack2.2.10/demos/python/notescale.py.py3 snack2.2.10/demos/python/notescale.py +--- snack2.2.10/demos/python/notescale.py.py3 2018-10-04 15:50:13.624712803 -0400 ++++ snack2.2.10/demos/python/notescale.py 2018-10-04 15:50:30.640335876 -0400 +@@ -1,6 +1,11 @@ + #! /usr/bin/env python + +-from Tkinter import * ++import sys ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + + root = Tkinter.Tk() +diff -up snack2.2.10/demos/python/oggplay.py.py3 snack2.2.10/demos/python/oggplay.py +--- snack2.2.10/demos/python/oggplay.py.py3 2018-10-04 15:50:40.330121229 -0400 ++++ snack2.2.10/demos/python/oggplay.py 2018-10-04 15:51:35.127907369 -0400 +@@ -5,8 +5,13 @@ + # Note: this script will also play audio files in any other format supported + # by tkSnack + ++from __future__ import print_function + import sys +-from Tkinter import * ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + + initializeSnack(Tkinter.Tk()) +@@ -19,4 +24,4 @@ if sys.argv[1:]: + snd = Sound(file=sys.argv[1]) + snd.play(blocking=1) + else: +- print "Usage: oggplay.py file.ogg" ++ print("Usage: oggplay.py file.ogg") +diff -up snack2.2.10/demos/python/playnotes.py.py3 snack2.2.10/demos/python/playnotes.py +--- snack2.2.10/demos/python/playnotes.py.py3 2018-10-04 15:51:44.431701277 -0400 ++++ snack2.2.10/demos/python/playnotes.py 2018-10-04 15:52:01.623320444 -0400 +@@ -1,6 +1,11 @@ + #! /usr/bin/env python + +-from Tkinter import * ++import sys ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + + root = Tkinter.Tk() +diff -up snack2.2.10/demos/python/polarspec.py.py3 snack2.2.10/demos/python/polarspec.py +--- snack2.2.10/demos/python/polarspec.py.py3 2018-10-04 15:52:11.479102123 -0400 ++++ snack2.2.10/demos/python/polarspec.py 2018-10-04 15:52:24.654810263 -0400 +@@ -1,6 +1,11 @@ + #! /usr/bin/env python + +-from Tkinter import * ++import sys ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + from math import * + +diff -up snack2.2.10/demos/python/spectrogram.py.py3 snack2.2.10/demos/python/spectrogram.py +--- snack2.2.10/demos/python/spectrogram.py.py3 2018-10-04 15:52:35.462570856 -0400 ++++ snack2.2.10/demos/python/spectrogram.py 2018-10-04 15:52:49.101268729 -0400 +@@ -1,6 +1,11 @@ + #! /usr/bin/env python + +-from Tkinter import * ++import sys ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + + root = Tkinter.Tk() +diff -up snack2.2.10/demos/python/sphere.py.py3 snack2.2.10/demos/python/sphere.py +--- snack2.2.10/demos/python/sphere.py.py3 2018-10-04 15:52:57.679078718 -0400 ++++ snack2.2.10/demos/python/sphere.py 2018-10-04 15:53:36.557217499 -0400 +@@ -1,6 +1,12 @@ + #! /usr/bin/env python + +-from Tkinter import * ++from __future__ import print_function ++import sys ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + + root = Tkinter.Tk() +@@ -15,11 +21,11 @@ snd = Sound() + + file = 'test.sph' + +-print 'reading sphere file \'%s\'' % file ++print('reading sphere file \'%s\'' % file) + snd.read(file) + +-print 'playing file \'%s\'' % file ++print('playing file \'%s\'' % file) + snd.play(blocking=1) + +-print 'writing wav file \'%s\'' % file ++print('writing wav file \'%s\'' % file) + snd.write('new.wav') +diff -up snack2.2.10/demos/python/tkSnack.py.py3 snack2.2.10/demos/python/tkSnack.py +--- snack2.2.10/demos/python/tkSnack.py.py3 2018-10-04 15:53:45.815012427 -0400 ++++ snack2.2.10/demos/python/tkSnack.py 2018-10-04 15:56:03.873998084 -0400 +@@ -7,8 +7,14 @@ by Kevin Russell and Kare Sjolander + last modified: Mar 28, 2003 + """ + +-import Tkinter +-import types ++from __future__ import print_function ++ ++import sys ++if sys.version_info[0] == 2: ++ import Tkinter ++else: ++ import tkinter as Tkinter ++ + import string + + Tkroot = None +@@ -20,7 +26,8 @@ def initializeSnack(newroot): + Tkroot = newroot + Tkroot.tk.call('eval', 'package require snack') + Tkroot.tk.call('snack::createIcons') +- Tkroot.tk.call('snack::setUseOldObjAPI') ++ if sys.version_info[0] == 2: ++ Tkroot.tk.call('snack::setUseOldObjAPI') + audio = AudioControllerSingleton() + mixer = MixerControllerSingleton() + +@@ -92,7 +99,7 @@ class TkObject: + self.tk.call(self.name, 'configure')): + cnf[x[0][1:]] = (x[0][1:],) + x[1:] + return cnf +- if type(cnf) is types.StringType: ++ if isinstance(cnf, str): + x = self.tk.split(self.tk.call(self.name, 'configure', '-'+cnf)) + return (x[0][1:],) + x[1:] + self.tk.call((self.name, 'configure') + self._options(cnf)) +@@ -124,8 +131,7 @@ class Sound (TkObject): + if Tkroot: + master = Tkroot + else: +- raise RuntimeError, \ +- 'Tk not intialized or not registered with Snack' ++ raise RuntimeError('Tk not intialized or not registered with Snack') + self.tk = master.tk + if not name: + self.name = self.tk.call(('sound',) + self._options(kw)) +@@ -409,8 +415,7 @@ class Filter(TkObject): + if Tkroot: + master = Tkroot + else: +- raise RuntimeError, \ +- 'Tk not intialized or not registered with Snack' ++ raise RuntimeError('Tk not intialized or not registered with Snack' + self.tk = master.tk + self.name = self.tk.call(('snack::filter', name) + args + + self._options(kw)) +@@ -537,7 +542,7 @@ class SoundFrame(Tkinter.Frame): + self.sound.record() + + def info(self): +- print self.sound.info() ++ print(self.sound.info()) + + def createSpectrogram(canvas, *args, **kw): + """Draws a spectrogram of a sound on canvas.""" +diff -up snack2.2.10/demos/python/widget.py.py3 snack2.2.10/demos/python/widget.py +--- snack2.2.10/demos/python/widget.py.py3 2018-10-04 15:56:11.263837964 -0400 ++++ snack2.2.10/demos/python/widget.py 2018-10-04 15:56:28.360467507 -0400 +@@ -1,6 +1,11 @@ + #! /usr/bin/env python + +-from Tkinter import * ++import sys ++if sys.version_info[0] == 2: ++ from Tkinter import * ++else: ++ from tkinter import * ++ + from tkSnack import * + + root = Tkinter.Tk() +diff -up snack2.2.10/python/tkSnack.py.py3 snack2.2.10/python/tkSnack.py +--- snack2.2.10/python/tkSnack.py.py3 2018-10-04 15:56:37.537268660 -0400 ++++ snack2.2.10/python/tkSnack.py 2018-10-04 15:58:47.358455670 -0400 +@@ -7,8 +7,14 @@ by Kevin Russell and Kare Sjolander + last modified: Mar 28, 2003 + """ + +-import Tkinter +-import types ++from __future__ import print_function ++ ++import sys ++if sys.version_info[0] == 2: ++ import Tkinter ++else: ++ import tkinter as Tkinter ++ + import string + + Tkroot = None +@@ -20,7 +26,8 @@ def initializeSnack(newroot): + Tkroot = newroot + Tkroot.tk.call('eval', 'package require snack') + Tkroot.tk.call('snack::createIcons') +- Tkroot.tk.call('snack::setUseOldObjAPI') ++ if sys.version_info[0] == 2: ++ Tkroot.tk.call('snack::setUseOldObjAPI') + audio = AudioControllerSingleton() + mixer = MixerControllerSingleton() + +@@ -92,7 +99,7 @@ class TkObject: + self.tk.call(self.name, 'configure')): + cnf[x[0][1:]] = (x[0][1:],) + x[1:] + return cnf +- if type(cnf) is types.StringType: ++ if isinstance(cnf, str): + x = self.tk.split(self.tk.call(self.name, 'configure', '-'+cnf)) + return (x[0][1:],) + x[1:] + self.tk.call((self.name, 'configure') + self._options(cnf)) +@@ -124,8 +131,7 @@ class Sound (TkObject): + if Tkroot: + master = Tkroot + else: +- raise RuntimeError, \ +- 'Tk not intialized or not registered with Snack' ++ raise RuntimeError('Tk not intialized or not registered with Snack') + self.tk = master.tk + if not name: + self.name = self.tk.call(('sound',) + self._options(kw)) +@@ -409,8 +415,7 @@ class Filter(TkObject): + if Tkroot: + master = Tkroot + else: +- raise RuntimeError, \ +- 'Tk not intialized or not registered with Snack' ++ raise RuntimeError('Tk not intialized or not registered with Snack') + self.tk = master.tk + self.name = self.tk.call(('snack::filter', name) + args + + self._options(kw)) +@@ -537,7 +542,7 @@ class SoundFrame(Tkinter.Frame): + self.sound.record() + + def info(self): +- print self.sound.info() ++ print(self.sound.info()) + + def createSpectrogram(canvas, *args, **kw): + """Draws a spectrogram of a sound on canvas.""" diff --git a/dev-tcltk/snack/metadata.xml b/dev-tcltk/snack/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/snack/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/snack/snack-2.2.10-r14.ebuild b/dev-tcltk/snack/snack-2.2.10-r14.ebuild new file mode 100644 index 000000000000..7b110d28b5cb --- /dev/null +++ b/dev-tcltk/snack/snack-2.2.10-r14.ebuild @@ -0,0 +1,139 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_OPTIONAL=yes + +inherit dot-a distutils-r1 flag-o-matic toolchain-funcs virtualx + +DESCRIPTION="The Snack Sound Toolkit (Tcl)" +HOMEPAGE="https://www.speech.kth.se/snack/" +SRC_URI="https://www.speech.kth.se/snack/dist/${PN}${PV}.tar.gz" +S="${WORKDIR}/${PN}${PV}/unix" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ~arm64 ~hppa ppc ~sparc x86" +IUSE="alsa examples python vorbis" + +RESTRICT="!test? ( test )" + +DEPEND=" + <dev-lang/tcl-9:0= + <dev-lang/tk-9:0= + alsa? ( media-libs/alsa-lib ) + python? ( ${PYTHON_DEPS} ) + vorbis? ( media-libs/libvorbis ) +" +RDEPEND="${DEPEND}" +BDEPEND=" + python? ( + ${PYTHON_DEPS} + ${DISTUTILS_DEPS} + ) +" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +PATCHES=( + "${FILESDIR}"/alsa-undef-sym.patch + "${FILESDIR}"/${P}-CVE-2012-6303-fix.patch + "${FILESDIR}"/${P}-debian-args.patch + "${FILESDIR}"/${P}-test.patch + "${FILESDIR}"/${PN}${PV}-seektell-fix.patch + "${FILESDIR}"/tcl-${P}-python3.patch + "${FILESDIR}"/${P}-lto.patch + "${FILESDIR}"/${P}-configure-clang16.patch + "${FILESDIR}"/${P}-implicit.patch + "${FILESDIR}"/${P}-parallelMake.patch + "${FILESDIR}"/${P}-py3.8.patch +) + +HTML_DOCS="${WORKDIR}/${PN}${PV}/doc/*" + +src_prepare() { + # adds -install_name (soname on Darwin) + [[ ${CHOST} == *-darwin* ]] && PATCHES+=( "${FILESDIR}"/${P}-darwin.patch ) + + # For Clang 16, bunch of -Wimplicit-int, etc + append-flags -std=gnu89 + + lto-guarantee-fat + + sed \ + -e "s:ar cr:$(tc-getAR) cr:g" \ + -e "s|-O|${CFLAGS}|g" \ + -i Makefile.in || die + + cd .. || die + + default + + sed \ + -e 's|^\(#define roundf(.*\)|//\1|' \ + -i generic/jkFormatMP3.c || die + rm tests/{play,record}.test || die + if use python; then + cd python || die + distutils-r1_src_prepare + fi +} + +src_configure() { + local myconf="" + + use alsa && myconf+=" --enable-alsa" + + if use vorbis; then + myconf+=" --with-ogg-include="${EPREFIX}"/usr/include" + myconf+=" --with-ogg-lib="${EPREFIX}"/usr/$(get_libdir)" + fi + + econf \ + --libdir="${EPREFIX}"/usr/$(get_libdir) \ + --includedir="${EPREFIX}"/usr/include \ + --with-tcl="${EPREFIX}"/usr/$(get_libdir) \ + --with-tk="${EPREFIX}"/usr/$(get_libdir) \ + ${myconf} + + if use python; then + cd ../python || die + distutils-r1_src_configure + fi +} + +src_compile() { + default + if use python; then + cd ../python || die + distutils-r1_src_compile + fi +} + +src_test() { + TCLLIBPATH=${S} virtx default | tee snack.testResult + grep -q FAILED snack.testResult && die +} + +src_install() { + default + + if use python ; then + cd "${S}"/../python || die + distutils-r1_src_install + fi + strip-lto-bytecode + + cd "${S}"/.. || die + + if use examples ; then + docinto examples + sed -i -e 's/wish[0-9.]+/wish/g' demos/tcl/* || die + dodoc -r demos/tcl + + use python && dodoc -r demos/python + fi +} diff --git a/dev-tcltk/tcl3d/Manifest b/dev-tcltk/tcl3d/Manifest new file mode 100644 index 000000000000..ecb5e357ac74 --- /dev/null +++ b/dev-tcltk/tcl3d/Manifest @@ -0,0 +1,2 @@ +DIST tcl3d-0.9.5.7z 1776479 BLAKE2B c6437073a36405cec8ffaece93e70996109de709c1bf8158a01e7fcc6b085e26ab361d30cbf09f0895761c220d83771beca26eff19f167c0c6c7a60b0965aa25 SHA512 deb21a48b672cc804723a4e8e8c01dee5ed706cb30011e59b532f791317a4620ab8363cf2db9aef802397439b515db54c46d2662513131d0771bc577cde17a11 +DIST tcl3d-1.0.2.7z 1768024 BLAKE2B f6a4e9968327c9fc3a4463747072a8f5df639d5e8ffb9da0caef9f8af8dd7146b8ab213ed0b34576965e0bae426ec17f1c828b0a6c3ab789e1eb602da60cae13 SHA512 3605667eac34926db562122422547abd9e2d45cc4913fdf621ab54920f8d0718aa87af7d68d94dfce61b8d83ada5d09e2a98a75ae0f8f77a26228fdca90d90f9 diff --git a/dev-tcltk/tcl3d/files/tcl3d-0.9.5-cmake.patch b/dev-tcltk/tcl3d/files/tcl3d-0.9.5-cmake.patch new file mode 100644 index 000000000000..5a98078d61cb --- /dev/null +++ b/dev-tcltk/tcl3d/files/tcl3d-0.9.5-cmake.patch @@ -0,0 +1,11 @@ +--- a/CMakeLists.txt 2025-12-31 00:04:23.252992166 +0100 ++++ b/CMakeLists.txt 2025-12-31 00:04:42.950768139 +0100 +@@ -15,7 +15,7 @@ + #
+ #******************************************************************************
+
+-CMAKE_MINIMUM_REQUIRED( VERSION 3.0 )
++CMAKE_MINIMUM_REQUIRED( VERSION 3.10 )
+
+ CMAKE_POLICY(SET CMP0078 NEW)
+ CMAKE_POLICY(SET CMP0086 NEW)
diff --git a/dev-tcltk/tcl3d/metadata.xml b/dev-tcltk/tcl3d/metadata.xml new file mode 100644 index 000000000000..38b8789762d8 --- /dev/null +++ b/dev-tcltk/tcl3d/metadata.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <longdescription> +Tcl3D offers the 3D functionality of OpenGL and other 3D libraries at the Tcl scripting level. +The Tcl3D package currently consists of the following modules: + +Tcl3D core module +tcl3dOgl Enhanced Togl widget, a Tk widget for displaying OpenGL content. + Wrapper for core OpenGL functionality (GL Version 3.0, GLU Version 1.2) and OpenGL extensions. + Tcl3D utility library: Math functions, standard shapes, stop watch, demo support. + +Tcl3D optional modules +tcl3dCg Wrapper for NVidia's Cg shading language. * +tcl3dSDL Wrapper for the Simple DirectMedia Library. +tcl3dFTGL Wrapper for the OpenGL Font Rendering Library. +tcl3dGl2ps Wrapper for the OpenGL To Postscript library. * +tcl3dOde Wrapper for the Open Dynamics Engine. +tcl3dOsg Wrapper for OpenSceneGraph +tcl3dGauges Tcl3D package for displaying gauges. +</longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tcl3d/tcl3d-0.9.5-r2.ebuild b/dev-tcltk/tcl3d/tcl3d-0.9.5-r2.ebuild new file mode 100644 index 000000000000..3489a9923111 --- /dev/null +++ b/dev-tcltk/tcl3d/tcl3d-0.9.5-r2.ebuild @@ -0,0 +1,60 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic cmake unpacker + +DESCRIPTION="Tcl bindings to OpenGL and other 3D libraries" +HOMEPAGE="http://www.tcl3d.org" +SRC_URI="https://www.tcl3d.org/download/distributions/${P}.7z" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="sdl truetype" + +RDEPEND="<dev-lang/tcl-9:= + dev-lang/tk:0= + x11-libs/libX11 + x11-libs/libXrandr + virtual/opengl + virtual/glu + truetype? ( media-libs/ftgl ) + sdl? ( media-libs/libsdl )" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-lang/swig + $(unpacker_src_uri_depends) +" + +PATCHES=( "${FILESDIR}"/${P}-cmake.patch ) + +src_prepare() { + sed -i \ + -e "s|FTGLGlyph|FTGlyph|" \ + tcl3dFTGL/swigfiles/ftgl.i \ + || die + cmake_src_prepare +} + +src_configure() { + local _TCL_V=( $(echo 'puts [info tclversion]' | tclsh | tr '.' ' ') ) + local _TCL_FV="${_TCL_V[0]}.${_TCL_V[1]}" + + local tkPath=/usr/$(get_libdir)/tk${_TCL_FV}/include + + append-cppflags -I${tkPath}/generic -I${tkPath}/unix \ + $(pkg-config freetype2 --cflags) \ + $(pkg-config sdl --cflags) + + local mycmakeargs=( + -Wno-dev + -DTCL3D_BUILD_OGL=Yes + -DTCL3D_BUILD_GAUGES=Yes + -DTCL3D_BUILD_GL2PS=Yes + -DTCL3D_BUILD_FTGL=$(usex truetype) + -DTCL3D_BUILD_SDL=$(usex sdl) + ) + cmake_src_configure +} diff --git a/dev-tcltk/tcl3d/tcl3d-1.0.2.ebuild b/dev-tcltk/tcl3d/tcl3d-1.0.2.ebuild new file mode 100644 index 000000000000..8e3b9f0ecc2a --- /dev/null +++ b/dev-tcltk/tcl3d/tcl3d-1.0.2.ebuild @@ -0,0 +1,59 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic cmake unpacker + +DESCRIPTION="Tcl bindings to OpenGL and other 3D libraries" +HOMEPAGE="http://www.tcl3d.org" +SRC_URI="https://www.tcl3d.org/download/distributions/${P}.7z" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="sdl truetype" + +RDEPEND="dev-lang/tcl:= + dev-lang/tk:0= + x11-libs/libX11 + x11-libs/libXrandr + virtual/opengl + virtual/glu + truetype? ( media-libs/ftgl ) + sdl? ( media-libs/libsdl )" +DEPEND="${RDEPEND}" +BDEPEND=" + dev-lang/swig + $(unpacker_src_uri_depends) +" + +src_prepare() { + sed -i \ + -e "s|FTGLGlyph|FTGlyph|" \ + tcl3dFTGL/swigfiles/ftgl.i \ + || die + cmake_src_prepare +} + +src_configure() { + local _TCL_V=( $(echo 'puts [info tclversion]' | tclsh | tr '.' ' ') ) + local _TCL_FV="${_TCL_V[0]}.${_TCL_V[1]}" + + local tkPath=/usr/$(get_libdir)/tk${_TCL_FV}/include + + append-cppflags -I${tkPath}/generic -I${tkPath}/unix \ + -I"${BUILD_DIR}" \ + $(pkg-config freetype2 --cflags) \ + $(pkg-config sdl --cflags) + + local mycmakeargs=( + -Wno-dev + -DTCL3D_BUILD_OGL=Yes + -DTCL3D_BUILD_GAUGES=Yes + -DTCL3D_BUILD_GL2PS=Yes + -DTCL3D_BUILD_FTGL=$(usex truetype) + -DTCL3D_BUILD_SDL=$(usex sdl) + ) + cmake_src_configure +} diff --git a/dev-tcltk/tcllib/Manifest b/dev-tcltk/tcllib/Manifest new file mode 100644 index 000000000000..2a2acf942af7 --- /dev/null +++ b/dev-tcltk/tcllib/Manifest @@ -0,0 +1,2 @@ +DIST tcllib-1.21.tar.xz 6467488 BLAKE2B 1faad78a263d9ef02d8d178bd329510a76db7b13d8ae636389877b25e1f1d125a6018ee9238cf3d8dbc04957d2e589669dc743c1f9e5823f28976ef73f8ce2e5 SHA512 0c8c333e1fd30237dbe40842082fd2da5141c50fc29c1a82960ce32b6780247b412ddfd1fe1e4414513dc77d6833611a46e07ca4137f13a51c7fea9fb81cef5b +DIST tcllib-2.0.tar.xz 14872556 BLAKE2B 804775438d69b569f59c8da842d51c74deecec0ec8591989a8094fd332585c833ddffb33f636c134207a231192088c09b431864b6d52449066d5997377e63ae3 SHA512 b637548359475368135ce68ed39a0c75c276bf91412c68f357e45f833d52a070d8e952edecfa1c94aa927f92c88c586086fce517d201eb72746751d146e30103 diff --git a/dev-tcltk/tcllib/files/tcllib-1.21-test.patch b/dev-tcltk/tcllib/files/tcllib-1.21-test.patch new file mode 100644 index 000000000000..80371c98115c --- /dev/null +++ b/dev-tcltk/tcllib/files/tcllib-1.21-test.patch @@ -0,0 +1,101 @@ +--- a/modules/devtools/testutilities.tcl 2020-04-16 21:57:11.915653960 +0200 ++++ b/modules/devtools/testutilities.tcl 2020-04-16 22:11:05.621829465 +0200 +@@ -229,6 +229,10 @@ + ::tcltest::testConstraint tcl8.6plus \ + [expr {[package vsatisfies [package provide Tcl] 8.6]}] + ++ ::tcltest::testConstraint tcl8.6.8 \ ++ [expr { [package vsatisfies [package provide Tcl] 8.6.8] && ++ ![package vsatisfies [package provide Tcl] 8.6.9]}] ++ + ::tcltest::testConstraint tcl8.6not10 \ + [expr { [package vsatisfies [package provide Tcl] 8.6] && + ![package vsatisfies [package provide Tcl] 8.6.10]}] +--- a/modules/hook/hook.test 2020-04-16 21:59:22.708326030 +0200 ++++ b/modules/hook/hook.test 2020-04-16 22:09:18.055740312 +0200 +@@ -436,6 +436,7 @@ + } -cleanup { + cleanup + } -result [tcltest::byConstraint { ++ tcl8.6.8 {{{S1 <H1> {} O1} {simulated error} {-code 1 -level 0 -errorstack {INNER {error {simulated error}} UP 1 CALL {::hook::call S1 <H1>}} -errorcode NONE}}} + tcl8.6.10plus {{{S1 <H1> {} O1} {simulated error} {-code 1 -level 0 -errorstack {INNER {error {simulated error}} UP 1 CALL {::hook::call S1 <H1>}} -errorcode NONE}}} + tcl8.6not10 {{{S1 <H1> {} O1} {simulated error} {-code 1 -level 0 -errorstack {INNER {error {simulated error}} UP 1 CALL {call S1 <H1>}} -errorcode NONE}}} + tcl8.5minus {{{S1 <H1> {} O1} {simulated error} {-code 1 -level 0 -errorcode NONE}}} +@@ -452,6 +453,7 @@ + } -cleanup { + cleanup + } -result [tcltest::byConstraint { ++ tcl8.6.8 {{{S1 <H1> O1 {}} {S1 <H1> O3 {}}} {{{S1 <H1> {} O2} {simulated error} {-code 1 -level 0 -errorstack {INNER {error {simulated error}} UP 1 CALL {::hook::call S1 <H1>}} -errorcode NONE}}}} + tcl8.6.10plus {{{S1 <H1> O1 {}} {S1 <H1> O3 {}}} {{{S1 <H1> {} O2} {simulated error} {-code 1 -level 0 -errorstack {INNER {error {simulated error}} UP 1 CALL {::hook::call S1 <H1>}} -errorcode NONE}}}} + tcl8.6not10 {{{S1 <H1> O1 {}} {S1 <H1> O3 {}}} {{{S1 <H1> {} O2} {simulated error} {-code 1 -level 0 -errorstack {INNER {error {simulated error}} UP 1 CALL {call S1 <H1>}} -errorcode NONE}}}} + tcl8.5minus {{{S1 <H1> O1 {}} {S1 <H1> O3 {}}} {{{S1 <H1> {} O2} {simulated error} {-code 1 -level 0 -errorcode NONE}}}} +--- a/modules/http/autoproxy.test 2020-04-16 22:48:04.645153193 +0200 ++++ b/modules/http/autoproxy.test 2020-04-16 22:48:30.710701582 +0200 +@@ -179,20 +179,6 @@ + autoproxy::configure -tls_package dummy + } -result "Invalid TLS package option 'dummy'. Must be 'tls' or 'twapi'" -returnCodes error + +-test autoproxy-2.0.0 "autoproxy::tls_socket (tls) with proxy" -constraints { +- have_tls +-} -setup { +- packageReset +- package require http +- autoproxy::configure -proxy_host $proxy_host -proxy_port $proxy_port +-} -body { +- http::register https 443 autoproxy::tls_socket +- set tok [http::geturl https://www.example.com] +- http::status $tok +-} -cleanup { +- http::cleanup $tok +-} -result ok +- + test autoproxy-2.0.1 "autoproxy::tls_socket (twapi) with proxy" -constraints { + have_twapi + } -setup { +@@ -202,20 +188,6 @@ + } -body { + http::register https 443 autoproxy::tls_socket + set tok [http::geturl https://www.example.com] +- http::status $tok +-} -cleanup { +- http::cleanup $tok +-} -result ok +- +-test autoproxy-2.1.0 "autoproxy::tls_socket (tls) without proxy" -constraints { +- have_tls +-} -setup { +- packageReset +- package require http +- autoproxy::configure -proxy_host "" -proxy_port $proxy_port +-} -body { +- http::register https 443 autoproxy::tls_socket +- set tok [http::geturl https://www.example.com] + http::status $tok + } -cleanup { + http::cleanup $tok +--- a/modules/string/token_shell.test 2020-04-17 08:40:44.813030086 +0200 ++++ b/modules/string/token_shell.test 2020-04-17 08:44:03.066752545 +0200 +@@ -26,6 +26,7 @@ + test string-token-shell-1.0 "string token shell, wrong#args, not enough" -body { + string token shell + } -returnCodes error -result [tcltest::byConstraint { ++ tcl8.6.8 {wrong # args: should be "::string::token::shell ?-indices? ?-partial? ?--? text"} + tcl8.6.10plus {wrong # args: should be "::string::token::shell ?-indices? ?-partial? ?--? text"} + tcl8.6not10 {wrong # args: should be "shell ?-indices? ?-partial? ?--? text"} + tcl8.5minus {wrong # args: should be "::string::token::shell ?-indices? ?-partial? ?--? text"} +@@ -34,6 +35,7 @@ + test string-token-shell-1.1 "string token shell, wrong#args, too many" -body { + string token shell T X + } -returnCodes error -result [tcltest::byConstraint { ++ tcl8.6.8 {wrong # args: should be "::string::token::shell ?-indices? ?-partial? ?--? text"} + tcl8.6.10plus {wrong # args: should be "::string::token::shell ?-indices? ?-partial? ?--? text"} + tcl8.6not10 {wrong # args: should be "shell ?-indices? ?-partial? ?--? text"} + tcl8.5minus {wrong # args: should be "::string::token::shell ?-indices? ?-partial? ?--? text"} +@@ -46,6 +48,7 @@ + test string-token-shell-1.3 "string token shell, wrong#args, too many" -body { + string token shell -- T X + } -returnCodes error -result [tcltest::byConstraint { ++ tcl8.6.8 {wrong # args: should be "::string::token::shell ?-indices? ?-partial? ?--? text"} + tcl8.6.10plus {wrong # args: should be "::string::token::shell ?-indices? ?-partial? ?--? text"} + tcl8.6not10 {wrong # args: should be "shell ?-indices? ?-partial? ?--? text"} + tcl8.5minus {wrong # args: should be "::string::token::shell ?-indices? ?-partial? ?--? text"} diff --git a/dev-tcltk/tcllib/files/tcllib-2.0-stddev.patch b/dev-tcltk/tcllib/files/tcllib-2.0-stddev.patch new file mode 100644 index 000000000000..3441883a2931 --- /dev/null +++ b/dev-tcltk/tcllib/files/tcllib-2.0-stddev.patch @@ -0,0 +1,11 @@ +--- a/modules/simulation/random.test 2026-02-26 23:07:06.436861304 +0100 ++++ b/modules/simulation/random.test 2026-02-26 23:12:52.124392444 +0100 +@@ -167,7 +167,7 @@ + set stdev [expr {$stdev + $rnd * $rnd}] + } + set mean [expr {$mean / 1000.0}] +- set stdev [expr {sqrt($stdev / 1000.0)}] ++ set stdev [expr {sqrt($stdev / 1000.0 - $mean * $mean)}] + + # + # We use a rough estimate for the deviation in the mean and stdev diff --git a/dev-tcltk/tcllib/files/tcllib-2.0-test.patch b/dev-tcltk/tcllib/files/tcllib-2.0-test.patch new file mode 100644 index 000000000000..affa1043073b --- /dev/null +++ b/dev-tcltk/tcllib/files/tcllib-2.0-test.patch @@ -0,0 +1,111 @@ +--- a/modules/comm/comm.test 2024-11-02 20:23:21.687981633 +0100 ++++ b/modules/comm/comm.test 2024-11-02 20:23:34.055823008 +0100 +@@ -265,7 +265,7 @@ + + # ------------------------------------------------------------------------ + +-test comm-6.0 {secured communication via tls package} hastls { ++test comm-6.0 {secured communication via tls package} 0 { + # Setup secured channel in main process. + tls::init \ + -keyfile [tcllibPath devtools/receiver.key] \ +--- a/modules/http/autoproxy.test 2024-11-02 20:24:32.014089148 +0100 ++++ b/modules/http/autoproxy.test 2024-11-02 20:25:18.113509819 +0100 +@@ -180,7 +180,7 @@ + } -result "Invalid TLS package option 'dummy'. Must be 'tls' or 'twapi'" -returnCodes error + + test autoproxy-2.0.0 "autoproxy::tls_socket (tls) with proxy" -constraints { +- have_tls ++ 0 + } -setup { + packageReset + package require http +--- a/modules/http/autoproxytls.test 2024-11-02 20:46:42.978304258 +0100 ++++ b/modules/http/autoproxytls.test 2024-11-02 20:48:26.620984610 +0100 +@@ -186,7 +186,7 @@ + } + + test autoproxy-tls-1.1.1 "autoproxy::tls_socket (tls) with proxy and http proxy config" -constraints { +- have_tls ++ 0 + } -setup { + packageReset + autoproxy::configure -proxy_host proxy.tcllib.test -proxy_port 4319 +--- a/modules/pop3/pop3.test 2024-11-02 20:49:19.431312311 +0100 ++++ b/modules/pop3/pop3.test 2024-11-02 20:49:48.197945678 +0100 +@@ -579,7 +579,7 @@ + set msg + } {POP3 UIDL ERROR: unknown command 'UIDL'} + +-test pop3-7.0 {open pop3 channel secured via package tls} hastls { ++test pop3-7.0 {open pop3 channel secured via package tls} 0 { + dialog::shutdown + dialog::setup server {Pop3 Fake Server} 1 + +--- a/modules/websocket/websocket.test 2024-11-03 09:46:47.851212270 +0100 ++++ b/modules/websocket/websocket.test 2024-11-03 09:49:09.262647901 +0100 +@@ -75,7 +75,7 @@ + set wsUrl ws://ws.ifelse.io + set expectNum 2 + +-test example-1.1 "Open a websocket" -constraints {} -setup { ++test example-1.1 "Open a websocket" -constraints { 0 } -setup { + wsResetSleep + wsResetHandler + } -body { +@@ -94,7 +94,7 @@ + SOCKET text {Request served by *} + } + +-test example-1.2 "Close a websocket" -constraints {} -setup { ++test example-1.2 "Close a websocket" -constraints { 0 } -setup { + wsResetHandler + wsResetSleep + wsExpectHandler $expectNum +@@ -115,7 +115,7 @@ + SOCKET disconnect {Disconnected from remote end} + } + +-test example-1.3 "Open second websocket - require different socket" -constraints {} -setup { ++test example-1.3 "Open second websocket - require different socket" -constraints { 0 } -setup { + wsResetSleep + wsResetHandler + wsExpectHandler $expectNum +@@ -138,7 +138,7 @@ + wsResetHandler + } -match glob -result {Sockets differ: *} + +-test example-1.4 "Open second websocket - usual server return" -constraints {} -setup { ++test example-1.4 "Open second websocket - usual server return" -constraints { 0 } -setup { + wsResetSleep + wsResetHandler + wsExpectHandler $expectNum +@@ -165,7 +165,7 @@ + SOCKET text {Request served by *} + } + +-test example-2.1 "Send a message" -constraints {} -setup { ++test example-2.1 "Send a message" -constraints { 0 } -setup { + wsResetHandler + wsResetSleep + wsExpectHandler $expectNum +--- a/modules/hook/hook.test 2026-03-06 16:11:41.444445375 +0100 ++++ b/modules/hook/hook.test 2026-03-06 16:13:38.776027335 +0100 +@@ -450,7 +450,7 @@ + } -cleanup { + cleanup + } -result [tcltest::byConstraint { +- tcl9plus {{{S1 <H1> {} O1} {simulated error} {-code 1 -level 0 -errorstack {INNER {returnImm {simulated error} {}} UP 1 CALL {::hook::call S1 <H1>}} -errorcode NONE}}} ++ tcl9plus {{{S1 <H1> {} O1} {simulated error} {-code 1 -level 0 -errorstack {INNER {error {simulated error}} UP 1 CALL {::hook::call S1 <H1>}} -errorcode NONE}}} + tcl8.6.10plus {{{S1 <H1> {} O1} {simulated error} {-code 1 -level 0 -errorstack {INNER {error {simulated error}} UP 1 CALL {::hook::call S1 <H1>}} -errorcode NONE}}} + tcl8.6not10 {{{S1 <H1> {} O1} {simulated error} {-code 1 -level 0 -errorstack {INNER {error {simulated error}} UP 1 CALL {call S1 <H1>}} -errorcode NONE}}} + tcl8.5only {{{S1 <H1> {} O1} {simulated error} {-code 1 -level 0 -errorcode NONE}}} +@@ -467,7 +467,7 @@ + } -cleanup { + cleanup + } -result [tcltest::byConstraint { +- tcl9plus {{{S1 <H1> O1 {}} {S1 <H1> O3 {}}} {{{S1 <H1> {} O2} {simulated error} {-code 1 -level 0 -errorstack {INNER {returnImm {simulated error} {}} UP 1 CALL {::hook::call S1 <H1>}} -errorcode NONE}}}} ++ tcl9plus {{{S1 <H1> O1 {}} {S1 <H1> O3 {}}} {{{S1 <H1> {} O2} {simulated error} {-code 1 -level 0 -errorstack {INNER {error {simulated error}} UP 1 CALL {::hook::call S1 <H1>}} -errorcode NONE}}}} + tcl8.6.10plus {{{S1 <H1> O1 {}} {S1 <H1> O3 {}}} {{{S1 <H1> {} O2} {simulated error} {-code 1 -level 0 -errorstack {INNER {error {simulated error}} UP 1 CALL {::hook::call S1 <H1>}} -errorcode NONE}}}} + tcl8.6not10 {{{S1 <H1> O1 {}} {S1 <H1> O3 {}}} {{{S1 <H1> {} O2} {simulated error} {-code 1 -level 0 -errorstack {INNER {error {simulated error}} UP 1 CALL {call S1 <H1>}} -errorcode NONE}}}} + tcl8.5only {{{S1 <H1> O1 {}} {S1 <H1> O3 {}}} {{{S1 <H1> {} O2} {simulated error} {-code 1 -level 0 -errorcode NONE}}}} diff --git a/dev-tcltk/tcllib/metadata.xml b/dev-tcltk/tcllib/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/tcllib/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tcllib/tcllib-1.21.ebuild b/dev-tcltk/tcllib/tcllib-1.21.ebuild new file mode 100644 index 000000000000..5df2e01906ce --- /dev/null +++ b/dev-tcltk/tcllib/tcllib-1.21.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit virtualx + +DESCRIPTION="Tcl Standard Library" +HOMEPAGE="http://www.tcl.tk/software/tcllib/" +SRC_URI="https://downloads.sourceforge.net/${PN}/${PN}/${PV}/${P}.tar.xz" + +LICENSE="BSD" +SLOT="0" +IUSE="examples" +KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-lang/tcl:0= + dev-tcltk/tdom + " +DEPEND="${RDEPEND}" + +DOCS=( + ChangeLog DESCRIPTION.txt README.md devdoc/README.developer + devdoc/critcl-tcllib.txt devdoc/dirlayout_install.txt + devdoc/indexing.txt +) +HTML_DOCS=( idoc/www ) + +PATCHES=( "${FILESDIR}"/${P}-test.patch ) + +src_prepare() { + default + rm modules/httpd/httpd.test || die +} + +src_test() { + USER= virtx emake test_batch +} + +src_install() { + default + + if use examples ; then + for f in $(find examples -type f); do + docinto $(dirname $f) + dodoc $f + done + fi +} diff --git a/dev-tcltk/tcllib/tcllib-2.0.ebuild b/dev-tcltk/tcllib/tcllib-2.0.ebuild new file mode 100644 index 000000000000..691e256e267a --- /dev/null +++ b/dev-tcltk/tcllib/tcllib-2.0.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit virtualx + +DESCRIPTION="Tcl Standard Library" +HOMEPAGE="http://www.tcl.tk/software/tcllib/" +SRC_URI="https://downloads.sourceforge.net/${PN}/${PN}/${PV}/${P}.tar.xz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="examples" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-lang/tcl:0= + dev-tcltk/tdom + " +DEPEND="${RDEPEND}" + +DOCS=( + ChangeLog DESCRIPTION.txt README.md devdoc/README.developer + devdoc/critcl-tcllib.txt devdoc/dirlayout_install.txt + devdoc/indexing.txt +) +HTML_DOCS=( idoc/www ) + +PATCHES=( + "${FILESDIR}"/${P}-test.patch + "${FILESDIR}"/${P}-stddev.patch +) + +src_prepare() { + default + rm modules/httpd/httpd.test || die +} + +src_compile() { + : +} + +src_test() { + USER= virtx emake test_batch +} + +src_install() { + emake DESTDIR="${D}" install-tcl + einstalldocs + + if use examples ; then + for f in $(find examples -type f); do + docinto $(dirname $f) + dodoc $f + done + fi +} diff --git a/dev-tcltk/tclpython/Manifest b/dev-tcltk/tclpython/Manifest new file mode 100644 index 000000000000..37722aca6464 --- /dev/null +++ b/dev-tcltk/tclpython/Manifest @@ -0,0 +1,2 @@ +DIST tclpython-5.0.tar.gz 19327 BLAKE2B bad25a6eb04dbcd9ca3e9bc81d44f098f31f2acf367ecc32307596d5da3ed95752b3c60d9ee74fc04e21669e0361f0790edad3ad5793c78ece4904beacd92900 SHA512 fe15218fe00e921384dbd9611685b86cb6dfacb515a95545079550aeadaaafc3964e6ef0594a268a3fd900f40d178659e8b7f6f2a6d9aa507b59a8be0bd116af +DIST tclpython-5.1.tar.gz 19867 BLAKE2B bd931a6cf71f636d4e7dd8656c1a0dfa8f99948b9176b21449d920ba2c61a1615caa92368b0c9b82af0ed02e141b11979a91fb9927a16832b0ad892bb6a89af4 SHA512 9719e1ee68c76b215ed27aea41484eab306329ec7c2b966740897b6d7a3d30ae5c89ffeaa88172142056baebbd90b9f572ffb112df47da0bb5ad29a53b9a5ddc diff --git a/dev-tcltk/tclpython/files/tclpython-5.0-gentoo.patch b/dev-tcltk/tclpython/files/tclpython-5.0-gentoo.patch new file mode 100644 index 000000000000..39bdf20c095c --- /dev/null +++ b/dev-tcltk/tclpython/files/tclpython-5.0-gentoo.patch @@ -0,0 +1,46 @@ +--- a/Makefile 2018-10-28 17:21:20.274137396 +0100 ++++ b/Makefile 2018-10-28 17:21:47.696694473 +0100 +@@ -16,11 +16,11 @@ + LIBRARY:= $(PKG_NAME).so.$(PKG_VERSION) + + TCL_VERSION=$(shell echo 'puts $\$$tcl_version' | tclsh) +-CFLAGS:= -O2 -Wall -fPIC -DUSE_TCL_STUBS ++CFLAGS:= $(MYCFLAGS) -fPIC -DUSE_TCL_STUBS + CFLAGS+= $(shell $(PYTHON_CONFIG) --includes) + CFLAGS+= -I/usr/include/tcl$(TCL_VERSION) + CFLAGS+= -DTCLPYTHON_VERSION=$(PKG_VERSION) +-LDFLAGS:= -shared -s ++LDFLAGS:= $(MYLDFLAGS) -shared + LDFLAGS+= $(shell $(PYTHON_CONFIG) --libs) + LDFLAGS+= -ltclstub$(TCL_VERSION) + +@@ -62,7 +62,8 @@ + $(OUTPUT_DIR)/pkgIndex.tcl:pkg/pkgIndex.tcl + cp -t $(dir $@) $^ + +-package: $(OUTPUT_DIR)/$(LIBRARY) $(OUTPUT_DIR)/pkgIndex.tcl ++package: $(OUTPUT_DIR)/$(LIBRARY) ++ ${MAKE} $(OUTPUT_DIR)/pkgIndex.tcl + + ifneq ($(MAKECMDGOALS), clean) + -include $(DEPEND) +--- a/src/py.c 2022-02-06 10:20:03.352580186 +0100 ++++ b/src/py.c 2022-02-06 11:16:49.504796684 +0100 +@@ -24,7 +24,6 @@ + // First time initializing Python + Py_NoSiteFlag = 1; + Py_Initialize(); +- PyEval_InitThreads(); + GlobalThread = PyEval_SaveThread(); + } + +@@ -60,7 +59,8 @@ + #ifdef WITH_THREAD + PyEval_RestoreThread(interp->thread_state); + Py_EndInterpreter(interp->thread_state); +- PyEval_ReleaseLock(); ++ PyThreadState_Swap(GlobalThread); ++ PyEval_SaveThread(); + #endif + + free(interp); diff --git a/dev-tcltk/tclpython/files/tclpython-5.1-gentoo.patch b/dev-tcltk/tclpython/files/tclpython-5.1-gentoo.patch new file mode 100644 index 000000000000..ff910b7b213e --- /dev/null +++ b/dev-tcltk/tclpython/files/tclpython-5.1-gentoo.patch @@ -0,0 +1,26 @@ +--- a/Makefile 2018-10-28 17:21:20.274137396 +0100 ++++ b/Makefile 2018-10-28 17:21:47.696694473 +0100 +@@ -23,11 +23,11 @@ + LIBRARY:= $(PKG_NAME).so.$(PKG_VERSION) + + TCL_VERSION=$(shell echo 'puts $\$$tcl_version' | tclsh) +-CFLAGS:= -O2 -Wall -fPIC -DUSE_TCL_STUBS ++CFLAGS:= $(MYCFLAGS) -fPIC -DUSE_TCL_STUBS + CFLAGS+= $(shell $(PYTHON_CONFIG) --cflags) + CFLAGS+= -I/usr/include/tcl$(TCL_VERSION) + CFLAGS+= -DTCLPYTHON_VERSION=$(PKG_VERSION) +-LDFLAGS:= -shared -s ++LDFLAGS:= $(MYLDFLAGS) -shared + LDFLAGS+= $(PYTHON_CONFIG_LDFLAGS) + LDFLAGS+= -ltclstub$(TCL_VERSION) + +@@ -69,7 +69,8 @@ + $(OUTPUT_DIR)/pkgIndex.tcl:pkg/pkgIndex.tcl + cp -t $(dir $@) $^ + +-package: $(OUTPUT_DIR)/$(LIBRARY) $(OUTPUT_DIR)/pkgIndex.tcl ++package: $(OUTPUT_DIR)/$(LIBRARY) ++ $(MAKE) $(OUTPUT_DIR)/pkgIndex.tcl + + ifneq ($(MAKECMDGOALS), clean) + -include $(DEPEND) diff --git a/dev-tcltk/tclpython/metadata.xml b/dev-tcltk/tclpython/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/tclpython/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tclpython/tclpython-5.0-r4.ebuild b/dev-tcltk/tclpython/tclpython-5.0-r4.ebuild new file mode 100644 index 000000000000..6aad7034f85d --- /dev/null +++ b/dev-tcltk/tclpython/tclpython-5.0-r4.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit python-single-r1 toolchain-funcs + +DESCRIPTION="Python package for Tcl" +HOMEPAGE="http://jfontain.free.fr/tclpython.htm" +SRC_URI="https://github.com/amykyta3/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ppc x86" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +DEPEND="${PYTHON_DEPS} + <dev-lang/tcl-9:0=" +RDEPEND="${DEPEND}" + +PATCHES=( "${FILESDIR}"/${P}-gentoo.patch ) + +src_compile() { + emake PKG_NAME=tclpython3 CC="$(tc-getCC)" \ + MYCFLAGS="${CFLAGS}" \ + MYLDFLAGS="${LDFLAGS} $(python_get_library_path)" +} + +src_test() { + emake PKG_NAME=tclpython3 CC="$(tc-getCC)" test +} + +src_install() { + insinto /usr/$(get_libdir) + doins -r build/tclpython3/tclpython3 + fperms 775 /usr/$(get_libdir)/tclpython3/tclpython3.so.${PV} + dosym tclpython3.so.${PV} /usr/$(get_libdir)/tclpython3/tclpython3.so + + dodoc README.md VERSION.md +} diff --git a/dev-tcltk/tclpython/tclpython-5.1.ebuild b/dev-tcltk/tclpython/tclpython-5.1.ebuild new file mode 100644 index 000000000000..6aad7034f85d --- /dev/null +++ b/dev-tcltk/tclpython/tclpython-5.1.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{13..14} ) + +inherit python-single-r1 toolchain-funcs + +DESCRIPTION="Python package for Tcl" +HOMEPAGE="http://jfontain.free.fr/tclpython.htm" +SRC_URI="https://github.com/amykyta3/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ppc x86" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +DEPEND="${PYTHON_DEPS} + <dev-lang/tcl-9:0=" +RDEPEND="${DEPEND}" + +PATCHES=( "${FILESDIR}"/${P}-gentoo.patch ) + +src_compile() { + emake PKG_NAME=tclpython3 CC="$(tc-getCC)" \ + MYCFLAGS="${CFLAGS}" \ + MYLDFLAGS="${LDFLAGS} $(python_get_library_path)" +} + +src_test() { + emake PKG_NAME=tclpython3 CC="$(tc-getCC)" test +} + +src_install() { + insinto /usr/$(get_libdir) + doins -r build/tclpython3/tclpython3 + fperms 775 /usr/$(get_libdir)/tclpython3/tclpython3.so.${PV} + dosym tclpython3.so.${PV} /usr/$(get_libdir)/tclpython3/tclpython3.so + + dodoc README.md VERSION.md +} diff --git a/dev-tcltk/tclreadline/Manifest b/dev-tcltk/tclreadline/Manifest new file mode 100644 index 000000000000..a67dec70da35 --- /dev/null +++ b/dev-tcltk/tclreadline/Manifest @@ -0,0 +1,5 @@ +DIST tclreadline-2.1.0.tar.gz 160541 BLAKE2B 44dfd7626b969d03343cfa768d0ad72b9322a13175ca7c713c3981c0abc27967e31a62f3451b5d007569a30a7279be7c2a8f1c7c78e8d0c310964ddba18fa5cb SHA512 bd67a65fe2ec708834fb67fabf2e36e778a6aeeb7a7b69cda298f9e18acc9e03f3a379f81ff7d2d289bfbf1093bc86fecbf96fe5d04a2ca954899cc7df6fe4bf +DIST tclreadline-2.3.8.tar.gz 393167 BLAKE2B e6a8d35904a0ed22fac01d7f6b6ecc9eef99acea149253ec9a0f7a3463a163ef17daa052bd4801fb9e365b056ab58d69fe2ec9884a9279881638c7b99c12f6a7 SHA512 0c5ce53a8f4cc222de013932698e442c63b36e3f07d10b962d127444f75c28b2caf7f06b5958150748f7a1d535c577c825b9a0dd525e077a348c3ff899a74e61 +DIST tclreadline-2.4.0.tar.gz 267094 BLAKE2B 4e3296933e6529715adb9d485b304051849c15b3f9965ba61db427e3ad0313fb342aa939568d2e8273c4662bd0f751577ed22c4322f9de9c9766c74c540406ed SHA512 dcab8a436415d94a2795790fc7310a856004e33cc5229fb1f650419576c85fd4946374c35e0a0a18f0c5c7bf24cd264271d88a568dcae88f78be4b9444dafd90 +DIST tclreadline-2.4.1.tar.gz 267160 BLAKE2B df71d1b2a1f98637bfed659c5b85c4f0edbabf871c6ada4d83fda62c1badfeb3bbe76ac5d5bb234e4847f1c6bb551019e35b090be8923b534f09525ac973887f SHA512 cb5a9eaf63fccd1966447e3009a9edc4e9df6ed3c511a4314f0b6020d89468fe316f1db342f3cc843c6d7c1f6b316081a887f7357c065c14c11b9bb014646231 +DIST tclreadline_2.1.0-12.debian.tar.gz 9636 BLAKE2B b84487e2e05649c899f705ee4c4ea80a7b05c99440e9b905587300342ce54d48a7d32b750ec2c2a3a12f1aa991f2a47167243ec962f539e02383aac62530a3d9 SHA512 293e9ad14a469891f68b25caa78a99874de87df4c44af4ada7528cf74e898be42b7846fbb6eeabb2dec34995a9ccd9707c61f406b90b90dbca2c24df05f451eb diff --git a/dev-tcltk/tclreadline/files/tclreadline-2.1.0-alloc-free.patch b/dev-tcltk/tclreadline/files/tclreadline-2.1.0-alloc-free.patch new file mode 100644 index 000000000000..6694c29f6042 --- /dev/null +++ b/dev-tcltk/tclreadline/files/tclreadline-2.1.0-alloc-free.patch @@ -0,0 +1,121 @@ +diff -ur a/tclreadline.c b/tclreadline.c +--- a/tclreadline.c 2000-09-20 19:44:34.000000000 +0200 ++++ b/tclreadline.c 2013-11-18 10:35:13.889610060 +0100 +@@ -343,7 +343,9 @@ + return TCL_ERROR; + } else if (3 == objc) { +- if (tclrl_custom_completer) ++ if (tclrl_custom_completer) { +- FREE(tclrl_custom_completer); ++ free(tclrl_custom_completer); ++ tclrl_custom_completer = NULL; ++ } + if (!blank_line(Tcl_GetStringFromObj(objv[2], 0))) + tclrl_custom_completer = + stripwhite(strdup(Tcl_GetStringFromObj(objv[2], 0))); +@@ -378,7 +380,9 @@ + return TCL_ERROR; + } else if (3 == objc) { +- if (tclrl_eof_string) ++ if (tclrl_eof_string) { +- FREE(tclrl_eof_string); ++ free(tclrl_eof_string); ++ tclrl_eof_string = NULL; ++ } + if (!blank_line(Tcl_GetStringFromObj(objv[2], 0))) + tclrl_eof_string = + stripwhite(strdup(Tcl_GetStringFromObj(objv[2], 0))); +@@ -506,10 +510,16 @@ + if (status >= 1) { + /* TODO: make this a valid tcl output */ + printf("%s\n", expansion); ++ free(ptr); ++ free(expansion); ++ return; + } else if (-1 == status) { + Tcl_AppendResult + (tclrl_interp, "error in history expansion\n", (char*) NULL); + TclReadlineTerminate(TCL_ERROR); ++ free(ptr); ++ free(expansion); ++ return; + } + /** + * TODO: status == 2 ... +@@ -544,8 +554,8 @@ + * tell the calling routines to terminate. + */ + TclReadlineTerminate(LINE_COMPLETE); +- FREE(ptr); +- FREE(expansion); ++ free(ptr); ++ free(expansion); + } + } + +@@ -673,7 +683,7 @@ + strcpy(rl_line_buffer, expansion); + rl_end = strlen(expansion); + rl_point += strlen(expansion) - oldlen; +- FREE(expansion); ++ free(expansion); + /* + * TODO: + * because we return 0 == matches, +@@ -682,7 +690,8 @@ + */ + return matches; + } +- FREE(expansion); ++ free(expansion); ++ expansion = NULL; + } + + if (tclrl_custom_completer) { +@@ -699,15 +710,19 @@ + state = Tcl_VarEval(tclrl_interp, tclrl_custom_completer, + " \"", quoted_text, "\" ", start_s, " ", end_s, + " \"", quoted_rl_line_buffer, "\"", (char*) NULL); +- FREE(quoted_text); +- FREE(quoted_rl_line_buffer); + if (TCL_OK != state) { + Tcl_AppendResult (tclrl_interp, " `", tclrl_custom_completer, + " \"", quoted_text, "\" ", start_s, " ", end_s, + " \"", quoted_rl_line_buffer, "\"' failed.", (char*) NULL); + TclReadlineTerminate(state); ++ free(quoted_text); ++ free(quoted_rl_line_buffer); + return matches; + } ++ free(quoted_text); ++ quoted_text = NULL; ++ free(quoted_rl_line_buffer); ++ quoted_rl_line_buffer = NULL; + obj = Tcl_GetObjResult(tclrl_interp); + status = Tcl_ListObjGetElements(tclrl_interp, obj, &objc, &objv); + if (TCL_OK != status) +@@ -715,12 +732,12 @@ + + if (objc) { + int i, length; +- matches = (char**) MALLOC(sizeof(char*) * (objc + 1)); ++ matches = (char**) malloc(sizeof(char*) * (objc + 1)); + for (i = 0; i < objc; i++) { + matches[i] = strdup(Tcl_GetStringFromObj(objv[i], &length)); + if (1 == objc && !strlen(matches[i])) { +- FREE(matches[i]); ++ free(matches[i]); +- FREE(matches); ++ free(matches); + Tcl_ResetResult(tclrl_interp); /* clear result space */ + return (char**) NULL; + } +@@ -735,7 +752,7 @@ + */ + if (2 == objc && !strlen(matches[1])) { + i--; +- FREE(matches[1]); ++ free(matches[1]); + rl_completion_append_character = '\0'; + } + diff --git a/dev-tcltk/tclreadline/files/tclreadline-2.1.0-gold.patch b/dev-tcltk/tclreadline/files/tclreadline-2.1.0-gold.patch new file mode 100644 index 000000000000..5550c89879c8 --- /dev/null +++ b/dev-tcltk/tclreadline/files/tclreadline-2.1.0-gold.patch @@ -0,0 +1,15 @@ + Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile.am b/Makefile.am +index 68d78f1..03dbf06 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -20,6 +20,7 @@ include_HEADERS = tclreadline.h + INCLUDES = -I$(TCL_INCLUDE_DIR) -I$(READLINE_INCLUDE_DIR) + + ## libtclreadline_la_LIBADD = $(LIBS) ++libtclreadline_la_LIBADD = $(TCL_LIB_SPEC) -lreadline + libtclreadline_la_LDFLAGS = -release $(MAJOR).$(MINOR).$(PATCHLEVEL) + + tclrldir = @TCLRL_DIR@ diff --git a/dev-tcltk/tclreadline/files/tclreadline-2.1.0-rl-executing-macro.patch b/dev-tcltk/tclreadline/files/tclreadline-2.1.0-rl-executing-macro.patch new file mode 100644 index 000000000000..683622e0d54c --- /dev/null +++ b/dev-tcltk/tclreadline/files/tclreadline-2.1.0-rl-executing-macro.patch @@ -0,0 +1,128 @@ +diff -ur a/configure.ac b/configure.ac +--- a/configure.ac 2000-12-08 01:45:45.000000000 +0100 ++++ b/configure.ac 2013-11-15 13:37:36.490520853 +0100 +@@ -182,29 +182,36 @@ + [ --with-readline-library=DIR + lib spec to readline (e.g. '-L/usr/local/lib -lreadline')], + LIBS="$LIBS $withval", +- AC_CHECK_LIB(readline, rl_callback_read_char, , +- AC_MSG_RESULT([ +- Your readline version does not support readline's alternate interface. +- Please upgrade to readline >= 2.2 and retry. +- ]) +- exit ++ AC_SEARCH_LIBS(rl_callback_read_char, readline, , ++ AC_MSG_RESULT([ ++ Your readline version does not support readline's alternate interface. ++ Please upgrade to readline >= 2.2 and retry. ++ ]) ++ exit + ) + ) + + + +-# check for readline's (macro.c) private variable +-# _rl_executing_macro. ++# check for readline's rl_executing_macro ++# (could be macro.c's private variable _rl_executing_macro). + +-AC_MSG_CHECKING([for _rl_executing_macro in -lreadline]) +-AC_TRY_LINK(,[ ++AC_CHECK_DECL(rl_executing_macro ++, AC_DEFINE(EXECUTING_MACRO_NAME, rl_executing_macro, ++ [ Define the name of the executing macro variable in libreadline. ]) ++, AC_MSG_CHECKING([for _rl_executing_macro in -lreadline]) ++ AC_TRY_LINK(,[ + extern char* _rl_executing_macro; + _rl_executing_macro = (char*) 0; +-], +- AC_MSG_RESULT(yes); ++ ] ++ , AC_MSG_RESULT(yes) + AC_DEFINE(EXECUTING_MACRO_HACK, 1, +- [ Define if _rl_executing_macro is resolved in libreadline. ]), +- AC_MSG_RESULT(no)) ++ [ Define if EXECUTING_MACRO_NAME is resolved in libreadline. ]) ++ AC_DEFINE(EXECUTING_MACRO_NAME, _rl_executing_macro, ++ [ Define the name of the executing macro variable in libreadline. ]) ++ , AC_MSG_RESULT(no)) ++, [AC_INCLUDES_DEFAULT ++#include "$READLINE_INCLUDE_DIR/readline.h"]) + + # check for readline's rl_cleanup_after_signal + +diff -ur a/tclreadline.c b/tclreadline.c +--- a/tclreadline.c 2000-09-20 19:44:34.000000000 +0200 ++++ b/tclreadline.c 2013-11-15 11:09:42.269771129 +0100 +@@ -41,7 +41,7 @@ + * We need it here to decide, if we should read more + * characters from a macro. Dirty, but it should work. + */ +-extern char* _rl_executing_macro; ++extern char* EXECUTING_MACRO_NAME; + #endif + + #include "tclreadline.h" +@@ -249,14 +249,14 @@ + tclrl_state = LINE_PENDING; + + while (!TclReadlineLineComplete()) { +-#ifdef EXECUTING_MACRO_HACK ++#ifdef EXECUTING_MACRO_NAME + /** + * check first, if more characters are + * available from _rl_executing_macro, + * because Tcl_DoOneEvent() will (naturally) + * not detect this `event'. + */ +- if (_rl_executing_macro) ++ if (EXECUTING_MACRO_NAME) + TclReadlineReadHandler((ClientData) NULL, TCL_READABLE); + else + #endif +@@ -468,17 +468,17 @@ + TclReadlineReadHandler(ClientData clientData, int mask) + { + if (mask & TCL_READABLE) { +-#ifdef EXECUTING_MACRO_HACK ++#ifdef EXECUTING_MACRO_NAME + do { + #endif + rl_callback_read_char(); +-#ifdef EXECUTING_MACRO_HACK ++#ifdef EXECUTING_MACRO_NAME + /** + * check, if we're inside a macro and + * if so, read all macro characters + * until the next eol. + */ +- } while (_rl_executing_macro && !TclReadlineLineComplete()); ++ } while (EXECUTING_MACRO_NAME && !TclReadlineLineComplete()); + #endif + } + } +@@ -517,12 +517,12 @@ + + Tcl_AppendResult(tclrl_interp, expansion, (char*) NULL); + +-#ifdef EXECUTING_MACRO_HACK ++#ifdef EXECUTING_MACRO_NAME + /** + * don't stuff macro lines + * into readline's history. + */ +- if(!_rl_executing_macro) { ++ if(!EXECUTING_MACRO_NAME) { + #endif + /** + * don't stuff empty lines +@@ -537,7 +537,7 @@ + if (tclrl_last_line) + free(tclrl_last_line); + tclrl_last_line = strdup(expansion); +-#ifdef EXECUTING_MACRO_HACK ++#ifdef EXECUTING_MACRO_NAME + } + #endif + /** diff --git a/dev-tcltk/tclreadline/files/tclreadline-2.1.0-rl-history-expand.patch b/dev-tcltk/tclreadline/files/tclreadline-2.1.0-rl-history-expand.patch new file mode 100644 index 000000000000..6e4d5270e41a --- /dev/null +++ b/dev-tcltk/tclreadline/files/tclreadline-2.1.0-rl-history-expand.patch @@ -0,0 +1,35 @@ +diff -ur a/tclreadline.c b/tclreadline.c +--- a/tclreadline.c 2013-11-16 20:14:28.876272386 +0100 ++++ b/tclreadline.c 2013-11-16 20:14:24.191390550 +0100 +@@ -503,25 +503,22 @@ + char* expansion = (char*) NULL; + int status = history_expand(ptr, &expansion); + +- if (status >= 1) { ++ if (status >= 2) { + /* TODO: make this a valid tcl output */ + printf("%s\n", expansion); + free(ptr); + free(expansion); + return; +- } else if (-1 == status) { ++ } else if (status <= -1) { + Tcl_AppendResult +- (tclrl_interp, "error in history expansion\n", (char*) NULL); ++ (tclrl_interp, "error in history expansion: ", expansion, "\n", (char*) NULL); + TclReadlineTerminate(TCL_ERROR); + free(ptr); + free(expansion); + return; +- } +- /** +- * TODO: status == 2 ... +- */ +- +- Tcl_AppendResult(tclrl_interp, expansion, (char*) NULL); ++ } else { ++ Tcl_AppendResult(tclrl_interp, expansion, (char*) NULL); ++ } + + #ifdef EXECUTING_MACRO_HACK + /** diff --git a/dev-tcltk/tclreadline/files/tclreadline-2.1.0-rl-prompt.patch b/dev-tcltk/tclreadline/files/tclreadline-2.1.0-rl-prompt.patch new file mode 100644 index 000000000000..a10a404100d3 --- /dev/null +++ b/dev-tcltk/tclreadline/files/tclreadline-2.1.0-rl-prompt.patch @@ -0,0 +1,12 @@ +diff -ur a/tclreadline.c b/tclreadline.c +--- a/tclreadline.c 2013-11-16 20:14:28.876272386 +0100 ++++ b/tclreadline.c 2013-11-16 20:37:47.455986902 +0100 +@@ -234,7 +234,7 @@ + + rl_callback_handler_install( + objc == 3 ? Tcl_GetStringFromObj(objv[2], 0) +- : "%", TclReadlineLineCompleteHandler); ++ : "% ", TclReadlineLineCompleteHandler); + + Tcl_CreateFileHandler(0, TCL_READABLE, + TclReadlineReadHandler, (ClientData) NULL); diff --git a/dev-tcltk/tclreadline/files/tclreadline-2.3.8-configure-clang16.patch b/dev-tcltk/tclreadline/files/tclreadline-2.3.8-configure-clang16.patch new file mode 100644 index 000000000000..1454cf54f698 --- /dev/null +++ b/dev-tcltk/tclreadline/files/tclreadline-2.3.8-configure-clang16.patch @@ -0,0 +1,67 @@ +https://github.com/flightaware/tclreadline/pull/46 + +From 8c75e01b814ac852167611f5edae9659a1f709d2 Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Wed, 23 Nov 2022 00:19:55 +0000 +Subject: [PATCH 1/2] Fix configure.ac compatibility with Clang 16 + +Clang 16 makes -Wimplicit-function-declaration and -Wimplicit-int errors by default. + +Unfortunately, this can lead to misconfiguration or miscompilation of software as configure +tests may then return the wrong result. + +We also fix -Wstrict-prototypes while here as it's easy to do and it prepares +us for C23. + +For more information, see LWN.net [0] or LLVM's Discourse [1], the Gentoo wiki [2], +or the (new) c-std-porting mailing list [3]. + +[0] https://lwn.net/Articles/913505/ +[1] https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213 +[2] https://wiki.gentoo.org/wiki/Modern_C_porting +[3] hosted at lists.linux.dev. + +Signed-off-by: Sam James <sam@gentoo.org> +--- a/configure.ac ++++ b/configure.ac +@@ -245,7 +245,8 @@ AC_TRY_LINK(,[ + AC_MSG_CHECKING([for the readline version number]) + AC_TRY_RUN([ + #include <stdio.h> +-int main () { ++#include <unistd.h> ++int main (void) { + FILE *fp = fopen("conftestversion", "w"); + extern char *rl_library_version; + fprintf(fp, "%s", rl_library_version); + +From b64772750c7543fe66165fd7862b355d289412b6 Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Wed, 23 Nov 2022 00:21:34 +0000 +Subject: [PATCH 2/2] Fix -Wint-conversion in readline configure test + +Fixes the following warning with Clang 16: +``` +configure:12873: clang-16 -o conftest -g -O2 conftest.c -lreadline >&5 +conftest.c:33:11: error: incompatible pointer to integer conversion passing 'FILE *' (aka 'struct _IO_FILE *') to parameter of type 'int' [-Wint-conversion] + close(fp); + ^~ +/usr/include/unistd.h:358:23: note: passing argument to parameter '__fd' here +extern int close (int __fd); +``` + +fopen should be paired with fclose. + +Signed-off-by: Sam James <sam@gentoo.org> +--- a/configure.ac ++++ b/configure.ac +@@ -250,7 +250,7 @@ int main (void) { + FILE *fp = fopen("conftestversion", "w"); + extern char *rl_library_version; + fprintf(fp, "%s", rl_library_version); +- close(fp); ++ fclose(fp); + return 0; + }], + READLINE_VERSION=`cat conftestversion` + diff --git a/dev-tcltk/tclreadline/metadata.xml b/dev-tcltk/tclreadline/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/tclreadline/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tclreadline/tclreadline-2.1.0-r5.ebuild b/dev-tcltk/tclreadline/tclreadline-2.1.0-r5.ebuild new file mode 100644 index 000000000000..29d7b1807313 --- /dev/null +++ b/dev-tcltk/tclreadline/tclreadline-2.1.0-r5.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools libtool + +DEBIAN_PATCH=12 + +DESCRIPTION="Readline extension to TCL" +HOMEPAGE="http://tclreadline.sf.net/" +SRC_URI=" + https://downloads.sourceforge.net/${PN}/${P}.tar.gz + mirror://debian/pool/main/t/${PN}/${PN}_${PV}-${DEBIAN_PATCH}.debian.tar.gz" + +SLOT="0" +LICENSE="BSD" +KEYWORDS="~alpha amd64 ppc ~sparc x86" +IUSE="static-libs" + +DEPEND=" + dev-lang/tcl:0= + sys-libs/readline:0=" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${P}-gold.patch + "${FILESDIR}"/${P}-alloc-free.patch + "${FILESDIR}"/${P}-rl-executing-macro.patch + "${FILESDIR}"/${P}-rl-history-expand.patch + "${FILESDIR}"/${P}-rl-prompt.patch + "${WORKDIR}"/debian/patches/complete_nontcl.patch + "${WORKDIR}"/debian/patches/completion_matches.patch + "${WORKDIR}"/debian/patches/completion_pbug.patch + "${WORKDIR}"/debian/patches/kfreebsd.patch + "${WORKDIR}"/debian/patches/link.patch + "${WORKDIR}"/debian/patches/manpage.patch + "${WORKDIR}"/debian/patches/memuse.patch + "${WORKDIR}"/debian/patches/tclshpath.patch + "${WORKDIR}"/debian/patches/tinfo.patch + "${WORKDIR}"/debian/patches/varnames.patch +) + +src_prepare() { + sed \ + -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/" \ + -e "/^TCLRL_LIBDIR/s:lib:$(get_libdir):g" \ + -i configure.in || die + mv configure.{in,ac} || die + sed \ + -e 's:configure.in:configure.ac:g' \ + -i "${WORKDIR}"/debian/patches/* || die + + default + eautoreconf + elibtoolize --patch-only +} + +src_configure() { + econf \ + --enable-shared \ + $(use_enable static-libs static) \ + --with-tcl="${EPREFIX}/usr/$(get_libdir)" \ + --with-tcl-includes="${EPREFIX}/usr/include" \ + --with-readline-includes="${EPREFIX}/usr/include" \ + --with-readline-library="-lreadline" +} + +src_install() { + default + find "${D}" -name \*.la | xargs rm +} diff --git a/dev-tcltk/tclreadline/tclreadline-2.3.8-r2.ebuild b/dev-tcltk/tclreadline/tclreadline-2.3.8-r2.ebuild new file mode 100644 index 000000000000..d5efdd8e6900 --- /dev/null +++ b/dev-tcltk/tclreadline/tclreadline-2.3.8-r2.ebuild @@ -0,0 +1,53 @@ +# Copyright 2020-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +DESCRIPTION="Readline extension to TCL" +HOMEPAGE="https://github.com/flightaware/tclreadline" +SRC_URI="https://github.com/flightaware/tclreadline/archive/v${PV}.tar.gz + -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 ppc ~sparc x86" +IUSE="tk" + +DEPEND=" + dev-lang/tcl:= + sys-libs/readline:= + tk? ( dev-lang/tk:= ) +" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-2.3.8-configure-clang16.patch +) + +src_prepare() { + default + + # Needed for Clang 16 patch, can drop once in a release + eautoreconf + + sed -i \ + -e "s|^\(TCLRL_LIBDIR\)=.*|\1=\"${EPREFIX}/usr/$(get_libdir)\"|" \ + configure || die +} + +src_configure() { + local myConf=( + --with-tcl="${EPREFIX}/usr/$(get_libdir)" + --with-readline-includes="${EPREFIX}/usr/include/readline" + ) + if ! use tk; then + myConf+=(--without-tk) + fi + econf "${myConf[@]}" +} +src_install() { + default + find "${ED}" -name \*.la -delete +} diff --git a/dev-tcltk/tclreadline/tclreadline-2.4.0.ebuild b/dev-tcltk/tclreadline/tclreadline-2.4.0.ebuild new file mode 100644 index 000000000000..8b3e4798e19c --- /dev/null +++ b/dev-tcltk/tclreadline/tclreadline-2.4.0.ebuild @@ -0,0 +1,55 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +DESCRIPTION="Readline extension to TCL" +HOMEPAGE="https://github.com/flightaware/tclreadline" +SRC_URI="https://github.com/flightaware/${PN}/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 ppc ~sparc x86" +IUSE="tk" + +DEPEND=" + dev-lang/tcl:= + sys-libs/readline:= + tk? ( dev-lang/tk:= ) +" +RDEPEND="${DEPEND}" + +src_prepare() { + default + + # Needed for Clang 16 patch, can drop once in a release + eautoreconf + + sed -i \ + -e "s|^\(TCLRL_LIBDIR\)=.*|\1=\"${EPREFIX}/usr/$(get_libdir)\"|" \ + configure || die +} + +src_configure() { + local myConf=( + --with-tcl="${EPREFIX}/usr/$(get_libdir)" + --with-readline-includes="${EPREFIX}/usr/include/readline" + ) + if ! use tk; then + myConf+=(--without-tk) + fi + econf "${myConf[@]}" + + # Needed for slibtool. Bug #934496 + sed -i \ + -e '/build_old_libs=/s:false:no:' \ + libtool || die +} + +src_install() { + default + find "${ED}" -name \*.la -delete +} diff --git a/dev-tcltk/tclreadline/tclreadline-2.4.1.ebuild b/dev-tcltk/tclreadline/tclreadline-2.4.1.ebuild new file mode 100644 index 000000000000..cf8c8b13ab28 --- /dev/null +++ b/dev-tcltk/tclreadline/tclreadline-2.4.1.ebuild @@ -0,0 +1,55 @@ +# Copyright 2020-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit autotools + +DESCRIPTION="Readline extension to TCL" +HOMEPAGE="https://github.com/flightaware/tclreadline" +SRC_URI="https://github.com/flightaware/${PN}/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86" +IUSE="tk" + +DEPEND=" + dev-lang/tcl:= + sys-libs/readline:= + tk? ( dev-lang/tk:= ) +" +RDEPEND="${DEPEND}" + +src_prepare() { + default + + # Needed for Clang 16 patch, can drop once in a release + eautoreconf + + sed -i \ + -e "s|^\(TCLRL_LIBDIR\)=.*|\1=\"${EPREFIX}/usr/$(get_libdir)\"|" \ + configure || die +} + +src_configure() { + local myConf=( + --with-tcl="${EPREFIX}/usr/$(get_libdir)" + --with-readline-includes="${EPREFIX}/usr/include/readline" + ) + if ! use tk; then + myConf+=(--without-tk) + fi + econf "${myConf[@]}" + + # Needed for slibtool. Bug #934496 + sed -i \ + -e '/build_old_libs=/s:false:no:' \ + libtool || die +} + +src_install() { + default + find "${ED}" -name \*.la -delete +} diff --git a/dev-tcltk/tclx/Manifest b/dev-tcltk/tclx/Manifest new file mode 100644 index 000000000000..eca9e2452738 --- /dev/null +++ b/dev-tcltk/tclx/Manifest @@ -0,0 +1,2 @@ +DIST tclx-8.6.1.tar.gz 457438 BLAKE2B 451b90a6f4403177604684a2a4475a057924faa4b625ac035d65b622b69e8dfea7146143056491ce8740374c18c4fbfb0184a0d074bf799897a01bb767e1695c SHA512 4a2293aad667b108f19f837686044fc168831781d04a9f8eaa2afe677c587f1e128a536ad9db609720e0046a20ff6f8dd7a0e5dd1232ef775c5a14e24ec0614d +DIST tclx-8.6.3.tar.gz 457293 BLAKE2B 4d3578c0312bc2a0a0cfe079699893818ed6bce941dd84d4cb4786891e784930e0172c4c15892a2b81acf0f4a5062145e9f4397842185358b49658c692cd08cc SHA512 680b8916ccb5725ed173b45549c94e7b1e17c4e5cf700c3991d2791b9f299660e94c880401dccfbff7ca630036c0781c41a9692c2d8ead2e7ad880e2e05a69e7 diff --git a/dev-tcltk/tclx/files/tclx-8.4-ldflags.patch b/dev-tcltk/tclx/files/tclx-8.4-ldflags.patch new file mode 100644 index 000000000000..40acfda25fd9 --- /dev/null +++ b/dev-tcltk/tclx/files/tclx-8.4-ldflags.patch @@ -0,0 +1,13 @@ +diff --git a/Makefile.in b/Makefile.in +index b812bbe..069337c 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -123,7 +123,7 @@ OBJEXT = @OBJEXT@ + RANLIB = @RANLIB@ + RANLIB_STUB = @RANLIB_STUB@ + SHLIB_CFLAGS = @SHLIB_CFLAGS@ +-SHLIB_LD = @SHLIB_LD@ ++SHLIB_LD = @SHLIB_LD@ @LDFLAGS@ + SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ + STLIB_LD = @STLIB_LD@ + TCL_DEFS = @TCL_DEFS@ diff --git a/dev-tcltk/tclx/files/tclx-8.4-varinit.patch b/dev-tcltk/tclx/files/tclx-8.4-varinit.patch new file mode 100644 index 000000000000..08fe7d881191 --- /dev/null +++ b/dev-tcltk/tclx/files/tclx-8.4-varinit.patch @@ -0,0 +1,11 @@ +--- tclx8.4/generic/tclXdup.c.varinit 2006-02-03 15:54:38.000000000 -0500 ++++ tclx8.4/generic/tclXdup.c 2006-02-03 15:54:53.000000000 -0500 +@@ -202,7 +202,7 @@ + { + Tcl_Channel newChannel; + int bindFnum, fnum; +- char *srcChannelId, *targetChannelId; ++ char *srcChannelId = NULL, *targetChannelId; + + if ((objc < 2) || (objc > 3)) { + return TclX_WrongArgs (interp, objv [0], diff --git a/dev-tcltk/tclx/files/tclx-8.4.4-musl.patch b/dev-tcltk/tclx/files/tclx-8.4.4-musl.patch new file mode 100644 index 000000000000..301ad263b558 --- /dev/null +++ b/dev-tcltk/tclx/files/tclx-8.4.4-musl.patch @@ -0,0 +1,26 @@ +https://github.com/flightaware/tclx/pull/16#issuecomment-1565348180 +--- a/configure.in 2023-03-15 22:00:11.725506240 +0100 ++++ b/configure.in 2023-03-15 22:00:29.230246904 +0100 +@@ -253,6 +253,7 @@ + + AC_CHECK_FUNC(inet_aton, , [AC_DEFINE(NO_INET_ATON)]) + AC_CHECK_FUNC(gethostname, , [AC_DEFINE(NO_GETHOSTNAME)]) ++ AC_CHECK_FUNCS([rresvport]) + + #------------------------------------------------------------------------- + # Check for additional libraries the Tcl/Tk does not check for. +--- a/unix/tclXunixSock.c 2023-03-15 22:02:32.255424538 +0100 ++++ b/unix/tclXunixSock.c 2023-03-15 22:03:35.094493443 +0100 +@@ -194,10 +194,12 @@ + * Allocate a reserved port if requested. + */ + if (getReserved) { ++#ifdef HAVE_RRESVPORT + int port; + if (rresvport (&port) < 0) + goto unixError; + local.sin_port = port; ++#endif + } + + /* diff --git a/dev-tcltk/tclx/metadata.xml b/dev-tcltk/tclx/metadata.xml new file mode 100644 index 000000000000..2d8ef82aefa4 --- /dev/null +++ b/dev-tcltk/tclx/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>TCL/TK project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tclx/tclx-8.6.1.ebuild b/dev-tcltk/tclx/tclx-8.6.1.ebuild new file mode 100644 index 000000000000..b382165e3eca --- /dev/null +++ b/dev-tcltk/tclx/tclx-8.6.1.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +DESCRIPTION="A set of extensions to TCL" +HOMEPAGE="http://tclx.sourceforge.net" +SRC_URI="https://github.com/flightaware/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ppc x86" +IUSE="threads" + +DEPEND="dev-lang/tcl:0=" +RDEPEND="${DEPEND}" + +# tests broken, bug #279283 +RESTRICT="test" + +PATCHES=( + "${FILESDIR}"/${PN}-8.4-varinit.patch + "${FILESDIR}"/${PN}-8.4-ldflags.patch + "${FILESDIR}"/${PN}-8.4.4-musl.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 # used to test for Large File Support +) + +src_prepare() { + default + + sed \ + -e '/CC=/s:-pipe::g' \ + -i tclconfig/tcl.m4 configure || die + + eautoreconf +} + +src_configure() { + econf \ + $(use_enable threads) \ + --enable-shared \ + --with-tcl="${EPREFIX}/usr/$(get_libdir)/" + + # adjust install_name on darwin + if [[ ${CHOST} == *-darwin* ]]; then + sed -i \ + -e 's:^\(SHLIB_LD\W.*\)$:\1 -install_name ${pkglibdir}/$@:' \ + "${S}"/Makefile || die 'sed failed' + fi +} + +src_install() { + default + doman doc/*.[n3] +} diff --git a/dev-tcltk/tclx/tclx-8.6.3.ebuild b/dev-tcltk/tclx/tclx-8.6.3.ebuild new file mode 100644 index 000000000000..52beb037babb --- /dev/null +++ b/dev-tcltk/tclx/tclx-8.6.3.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +DESCRIPTION="A set of extensions to TCL" +HOMEPAGE="http://tclx.sourceforge.net" +SRC_URI="https://github.com/flightaware/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ppc x86" +IUSE="threads" + +DEPEND="dev-lang/tcl:0=" +RDEPEND="${DEPEND}" + +# tests broken, bug #279283 +RESTRICT="test" + +PATCHES=( + "${FILESDIR}"/${PN}-8.4-varinit.patch + "${FILESDIR}"/${PN}-8.4-ldflags.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 # used to test for Large File Support +) + +src_prepare() { + default + + sed \ + -e '/CC=/s:-pipe::g' \ + -i tclconfig/tcl.m4 configure || die + + eautoreconf +} + +src_configure() { + econf \ + $(use_enable threads) \ + --enable-shared \ + --with-tcl="${EPREFIX}/usr/$(get_libdir)/" + + # adjust install_name on darwin + if [[ ${CHOST} == *-darwin* ]]; then + sed -i \ + -e 's:^\(SHLIB_LD\W.*\)$:\1 -install_name ${pkglibdir}/$@:' \ + "${S}"/Makefile || die 'sed failed' + fi +} + +src_install() { + default + doman doc/*.[n3] +} diff --git a/dev-tcltk/tclxml/Manifest b/dev-tcltk/tclxml/Manifest new file mode 100644 index 000000000000..0a786ea1decb --- /dev/null +++ b/dev-tcltk/tclxml/Manifest @@ -0,0 +1 @@ +DIST TclXML-3.3.1.tar.gz 681802 BLAKE2B e29bcdb2ef79aa1d1f41ff1338981c0c2d0592fbd146daad102552b2609ab844b12d5de5807a9a26400860783b94df7b754d4ef96a5ab377732dcefaae3c0c21 SHA512 8ee9e36fc8cb9a68da5f810442b5b6fa8d020ef772b9ee98d7c3e429c41ec158451c8994ec5800636db8b33f39a2df7e37c6b64a20a24f7fe4e72e0bba3f2ff3 diff --git a/dev-tcltk/tclxml/files/tclxml-3.2-fix-implicit-declarations.patch b/dev-tcltk/tclxml/files/tclxml-3.2-fix-implicit-declarations.patch new file mode 100644 index 000000000000..dba4973c1fd9 --- /dev/null +++ b/dev-tcltk/tclxml/files/tclxml-3.2-fix-implicit-declarations.patch @@ -0,0 +1,13 @@ +https://github.com/flightaware/TclXML/pull/4 + +--- a/tclxml.c ++++ b/tclxml.c +@@ -20,6 +20,8 @@ + #include <tclxslt/tclxslt.h> + #include <string.h> + ++int Tcldom_libxml2_Init ( Tcl_Interp *interp ); ++ + #define TCL_DOES_STUBS \ + (TCL_MAJOR_VERSION > 8 || TCL_MAJOR_VERSION == 8 && (TCL_MINOR_VERSION > 1 || \ + (TCL_MINOR_VERSION == 1 && TCL_RELEASE_LEVEL == TCL_FINAL_RELEASE))) diff --git a/dev-tcltk/tclxml/files/tclxml-3.3.1-funcPointer.patch b/dev-tcltk/tclxml/files/tclxml-3.3.1-funcPointer.patch new file mode 100644 index 000000000000..3f641b490883 --- /dev/null +++ b/dev-tcltk/tclxml/files/tclxml-3.3.1-funcPointer.patch @@ -0,0 +1,38 @@ +From c1bc95aadd5334adf9c6d17ce918abf98af14c6f Mon Sep 17 00:00:00 2001 +From: Alfredo Tupone <tupone@gentoo.org> +Date: Sat, 24 Feb 2024 20:38:49 +0100 +Subject: [PATCH] fix -Wincompatible-pointer-types + +--- + docObj.c | 4 +--- + include/tclxml-libxml2/tclxml-libxml2Decls.h | 2 +- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/docObj.c b/docObj.c +index 20a1bd4..c4d5bf9 100644 +--- a/docObj.c ++++ b/docObj.c +@@ -1852,9 +1852,7 @@ ErrorCodeToString(code) + } + + void +-TclXML_libxml2_ErrorHandler (ctx, error) +- void *ctx; /* ignore - depends on context */ +- xmlErrorPtr error; ++TclXML_libxml2_ErrorHandler (void *ctx, const xmlError *error) + { + ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData)); + Tcl_Obj *objPtr; +diff --git a/include/tclxml-libxml2/tclxml-libxml2Decls.h b/include/tclxml-libxml2/tclxml-libxml2Decls.h +index 3faa5f7..9ad6555 100644 +--- a/include/tclxml-libxml2/tclxml-libxml2Decls.h ++++ b/include/tclxml-libxml2/tclxml-libxml2Decls.h +@@ -55,7 +55,7 @@ EXTERN void TclXML_libxml2_DocKeep _ANSI_ARGS_((Tcl_Obj * objPtr, + TclXML_libxml2_DocumentHandling keep)); + /* 10 */ + EXTERN void TclXML_libxml2_ErrorHandler _ANSI_ARGS_((void * ctx, +- xmlErrorPtr error)); ++ const xmlError *error)); + /* 11 */ + EXTERN void TclXML_libxml2_ResetError _ANSI_ARGS_(( + Tcl_Interp * interp)); diff --git a/dev-tcltk/tclxml/metadata.xml b/dev-tcltk/tclxml/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/tclxml/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tclxml/tclxml-3.3.1-r4.ebuild b/dev-tcltk/tclxml/tclxml-3.3.1-r4.ebuild new file mode 100644 index 000000000000..9fcbb7e275b6 --- /dev/null +++ b/dev-tcltk/tclxml/tclxml-3.3.1-r4.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a + +MYPN=TclXML +MYP=${MYPN}-${PV} + +DESCRIPTION="Pure Tcl implementation of an XML parser" +HOMEPAGE="https://github.com/flightaware/TclXML" +SRC_URI="https://github.com/flightaware/TclXML/archive/refs/tags/v${PV}.tar.gz + -> ${MYP}.tar.gz" +S="${WORKDIR}"/${MYP} + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 ppc ~sparc x86" +IUSE="debug threads" + +DEPEND=" + >=dev-lang/tcl-8.2:= + <dev-lang/tcl-9 + >=dev-libs/libxml2-2.6.9:= + dev-libs/libxslt + >=dev-tcltk/tcllib-1.2 + dev-libs/expat" +# test? ( dev-tcltk/tclparser ) +RDEPEND="${DEPEND}" + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 # used to test for Large File Support +) + +RESTRICT="test" + +PATCHES=( + "${FILESDIR}"/${PN}-3.2-fix-implicit-declarations.patch + "${FILESDIR}"/${P}-funcPointer.patch +) + +src_configure() { + lto-guarantee-fat + local myconf="" + + use threads && myconf="${myconf} --enable-threads" + + econf ${myconf} \ + --with-xml2-config="${EPREFIX}"/usr/bin/xml2-config \ + --with-xslt-config="${EPREFIX}"/usr/bin/xslt-config \ + --with-tclinclude="${EPREFIX}"/usr/include \ + --with-tcl="${EPREFIX}"/usr/$(get_libdir) \ + $(use_enable amd64 64bit) \ + $(use_enable debug symbols) +} + +src_install() { + default + strip-lto-bytecode +} diff --git a/dev-tcltk/tdom/Manifest b/dev-tcltk/tdom/Manifest new file mode 100644 index 000000000000..5084988002bc --- /dev/null +++ b/dev-tcltk/tdom/Manifest @@ -0,0 +1,3 @@ +DIST tdom-0.9.3-src.tgz 1319804 BLAKE2B 8b4c50407eaf28c002ec8399d44881b91bef346dca75370c27e06266a5fa90900528a01fc8310d8a250f551e3a627d0d2965a2e85ef8a9132010f7718e5549ce SHA512 71a589465f84721f222b6312f51ee564d11d88a82000a0e5cc1dab4653bffd57347a39936590b62a580e9df59d7266ff3ae4295fe91ff4b9e58f012e80b0cb3e +DIST tdom-0.9.5-src.tgz 1512934 BLAKE2B 4e706d5378f2421fc21742327fe40ac106488c7523f33e90261d05c3969797fa35d7e5f785346c9a83fa6aadeff53a9e11a710d4ce32c38db332018b9e997c49 SHA512 84b35ec00744d04f184638b95d6b34f008087f48852a8734ce17c491f6d4c5f1208a8dcc041b5a3bf0253af41ab91677ab2b2d978d00807c687585e41c909979 +DIST tdom-0.9.6-src.tgz 1530711 BLAKE2B 05e880c5a57f28d7e6877533d469128c10890252f18103dbcd43adf93737b5974d06e114388c7df68253290f258aa4707dbde1ae853dbd76ed6e15851c28a4ff SHA512 ade285ea5c4e582fff7f52caf1292c1be8c59a6d7bae41cfbdb55b50a742d975c8ea7291c64cab060bf6668c45b7585e4f3b565c235575eaa7bd46a98c6ca23d diff --git a/dev-tcltk/tdom/files/tdom-0.9.2-useCC.patch b/dev-tcltk/tdom/files/tdom-0.9.2-useCC.patch new file mode 100644 index 000000000000..cdfdcb8bf815 --- /dev/null +++ b/dev-tcltk/tdom/files/tdom-0.9.2-useCC.patch @@ -0,0 +1,28 @@ +--- a/tclconfig/tcl.m4 2019-12-07 22:00:18.094712146 +0100 ++++ b/tclconfig/tcl.m4 2019-12-07 22:00:28.961515544 +0100 +@@ -434,7 +434,6 @@ + AC_SUBST(TCL_STUB_LIB_SPEC) + + AC_MSG_CHECKING([platform]) +- hold_cc=$CC; CC="$TCL_CC" + AC_TRY_COMPILE(,[ + #ifdef _WIN32 + #error win32 +@@ -446,7 +445,6 @@ + TEA_PLATFORM="windows" + AC_CHECK_PROG(CYGPATH, cygpath, cygpath -m, echo) ] + ) +- CC=$hold_cc + AC_MSG_RESULT($TEA_PLATFORM) + + # The BUILD_$pkg is to define the correct extern storage class +--- a/configure.ac 2019-12-07 22:06:56.954496437 +0100 ++++ b/configure.ac 2019-12-07 22:07:53.538472872 +0100 +@@ -33,6 +33,7 @@ + TEA_INIT([3.13]) + + AC_CONFIG_AUX_DIR(tclconfig) ++AC_CONFIG_SUBDIRS([extensions/tnc extensions/example]) + + #-------------------------------------------------------------------- + # Load the tclConfig.sh file diff --git a/dev-tcltk/tdom/files/tdom-0.9.3-expat.patch b/dev-tcltk/tdom/files/tdom-0.9.3-expat.patch new file mode 100644 index 000000000000..a55fa4b22c14 --- /dev/null +++ b/dev-tcltk/tdom/files/tdom-0.9.3-expat.patch @@ -0,0 +1,10 @@ +--- a/generic/dom.h 2024-02-26 08:37:08.464473295 +0100 ++++ b/generic/dom.h 2024-02-26 08:43:19.859997138 +0100 +@@ -37,6 +37,7 @@ + #include <stdlib.h> + #include <string.h> + #include <ctype.h> ++#define XML_GE 1 + #include <expat.h> + #include <domalloc.h> + diff --git a/dev-tcltk/tdom/files/tdom-0.9.4-useCC.patch b/dev-tcltk/tdom/files/tdom-0.9.4-useCC.patch new file mode 100644 index 000000000000..18af36b7792b --- /dev/null +++ b/dev-tcltk/tdom/files/tdom-0.9.4-useCC.patch @@ -0,0 +1,28 @@ +--- a/tclconfig/tcl.m4 2024-11-05 20:59:09.219230897 +0100 ++++ b/tclconfig/tcl.m4 2024-11-05 21:01:32.642430617 +0100 +@@ -423,7 +423,6 @@ + AC_SUBST(TCL_STUB_LIB_SPEC) + + AC_MSG_CHECKING([platform]) +- hold_cc=$CC; CC="$TCL_CC" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ + #ifdef _WIN32 + #error win32 +@@ -436,7 +435,6 @@ + TEA_PLATFORM="windows" + AC_CHECK_PROG(CYGPATH, cygpath, cygpath -m, echo) + ]) +- CC=$hold_cc + AC_MSG_RESULT($TEA_PLATFORM) + + # The BUILD_$pkg is to define the correct extern storage class +--- a/configure.ac 2024-11-05 21:02:53.670413146 +0100 ++++ b/configure.ac 2024-11-05 21:03:19.630087072 +0100 +@@ -30,6 +30,7 @@ + TEA_INIT() + + AC_CONFIG_AUX_DIR(tclconfig) ++AC_CONFIG_SUBDIRS([extensions/tnc extensions/example]) + + #-------------------------------------------------------------------- + # Load the tclConfig.sh file diff --git a/dev-tcltk/tdom/files/tdom-0.9.5-fix-c23.patch b/dev-tcltk/tdom/files/tdom-0.9.5-fix-c23.patch new file mode 100644 index 000000000000..ad8a5af4d40b --- /dev/null +++ b/dev-tcltk/tdom/files/tdom-0.9.5-fix-c23.patch @@ -0,0 +1,515 @@ +https://bugs.gentoo.org/943934 +https://core.tcl-lang.org/tdom/info/2db2c391674a7cc3 + +Amended to remove https://core.tcl-lang.org/tdom/info/8a8dee52e5eb58d4 + +--- a/generic/datatypes.c ++++ b/generic/datatypes.c +@@ -225,11 +225,11 @@ + void *constraintData, + char *text + ) + { + tclTCData *tcdata = constraintData; +- int result, bool; ++ int result, boolVal; + + tcdata->evalStub[tcdata->nrArg-1] = Tcl_NewStringObj(text, -1); + Tcl_IncrRefCount (tcdata->evalStub[tcdata->nrArg-1]); + tcdata->sdata->currentEvals++; + result = Tcl_EvalObjv (interp, tcdata->nrArg, tcdata->evalStub, +@@ -238,15 +238,15 @@ + Tcl_DecrRefCount (tcdata->evalStub[tcdata->nrArg-1]); + if (result != TCL_OK) { + tcdata->sdata->evalError = 1; + return 0; + } +- result = Tcl_GetBooleanFromObj (interp, Tcl_GetObjResult (interp), &bool); ++ result = Tcl_GetBooleanFromObj (interp, Tcl_GetObjResult (interp), &boolVal); + if (result != TCL_OK) { + return 0; + } +- if (bool) { ++ if (boolVal) { + return 1; + } + return 0; + } + + +--- a/generic/dom.c ++++ b/generic/dom.c +@@ -5489,11 +5489,11 @@ + int objc, + Tcl_Obj *const objv[] + ) + { + CHandlerSet *handlerSet; +- int methodIndex, result, bool; ++ int methodIndex, result, boolVal; + tdomCmdReadInfo *info; + TclGenExpatInfo *expat; + Tcl_Obj *newObjName = NULL; + + static const char *tdomMethods[] = { +@@ -5601,14 +5601,14 @@ + Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); + return TCL_ERROR; + } + Tcl_SetIntObj (Tcl_GetObjResult (interp), info->storeLineColumn); + if (objc == 4) { +- if (Tcl_GetBooleanFromObj (interp, objv[3], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj (interp, objv[3], &boolVal) != TCL_OK) { + return TCL_ERROR; + } +- info->storeLineColumn = bool; ++ info->storeLineColumn = boolVal; + } + info->tdomStatus = 1; + break; + + case m_remove: +@@ -5656,15 +5656,15 @@ + if (!info) { + Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); + return TCL_ERROR; + } + Tcl_SetIntObj (Tcl_GetObjResult (interp), info->ignoreWhiteSpaces); +- if (Tcl_GetBooleanFromObj (interp, objv[3], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj (interp, objv[3], &boolVal) != TCL_OK) { + return TCL_ERROR; + } +- info->ignoreWhiteSpaces = !bool; +- handlerSet->ignoreWhiteCDATAs = !bool; ++ info->ignoreWhiteSpaces = !boolVal; ++ handlerSet->ignoreWhiteCDATAs = !boolVal; + info->tdomStatus = 1; + break; + + case m_keepCDATA: + if (objc != 4) { +@@ -5680,14 +5680,14 @@ + info = handlerSet->userData; + if (!info) { + Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); + return TCL_ERROR; + } +- if (Tcl_GetBooleanFromObj (interp, objv[3], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj (interp, objv[3], &boolVal) != TCL_OK) { + return TCL_ERROR; + } +- if (bool) { ++ if (boolVal) { + handlerSet->startCdataSectionCommand = tdom_startCDATA; + handlerSet->endCdataSectionCommand = endCDATA; + } else { + handlerSet->startCdataSectionCommand = NULL; + handlerSet->endCdataSectionCommand = NULL; +@@ -5709,15 +5709,15 @@ + info = handlerSet->userData; + if (!info) { + Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); + return TCL_ERROR; + } +- if (Tcl_GetBooleanFromObj (interp, objv[3], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj (interp, objv[3], &boolVal) != TCL_OK) { + return TCL_ERROR; + } + expat = GetExpatInfo (interp, objv[1]); +- expat->keepTextStart = bool; ++ expat->keepTextStart = boolVal; + expat->cdataStartLine = 0; + break; + + case m_ignorexmlns: + info = CHandlerSetGetUserData (interp, objv[1], "tdom"); +@@ -5725,17 +5725,17 @@ + Tcl_SetResult (interp, "parser object isn't tdom enabled.", NULL); + return TCL_ERROR; + } + Tcl_SetIntObj (Tcl_GetObjResult (interp), info->ignorexmlns); + if (objc == 4) { +- if (Tcl_GetBooleanFromObj (interp, objv[3], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj (interp, objv[3], &boolVal) != TCL_OK) { + return TCL_ERROR; + } +- info->ignorexmlns = bool; ++ info->ignorexmlns = boolVal; + } + info->tdomStatus = 1; + break; + + } + + return TCL_OK; + } + +--- a/generic/tcldom.c ++++ b/generic/tcldom.c +@@ -3400,12 +3400,12 @@ + typedef struct + { + Tcl_Obj *object; + Tcl_Obj *array; + Tcl_Obj *null; +- Tcl_Obj *true; +- Tcl_Obj *false; ++ Tcl_Obj *trueVal; ++ Tcl_Obj *falseVal; + Tcl_Obj *number; + Tcl_Obj *string; + } asTypedListTypes; + + +@@ -3476,14 +3476,14 @@ + switch (node->info) { + case JSON_NULL: + Tcl_ListObjAppendElement (NULL, resultObj, c->null); + break; + case JSON_TRUE: +- Tcl_ListObjAppendElement (NULL, resultObj, c->true); ++ Tcl_ListObjAppendElement (NULL, resultObj, c->trueVal); + break; + case JSON_FALSE: +- Tcl_ListObjAppendElement (NULL, resultObj, c->false); ++ Tcl_ListObjAppendElement (NULL, resultObj, c->falseVal); + break; + case JSON_NUMBER: + textNode = (domTextNode *)node; + if (isJSONNumber (textNode->nodeValue, textNode->valueLength)) { + Tcl_ListObjAppendElement(NULL, resultObj, c->number); +@@ -3520,20 +3520,20 @@ + } + + c.object = Tcl_NewStringObj ("OBJECT", 6); + c.array = Tcl_NewStringObj ("ARRAY", 5); + c.null = Tcl_NewStringObj ("NULL", 4); +- c.true = Tcl_NewStringObj ("TRUE", 4); +- c.false = Tcl_NewStringObj ("FALSE", 5); ++ c.trueVal = Tcl_NewStringObj ("TRUE", 4); ++ c.falseVal = Tcl_NewStringObj ("FALSE", 5); + c.number = Tcl_NewStringObj ("NUMBER", 6); + c.string = Tcl_NewStringObj ("STRING", 6); + + Tcl_IncrRefCount (c.object); + Tcl_IncrRefCount (c.array); + Tcl_IncrRefCount (c.null); +- Tcl_IncrRefCount (c.true); +- Tcl_IncrRefCount (c.false); ++ Tcl_IncrRefCount (c.trueVal); ++ Tcl_IncrRefCount (c.falseVal); + Tcl_IncrRefCount (c.number); + Tcl_IncrRefCount (c.string); + + if (node->nodeType == ELEMENT_NODE + && node->info == 0 +@@ -3547,12 +3547,12 @@ + tcldom_treeAsTypedListWorker (node, &c)); + + Tcl_DecrRefCount (c.object); + Tcl_DecrRefCount (c.array); + Tcl_DecrRefCount (c.null); +- Tcl_DecrRefCount (c.true); +- Tcl_DecrRefCount (c.false); ++ Tcl_DecrRefCount (c.trueVal); ++ Tcl_DecrRefCount (c.falseVal); + Tcl_DecrRefCount (c.number); + Tcl_DecrRefCount (c.string); + } + + /*---------------------------------------------------------------------------- +@@ -3600,11 +3600,11 @@ + Tcl_Obj *const objv[] + ) + { + char *channelId, prefix[MAX_PREFIX_LEN]; + const char *localName; +- int indent, mode, bool; ++ int indent, mode, boolVal; + int outputFlags = 0; + int optionIndex, cdataChild; + Tcl_Obj *resultPtr, *encString = NULL; + Tcl_Channel chan = (Tcl_Channel) NULL; + Tcl_HashEntry *h; +@@ -3716,15 +3716,15 @@ + if (objc < 4) { + SetResult("-doctypeDeclaration must have a boolean value " + "as argument"); + goto cleanup; + } +- if (Tcl_GetBooleanFromObj(interp, objv[3], &bool) ++ if (Tcl_GetBooleanFromObj(interp, objv[3], &boolVal) + != TCL_OK) { + goto cleanup; + } +- if (bool) outputFlags |= SERIALIZE_DOCTYPE_DECLARATION; ++ if (boolVal) outputFlags |= SERIALIZE_DOCTYPE_DECLARATION; + objc -= 2; + objv += 2; + break; + + case m_xmlDeclaration: +@@ -3731,15 +3731,15 @@ + if (objc < 4) { + SetResult("-xmlDeclaration must have a boolean value " + "as argument"); + goto cleanup; + } +- if (Tcl_GetBooleanFromObj(interp, objv[3], &bool) ++ if (Tcl_GetBooleanFromObj(interp, objv[3], &boolVal) + != TCL_OK) { + goto cleanup; + } +- if (bool) outputFlags |= SERIALIZE_XML_DECLARATION; ++ if (boolVal) outputFlags |= SERIALIZE_XML_DECLARATION; + objc -= 2; + objv += 2; + break; + + case m_encString: +@@ -4933,11 +4933,11 @@ + const char *localName, *uri, *nsStr; + int result, methodIndex, i; + domLength length; + XML_Size line, column; + XML_Index byteIndex; +- int nsIndex, bool, hnew, legacy, jsonType; ++ int nsIndex, boolVal, hnew, legacy, jsonType; + Tcl_Obj *namePtr, *resultPtr; + Tcl_Obj *mobjv[MAX_REWRITE_ARGS], *storedErrMsg; + Tcl_CmdInfo cmdInfo; + Tcl_HashEntry *h; + +@@ -5945,14 +5945,14 @@ + return TCL_ERROR; + } + SetIntResult( + (((node->nodeFlags & DISABLE_OUTPUT_ESCAPING) == 0) ? 0 : 1)); + if (objc == 3) { +- if (Tcl_GetBooleanFromObj(interp, objv[2], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj(interp, objv[2], &boolVal) != TCL_OK) { + return TCL_ERROR; + } +- if (bool) { ++ if (boolVal) { + node->nodeFlags |= DISABLE_OUTPUT_ESCAPING; + } else { + node->nodeFlags &= (~DISABLE_OUTPUT_ESCAPING); + } + } +@@ -5990,20 +5990,20 @@ + FREE (str); + return TCL_OK; + + case m_normalize: + CheckArgs (2,3,2, "?-forXPath?"); +- bool = 0; ++ boolVal = 0; + if (objc == 3) { + if (strcmp (Tcl_GetString(objv[2]), "-forXPath") == 0) { +- bool = 1; ++ boolVal = 1; + } else { + SetResult("unknown option! Options: ?-forXPath?"); + return TCL_ERROR; + } + } +- domNormalize (node, bool, tcldom_deleteNode, interp); ++ domNormalize (node, boolVal, tcldom_deleteNode, interp); + return TCL_OK; + + case m_jsonType: + CheckArgs (2,3,2, "?jsonType?"); + if (node->nodeType != ELEMENT_NODE +@@ -6073,11 +6073,11 @@ + + domDeleteInfo * dinfo; + domDocument * doc; + char * method, *tag, *data, *target, *uri, tmp[100]; + char * str, *docName, *errMsg; +- int methodIndex, result, i, nsIndex, forXPath, bool; ++ int methodIndex, result, i, nsIndex, forXPath, boolVal; + int setDocumentElement = 0, restoreDomCreateCmdMode = 0; + domLength data_length, target_length; + domNode * n; + Tcl_CmdInfo cmdInfo; + Tcl_Obj * mobjv[MAX_REWRITE_ARGS], *storedErrMsg; +@@ -6420,14 +6420,14 @@ + SetBooleanResult (1); + } else { + SetBooleanResult(0); + } + if (objc == 3) { +- if (Tcl_GetBooleanFromObj (interp, objv[2], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj (interp, objv[2], &boolVal) != TCL_OK) { + return TCL_ERROR; + } +- if (bool) { ++ if (boolVal) { + doc->nodeFlags |= OUTPUT_DEFAULT_INDENT; + } else { + doc->nodeFlags &= ~OUTPUT_DEFAULT_INDENT; + } + } +@@ -7831,11 +7831,11 @@ + { + GetTcldomDATA; + + char * method, tmp[300], *string, *option, + *replacement; +- int methodIndex, result, i, bool, changed; ++ int methodIndex, result, i, boolVal, changed; + domLength repllen; + Tcl_CmdInfo cmdInfo; + Tcl_Obj * mobjv[MAX_REWRITE_ARGS], *newObj, *storedErrMsg; + Tcl_DString cleardString, escapedStr; + +@@ -7992,34 +7992,34 @@ + break; + #endif + + case m_setStoreLineColumn: + if (objc == 3) { +- if (Tcl_GetBooleanFromObj(interp, objv[2], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj(interp, objv[2], &boolVal) != TCL_OK) { + return TCL_ERROR; + } +- TcldomDATA(storeLineColumn) = bool; ++ TcldomDATA(storeLineColumn) = boolVal; + } + SetBooleanResult(TcldomDATA(storeLineColumn)); + return TCL_OK; + + case m_setNameCheck: + if (objc == 3) { +- if (Tcl_GetBooleanFromObj(interp, objv[2], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj(interp, objv[2], &boolVal) != TCL_OK) { + return TCL_ERROR; + } +- TcldomDATA(dontCheckName) = !bool; ++ TcldomDATA(dontCheckName) = !boolVal; + } + SetBooleanResult(!TcldomDATA(dontCheckName)); + return TCL_OK; + + case m_setTextCheck: + if (objc == 3) { +- if (Tcl_GetBooleanFromObj(interp, objv[2], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj(interp, objv[2], &boolVal) != TCL_OK) { + return TCL_ERROR; + } +- TcldomDATA(dontCheckCharData) = !bool; ++ TcldomDATA(dontCheckCharData) = !boolVal; + } + SetBooleanResult(!TcldomDATA(dontCheckCharData)); + return TCL_OK; + + case m_setObjectCommands: + +--- a/generic/tclexpat.c ++++ b/generic/tclexpat.c +@@ -1265,11 +1265,11 @@ + enum paramEntityParsingValues { + EXPAT_PARAMENTITYPARSINGALWAYS, + EXPAT_PARAMENTITYPARSINGNEVER, + EXPAT_PARAMENTITYPARSINGNOTSTANDALONE + }; +- int optionIndex, value, bool; ++ int optionIndex, value, boolVal; + Tcl_Obj *const *objPtr = objv; + Tcl_CmdInfo cmdInfo; + int rc; + domLength len; + char *handlerSetName = NULL; +@@ -1394,15 +1394,15 @@ + #endif + break; + + case EXPAT_FINAL: /* -final */ + +- if (Tcl_GetBooleanFromObj(interp, objPtr[1], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj(interp, objPtr[1], &boolVal) != TCL_OK) { + return TCL_ERROR; + } + +- expat->final = bool; ++ expat->final = boolVal; + break; + + case EXPAT_BASE: /* -baseurl */ + + if (expat->baseURI) { +@@ -1591,22 +1591,22 @@ + } + break; + + case EXPAT_USEFOREIGNDTD: /* -useForeignDTD */ + +- if (Tcl_GetBooleanFromObj (interp, objPtr[1], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj (interp, objPtr[1], &boolVal) != TCL_OK) { + return TCL_ERROR; + } + if (expat->parser) { + /* Cannot be changed after parsing as started (which is + kind of understandable). */ +- if (XML_UseForeignDTD (expat->parser, (unsigned char)bool) ++ if (XML_UseForeignDTD (expat->parser, (unsigned char)boolVal) + != XML_ERROR_NONE) { +- expat->useForeignDTD = bool; ++ expat->useForeignDTD = boolVal; + } + } else { +- expat->useForeignDTD = bool; ++ expat->useForeignDTD = boolVal; + } + break; + + case EXPAT_COMMENTCMD: /* -commentcommand */ + /* ericm@scriptics.com */ +@@ -1774,37 +1774,37 @@ + } + } + break; + + case EXPAT_NOEXPAND: +- if (Tcl_GetBooleanFromObj (interp, objPtr[1], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj (interp, objPtr[1], &boolVal) != TCL_OK) { + return TCL_ERROR; + } +- if (bool) { ++ if (boolVal) { + XML_SetDefaultHandler( expat->parser, + TclGenExpatDefaultHandler); + } else { + XML_SetDefaultHandlerExpand( expat->parser, + TclGenExpatDefaultHandler); + } +- expat->noexpand = bool; ++ expat->noexpand = boolVal; + break; + + case EXPAT_FASTCALL: +- if (Tcl_GetBooleanFromObj (interp, objPtr[1], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj (interp, objPtr[1], &boolVal) != TCL_OK) { + return TCL_ERROR; + } + CheckDefaultTclHandlerSet; +- activeTclHandlerSet->fastCall = bool; ++ activeTclHandlerSet->fastCall = boolVal; + break; + + case EXPAT_KEEPTEXTSTART: +- if (Tcl_GetBooleanFromObj(interp, objPtr[1], &bool) != TCL_OK) { ++ if (Tcl_GetBooleanFromObj(interp, objPtr[1], &boolVal) != TCL_OK) { + return TCL_ERROR; + } + +- expat->keepTextStart = bool; ++ expat->keepTextStart = boolVal; + break; + + #ifndef TDOM_NO_SCHEMA + case EXPAT_VALIDATECMD: + schemacmd = Tcl_GetString (objv[1]); + + diff --git a/dev-tcltk/tdom/metadata.xml b/dev-tcltk/tdom/metadata.xml new file mode 100644 index 000000000000..0f99a7c6d298 --- /dev/null +++ b/dev-tcltk/tdom/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <longdescription> + tDOM combines high performance XML data processing with easy and + powerful Tcl scripting functionality. tDOM should be one of the fastest + ways to manipulate XML with a scripting language and uses very few + memory: for example, the DOM tree of the XML recommendation in XML + (160K) needs only about 450K of memory. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tdom/tdom-0.9.3.ebuild b/dev-tcltk/tdom/tdom-0.9.3.ebuild new file mode 100644 index 000000000000..4f9ed0904a75 --- /dev/null +++ b/dev-tcltk/tdom/tdom-0.9.3.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools dot-a flag-o-matic + +MY_P="tDOM-${PV}" + +DESCRIPTION="A XML/DOM/XPath/XSLT Implementation for Tcl" +HOMEPAGE="https://core.tcl.tk/tdom/" +SRC_URI="https://tdom.org/downloads/${P}-src.tgz" + +LICENSE="MPL-1.1" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="threads" + +DEPEND=" + dev-lang/tcl:0= + dev-libs/expat" +RDEPEND="${DEPEND}" + +S="${WORKDIR}"/${P}-src + +PATCHES=( + "${FILESDIR}"/${PN}-0.9.2-useCC.patch + "${FILESDIR}"/${P}-expat.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 readdir64 rewinddir64 closedir64 stat64 # used to test for Large File Support + arc4random_buf arc4random # used for BSD +) + +src_prepare() { + append-libs -lm + sed \ + -e 's:-O2::g' \ + -e 's:-pipe::g' \ + -e 's:-fomit-frame-pointer::g' \ + -e '/SHLIB_LD_LIBS/s:\"$: ${TCL_LIB_FLAG}":g' \ + -i tclconfig/tcl.m4 || die + mv extensions/tnc/configure.{in,ac} || die + mv extensions/example/configure.{in,ac} || die + default + eautoreconf +} + +src_configure() { + lto-guarantee-fat + local myeconfargs=( + $(use_enable threads) + --enable-shared + --with-tcl="${EPREFIX}"/usr/$(get_libdir) + ) + + cd "${S}"/unix && ECONF_SOURCE=".." econf ${myeconfargs} \ + --disable-tdomalloc --with-expat + cd "${S}"/extensions/tdomhtml && econf + cd "${S}"/extensions/tnc && econf ${myeconfargs} +} + +src_compile() { + local dir + + for dir in "${S}"/unix "${S}"/extensions/tnc; do + pushd ${dir} > /dev/null + emake + popd > /dev/null + done +} + +src_test() { + cd unix && default +} + +src_install() { + local dir + + dodoc CHANGES ChangeLog README* + + for dir in "${S}"/unix "${S}"/extensions/tdomhtml "${S}"/extensions/tnc; do + pushd ${dir} > /dev/null + emake DESTDIR="${D}" install + popd > /dev/null + done + strip-lto-bytecode +} diff --git a/dev-tcltk/tdom/tdom-0.9.5.ebuild b/dev-tcltk/tdom/tdom-0.9.5.ebuild new file mode 100644 index 000000000000..16e26973855e --- /dev/null +++ b/dev-tcltk/tdom/tdom-0.9.5.ebuild @@ -0,0 +1,88 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools dot-a flag-o-matic + +MY_P="tDOM-${PV}" + +DESCRIPTION="A XML/DOM/XPath/XSLT Implementation for Tcl" +HOMEPAGE="https://core.tcl.tk/tdom/" +SRC_URI="https://tdom.org/downloads/${P}-src.tgz" + +S="${WORKDIR}"/${P}-src + +LICENSE="MPL-1.1" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="threads" + +DEPEND=" + dev-lang/tcl:0= + dev-libs/expat" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-0.9.4-useCC.patch + "${FILESDIR}"/${PN}-0.9.3-expat.patch + "${FILESDIR}"/${PN}-0.9.5-fix-c23.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 readdir64 rewinddir64 closedir64 stat64 # used to test for Large File Support + arc4random_buf arc4random # used for BSD +) + +src_prepare() { + append-libs -lm + sed \ + -e 's:-O2::g' \ + -e 's:-pipe::g' \ + -e 's:-fomit-frame-pointer::g' \ + -e '/SHLIB_LD_LIBS/s:\"$: ${TCL_LIB_FLAG}":g' \ + -i tclconfig/tcl.m4 || die + default + eautoreconf +} + +src_configure() { + lto-guarantee-fat + local myeconfargs=( + $(use_enable threads) + --enable-shared + --with-tcl="${EPREFIX}"/usr/$(get_libdir) + ) + + cd "${S}"/unix && ECONF_SOURCE=".." econf ${myeconfargs} \ + --disable-tdomalloc --with-expat + cd "${S}"/extensions/tdomhtml && econf + cd "${S}"/extensions/tnc && econf ${myeconfargs} +} + +src_compile() { + local dir + + for dir in "${S}"/unix "${S}"/extensions/tnc; do + pushd ${dir} > /dev/null + emake + popd > /dev/null + done +} + +src_test() { + cd unix && default +} + +src_install() { + local dir + + dodoc CHANGES ChangeLog README* + + for dir in "${S}"/unix "${S}"/extensions/tdomhtml "${S}"/extensions/tnc; do + pushd ${dir} > /dev/null + emake DESTDIR="${D}" install + popd > /dev/null + done + strip-lto-bytecode +} diff --git a/dev-tcltk/tdom/tdom-0.9.6.ebuild b/dev-tcltk/tdom/tdom-0.9.6.ebuild new file mode 100644 index 000000000000..a09af61cd4f3 --- /dev/null +++ b/dev-tcltk/tdom/tdom-0.9.6.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools dot-a flag-o-matic + +MY_P="tDOM-${PV}" + +DESCRIPTION="A XML/DOM/XPath/XSLT Implementation for Tcl" +HOMEPAGE="https://core.tcl.tk/tdom/" +SRC_URI="https://tdom.org/downloads/${P}-src.tgz" + +S="${WORKDIR}"/${P}-src + +LICENSE="MPL-1.1" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="test threads" +REQUIRED_USE="test? ( threads )" +RESTRICT="!test? ( test )" + +DEPEND=" + dev-lang/tcl:0= + dev-libs/expat" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-0.9.4-useCC.patch + "${FILESDIR}"/${PN}-0.9.3-expat.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 readdir64 rewinddir64 closedir64 stat64 # used to test for Large File Support + arc4random_buf arc4random # used for BSD +) + +src_prepare() { + append-libs -lm + sed \ + -e 's:-O2::g' \ + -e 's:-pipe::g' \ + -e 's:-fomit-frame-pointer::g' \ + -e '/SHLIB_LD_LIBS/s:\"$: ${TCL_LIB_FLAG}":g' \ + -i tclconfig/tcl.m4 || die + default + eautoreconf +} + +src_configure() { + lto-guarantee-fat + local myeconfargs=( + $(use_enable threads) + --enable-shared + --with-tcl="${EPREFIX}"/usr/$(get_libdir) + ) + + cd "${S}"/unix && ECONF_SOURCE=".." econf ${myeconfargs} \ + --disable-tdomalloc --with-expat + cd "${S}"/extensions/tdomhtml && econf + cd "${S}"/extensions/tnc && econf ${myeconfargs} +} + +src_compile() { + local dir + + for dir in "${S}"/unix "${S}"/extensions/tnc; do + pushd ${dir} > /dev/null + emake + popd > /dev/null + done +} + +src_test() { + cd unix && default +} + +src_install() { + local dir + + dodoc CHANGES ChangeLog README* + + for dir in "${S}"/unix "${S}"/extensions/tdomhtml "${S}"/extensions/tnc; do + pushd ${dir} > /dev/null + emake DESTDIR="${D}" install + popd > /dev/null + done + strip-lto-bytecode +} diff --git a/dev-tcltk/thread/Manifest b/dev-tcltk/thread/Manifest new file mode 100644 index 000000000000..4de3f88eab39 --- /dev/null +++ b/dev-tcltk/thread/Manifest @@ -0,0 +1,4 @@ +DIST tclconfig-2023.12.11.tar.gz 49691 BLAKE2B 53bb91d125fd080b79ac83af1053d8bb981a8e917b7c8e4db71da89c43263d75a9604623a85d560bcbf3d686f61ccf21bffd794d333aa6cb35c959ab3042991d SHA512 c4eaa31ca1ec585536cd6d31a548b347dae3167197433674d2f3912ce85bad00dda55b0c60eebf26cb5f9d651c8437688e1829f7d3996a22bba2d93e4538946c +DIST thread-2-8-10.tar.gz 322254 BLAKE2B d74587718aa15844dfbb0c6346605e4bf141cf74b6291ea178d6e98976c5afd7bf413dadad04fdbe2513196b5c7c40d3f28fa8eeac28b9a29737a93584622843 SHA512 ec262dfa1ad85182babed0aa1b08462b6d6523a3a4fd5535cf8cbc5a4591bd86be5087355c68862e854c29d5bde85754915fb578caaad3e50c3385d57262e0f2 +DIST thread-2-8-12.tar.gz 320235 BLAKE2B 9c7ef8191faaf2b6b4f14e0d21fe8d8e48c6d4a377736633084ba6b5e3a3e0d31ae8e47cbc9aa83f8de28128265546ebdc4ef6a3a235db04db8c34260e2672fd SHA512 1adbe53a86839a18935a061c27b2f978ebde791ccbde6f06901774cdc2bc55cebd8207ef6256981d4a88b09de3e09d5f2a1ee5ae001440e5d1389334ff710230 +DIST thread-3-0-5.tar.gz 319619 BLAKE2B 6623fd782ba7b430538a931282d07f60c1bcba6c9fbcb1baf8aceeed08255cba0f18934eb66d9bee755dc212dd86493fde995dde8581ff6acf87152674583e53 SHA512 128f69c1d4366fcbf5c0f72a0648556fa1cf586ec5eb2ab67a068e89e387a96022c6270eb4e91cc60b657f97c468b4a8213dd9c052e28bb098f1d35bee0af963 diff --git a/dev-tcltk/thread/files/thread-2.8.5-musl.patch b/dev-tcltk/thread/files/thread-2.8.5-musl.patch new file mode 100644 index 000000000000..0743d8628c06 --- /dev/null +++ b/dev-tcltk/thread/files/thread-2.8.5-musl.patch @@ -0,0 +1,20 @@ +joining a thread not joinable is no more returning EINVAL +Its behaviour is undefined +--- a/tests/thread.test 2023-03-16 21:31:05.333423098 +0100 ++++ b/tests/thread.test 2023-03-16 21:31:25.837324400 +0100 +@@ -100,15 +100,6 @@ + set c + } {0} + +-test thread-4.5 {thread::create - join detached thread} { +- ThreadReap +- set tid [thread::create] +- thread::send -async $tid {after 1000 ; thread::release} +- catch {set res [thread::join $tid]} msg +- ThreadReap +- lrange $msg 0 2 +-} {cannot join thread} +- + test thread-5.0 {thread::release} { + ThreadReap + set tid [thread::create {thread::release}] diff --git a/dev-tcltk/thread/metadata.xml b/dev-tcltk/thread/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/thread/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/thread/thread-2.8.10.ebuild b/dev-tcltk/thread/thread-2.8.10.ebuild new file mode 100644 index 000000000000..41927c665fe0 --- /dev/null +++ b/dev-tcltk/thread/thread-2.8.10.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +MY_P="${PN}-$(ver_rs 0- '-')" +TCLCONFIGId=4a924db4fb37fa0c7cc2ae987b294dbaa97bc713 + +DESCRIPTION="Tcl Thread extension" +HOMEPAGE="http://www.tcl.tk/" +SRC_URI=" + https://github.com/tcltk/${PN}/archive/refs/tags/${MY_P}.tar.gz + https://github.com/tcltk/tclconfig/archive/${TCLCONFIGId}.tar.gz + -> tclconfig-2023.12.11.tar.gz +" + +S="${WORKDIR}"/${PN}-${MY_P} +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" + +DEPEND="dev-lang/tcl:0=[threads]" +RDEPEND="${DEPEND}" + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 readdir64 rewinddir64 closedir64 stat64 # used to test for Large File Support on AIX +) + +PATCHES=( "${FILESDIR}"/${PN}-2.8.5-musl.patch ) + +src_prepare() { + ln -s ../tclconfig-${TCLCONFIGId} tclconfig || die + echo "unknown" > manifest.uuid || die + default + + # Search for libs in libdir not just exec_prefix/lib + sed -i -e 's:${exec_prefix}/lib:${libdir}:' \ + aclocal.m4 || die "sed failed" + + eautoreconf +} + +src_configure() { + econf --with-tclinclude="${EPREFIX}/usr/include" \ + --with-tcl="${EPREFIX}/usr/$(get_libdir)" +} diff --git a/dev-tcltk/thread/thread-2.8.12.ebuild b/dev-tcltk/thread/thread-2.8.12.ebuild new file mode 100644 index 000000000000..06a6e59d5c79 --- /dev/null +++ b/dev-tcltk/thread/thread-2.8.12.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit autotools + +MY_P="${PN}-$(ver_rs 0- '-')" +TCLCONFIGId=4a924db4fb37fa0c7cc2ae987b294dbaa97bc713 + +DESCRIPTION="Tcl Thread extension" +HOMEPAGE="http://www.tcl.tk/" +SRC_URI=" + https://github.com/tcltk/${PN}/archive/refs/tags/${MY_P}.tar.gz + https://github.com/tcltk/tclconfig/archive/${TCLCONFIGId}.tar.gz + -> tclconfig-2023.12.11.tar.gz +" + +S="${WORKDIR}"/${PN}-${MY_P} +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +DEPEND="dev-lang/tcl:0=[threads]" +RDEPEND="${DEPEND}" + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 readdir64 rewinddir64 closedir64 stat64 # used to test for Large File Support on AIX +) + +PATCHES=( "${FILESDIR}"/${PN}-2.8.5-musl.patch ) + +src_prepare() { + ln -s ../tclconfig-${TCLCONFIGId} tclconfig || die + echo "unknown" > manifest.uuid || die + default + + # Search for libs in libdir not just exec_prefix/lib + sed -i -e 's:${exec_prefix}/lib:${libdir}:' \ + aclocal.m4 || die "sed failed" + + eautoreconf +} + +src_configure() { + econf --with-tclinclude="${EPREFIX}/usr/include" \ + --with-tcl="${EPREFIX}/usr/$(get_libdir)" +} diff --git a/dev-tcltk/thread/thread-3.0.5.ebuild b/dev-tcltk/thread/thread-3.0.5.ebuild new file mode 100644 index 000000000000..06a6e59d5c79 --- /dev/null +++ b/dev-tcltk/thread/thread-3.0.5.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=9 + +inherit autotools + +MY_P="${PN}-$(ver_rs 0- '-')" +TCLCONFIGId=4a924db4fb37fa0c7cc2ae987b294dbaa97bc713 + +DESCRIPTION="Tcl Thread extension" +HOMEPAGE="http://www.tcl.tk/" +SRC_URI=" + https://github.com/tcltk/${PN}/archive/refs/tags/${MY_P}.tar.gz + https://github.com/tcltk/tclconfig/archive/${TCLCONFIGId}.tar.gz + -> tclconfig-2023.12.11.tar.gz +" + +S="${WORKDIR}"/${PN}-${MY_P} +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +DEPEND="dev-lang/tcl:0=[threads]" +RDEPEND="${DEPEND}" + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 readdir64 rewinddir64 closedir64 stat64 # used to test for Large File Support on AIX +) + +PATCHES=( "${FILESDIR}"/${PN}-2.8.5-musl.patch ) + +src_prepare() { + ln -s ../tclconfig-${TCLCONFIGId} tclconfig || die + echo "unknown" > manifest.uuid || die + default + + # Search for libs in libdir not just exec_prefix/lib + sed -i -e 's:${exec_prefix}/lib:${libdir}:' \ + aclocal.m4 || die "sed failed" + + eautoreconf +} + +src_configure() { + econf --with-tclinclude="${EPREFIX}/usr/include" \ + --with-tcl="${EPREFIX}/usr/$(get_libdir)" +} diff --git a/dev-tcltk/tix/Manifest b/dev-tcltk/tix/Manifest new file mode 100644 index 000000000000..b7254215c93a --- /dev/null +++ b/dev-tcltk/tix/Manifest @@ -0,0 +1 @@ +DIST Tix8.4.3-src.tar.gz 1831503 BLAKE2B ec3a388bd8ce4f2b433defece3cafcd64aa07da9d8f9b1e23dc5c62f2dca0170cae3c5fc2e8df0ceeada7c48a749929ae9138346d8d38b528ba99b52d036f8da SHA512 f13217dad0f52c0b706d2fb8ee0886942db64be0325e5d0d51801dbf9a92a7919c743c1445b76dbfa98815817685205e238e2d63f9366a8745ace1e1e9a01852 diff --git a/dev-tcltk/tix/files/tix-8.4.3-clang6.patch b/dev-tcltk/tix/files/tix-8.4.3-clang6.patch new file mode 100644 index 000000000000..a33984ddf225 --- /dev/null +++ b/dev-tcltk/tix/files/tix-8.4.3-clang6.patch @@ -0,0 +1,114 @@ +--- a/generic/tixDiStyle.c 2023-01-18 12:17:57.150995223 +0100 ++++ b/generic/tixDiStyle.c 2023-01-18 12:18:33.855410140 +0100 +@@ -31,7 +31,7 @@ + static int DItemStyleParseProc _ANSI_ARGS_((ClientData clientData, + Tcl_Interp *interp, Tk_Window tkwin, + CONST84 char *value,char *widRec, int offset)); +-static char * DItemStylePrintProc _ANSI_ARGS_(( ++static const char *DItemStylePrintProc _ANSI_ARGS_(( + ClientData clientData, Tk_Window tkwin, + char *widRec, int offset, + Tcl_FreeProc **freeProcPtr)); +@@ -998,7 +998,7 @@ + return TCL_ERROR; + } + +-static char *DItemStylePrintProc(clientData, tkwin, widRec,offset, freeProcPtr) ++static const char *DItemStylePrintProc(clientData, tkwin, widRec,offset, freeProcPtr) + ClientData clientData; + Tk_Window tkwin; + char *widRec; +--- a/generic/tixDItem.c 2023-01-18 12:16:16.448599643 +0100 ++++ b/generic/tixDItem.c 2023-01-18 12:16:48.979081490 +0100 +@@ -30,7 +30,7 @@ + Tcl_Interp *interp, Tk_Window tkwin, CONST84 char *value, + char *widRec, int offset)); + +-static char *DItemPrintProc _ANSI_ARGS_(( ++static const char *DItemPrintProc _ANSI_ARGS_(( + ClientData clientData, Tk_Window tkwin, char *widRec, + int offset, Tcl_FreeProc **freeProcPtr)); + +@@ -548,7 +548,7 @@ + return TCL_OK; + } + +-static char *DItemPrintProc(clientData, tkwin, widRec,offset, freeProcPtr) ++static const char *DItemPrintProc(clientData, tkwin, widRec,offset, freeProcPtr) + ClientData clientData; + Tk_Window tkwin; + char *widRec; +--- a/generic/tixImgCmp.c 2023-01-18 12:19:03.138943264 +0100 ++++ b/generic/tixImgCmp.c 2023-01-18 12:21:32.884554265 +0100 +@@ -142,8 +142,8 @@ + * The type record for bitmap images: + */ + static int ImgCmpCreate _ANSI_ARGS_((Tcl_Interp *interp, +- char *name, int argc, Tcl_Obj *CONST objv[], +- Tk_ImageType *typePtr, Tk_ImageMaster master, ++ const char *name, int argc, Tcl_Obj *CONST objv[], ++ const Tk_ImageType *typePtr, Tk_ImageMaster master, + ClientData *clientDataPtr)); + static ClientData ImgCmpGet _ANSI_ARGS_((Tk_Window tkwin, + ClientData clientData)); +@@ -378,11 +378,11 @@ + ImgCmpCreate(interp, name, argc, objv, typePtr, master, clientDataPtr) + Tcl_Interp *interp; /* Interpreter for application containing + * image. */ +- char *name; /* Name to use for image. */ ++ const char *name; /* Name to use for image. */ + int argc; /* Number of arguments. */ + Tcl_Obj *CONST objv[]; /* Argument strings for options (doesn't + * include image name or type). */ +- Tk_ImageType *typePtr; /* Pointer to our type record (not used). */ ++ const Tk_ImageType *typePtr; /* Pointer to our type record (not used). */ + Tk_ImageMaster master; /* Token for image, to be used by us in + * later callbacks. */ + ClientData *clientDataPtr; /* Store manager's token for image here; +--- a/generic/tixImgXpm.c 2023-01-18 12:22:25.967706824 +0100 ++++ b/generic/tixImgXpm.c 2023-01-18 12:23:05.589074088 +0100 +@@ -22,8 +22,8 @@ + */ + + static int ImgXpmCreate _ANSI_ARGS_((Tcl_Interp *interp, +- char *name, int argc, Tcl_Obj *CONST objv[], +- Tk_ImageType *typePtr, Tk_ImageMaster master, ++ const char *name, int argc, Tcl_Obj *CONST objv[], ++ const Tk_ImageType *typePtr, Tk_ImageMaster master, + ClientData *clientDataPtr)); + static ClientData ImgXpmGet _ANSI_ARGS_((Tk_Window tkwin, + ClientData clientData)); +@@ -115,11 +115,11 @@ + ImgXpmCreate(interp, name, argc, objv, typePtr, master, clientDataPtr) + Tcl_Interp *interp; /* Interpreter for application containing + * image. */ +- char *name; /* Name to use for image. */ ++ const char *name; /* Name to use for image. */ + int argc; /* Number of arguments. */ + Tcl_Obj *CONST objv[]; /* Argument strings for options (doesn't + * include image name or type). */ +- Tk_ImageType *typePtr; /* Pointer to our type record (not used). */ ++ const Tk_ImageType *typePtr; /* Pointer to our type record (not used). */ + Tk_ImageMaster master; /* Token for image, to be used by us in + * later callbacks. */ + ClientData *clientDataPtr; /* Store manager's token for image here; +--- a/generic/tixUtils.c 2023-01-18 12:14:01.374751235 +0100 ++++ b/generic/tixUtils.c 2023-01-18 12:14:36.414192268 +0100 +@@ -24,7 +24,7 @@ + static int ReliefParseProc(ClientData clientData, + Tcl_Interp *interp, Tk_Window tkwin, CONST84 char *value, + char *widRec, int offset); +-static char * ReliefPrintProc(ClientData clientData, ++static const char *ReliefPrintProc(ClientData clientData, + Tk_Window tkwin, char *widRec, int offset, + Tix_FreeProc **freeProcPtr); + +@@ -637,7 +637,7 @@ + return TCL_ERROR; + } + +-static char * ++static const char * + ReliefPrintProc(clientData, tkwin, widRec,offset, freeProcPtr) + ClientData clientData; + Tk_Window tkwin; diff --git a/dev-tcltk/tix/files/tix-8.4.3-link.patch b/dev-tcltk/tix/files/tix-8.4.3-link.patch new file mode 100644 index 000000000000..d2d402dc8e49 --- /dev/null +++ b/dev-tcltk/tix/files/tix-8.4.3-link.patch @@ -0,0 +1,11 @@ +--- Tix8.4.2/Makefile.in.link 2006-11-18 04:41:06.000000000 +0100 ++++ Tix8.4.2/Makefile.in 2006-11-18 04:43:13.000000000 +0100 +@@ -124,7 +124,7 @@ + RANLIB = @RANLIB@ + RANLIB_STUB = @RANLIB_STUB@ + SHLIB_CFLAGS = @SHLIB_CFLAGS@ +-SHLIB_LD = @SHLIB_LD@ ++SHLIB_LD = @SHLIB_LD@ $(CFLAGS) -Wl,-soname=$(PKG_LIB_FILE) + SHLIB_LD_FLAGS = @SHLIB_LD_FLAGS@ + SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ + STLIB_LD = @STLIB_LD@ diff --git a/dev-tcltk/tix/files/tix-8.4.3-noopt.patch b/dev-tcltk/tix/files/tix-8.4.3-noopt.patch new file mode 100644 index 000000000000..14a36374d292 --- /dev/null +++ b/dev-tcltk/tix/files/tix-8.4.3-noopt.patch @@ -0,0 +1,38 @@ +--- a/tclconfig/tcl.m4 2023-01-18 20:03:02.719671952 +0100 ++++ b/tclconfig/tcl.m4 2023-01-18 20:07:22.110504323 +0100 +@@ -981,9 +981,7 @@ + ECHO_VERSION='`echo ${PACKAGE_VERSION}`' + TCL_LIB_VERSIONS_OK=ok + CFLAGS_DEBUG=-g +- CFLAGS_OPTIMIZE=-O + if test "$GCC" = "yes" ; then +- CFLAGS_OPTIMIZE=-O2 + CFLAGS_WARNING="-Wall -Wno-implicit-int" + else + CFLAGS_WARNING="" +@@ -1445,7 +1443,6 @@ + SHLIB_LD_LIBS='${LIBS}' + SHLIB_SUFFIX=".so" + +- CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" + # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings + # when you inline the string and math operations. Turn this off to + # get rid of the warnings. +@@ -3158,17 +3155,6 @@ + # It makes compiling go faster. (This is only a performance feature.) + #------------------------------------------------------------------------ + +- if test -z "$no_pipe" -a -n "$GCC"; then +- AC_CACHE_CHECK([if the compiler understands -pipe], +- tcl_cv_cc_pipe, [ +- hold_cflags=$CFLAGS; CFLAGS="$CFLAGS -pipe" +- AC_TRY_COMPILE(,, tcl_cv_cc_pipe=yes, tcl_cv_cc_pipe=no) +- CFLAGS=$hold_cflags]) +- if test $tcl_cv_cc_pipe = yes; then +- CFLAGS="$CFLAGS -pipe" +- fi +- fi +- + #-------------------------------------------------------------------- + # Common compiler flag setup + #-------------------------------------------------------------------- diff --git a/dev-tcltk/tix/files/tix-8.4.3-tcl8.5.patch b/dev-tcltk/tix/files/tix-8.4.3-tcl8.5.patch new file mode 100644 index 000000000000..d87cbff7e9a2 --- /dev/null +++ b/dev-tcltk/tix/files/tix-8.4.3-tcl8.5.patch @@ -0,0 +1,190 @@ +diff -up Tix8.4.2/generic/tixImgXpm.c_old Tix8.4.2/generic/tixImgXpm.c +--- Tix8.4.2/generic/tixImgXpm.c_old 2008-01-08 11:53:37.000000000 +0100 ++++ Tix8.4.2/generic/tixImgXpm.c 2008-01-08 12:04:49.000000000 +0100 +@@ -45,19 +45,19 @@ static int ImgXpmConfigureMaster _ANSI_ + int flags)); + static int ImgXpmGetData _ANSI_ARGS_((Tcl_Interp *interp, + PixmapMaster *masterPtr)); +-static char ** ImgXpmGetDataFromFile _ANSI_ARGS_((Tcl_Interp * interp, ++static CONST84 char ** ImgXpmGetDataFromFile _ANSI_ARGS_((Tcl_Interp * interp, + char * string, int * numLines_return)); +-static char ** ImgXpmGetDataFromId _ANSI_ARGS_((Tcl_Interp * interp, ++static CONST84 char ** ImgXpmGetDataFromId _ANSI_ARGS_((Tcl_Interp * interp, + CONST84 char * id)); +-static char ** ImgXpmGetDataFromString _ANSI_ARGS_((Tcl_Interp*interp, ++static CONST84 char ** ImgXpmGetDataFromString _ANSI_ARGS_((Tcl_Interp*interp, + char * string, int * numLines_return)); + static void ImgXpmGetPixmapFromData _ANSI_ARGS_(( + Tcl_Interp * interp, + PixmapMaster *masterPtr, + PixmapInstance *instancePtr)); +-static char * GetType _ANSI_ARGS_((char * colorDefn, ++static CONST84 char * GetType _ANSI_ARGS_((CONST84 char * colorDefn, + int * type_ret)); +-static char * GetColor _ANSI_ARGS_((char * colorDefn, ++static CONST84 char * GetColor _ANSI_ARGS_((CONST84 char * colorDefn, + char * colorName, int * type_ret)); + + /* +@@ -286,7 +286,7 @@ ImgXpmGetData(interp, masterPtr) + Tcl_Interp *interp; /* For reporting errors. */ + PixmapMaster *masterPtr; + { +- char ** data = NULL; ++ CONST84 char ** data = NULL; + int isAllocated = 0; /* do we need to free "data"? */ + int listArgc; + CONST84 char ** listArgv = NULL; +@@ -363,7 +363,7 @@ ImgXpmGetData(interp, masterPtr) + return code; + } + +-static char ** ImgXpmGetDataFromId(interp, id) ++static CONST84 char ** ImgXpmGetDataFromId(interp, id) + Tcl_Interp * interp; + CONST84 char * id; + { +@@ -378,13 +378,13 @@ static char ** ImgXpmGetDataFromId(inter + if (hashPtr == NULL) { + Tcl_AppendResult(interp, "unknown pixmap ID \"", id, + "\"", NULL); +- return (char**)NULL; ++ return NULL; + } else { +- return (char**)Tcl_GetHashValue(hashPtr); ++ return (CONST84 char**)Tcl_GetHashValue(hashPtr); + } + } + +-static char ** ImgXpmGetDataFromString(interp, string, numLines_return) ++static CONST84 char ** ImgXpmGetDataFromString(interp, string, numLines_return) + Tcl_Interp * interp; + char * string; + int * numLines_return; +@@ -392,7 +392,7 @@ static char ** ImgXpmGetDataFromString(i + int quoted; + char * p, * list; + int numLines; +- char ** data; ++ CONST84 char ** data; + + /* skip the leading blanks (leading blanks are not defined in the + * the XPM definition, but skipping them shouldn't hurt. Also, the ability +@@ -510,17 +510,17 @@ static char ** ImgXpmGetDataFromString(i + + error: + Tcl_AppendResult(interp, "File format error", NULL); +- return (char**) NULL; ++ return NULL; + } + +-static char ** ImgXpmGetDataFromFile(interp, fileName, numLines_return) ++static CONST84 char ** ImgXpmGetDataFromFile(interp, fileName, numLines_return) + Tcl_Interp * interp; + char * fileName; + int * numLines_return; + { + FILE * fd = NULL; + int size, n; +- char ** data; ++ CONST84 char ** data; + char *cmdBuffer = NULL; + Tcl_DString buffer; /* initialized by Tcl_TildeSubst */ + +@@ -588,16 +588,16 @@ static char ** ImgXpmGetDataFromFile(int + ckfree(cmdBuffer); + } + Tcl_DStringFree(&buffer); +- return (char**)NULL; ++ return NULL; + } + + +-static char * ++static CONST84 char * + GetType(colorDefn, type_ret) +- char * colorDefn; ++ CONST84 char * colorDefn; + int * type_ret; + { +- char * p = colorDefn; ++ CONST84 char * p = colorDefn; + + /* skip white spaces */ + while (*p && isspace(*p)) { +@@ -642,9 +642,9 @@ GetType(colorDefn, type_ret) + /* + * colorName is guaranteed to be big enough + */ +-static char * ++static CONST84 char * + GetColor(colorDefn, colorName, type_ret) +- char * colorDefn; ++ CONST84 char * colorDefn; + char * colorName; /* if found, name is copied to this array */ + int * type_ret; + { +@@ -751,7 +751,7 @@ ImgXpmGetPixmapFromData(interp, masterPt + } + + for (i=0; i<masterPtr->ncolors; i++) { +- char * colorDefn; /* the color definition line */ ++ CONST84 char * colorDefn; /* the color definition line */ + char * colorName; /* temp place to hold the color name + * defined for one type of visual */ + char * useName; /* the color name used for this +@@ -842,7 +842,7 @@ ImgXpmGetPixmapFromData(interp, masterPt + * Parse the main body of the image + */ + for (i=0; i<masterPtr->size[1]; i++) { +- char * p = masterPtr->data[i+lOffset]; ++ CONST84 char * p = masterPtr->data[i+lOffset]; + + for (j=0; j<masterPtr->size[0]; j++) { + if (masterPtr->cpp == 1) { +diff -up Tix8.4.2/generic/tixImgXpm.h_old Tix8.4.2/generic/tixImgXpm.h +--- Tix8.4.2/generic/tixImgXpm.h_old 2008-01-08 12:04:59.000000000 +0100 ++++ Tix8.4.2/generic/tixImgXpm.h 2008-01-08 12:05:26.000000000 +0100 +@@ -55,7 +55,7 @@ typedef struct PixmapMaster { + int size[2]; /* width and height */ + int ncolors; /* number of colors */ + int cpp; /* characters per pixel */ +- char ** data; /* The data that defines this pixmap ++ CONST84 char ** data; /* The data that defines this pixmap + * image (array of strings). It is + * converted into an X Pixmap when this + * image is instanciated +diff -up Tix8.4.2/generic/tixInt.h_old Tix8.4.2/generic/tixInt.h +--- Tix8.4.2/generic/tixInt.h_old 2008-01-08 12:05:53.000000000 +0100 ++++ Tix8.4.2/generic/tixInt.h 2008-01-08 12:09:35.000000000 +0100 +@@ -23,6 +23,10 @@ + #include <tixPort.h> + #endif + ++#include <stdlib.h> ++#include <string.h> ++#include <ctype.h> ++ + /*---------------------------------------------------------------------- + * + * Tix Display Item Types +diff -up Tix8.4.2/Makefile.in_old Tix8.4.2/Makefile.in +--- Tix8.4.2/Makefile.in_old 2008-01-08 11:43:41.000000000 +0100 ++++ Tix8.4.2/Makefile.in 2008-01-08 11:46:22.000000000 +0100 +@@ -128,6 +128,7 @@ SHLIB_LD = @SHLIB_LD@ $(CFLAGS) -Wl,-son + SHLIB_LD_FLAGS = @SHLIB_LD_FLAGS@ + SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ + STLIB_LD = @STLIB_LD@ ++TCL_VERSION = @TCL_VERSION@ + TCL_DEFS = @TCL_DEFS@ + TCL_SRC_DIR = @TCL_SRC_DIR@ + TCL_BIN_DIR = @TCL_BIN_DIR@ +@@ -294,7 +295,7 @@ VPATH = $(srcdir):$(srcdir)/generic:$(sr + + pkgIndex.tcl: + (\ +- echo 'if {[catch {package require Tcl 8.4}]} return';\ ++ echo 'if {[catch {package require Tcl $(TCL_VERSION)}]} return';\ + echo 'package ifneeded $(PACKAGE_NAME) $(PACKAGE_VERSION) \ + [list load [file join $$dir $(PKG_LIB_FILE)] $(PACKAGE_NAME)]'\ + ) > pkgIndex.tcl diff --git a/dev-tcltk/tix/files/tix-8.4.3-tcl8.6.patch b/dev-tcltk/tix/files/tix-8.4.3-tcl8.6.patch new file mode 100644 index 000000000000..0ed17503a56f --- /dev/null +++ b/dev-tcltk/tix/files/tix-8.4.3-tcl8.6.patch @@ -0,0 +1,18 @@ + generic/tixGrSort.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/generic/tixGrSort.c b/generic/tixGrSort.c +index 7dee30f..26ec054 100644 +--- a/generic/tixGrSort.c ++++ b/generic/tixGrSort.c +@@ -447,8 +447,8 @@ SortCompareProc(first, second) + * Parse the result of the command. + */ + +- order = strtol(sortInterp->result, &end, 0); +- if ((end == sortInterp->result) || (*end != 0)) { ++ order = strtol(Tcl_GetStringResult(sortInterp), &end, 0); ++ if ((end == Tcl_GetStringResult(sortInterp)) || (*end != 0)) { + Tcl_ResetResult(sortInterp); + Tcl_AppendResult(sortInterp, + "comparison command returned non-numeric result", diff --git a/dev-tcltk/tix/files/tix-8.4.3-wimplicit-int.patch b/dev-tcltk/tix/files/tix-8.4.3-wimplicit-int.patch new file mode 100644 index 000000000000..b97d55c05a77 --- /dev/null +++ b/dev-tcltk/tix/files/tix-8.4.3-wimplicit-int.patch @@ -0,0 +1,49 @@ +https://sourceforge.net/p/tix/bugs/112/ + +Avoid implicit int declarations, a feature removed from C language with C99. + +--- a/generic/tixDiImg.c ++++ b/generic/tixDiImg.c +@@ -352,6 +352,8 @@ Tix_ImageItemDisplay(drawable, iPtr, x, y, width, height, xOffset, yOffset, + int y; + int width; + int height; ++ int xOffset; ++ int yOffset; + int flags; + { + TixImageItem *itPtr = (TixImageItem *)iPtr; +--- a/generic/tixDiWin.c ++++ b/generic/tixDiWin.c +@@ -458,6 +458,8 @@ Tix_WindowItemDisplay(drawable, iPtr, x, y, width, height, xOffset, yOffset, + int y; + int width; + int height; ++ int xOffset; ++ int yOffset; + int flags; + { + TixWindowItem *itPtr = (TixWindowItem *)iPtr; +--- a/generic/tixForm.c ++++ b/generic/tixForm.c +@@ -150,7 +150,7 @@ static Tcl_HashTable masterInfoHashTable; + /* + * Have static variables in this module been initialized? + */ +-static initialized = 0; ++static int initialized = 0; + + static int ReqSize(tkwin, axis) + Tk_Window tkwin; +--- a/unix/tixUnixMwm.c ++++ b/unix/tixUnixMwm.c +@@ -768,7 +768,7 @@ GetMwmInfo(interp, tkwin) + Tcl_Interp * interp; + Tk_Window tkwin; + { +- static inited = 0; ++ static int inited = 0; + Tcl_HashEntry *hashPtr; + int isNew; + + diff --git a/dev-tcltk/tix/metadata.xml b/dev-tcltk/tix/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/tix/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tix/tix-8.4.3-r5.ebuild b/dev-tcltk/tix/tix-8.4.3-r5.ebuild new file mode 100644 index 000000000000..99cb9e78e62c --- /dev/null +++ b/dev-tcltk/tix/tix-8.4.3-r5.ebuild @@ -0,0 +1,79 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +MY_P="Tix${PV}" +DESCRIPTION="A widget library for Tcl/Tk" +HOMEPAGE="http://tix.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/tix/${MY_P}-src.tar.gz" + +S="${WORKDIR}/${MY_P}" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" +RESTRICT="test" + +DEPEND=" + <dev-lang/tk-9:= + x11-libs/libX11 + x11-libs/libXau + x11-libs/libXdmcp +" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${P}-tcl8.5.patch + "${FILESDIR}"/${P}-tcl8.6.patch + "${FILESDIR}"/${P}-wimplicit-int.patch + "${FILESDIR}"/${P}-clang6.patch + "${FILESDIR}"/${P}-noopt.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 # used to test for Large File Support +) + +src_prepare() { + [[ ${CHOST} == *-darwin* ]] || eapply "${FILESDIR}"/${P}-link.patch + + sed \ + -e 's:-Os::g' \ + -i configure tclconfig/tcl.m4 || die + default + eautoreconf +} + +src_configure() { + econf \ + --with-tcl="${EPREFIX}/usr/$(get_libdir)" \ + --with-tk="${EPREFIX}/usr/$(get_libdir)" +} + +src_install() { + DOCS=( ChangeLog README.txt docs/*.txt ) + HTML_DOCS=( + index.html + ABOUT.html + docs/*.html + docs/html + docs/img + docs/tix-book + ) + + default + + # Bug #168897 + doheader generic/tix.h + + # Bug #201138 + if [[ ${CHOST} == *-darwin* ]] ; then + mv "${ED}"/usr/$(get_libdir)/${MY_P}/libTix{,.}${PV}.dylib || die + dosym ${MY_P}/libTix.${PV}.dylib /usr/$(get_libdir)/libTix.${PV}.dylib + else + dosym ${MY_P}/lib${MY_P}.so /usr/$(get_libdir)/lib${MY_P}.so + fi +} diff --git a/dev-tcltk/tkcon/Manifest b/dev-tcltk/tkcon/Manifest new file mode 100644 index 000000000000..741e9a4c1276 --- /dev/null +++ b/dev-tcltk/tkcon/Manifest @@ -0,0 +1,2 @@ +DIST tkcon-2.7.10.tar.gz 277788 BLAKE2B 7894947c5ca062f2b905550e88c34a414d4b665b6fff0c5bf22a54e2600050b62eecbdfbde179206571cf74d39e3a9d9e33b93356bf5b81aa9cbf79dcdfcf118 SHA512 a580e06d0c86613b3c9e9daa7863fde6fd11b4e2243764c0b016f0db9d9ba0a9cf839ae26efc37e843f5da87f6304a6d0fcab7667ff6c25246a44e1630851634 +DIST tkcon-2.7.11.tar.gz 280499 BLAKE2B c68991100e95f347796c34253b6a4aceb4e1b20a6d6d99b64750b5c50117317b3b571054e6658afa27cf4bbe4af19a6c7c0dc03f68e9e95eec428a84ef910df9 SHA512 d56268f8edfbccb66ef6288d5b98481dc0c2a8e4f97e553e8031175dad5922ad14087f55709e41902a812e738d29ae9e07efdc6ce2d30919801c9bb54cddab07 diff --git a/dev-tcltk/tkcon/files/tkcon-2.7.11-tcl9.patch b/dev-tcltk/tkcon/files/tkcon-2.7.11-tcl9.patch new file mode 100644 index 000000000000..7fa415343bde --- /dev/null +++ b/dev-tcltk/tkcon/files/tkcon-2.7.11-tcl9.patch @@ -0,0 +1,11 @@ +--- a/tkcon.tcl 2026-03-06 18:40:47.906108112 +0100 ++++ b/tkcon.tcl 2026-03-06 18:40:58.827978203 +0100 +@@ -57,7 +57,7 @@ + if {$tcl_version < 8.4} { + return -code error "tkcon requires at least Tcl/Tk 8.4" + } else { +- package require Tk 8.4 ++ package require Tk + } + + # We need to load some package to get what's available, and we diff --git a/dev-tcltk/tkcon/metadata.xml b/dev-tcltk/tkcon/metadata.xml new file mode 100644 index 000000000000..d3815308b4a0 --- /dev/null +++ b/dev-tcltk/tkcon/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <longdescription lang="en"> + tkcon is a replacement for the standard console that comes with + Tk. The console itself provides more features than the standard + console. It is meant primarily to aid one when working with the + little details inside tcl and tk, giving UNIX users the GUI console + provided by default in the Mac and Windows Tk. + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tkcon/tkcon-2.7.10.ebuild b/dev-tcltk/tkcon/tkcon-2.7.10.ebuild new file mode 100644 index 000000000000..d0d15951af1d --- /dev/null +++ b/dev-tcltk/tkcon/tkcon-2.7.10.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Tk GUI console" +HOMEPAGE="http://tkcon.sourceforge.net/" +SRC_URI="https://github.com/wjoye/${PN}/archive/v${PV}.tar.gz -> + ${P}.tar.gz" + +LICENSE="GPL-2" +KEYWORDS="~amd64 ~ppc ~x86" +SLOT="0" +IUSE="doc" + +DEPEND="dev-lang/tk:*" +RDEPEND="${DEPEND}" + +RESTRICT="test" + +src_prepare() { + default + mv docs/changes.txt CHANGES +} + +src_install() { + local tclver="$(echo 'puts $tcl_version' | tclsh)" + local instdir=/usr/$(get_libdir)/tcl${tclver}/${PN}$(ver_cut 1-2) + dodir ${instdir} + cp -pP pkgIndex.tcl tkcon.tcl "${D}"${instdir} || die + dodir /usr/bin + dosym ${instdir}/tkcon.tcl /usr/bin/tkcon + if use doc; then + HTML_DOCS=( docs/* ) + fi + einstalldocs +} diff --git a/dev-tcltk/tkcon/tkcon-2.7.11-r1.ebuild b/dev-tcltk/tkcon/tkcon-2.7.11-r1.ebuild new file mode 100644 index 000000000000..eaf0596b9374 --- /dev/null +++ b/dev-tcltk/tkcon/tkcon-2.7.11-r1.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Tk GUI console" +HOMEPAGE="http://tkcon.sourceforge.net/" +SRC_URI="https://github.com/wjoye/${PN}/archive/v${PV}.tar.gz -> + ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="doc" + +DEPEND="dev-lang/tk:*" +RDEPEND="${DEPEND}" + +RESTRICT="test" + +PATCHES=( "${FILESDIR}"/${P}-tcl9.patch ) + +src_prepare() { + default + mv docs/changes.txt CHANGES +} + +src_install() { + local tclver="$(echo 'puts $tcl_version' | tclsh)" + local instdir=/usr/$(get_libdir)/tcl${tclver}/${PN}$(ver_cut 1-2) + dodir ${instdir} + cp -pP pkgIndex.tcl tkcon.tcl "${D}"${instdir} || die + dodir /usr/bin + dosym ${instdir}/tkcon.tcl /usr/bin/tkcon + if use doc; then + HTML_DOCS=( docs/* ) + fi + einstalldocs +} diff --git a/dev-tcltk/tkdnd/Manifest b/dev-tcltk/tkdnd/Manifest new file mode 100644 index 000000000000..83f69766ac5a --- /dev/null +++ b/dev-tcltk/tkdnd/Manifest @@ -0,0 +1,3 @@ +DIST tkdnd-release-test-v2.9.2.tar.gz 573739 BLAKE2B 4e9cae26542cc7774a0faf3d91a8a3f3b3b598735fcdb4e0565be26893514fe2e3f301ecaa7c698913f570b30f37ba0e2e890c6651ceebbc5d6cd9f66caf57c8 SHA512 dd1538ad884e8287d9c90c3b1565b95a047f552a271f921b0d0d7cb7bde8d8d6ad7e8c3247b647c09080c2e23c57ca11c30bde516cf66abcbe1dac6dd0e7cdc7 +DIST tkdnd-release-test-v2.9.4.tar.gz 1358824 BLAKE2B 7ea5039825cdc160232bc987a903642b2b2e54973c7f45142b5ea53e6b8ec2b2249416a0220217dc1ae1475dbcf432e2c8c72954f850eb2009512f9ef06b0644 SHA512 2eaf84235443c4a69e411674a7a7b27a1d43ded8aba7b09ed4d2f128cc2bfc9e38018c337004ce7bf0a0082dc0f87a7e89c7c2fc50dfedbb1047deef1d73daa2 +DIST tkdnd-release-test-v2.9.5.tar.gz 1365461 BLAKE2B 36cc68cec4fa3fdeca82e95138e56cab426eba89832f46f55bed3fe77c191d29d751e5a02d617e1fb113f96ca8f30e940d52c8c2cfad9a5177ba1610277fe00c SHA512 c0a0395ce0391f31c56de6c07429fdc0e8cbc81be3eba9e7fb477db5ff037ea0aa966187e11b230b676115bb126010bfd231f292973fa8e8e700a1e5b3396df5 diff --git a/dev-tcltk/tkdnd/metadata.xml b/dev-tcltk/tkdnd/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/tkdnd/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tkdnd/tkdnd-2.9.2-r1.ebuild b/dev-tcltk/tkdnd/tkdnd-2.9.2-r1.ebuild new file mode 100644 index 000000000000..ef2eb20711c8 --- /dev/null +++ b/dev-tcltk/tkdnd/tkdnd-2.9.2-r1.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_P=${PN}-release-test-v${PV} + +DESCRIPTION="Adds native drag & drop capabilities to tk toolkit" +HOMEPAGE="https://www.ellogon.org/petasis/index.php/tcltk-projects/tkdnd" +SRC_URI="https://github.com/petasis/tkdnd/archive/${MY_P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="debug threads X" + +DEPEND="dev-lang/tk:=" +RDEPEND=${DEPEND} + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 # used to test for Large File Support +) + +S=${WORKDIR}/${PN}-${MY_P} + +RESTRICT="test" + +src_prepare() { + sed \ + -e 's:-O2::g' \ + -e 's:-fomit-frame-pointer::g' \ + -e 's:-pipe::g' \ + -i configure tclconfig/tcl.m4 || die + default +} + +src_configure() { + econf \ + $(use_with X x) \ + $(use_enable debug symbols) \ + $(use_enable threads) +} diff --git a/dev-tcltk/tkdnd/tkdnd-2.9.4-r1.ebuild b/dev-tcltk/tkdnd/tkdnd-2.9.4-r1.ebuild new file mode 100644 index 000000000000..7b0794d3b702 --- /dev/null +++ b/dev-tcltk/tkdnd/tkdnd-2.9.4-r1.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_P=${PN}-release-test-v${PV} + +DESCRIPTION="Adds native drag & drop capabilities to tk toolkit" +HOMEPAGE="https://www.ellogon.org/petasis/index.php/tcltk-projects/tkdnd" +SRC_URI="https://github.com/petasis/tkdnd/archive/${MY_P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="debug threads X" + +DEPEND=" + dev-lang/tk:= + x11-libs/libXcursor +" +RDEPEND=${DEPEND} + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 readdir64 rewinddir64 closedir64 stat64 # used on AIX +) + +S=${WORKDIR}/${PN}-${MY_P} + +RESTRICT="test" + +src_prepare() { + sed \ + -e 's:-O2::g' \ + -e 's:-fomit-frame-pointer::g' \ + -e 's:-pipe::g' \ + -i configure tclconfig/tcl.m4 || die + default +} + +src_configure() { + econf \ + $(use_with X x) \ + $(use_enable debug symbols) \ + $(use_enable threads) +} diff --git a/dev-tcltk/tkdnd/tkdnd-2.9.5.ebuild b/dev-tcltk/tkdnd/tkdnd-2.9.5.ebuild new file mode 100644 index 000000000000..52df1315de73 --- /dev/null +++ b/dev-tcltk/tkdnd/tkdnd-2.9.5.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_P=${PN}-release-test-v${PV} + +DESCRIPTION="Adds native drag & drop capabilities to tk toolkit" +HOMEPAGE="https://www.ellogon.org/petasis/index.php/tcltk-projects/tkdnd" +SRC_URI="https://github.com/petasis/tkdnd/archive/${MY_P}.tar.gz" + +S=${WORKDIR}/${PN}-${MY_P} + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="debug threads X" + +DEPEND=" + dev-lang/tk:= + x11-libs/libXcursor +" +RDEPEND=${DEPEND} + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 readdir64 rewinddir64 closedir64 stat64 # used on AIX +) + +RESTRICT="test" + +src_prepare() { + sed \ + -e 's:-O2::g' \ + -e 's:-fomit-frame-pointer::g' \ + -e 's:-pipe::g' \ + -i configure tclconfig/tcl.m4 || die + default +} + +src_configure() { + econf \ + $(use_with X x) \ + $(use_enable debug symbols) \ + $(use_enable threads) +} diff --git a/dev-tcltk/tkimg/Manifest b/dev-tcltk/tkimg/Manifest new file mode 100644 index 000000000000..37a7bdb9fa79 --- /dev/null +++ b/dev-tcltk/tkimg/Manifest @@ -0,0 +1,5 @@ +DIST Img-1.4.16-Source.tar.gz 12129708 BLAKE2B 5da76a42a1643d759d765ade01a8a9e9782cba21d30f5ec95693364d80aca32fa54f610081833d44bf5723e6901d7577e93bd4d4285880e855e835ae6a901f4b SHA512 622549749d41c7c026053cf82b4c434602ff541b9ee7f6f15c2450fcf3cfb34eb8277432267c78adc3dcc60e53fa2d84b7cf98c5fd5a6c3cfbcf0f60746cd227 +DIST Img-1.4.17.tar.gz 11974054 BLAKE2B 84c4e846f4b1e5b68998aaf75dac7911fe99806414e002ef7deeb88e3381118e99b256c6dd9c42e33947aa7695dc22de82dad3929bf46d47bbfa0aa47a3a620c SHA512 8c5e761f233ed2cc4b82a106aa435c23e0d8e49b4aaf936698e08de1abd0955927a0a72802311364eded6f472a3b5f6cf5ea07f220fb9396d75a27ee55f7be93 +DIST Img-2.0.1.tar.gz 12312476 BLAKE2B 0cd63fefc7508d06438bff5762a1ca4a32148c17f5fc839fa23126626cb406abd2d52c8692421717c93cc89fd3c3f8562ff8bc736ce0fc754fdf3ccd525252c5 SHA512 b025fb8fc8fabe83ac7cdc6ce2e03fb9219cad92438bd6bb809dba14b95058ecbb61b274f009d824a4067c3be828c98e0b5b1b8305fb21590c266257502574fb +DIST Img-2.1.0.tar.gz 12335560 BLAKE2B 742986c27354daaf9feacfcde1b877a884a10b50cf03d92594009674c757d25d113b26cd67f7449935a792bf16950d6fbbc245f8da5c626eb6f08d6749ca02c6 SHA512 b456551feaaa1e18f5ade92a76ddaeac439783d0799b535f64b24ad93129d5029fc3157dea951d815aefed1841e285f3272fbe5e22b26488425b47114a8e7a6d +DIST tkimg-1.4.14-patchset-1.tar.gz 3256 BLAKE2B 8f182365b70b4d7a3f4d9002618285b11293644755304600d302fbb8cf8945cd4bd4eb45e66ed0aec93d19e42556ef294508587f7d4e66821ad960ea5c26c7b6 SHA512 8c93e2b669b56ce5621a4d6d96e7412f623bd42dd777a99ec74741621a5be84f24f47149efae58baa874f49088b053b8466d16dffd79edf9594195ff41c38c0e diff --git a/dev-tcltk/tkimg/files/tkimg-1.4.15-gcc11.patch b/dev-tcltk/tkimg/files/tkimg-1.4.15-gcc11.patch new file mode 100644 index 000000000000..72f529482709 --- /dev/null +++ b/dev-tcltk/tkimg/files/tkimg-1.4.15-gcc11.patch @@ -0,0 +1,10 @@ +--- a/tiff/tiffZip.c 2023-03-14 19:04:42.869354563 +0100 ++++ b/tiff/tiffZip.c 2023-03-14 19:05:14.768849607 +0100 +@@ -22,6 +22,7 @@ + * OF THIS SOFTWARE. + */ + ++#include <stdint.h> + #include "tiffInt.h" + + /* diff --git a/dev-tcltk/tkimg/metadata.xml b/dev-tcltk/tkimg/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/tkimg/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tkimg/tkimg-1.4.16.ebuild b/dev-tcltk/tkimg/tkimg-1.4.16.ebuild new file mode 100644 index 000000000000..b0b771a5fede --- /dev/null +++ b/dev-tcltk/tkimg/tkimg-1.4.16.ebuild @@ -0,0 +1,120 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools edos2unix prefix toolchain-funcs virtualx + +MYP=Img-${PV} + +DESCRIPTION="Adds a lot of image formats to Tcl/Tk" +HOMEPAGE="http://tkimg.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/${PN}/${PN}/$(ver_cut 1-2)/${PN}%20${PV}/${MYP}-Source.tar.gz + https://dev.gentoo.org/~tupone/distfiles/${PN}-1.4.14-patchset-1.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 arm64 ppc x86" +IUSE="doc test static-libs" + +RDEPEND=" + dev-lang/tk:= + dev-tcltk/tcllib + media-libs/tiff:= + media-libs/libpng:0= + virtual/zlib:= + x11-libs/libX11 + media-libs/libjpeg-turbo:=" +DEPEND="${RDEPEND} + test? ( + x11-apps/xhost + media-fonts/font-misc-misc + media-fonts/font-cursor-misc )" + +RESTRICT="!test? ( test )" + +S="${WORKDIR}/${MYP}" + +PATCHES=( + "${WORKDIR}"/patchset-1 + "${FILESDIR}"/${PN}-1.4.15-gcc11.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 rewinddir64 closedir64 stat64 # used on AIX + glBegin # used to test for openGL support + glutMainLoop # used to test for glut support +) + +src_prepare() { + edos2unix \ + libjpeg/jpegtclDecls.h \ + zlib/zlibtclDecls.h \ + libpng/pngtclDecls.h \ + tiff/tiffZip.c \ + tiff/tiffPixar.c \ + libtiff/tifftclDecls.h + + # libtiff/jpeg unbundle is problematic + rm ../patchset-1/tkimg-1.4.12-tiff.patch || die + rm ../patchset-1/tkimg-1.4.10-jpeg.patch || die + + default + + echo "unknown" > manifest.uuid || die + + find compat/libtiff/config -name ltmain.sh -delete || die + sed -i \ + -e 's:"--with-CC=$TIFFCC"::' \ + libtiff/configure.ac || die + + eautoreconf + for dir in zlib libpng libtiff libjpeg base bmp gif ico jpeg pcx pixmap png\ + ppm ps sgi sun tga tiff window xbm xpm dted raw flir compat/libtiff ; do + (cd ${dir}; AT_NOELIBTOOLIZE=yes eautoreconf) + done + + eprefixify */*.h + tc-export AR +} + +src_configure() { + default + + sed -i \ + -e "/PACKAGE_/d" \ + libtiff/libtiff/tif_config.h \ + || die +} + +src_test() { + virtx default +} + +src_install() { + local l bl + + emake \ + DESTDIR="${D}" \ + INSTALL_ROOT="${D}" \ + install + + if ! use static-libs; then + find "${ED}"/usr/$(get_libdir)/ -type f -name "*\.a" -delete || die + fi + + # Make library links + for l in "${ED}"/usr/lib*/Img*/*tcl*.so; do + bl=$(basename ${l}) + dosym Img${PV}/${bl} /usr/$(get_libdir)/${bl} + done + + dodoc ChangeLog README Reorganization.Notes.txt changes ANNOUNCE + + if use doc; then + docompress -x usr/share/doc/${PF}/demo.tcl + dodoc demo.tcl + docinto html + dodoc -r doc/* + fi +} diff --git a/dev-tcltk/tkimg/tkimg-1.4.17.ebuild b/dev-tcltk/tkimg/tkimg-1.4.17.ebuild new file mode 100644 index 000000000000..a0b58e73351d --- /dev/null +++ b/dev-tcltk/tkimg/tkimg-1.4.17.ebuild @@ -0,0 +1,117 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools edos2unix prefix toolchain-funcs virtualx + +MYP=Img-${PV} + +DESCRIPTION="Adds a lot of image formats to Tcl/Tk" +HOMEPAGE="http://tkimg.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/$(ver_cut 1-2)/${PN}%20${PV}/${MYP}.tar.gz + https://dev.gentoo.org/~tupone/distfiles/${PN}-1.4.14-patchset-1.tar.gz" + +S="${WORKDIR}/${MYP}" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc ~x86" +IUSE="doc test static-libs" + +RDEPEND=" + dev-lang/tk:= + dev-tcltk/tcllib + media-libs/tiff:= + media-libs/libpng:0= + virtual/zlib:= + x11-libs/libX11 + media-libs/libjpeg-turbo:=" +DEPEND="${RDEPEND} + test? ( + x11-apps/xhost + media-fonts/font-misc-misc + media-fonts/font-cursor-misc )" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${WORKDIR}"/patchset-1 + "${FILESDIR}"/${PN}-1.4.15-gcc11.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 rewinddir64 closedir64 stat64 # used on AIX + glBegin # used to test for openGL support + glutMainLoop # used to test for glut support +) + +src_prepare() { + edos2unix \ + zlib/zlibtclDecls.h \ + libpng/pngtclDecls.h \ + tiff/tiffZip.c + + # libtiff/jpeg unbundle is problematic + rm ../patchset-1/tkimg-1.4.12-tiff.patch || die + rm ../patchset-1/tkimg-1.4.10-jpeg.patch || die + + default + + echo "unknown" > manifest.uuid || die + + find compat/libtiff/config -name ltmain.sh -delete || die + sed -i \ + -e 's:"--with-CC=$TIFFCC"::' \ + libtiff/configure.ac || die + +# eautoreconf + for dir in zlib libpng libtiff libjpeg base bmp gif ico jpeg pcx pixmap png\ + ppm ps sgi sun tga tiff window xbm xpm dted raw flir compat/libtiff ; do + (cd ${dir}; AT_NOELIBTOOLIZE=yes eautoreconf) + done + + eprefixify */*.h + tc-export AR +} + +src_configure() { + default + + sed -i \ + -e "/PACKAGE_/d" \ + libtiff/libtiff/tif_config.h \ + || die +} + +src_test() { + virtx default +} + +src_install() { + local l bl + + emake \ + DESTDIR="${D}" \ + INSTALL_ROOT="${D}" \ + install + + if ! use static-libs; then + find "${ED}"/usr/$(get_libdir)/ -type f -name "*\.a" -delete || die + fi + + # Make library links + for l in "${ED}"/usr/lib*/Img*/*tcl*.so; do + bl=$(basename ${l}) + dosym Img${PV}/${bl} /usr/$(get_libdir)/${bl} + done + + dodoc ChangeLog README Reorganization.Notes.txt changes ANNOUNCE + + if use doc; then + docompress -x usr/share/doc/${PF}/demo.tcl + dodoc demo.tcl + docinto html + dodoc -r doc/* + fi +} diff --git a/dev-tcltk/tkimg/tkimg-2.0.1.ebuild b/dev-tcltk/tkimg/tkimg-2.0.1.ebuild new file mode 100644 index 000000000000..fdf120d58ed6 --- /dev/null +++ b/dev-tcltk/tkimg/tkimg-2.0.1.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools edos2unix prefix toolchain-funcs virtualx + +MYP=Img-${PV} + +DESCRIPTION="Adds a lot of image formats to Tcl/Tk" +HOMEPAGE="http://tkimg.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/$(ver_cut 1-2)/${PN}%20${PV}/${MYP}.tar.gz + https://dev.gentoo.org/~tupone/distfiles/${PN}-1.4.14-patchset-1.tar.gz" + +S="${WORKDIR}/${MYP}" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc ~x86" +IUSE="doc test static-libs" + +RDEPEND=" + dev-lang/tk:= + dev-tcltk/tcllib + media-libs/tiff:= + media-libs/libpng:0= + virtual/zlib:= + x11-libs/libX11 + media-libs/libjpeg-turbo:=" +DEPEND="${RDEPEND} + test? ( + x11-apps/xhost + media-fonts/font-misc-misc + media-fonts/font-cursor-misc )" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${WORKDIR}"/patchset-1 + "${FILESDIR}"/${PN}-1.4.15-gcc11.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 rewinddir64 closedir64 stat64 # used on AIX + glBegin # used to test for openGL support + glutMainLoop # used to test for glut support +) + +src_prepare() { + edos2unix \ + zlib/zlibtclDecls.h \ + libpng/pngtclDecls.h \ + tiff/tiffZip.c + + # libtiff/jpeg unbundle is problematic + rm ../patchset-1/tkimg-1.4.12-tiff.patch || die + rm ../patchset-1/tkimg-1.4.10-jpeg.patch || die + rm ../patchset-1/tkimg-1.4.13-test.patch || die + + default + + echo "unknown" > manifest.uuid || die + + find compat/libtiff/config -name ltmain.sh -delete || die + sed -i \ + -e 's:"--with-CC=$TIFFCC"::' \ + libtiff/configure.ac || die + + eautoreconf + for dir in zlib libpng libtiff libjpeg base bmp gif ico jpeg pcx pixmap png\ + ppm ps sgi sun tga tiff window xbm xpm dted raw flir compat/libtiff ; do + (cd ${dir}; AT_NOELIBTOOLIZE=yes eautoreconf) + done + + eprefixify */*.h + tc-export AR +} + +src_configure() { + default + + sed -i \ + -e "/PACKAGE_/d" \ + libtiff/libtiff/tif_config.h \ + || die +} + +src_test() { + emake collate + TCLLIBPATH="$(pwd)/Img/exec_prefix/lib/Img" virtx default +} + +src_install() { + local l bl + + emake \ + DESTDIR="${D}" \ + INSTALL_ROOT="${D}" \ + install + + if ! use static-libs; then + find "${ED}"/usr/$(get_libdir)/ -type f -name "*\.a" -delete || die + fi + + # Make library links + for l in "${ED}"/usr/lib*/Img*/*tcl*.so; do + bl=$(basename ${l}) + dosym Img${PV}/${bl} /usr/$(get_libdir)/${bl} + done + + dodoc README.md + + if use doc; then + docompress -x usr/share/doc/${PF}/demo.tcl + dodoc demo.tcl + docinto html + dodoc -r doc/* + fi +} diff --git a/dev-tcltk/tkimg/tkimg-2.1.0-r1.ebuild b/dev-tcltk/tkimg/tkimg-2.1.0-r1.ebuild new file mode 100644 index 000000000000..5eadac228ae0 --- /dev/null +++ b/dev-tcltk/tkimg/tkimg-2.1.0-r1.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools edos2unix prefix toolchain-funcs virtualx + +MYP=Img-${PV} + +DESCRIPTION="Adds a lot of image formats to Tcl/Tk" +HOMEPAGE="http://tkimg.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/$(ver_cut 1-2)/${PN}%20${PV}/${MYP}.tar.gz + https://dev.gentoo.org/~tupone/distfiles/${PN}-1.4.14-patchset-1.tar.gz" + +S="${WORKDIR}/${MYP}" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc ~x86" +IUSE="doc test static-libs" + +RDEPEND=" + dev-lang/tk:= + dev-tcltk/tcllib + media-libs/tiff:= + media-libs/libpng:0= + virtual/zlib:= + x11-libs/libX11 + media-libs/libjpeg-turbo:=" +DEPEND="${RDEPEND} + test? ( + x11-apps/xhost + media-fonts/font-misc-misc + media-fonts/font-cursor-misc )" + +RESTRICT="!test? ( test )" + +PATCHES=( + "${WORKDIR}"/patchset-1 + "${FILESDIR}"/${PN}-1.4.15-gcc11.patch +) + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 rewinddir64 closedir64 stat64 # used on AIX + glBegin # used to test for openGL support + glutMainLoop # used to test for glut support +) + +src_prepare() { + edos2unix \ + zlib/zlibtclDecls.h \ + libpng/pngtclDecls.h \ + tiff/tiffZip.c + + # libtiff/jpeg unbundle is problematic + rm ../patchset-1/tkimg-1.4.12-tiff.patch || die + rm ../patchset-1/tkimg-1.4.10-jpeg.patch || die + rm ../patchset-1/tkimg-1.4.13-test.patch || die + + default + + echo "unknown" > manifest.uuid || die + + find compat/libtiff/config -name ltmain.sh -delete || die + sed -i \ + -e 's:"--with-CC=$TIFFCC"::' \ + libtiff/configure.ac || die + + eautoreconf + for dir in zlib libpng libtiff libjpeg base bmp gif ico jpeg pcx pixmap png\ + ppm ps sgi sun tga tiff window xbm xpm dted raw flir compat/libtiff ; do + (cd ${dir}; AT_NOELIBTOOLIZE=yes eautoreconf) + done + + eprefixify */*.h + tc-export AR +} + +src_configure() { + default + + sed -i \ + -e "/PACKAGE_/d" \ + libtiff/libtiff/tif_config.h \ + || die +} + +src_test() { + emake collate + TCLLIBPATH="$(pwd)/Img/exec_prefix/lib/Img" virtx default +} + +src_install() { + local l bl + + emake \ + DESTDIR="${D}" \ + INSTALL_ROOT="${D}" \ + install + + if ! use static-libs; then + find "${ED}"/usr/$(get_libdir)/ -type f -name "*\.a" -delete || die + fi + + # Make library links + for l in "${ED}"/usr/lib*/Img*/*tcl*.so; do + bl=$(basename ${l}) + dosym Img${PV}/${bl} /usr/$(get_libdir)/${bl} + done + + dodoc README.md + + if use doc; then + docompress -x usr/share/doc/${PF}/demo.tcl + dodoc tests/demo/demo.tcl + docinto html + dodoc -r doc/* + fi +} diff --git a/dev-tcltk/tklib/Manifest b/dev-tcltk/tklib/Manifest new file mode 100644 index 000000000000..b8a56f81714a --- /dev/null +++ b/dev-tcltk/tklib/Manifest @@ -0,0 +1,3 @@ +DIST tklib-0.7.tar.bz2 5967953 BLAKE2B a7f6fa366045e78043652eea983f143cac78d847ce8b69575b1f0738b1da7e90cb3566b13412521edd62bf7beb3b92a582b2e3f0e71745bd95bd95232ff7d3ad SHA512 0322611c1dea8eebebe3f8f15ec33b695b074329ce9602aeb93d04985f486237f3ce89f1c42a5c148e12ae00b51be8c889c7db77977a0cc4204ac5eaad2cfec2 +DIST tklib-0.8.tar.bz2 7807323 BLAKE2B 2747736d13b9b276c4dbd113f785e48fbcfd703c2a2344ca817f0e4e407d97f01a997b0907ab741bc613682f55999d8517cf90f1ef3403d2a534c2e754024b93 SHA512 935612636f53d78fc019c2e7b32697dfbe576e2638f8bee7848e25eaa31212f720bdf3449c7981314eebc341ff47f2ddcdcb64e2f257c896f6ff970098724ff8 +DIST tklib-0.9.tar.bz2 7163016 BLAKE2B 01da782c6bf3b4745e959acff636ed4d1b716f5cbd8de76fb7c2f3d8b7006293e9b3127afa6d7c4d129520556790f4d0bfa1df91625286c2647627becefc72cd SHA512 39594efdc51bf0e35f524c54f4162e8f6d0407b60e646b8d20782f6eb6a90246df7467ecc485eb1676a39ed6dfc981addf4afdb21cbd2bc9dd83816b31ea81b2 diff --git a/dev-tcltk/tklib/metadata.xml b/dev-tcltk/tklib/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/tklib/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tklib/tklib-0.7.ebuild b/dev-tcltk/tklib/tklib-0.7.ebuild new file mode 100644 index 000000000000..98ab8fe6a033 --- /dev/null +++ b/dev-tcltk/tklib/tklib-0.7.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CODE=7832035fb9249dce + +DESCRIPTION="Collection of utility modules for Tk, and a companion to Tcllib" +HOMEPAGE="http://www.tcl.tk/software/tklib" +SRC_URI="http://core.tcl.tk/${PN}/raw/${P}.tar.bz2?name=${CODE} -> ${P}.tar.bz2" + +SLOT="0" +KEYWORDS="~amd64 ~x86" +LICENSE="BSD" +IUSE="doc" + +RDEPEND=" + dev-lang/tk:0 + dev-tcltk/tcllib" +DEPEND="${RDEPEND}" + +src_compile() { + default + use doc && emake doc +} + +src_install() { + HTML_DOCS= + if use doc; then + HTML_DOCS=doc/html/* + fi + default + dodoc DESCRIPTION.txt + dosym ${PN}${PV} /usr/$(get_libdir)/${PN} + + mv "${ED}"/usr/share/man/mann/datefield{,-${PN}}.n || die + mv "${ED}"/usr/share/man/mann/menubar{,-${PN}}.n || die +} diff --git a/dev-tcltk/tklib/tklib-0.8.ebuild b/dev-tcltk/tklib/tklib-0.8.ebuild new file mode 100644 index 000000000000..bac43a226108 --- /dev/null +++ b/dev-tcltk/tklib/tklib-0.8.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CODE=3476243c3e + +DESCRIPTION="Collection of utility modules for Tk, and a companion to Tcllib" +HOMEPAGE="http://www.tcl.tk/software/tklib" +SRC_URI="https://core.tcl-lang.org/${PN}/raw/${P}.tar.bz2?name=${CODE} -> ${P}.tar.bz2" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc" + +RDEPEND=" + dev-lang/tk:0 + dev-tcltk/tcllib" +DEPEND="${RDEPEND}" + +src_compile() { + default + use doc && emake doc +} + +src_install() { + HTML_DOCS= + if use doc; then + HTML_DOCS=doc/html/* + fi + default + dodoc DESCRIPTION.txt + dosym ${PN}${PV} /usr/$(get_libdir)/${PN} + + mv "${ED}"/usr/share/man/mann/datefield{,-${PN}}.n || die + mv "${ED}"/usr/share/man/mann/menubar{,-${PN}}.n || die +} diff --git a/dev-tcltk/tklib/tklib-0.9.ebuild b/dev-tcltk/tklib/tklib-0.9.ebuild new file mode 100644 index 000000000000..ee8437d1447b --- /dev/null +++ b/dev-tcltk/tklib/tklib-0.9.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CODE=17f1d6d5fdad54ee + +DESCRIPTION="Collection of utility modules for Tk, and a companion to Tcllib" +HOMEPAGE="http://www.tcl.tk/software/tklib" +SRC_URI="https://core.tcl-lang.org/${PN}/raw/${P}.tar.bz2?name=${CODE} -> ${P}.tar.bz2" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc" + +RDEPEND=" + dev-lang/tk:0 + dev-tcltk/tcllib" +DEPEND="${RDEPEND}" + +src_compile() { + default + use doc && emake doc +} + +src_install() { + HTML_DOCS= + if use doc; then + HTML_DOCS=doc/html/* + fi + default + dodoc DESCRIPTION.txt + dosym ${PN}${PV} /usr/$(get_libdir)/${PN} + + mv "${ED}"/usr/share/man/mann/datefield{,-${PN}}.n || die + mv "${ED}"/usr/share/man/mann/menubar{,-${PN}}.n || die +} diff --git a/dev-tcltk/tkpiechart/Manifest b/dev-tcltk/tkpiechart/Manifest new file mode 100644 index 000000000000..49e966ce1e72 --- /dev/null +++ b/dev-tcltk/tkpiechart/Manifest @@ -0,0 +1 @@ +DIST tkpiechart-6.5.tar.bz2 38096 BLAKE2B d49f54f693d849c3563d28f4387e65d1f2cd19ec647db7e3aa56d85ffb630ca170113ef81e97eb4e464320d37e6e10c7a8bda5cf19fb478a0609226ea28a77f1 SHA512 828f106be8fe37ab8876c7e0b8ee00dee7f067f21489710653909ba277aed65de169e0f592ce0fedf5bc0ffc584d633d163b1b72fb628c1b2e541e8a850636aa diff --git a/dev-tcltk/tkpiechart/metadata.xml b/dev-tcltk/tkpiechart/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/tkpiechart/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tkpiechart/tkpiechart-6.5-r2.ebuild b/dev-tcltk/tkpiechart/tkpiechart-6.5-r2.ebuild new file mode 100644 index 000000000000..86f30c70ecea --- /dev/null +++ b/dev-tcltk/tkpiechart/tkpiechart-6.5-r2.ebuild @@ -0,0 +1,27 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="create and update 2D or 3D pie charts in a Tcl/Tk application" +HOMEPAGE="http://jfontain.free.fr/piechart6.htm" +SRC_URI="http://jfontain.free.fr/${P}.tar.bz2" + +LICENSE="jfontain" +KEYWORDS="amd64 ~ppc x86" +SLOT="0" + +DEPEND="dev-lang/tk:* + dev-tcltk/tcllib" +RDEPEND="${DEPEND}" + +src_install() { + dodir /usr/$(get_libdir)/tkpiechart + ./instapkg.tcl "${D}"/usr/$(get_libdir)/tkpiechart || die + + HTML_DOCS=( *.gif *.htm ) + einstalldocs + docinto demo + dodoc demo* + docompress -x /usr/share/doc/${PF}/demo +} diff --git a/dev-tcltk/tkpng/Manifest b/dev-tcltk/tkpng/Manifest new file mode 100644 index 000000000000..606718330f1c --- /dev/null +++ b/dev-tcltk/tkpng/Manifest @@ -0,0 +1 @@ +DIST tkpng0.9.tgz 127804 BLAKE2B f2377dd8bb3b0161168930d6355202789decbe6e248607cd3828a0553c20644aac05b23b90fdb2324689e30307bdfdb63cd9fb57993ca4d58f1b1108e0d001c6 SHA512 7f832ec19b53ba0f98d3db24d7b7106ae9bb6983d46ee33c46e90a1b152646f2a99ea417c9c6f9bed1f2859ef509510b531d26b3bb81f20d4e291ea1092896fb diff --git a/dev-tcltk/tkpng/metadata.xml b/dev-tcltk/tkpng/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/tkpng/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tkpng/tkpng-0.9-r3.ebuild b/dev-tcltk/tkpng/tkpng-0.9-r3.ebuild new file mode 100644 index 000000000000..dc66941d88b6 --- /dev/null +++ b/dev-tcltk/tkpng/tkpng-0.9-r3.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_P="${PN}${PV}" + +inherit autotools + +DESCRIPTION="Implements support for loading and using PNG images with Tcl/Tk" +HOMEPAGE="http://www.muonics.com/FreeStuff/TkPNG/" +SRC_URI="https://downloads.sourceforge.net/${PN}/${PN}/${PV}/${MY_P}.tgz" + +S="${WORKDIR}"/${MY_P} + +LICENSE="tcltk" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="debug threads" + +RDEPEND=" + >=dev-lang/tcl-8.4:= + >=dev-lang/tk-8.4:= + <dev-lang/tk-9 + virtual/zlib:= +" +DEPEND="${RDEPEND}" + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 # used to test for Large File Support +) + +# test target in Makefile, but test not shipped +RESTRICT="test" + +src_prepare() { + default + + # Clang 16 + eautoreconf +} + +src_configure() { + econf \ + $(use_enable debug symbols) \ + $(use_enable amd64 64bit) \ + $(use_enable threads) +} diff --git a/dev-tcltk/tktable/Manifest b/dev-tcltk/tktable/Manifest new file mode 100644 index 000000000000..37be40e30a47 --- /dev/null +++ b/dev-tcltk/tktable/Manifest @@ -0,0 +1,3 @@ +DIST Tktable2.10.tar.gz 284135 BLAKE2B ff3a37aac53418e7993a310d38ae23b7ec2673e0b44c118ff558a6c3c3805b39bf77f099287e91298fb4a6afacebde68a09171c6b90ecd11f48ac2a33fa3b312 SHA512 d69b1c766abb2833f48c900ca4d4fd3927f138ddf728dd76f2087a784604daa4356ec60a146e71d2fb2508a644598711e0373cb81dbfb0272b7ad16a0754e899 +DIST tktable-2-12-1.tar.gz 342044 BLAKE2B 1bbfec55ce7541d49d976d527b31c43f206662553f6192ce3e24941fff14041131bc20b4dbd51fce43458943cc4972d2769b2c11bc4243111af88f29c9a0ec14 SHA512 3f0a10d5406d2405e538de3aecc37ecb2cf58fa798c6825d23ef6a7df504f9adc8ce1dd030acbd33783b65e80ff019b031b688e0f6cf12b5a6bd5df898cf45d6 +DIST tktable-2.10.8.tar.gz 308245 BLAKE2B 4ede838e8553244dabd71d9543094bf5dfc82bd74f31ac9b4d4eea7bb2ee7406d90b16198d700eddfccd236160be1b7ed9a1f72f4760a71cddde5e01927ebb42 SHA512 927dad616306f0af477d1ce801ded962d966f7b46904b0a6b6772d1c9140310ff4c93a90ad4cb228495febae8be5f3ded9a328f621ba34195a339fc29d000f04 diff --git a/dev-tcltk/tktable/files/tktable-2.10-clang6.patch b/dev-tcltk/tktable/files/tktable-2.10-clang6.patch new file mode 100644 index 000000000000..af5eea359442 --- /dev/null +++ b/dev-tcltk/tktable/files/tktable-2.10-clang6.patch @@ -0,0 +1,80 @@ +--- a/generic/tkTable.h 2023-01-17 21:57:06.986859146 +0100 ++++ b/generic/tkTable.h 2023-01-17 21:59:18.730802234 +0100 +@@ -526,7 +526,7 @@ + extern int TableOptionBdSet(ClientData clientData, + Tcl_Interp *interp, Tk_Window tkwin, + CONST84 char *value, char *widgRec, int offset); +-extern char * TableOptionBdGet(ClientData clientData, ++extern const char *TableOptionBdGet(ClientData clientData, + Tk_Window tkwin, char *widgRec, int offset, + Tcl_FreeProc **freeProcPtr); + extern int TableTagConfigureBd(Table *tablePtr, +@@ -535,7 +535,7 @@ + Tcl_Interp *interp, + Tk_Window unused, CONST84 char *value, + char *widgRec, int offset); +-extern char * Cmd_OptionGet(ClientData clientData, ++extern const char *Cmd_OptionGet(ClientData clientData, + Tk_Window unused, char *widgRec, + int offset, Tcl_FreeProc **freeProcPtr); + +--- a/generic/tkTableWin.c 2023-01-17 22:09:00.225476183 +0100 ++++ b/generic/tkTableWin.c 2023-01-17 22:02:24.739108283 +0100 +@@ -17,7 +17,7 @@ + static int StickyParseProc _ANSI_ARGS_((ClientData clientData, + Tcl_Interp *interp, Tk_Window tkwin, + CONST84 char *value, char *widgRec, int offset)); +-static char * StickyPrintProc _ANSI_ARGS_((ClientData clientData, ++static const char *StickyPrintProc _ANSI_ARGS_((ClientData clientData, + Tk_Window tkwin, char *widgRec, int offset, + Tcl_FreeProc **freeProcPtr)); + +@@ -117,7 +117,7 @@ + * + *---------------------------------------------------------------------- + */ +-static char * ++static const char * + StickyPrintProc(clientData, tkwin, widgRec, offset, freeProcPtr) + ClientData clientData; /* Ignored. */ + Tk_Window tkwin; /* Window for text widget. */ +--- a/generic/tkTableTag.c 2023-01-17 22:12:25.754449096 +0100 ++++ b/generic/tkTableTag.c 2023-01-17 22:12:49.819092428 +0100 +@@ -22,7 +22,7 @@ + static int TableOptionReliefSet _ANSI_ARGS_((ClientData clientData, + Tcl_Interp *interp, Tk_Window tkwin, + CONST84 char *value, char *widgRec, int offset)); +-static char * TableOptionReliefGet _ANSI_ARGS_((ClientData clientData, ++static const char *TableOptionReliefGet _ANSI_ARGS_((ClientData clientData, + Tk_Window tkwin, char *widgRec, int offset, + Tcl_FreeProc **freeProcPtr)); + +@@ -1340,7 +1340,7 @@ + *---------------------------------------------------------------------- + */ + +-static char * ++static const char * + TableOptionReliefGet(clientData, tkwin, widgRec, offset, freeProcPtr) + ClientData clientData; /* Type of struct being set. */ + Tk_Window tkwin; /* Window containing canvas widget. */ +--- a/generic/tkTableUtil.c 2023-01-17 22:13:28.610516868 +0100 ++++ b/generic/tkTableUtil.c 2023-01-17 22:14:07.003963494 +0100 +@@ -169,7 +169,7 @@ + *---------------------------------------------------------------------- + */ + +-char * ++const char * + TableOptionBdGet(clientData, tkwin, widgRec, offset, freeProcPtr) + ClientData clientData; /* Type of struct being set. */ + Tk_Window tkwin; /* Window containing canvas widget. */ +@@ -329,7 +329,7 @@ + *---------------------------------------------------------------------- + */ + +-char * ++const char * + Cmd_OptionGet(ClientData clientData, Tk_Window unused, + char *widgRec, int offset, Tcl_FreeProc **freeProcPtr) + { diff --git a/dev-tcltk/tktable/files/tktable-2.10-parallelMake.patch b/dev-tcltk/tktable/files/tktable-2.10-parallelMake.patch new file mode 100644 index 000000000000..534a0a83b901 --- /dev/null +++ b/dev-tcltk/tktable/files/tktable-2.10-parallelMake.patch @@ -0,0 +1,12 @@ +--- a/Makefile.in 2023-01-17 21:41:13.532754760 +0100 ++++ b/Makefile.in 2023-01-17 21:41:35.153416999 +0100 +@@ -189,7 +189,8 @@ + # for the BINARIES that you specified above have already been done. + #======================================================================== + +-all: binaries libraries doc ++all: tkTable.tcl.h ++ $(MAKE) binaries libraries doc + + #======================================================================== + # The binaries target builds executable programs, Windows .dll's, unix diff --git a/dev-tcltk/tktable/files/tktable-2.10.8-clang6.patch b/dev-tcltk/tktable/files/tktable-2.10.8-clang6.patch new file mode 100644 index 000000000000..ddf87cbe6814 --- /dev/null +++ b/dev-tcltk/tktable/files/tktable-2.10.8-clang6.patch @@ -0,0 +1,20 @@ +--- a/generic/tkTableTag.c 2023-01-17 22:12:25.754449096 +0100 ++++ b/generic/tkTableTag.c 2023-01-17 22:12:49.819092428 +0100 +@@ -22,7 +22,7 @@ + static int TableOptionReliefSet _ANSI_ARGS_((ClientData clientData, + Tcl_Interp *interp, Tk_Window tkwin, + CONST84 char *value, char *widgRec, int offset)); +-static char * TableOptionReliefGet _ANSI_ARGS_((ClientData clientData, ++static const char *TableOptionReliefGet _ANSI_ARGS_((ClientData clientData, + Tk_Window tkwin, char *widgRec, int offset, + Tcl_FreeProc **freeProcPtr)); + +@@ -1340,7 +1340,7 @@ + *---------------------------------------------------------------------- + */ + +-static char * ++static const char * + TableOptionReliefGet(clientData, tkwin, widgRec, offset, freeProcPtr) + ClientData clientData; /* Type of struct being set. */ + Tk_Window tkwin; /* Window containing canvas widget. */ diff --git a/dev-tcltk/tktable/files/tktable-2.10.8-nobool.patch b/dev-tcltk/tktable/files/tktable-2.10.8-nobool.patch new file mode 100644 index 000000000000..f9ff321bcdcf --- /dev/null +++ b/dev-tcltk/tktable/files/tktable-2.10.8-nobool.patch @@ -0,0 +1,39 @@ +From 78fdd693c43aec8595b6b8b122bd1dede218f85e Mon Sep 17 00:00:00 2001 +From: Christian Werner <chw@ch-werner.de> +Date: Wed, 10 Jun 2020 01:12:58 +0000 +Subject: [PATCH] Do not use bool as variable name in tktable + +Imported from http://www.androwish.org/home/info/f2bd6de01c438a20 +--- + generic/tkTable.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/generic/tkTable.c b/generic/tkTable.c +index 2cb084a..4d89b3a 100644 +--- a/generic/tkTable.c ++++ b/generic/tkTable.c +@@ -3843,7 +3843,7 @@ TableValidateChange(tablePtr, r, c, old, new, index) + int index; /* index of insert/delete, -1 otherwise */ + { + register Tcl_Interp *interp = tablePtr->interp; +- int code, bool; ++ int code, flag; + Tk_RestrictProc *rstrct; + ClientData cdata; + Tcl_DString script; +@@ -3884,13 +3884,13 @@ TableValidateChange(tablePtr, r, c, old, new, index) + Tcl_BackgroundError(interp); + code = TCL_ERROR; + } else if (Tcl_GetBooleanFromObj(interp, Tcl_GetObjResult(interp), +- &bool) != TCL_OK) { ++ &flag) != TCL_OK) { + Tcl_AddErrorInfo(interp, + "\n\tboolean not returned by validation command"); + Tcl_BackgroundError(interp); + code = TCL_ERROR; + } else { +- code = (bool) ? TCL_OK : TCL_BREAK; ++ code = (flag) ? TCL_OK : TCL_BREAK; + } + Tcl_SetObjResult(interp, Tcl_NewObj()); + diff --git a/dev-tcltk/tktable/metadata.xml b/dev-tcltk/tktable/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/tktable/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tktable/tktable-2.10-r2.ebuild b/dev-tcltk/tktable/tktable-2.10-r2.ebuild new file mode 100644 index 000000000000..1a7cc534e8f1 --- /dev/null +++ b/dev-tcltk/tktable/tktable-2.10-r2.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_P="Tktable${PV}" + +DESCRIPTION="full-featured 2D table widget" +HOMEPAGE="http://tktable.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/tktable/${MY_P}.tar.gz" + +LICENSE="BSD" +KEYWORDS="amd64 ppc x86" +SLOT="0" + +DEPEND=">=dev-lang/tk-8.0:=" +RDEPEND="${DEPEND}" + +S=${WORKDIR}/${MY_P} + +HTML_DOCS=( doc/tkTable.html ) +DOCS=( ChangeLog README.txt release.txt ) + +PATCHES=( + "${FILESDIR}"/${P}-parallelMake.patch + "${FILESDIR}"/${P}-clang6.patch +) + +src_prepare() { + default + sed -e '/^install:/{s: install-doc::}' \ + -e '/^PKG_EXTRA_FILES/{s:=.*:=:}' -i Makefile.in || die +} diff --git a/dev-tcltk/tktable/tktable-2.10.8.ebuild b/dev-tcltk/tktable/tktable-2.10.8.ebuild new file mode 100644 index 000000000000..238c52d64ebc --- /dev/null +++ b/dev-tcltk/tktable/tktable-2.10.8.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="full-featured 2D table widget" +HOMEPAGE="https://github.com/wjoye/tktable" +SRC_URI="https://github.com/wjoye/${PN}/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 ~arm64 ppc x86" +RESTRICT="test" + +DEPEND=">=dev-lang/tk-8.0:=" +RDEPEND="${DEPEND}" + +HTML_DOCS=( doc/tkTable.html ) +DOCS=( ChangeLog README.txt release.txt ) + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 rewinddir64 closedir64 stat64 # used on AIX +) + +PATCHES=( + "${FILESDIR}"/${PN}-2.10-parallelMake.patch + "${FILESDIR}"/${P}-clang6.patch + "${FILESDIR}"/${P}-nobool.patch +) + +src_prepare() { + default + sed -e '/^install:/{s: install-doc::}' \ + -e '/^PKG_EXTRA_FILES/{s:=.*:=:}' -i Makefile.in || die +} diff --git a/dev-tcltk/tktable/tktable-2.12.1.ebuild b/dev-tcltk/tktable/tktable-2.12.1.ebuild new file mode 100644 index 000000000000..fba5d3154ec8 --- /dev/null +++ b/dev-tcltk/tktable/tktable-2.12.1.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MYP=${PN}-$(ver_rs 1- '-') + +DESCRIPTION="full-featured 2D table widget" +HOMEPAGE="http://tktable.sourceforge.net/" +SRC_URI="https://github.com/bohagan1/TkTable/archive/refs/tags/${MYP}.tar.gz" + +S=${WORKDIR}/TkTable-${MYP} + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc ~x86" +RESTRICT="test" + +DEPEND=">=dev-lang/tk-8.0:=" +RDEPEND="${DEPEND}" + +HTML_DOCS=( doc/tkTable.html ) +DOCS=( ChangeLog README.txt ) + +QA_CONFIG_IMPL_DECL_SKIP=( + opendir64 rewinddir64 closedir64 stat64 # used on AIX +) + +PATCHES=( + "${FILESDIR}"/${PN}-2.10-parallelMake.patch +) + +src_prepare() { + default + sed -e '/^install:/{s: install-doc-n::}' \ + -e '/^PKG_EXTRA_FILES/{s:=.*:=:}' -i Makefile.in || die +} diff --git a/dev-tcltk/tktreectrl/Manifest b/dev-tcltk/tktreectrl/Manifest new file mode 100644 index 000000000000..6a0822660da5 --- /dev/null +++ b/dev-tcltk/tktreectrl/Manifest @@ -0,0 +1,2 @@ +DIST tktreectrl-2.4.1.tar.gz 945101 BLAKE2B 8b91d0f264df4ab79f897608e259998139ab3cd3ba9359e1d74a23a174465a468c3bec0c5983764d2e23049d5feb70905066419c7c883007c6aa5e655d50dccd SHA512 5ea3f286326cb9dd32a259f8032c37dd3bfe4c4ecdac878cc8e7a283b542c4eb67a5434c97ecc81b9773f08e55563401a173234452ebf63547c00780e5703c1b +DIST tktreectrl-2.5.1.tar.gz 973113 BLAKE2B e9aa6bb797bc4f250498c84e4a3566a1353957cf932efa9bf2022ccb4db492733320f23fd0c09e7ddf911d1bbb491a86634e8693e68dd659e75cfa2d3de1c956 SHA512 f30a67e879a66e1fee4843dde998695c1d7ecd6f5b9470e3e56af4fc6d483d511a628cae627203e9def3b98dca9a9909218ab81923d01ae2fb5e0405d3916bf4 diff --git a/dev-tcltk/tktreectrl/files/2.2.9-as-needed.patch b/dev-tcltk/tktreectrl/files/2.2.9-as-needed.patch new file mode 100644 index 000000000000..07a1e36f9316 --- /dev/null +++ b/dev-tcltk/tktreectrl/files/2.2.9-as-needed.patch @@ -0,0 +1,11 @@ +--- a/Makefile.in 2008-02-24 23:22:10.000000000 +0100 ++++ b/Makefile.in.new 2009-07-11 23:54:48.000000000 +0200 +@@ -107,7 +107,7 @@ + RANLIB = @RANLIB@ + RANLIB_STUB = @RANLIB_STUB@ + SHLIB_CFLAGS = @SHLIB_CFLAGS@ +-SHLIB_LD = @SHLIB_LD@ ++SHLIB_LD = $(CC) $(LDFLAGS) -shared + SHLIB_LD_LIBS = @SHLIB_LD_LIBS@ + STLIB_LD = @STLIB_LD@ + TCL_DEFS = @TCL_DEFS@ diff --git a/dev-tcltk/tktreectrl/metadata.xml b/dev-tcltk/tktreectrl/metadata.xml new file mode 100644 index 000000000000..a025cb4da9b0 --- /dev/null +++ b/dev-tcltk/tktreectrl/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>sci@gentoo.org</email> + </maintainer> + <use> + <flag name="shellicon">shellicon extension</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tktreectrl/tktreectrl-2.4.1-r1.ebuild b/dev-tcltk/tktreectrl/tktreectrl-2.4.1-r1.ebuild new file mode 100644 index 000000000000..301808526e4e --- /dev/null +++ b/dev-tcltk/tktreectrl/tktreectrl-2.4.1-r1.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit virtualx + +DESCRIPTION="Flexible listbox widget for Tk" +HOMEPAGE="https://tktreectrl.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz" + +LICENSE="tcltk" +SLOT="0" +KEYWORDS="amd64 ~ppc x86" +IUSE="debug shellicon threads" + +RDEPEND=">=dev-lang/tk-8.4:0=" +DEPEND="${RDEPEND}" + +PATCHES=( "${FILESDIR}"/2.2.9-as-needed.patch ) + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 # used to test for Large File Support +) + +src_configure() { + local myeconfargs=( + $(use_enable threads) + $(use_enable shellicon) + $(use_enable amd64 64bit) + $(use_enable debug symbols) + --with-x + --enable-shared + ) + + econf ${myeconfargs[@]} +} + +src_test() { + virtx emake test +} + +src_install() { + default + mv \ + "${ED}"/usr/lib*/treectrl${PV}/htmldoc \ + "${ED}"/usr/share/doc/${PF}/ || die +} diff --git a/dev-tcltk/tktreectrl/tktreectrl-2.5.1.ebuild b/dev-tcltk/tktreectrl/tktreectrl-2.5.1.ebuild new file mode 100644 index 000000000000..67124f9f2fe7 --- /dev/null +++ b/dev-tcltk/tktreectrl/tktreectrl-2.5.1.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit virtualx + +DESCRIPTION="Flexible listbox widget for Tk" +HOMEPAGE="https://tktreectrl.sourceforge.net/" +SRC_URI="https://github.com/tcltk-depot/${PN}/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz" + +LICENSE="tcltk" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="debug shellicon threads" + +RDEPEND=">=dev-lang/tk-8.4:0=" +DEPEND="${RDEPEND}" + +PATCHES=( "${FILESDIR}"/2.2.9-as-needed.patch ) + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 # used to test for Large File Support +) + +src_configure() { + local myeconfargs=( + $(use_enable threads) + $(use_enable shellicon) + $(use_enable amd64 64bit) + $(use_enable debug symbols) + --with-x + --enable-shared + ) + + econf ${myeconfargs[@]} +} + +src_test() { + virtx emake test +} + +src_install() { + default + mv \ + "${ED}"/usr/lib*/treectrl${PV}/htmldoc \ + "${ED}"/usr/share/doc/${PF}/ || die +} diff --git a/dev-tcltk/tls/Manifest b/dev-tcltk/tls/Manifest new file mode 100644 index 000000000000..5d797b56f6f0 --- /dev/null +++ b/dev-tcltk/tls/Manifest @@ -0,0 +1,2 @@ +DIST tcltls-1.7.22.tar.gz 165206 BLAKE2B 351a5ee6a50174db8b13c9232a617aa90480550520771004c318c063b7c9703cdf969c7d12c56c54483bce5d08a9b48c04906d2be3ef9e3de0ab74c5dac68346 SHA512 28c76a6e7333b6ed1d83234691d61c9e71a59d0a6a28182fc0f50e97cae7b54da63ac76527e3b16087f3eab0b9cfe19bad02362e485d0cf378724de534805e99 +DIST tcltls-2.0-src.tar.gz 405959 BLAKE2B e1d2224e9bc229b9b6372266518f55422e994602224e2356742b5c0d2dc044867fd1e717a234a6d96c4633275af4a749650277bab9c036ba9cfadd92a0a67c6d SHA512 9681c4fb312756729a7598ecc382d20cc25ad034bb50be98f7bba6aec843feae48d740a4e23938851cf4f5e633bc7e80dd3aff7c7c9f0c299d23db23090ce680 diff --git a/dev-tcltk/tls/files/tls-1.7.22-gcc11.patch b/dev-tcltk/tls/files/tls-1.7.22-gcc11.patch new file mode 100644 index 000000000000..be58d47a2640 --- /dev/null +++ b/dev-tcltk/tls/files/tls-1.7.22-gcc11.patch @@ -0,0 +1,38 @@ +--- a/tlsBIO.c 2023-03-15 08:36:55.452468839 +0100 ++++ b/tlsBIO.c 2023-03-15 08:37:20.480074701 +0100 +@@ -232,8 +232,12 @@ + case BIO_CTRL_RESET: + dprintf("Got BIO_CTRL_RESET"); + num = 0; ++ ret = 0; ++ break; + case BIO_C_FILE_SEEK: + dprintf("Got BIO_C_FILE_SEEK"); ++ ret = 0; ++ break; + case BIO_C_FILE_TELL: + dprintf("Got BIO_C_FILE_TELL"); + ret = 0; +--- a/tls.c 2023-03-15 08:39:52.491651551 +0100 ++++ b/tls.c 2023-03-15 08:41:44.543863094 +0100 +@@ -1424,7 +1424,8 @@ + channelName = Tcl_GetStringFromObj(objv[2], NULL); + break; + } +- /* else fall... */ ++ Tcl_WrongNumArgs(interp, 1, objv, "?-local? channel"); ++ return TCL_ERROR; + default: + Tcl_WrongNumArgs(interp, 1, objv, "?-local? channel"); + return TCL_ERROR; +--- a/aclocal.m4 2023-03-15 09:05:11.853965135 +0100 ++++ b/aclocal.m4 2023-03-15 09:05:49.134383835 +0100 +@@ -689,7 +689,7 @@ + TCLTLS_SSL_LIBS="-L$openssldir -lssl -lcrypto" + openssldir="`AS_DIRNAME(["$openssldir"])`" + else +- TCLTLS_SSL_LIBS="-L$openssldir/lib -lssl -lcrypto" ++ TCLTLS_SSL_LIBS="-lssl -lcrypto" + fi + TCLTLS_SSL_CFLAGS="-I$openssldir/include" + TCLTLS_SSL_CPPFLAGS="-I$openssldir/include" diff --git a/dev-tcltk/tls/files/tls-1.7.22-ldflags.patch b/dev-tcltk/tls/files/tls-1.7.22-ldflags.patch new file mode 100644 index 000000000000..a5d8c083d315 --- /dev/null +++ b/dev-tcltk/tls/files/tls-1.7.22-ldflags.patch @@ -0,0 +1,13 @@ +--- a/configure.ac 2020-12-25 11:05:31.312433864 +0100 ++++ b/configure.ac 2020-12-25 11:05:42.692248123 +0100 +@@ -247,10 +247,8 @@ + + dnl Enable a stable ABI + DC_SETUP_STABLE_API([${srcdir}/tcltls.vers], tcltls.syms) +-if test "$tcltls_debug" = 'true'; then + WEAKENSYMS=':' + REMOVESYMS=':' +-fi + + dnl Produce output + AC_OUTPUT(Makefile pkgIndex.tcl tcltls.syms) diff --git a/dev-tcltk/tls/files/tls-2.0-cmpMan.patch b/dev-tcltk/tls/files/tls-2.0-cmpMan.patch new file mode 100644 index 000000000000..c7410acac20b --- /dev/null +++ b/dev-tcltk/tls/files/tls-2.0-cmpMan.patch @@ -0,0 +1,19 @@ +--- a/Makefile.in 2026-02-27 22:34:32.405662543 +0100 ++++ b/Makefile.in 2026-02-27 22:37:03.144890788 +0100 +@@ -274,16 +274,8 @@ + @echo "Installing nroff documentation in $(DESTDIR)$(mandir)/mann" + @list='$(srcdir)/doc/*.n'; for i in $$list; do \ + if test -f "$$i" ; then \ +- if test -f "$(DESTDIR)$(mandir)/mann/Tcl.n.gz" -o \ +- "$(DESTDIR)$(mandir)/mann/Tcl*.n.gz" ; then \ +- gzip -k "$$i" ; \ +- echo "Installing $$i.gz"; \ +- $(INSTALL_DATA) "$$i.gz" "$(DESTDIR)$(mandir)/mann" ; \ +- rm -f "$$i.gz";\ +- else \ + echo "Installing $$i"; \ + $(INSTALL_DATA) "$$i" "$(DESTDIR)$(mandir)/mann" ; \ +- fi; \ + fi; \ + done + diff --git a/dev-tcltk/tls/metadata.xml b/dev-tcltk/tls/metadata.xml new file mode 100644 index 000000000000..1756b374c112 --- /dev/null +++ b/dev-tcltk/tls/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/tls/tls-1.7.22-r1.ebuild b/dev-tcltk/tls/tls-1.7.22-r1.ebuild new file mode 100644 index 000000000000..1622421154b1 --- /dev/null +++ b/dev-tcltk/tls/tls-1.7.22-r1.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools + +MY_P="tcl${P}" + +DESCRIPTION="TLS OpenSSL extension to Tcl" +HOMEPAGE="http://tls.sourceforge.net/" +SRC_URI="https://core.tcl.tk/tcltls/uv/${MY_P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86" +IUSE="tk" + +DEPEND=" + dev-lang/tcl:0= + dev-libs/openssl:0= + tk? ( dev-lang/tk:0= )" +RDEPEND="${DEPEND}" + +RESTRICT="test" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${P}-ldflags.patch + "${FILESDIR}"/${P}-gcc11.patch +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + econf \ + --disable-hardening \ + --with-ssl-dir="${EPREFIX}/usr" \ + --with-tcl="${EPREFIX}/usr/$(get_libdir)" +} + +src_install() { + default + dodoc tls.htm + + if [[ ${CHOST} == *-darwin* ]] ; then + # this is ugly, but fixing the makefile mess is even worse + local loc=usr/$(get_libdir)/tls1.7/libtls1.7.dylib + install_name_tool -id "${EPREFIX}"/${loc} "${ED}"/${loc} || die + fi +} diff --git a/dev-tcltk/tls/tls-2.0-r1.ebuild b/dev-tcltk/tls/tls-2.0-r1.ebuild new file mode 100644 index 000000000000..f096ce2506f8 --- /dev/null +++ b/dev-tcltk/tls/tls-2.0-r1.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="TLS OpenSSL extension to Tcl" +HOMEPAGE="http://tls.sourceforge.net/" +SRC_URI="https://core.tcl.tk/tcltls/uv/tcl${P}-src.tar.gz" + +S="${WORKDIR}"/tcltls-20260121024900-5d3e3c3bf8 + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="tk" + +DEPEND=" + dev-lang/tcl:0= + dev-libs/openssl:0= + tk? ( dev-lang/tk:0= )" +RDEPEND="${DEPEND}" + +RESTRICT="test" + +PATCHES=( + "${FILESDIR}"/${P}-cmpMan.patch +) + +src_configure() { + econf \ + --disable-hardening \ + --with-tcl="${EPREFIX}/usr/$(get_libdir)" +} + +src_install() { + default + mv "${ED}"/usr/$(get_libdir)/tcltls2.0/html \ + "${ED}"/usr/share/doc/${PF} || die + mv "${ED}"/usr/include/{,tcl}tls.h || die + rm "${ED}"/usr/$(get_libdir)/tcltls2.0/{README.txt,license.terms} \ + || die + + if [[ ${CHOST} == *-darwin* ]] ; then + # this is ugly, but fixing the makefile mess is even worse + local loc=usr/$(get_libdir)/tls2.0/libtls2.0.dylib + install_name_tool -id "${EPREFIX}"/${loc} "${ED}"/${loc} || die + fi +} diff --git a/dev-tcltk/togl/Manifest b/dev-tcltk/togl/Manifest new file mode 100644 index 000000000000..cee1af9d63cf --- /dev/null +++ b/dev-tcltk/togl/Manifest @@ -0,0 +1 @@ +DIST Togl2.0-src.tar.gz 244968 BLAKE2B f094fb4bba7049470d7f61a2748d4a5baaf47c99c766d96ef8061e254673acf7f2a11555e202ec01f5d6b7a00ae7c275a33981fba5df7f1478f69da17f3180b8 SHA512 2be3062baada848d96b2802582bc5590b215f2ab4dc02c91761e72af2bf8c0ba768a71a2ffb8107bca83b63b7d1321ee83de19b97f83b1c2f0962f9288948b0a diff --git a/dev-tcltk/togl/files/togl-2.0-clang6.patch b/dev-tcltk/togl/files/togl-2.0-clang6.patch new file mode 100644 index 000000000000..e227c2236f8f --- /dev/null +++ b/dev-tcltk/togl/files/togl-2.0-clang6.patch @@ -0,0 +1,11 @@ +--- a/togl.c 2023-01-18 07:31:37.816199176 +0100 ++++ b/togl.c 2023-01-18 07:33:08.946629940 +0100 +@@ -132,7 +132,7 @@ + /* pointer to Tk_SetClassProcs function in the stub table */ + + static void (*SetClassProcsPtr) +- _ANSI_ARGS_((Tk_Window, Tk_ClassProcs *, ClientData)); ++ _ANSI_ARGS_((Tk_Window, const Tk_ClassProcs *, ClientData)); + #endif + + /* diff --git a/dev-tcltk/togl/metadata.xml b/dev-tcltk/togl/metadata.xml new file mode 100644 index 000000000000..300363628202 --- /dev/null +++ b/dev-tcltk/togl/metadata.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>Gentoo Tcltk Project</name> + </maintainer> + <longdescription> +Togl is a Tk widget for OpenGL rendering. Togl was originally based on +OGLTK, written by Benjamin Bederson at the University of New Mexico. Togl's +main features are: + +* unifies Microsoft Windows, X11 (Linux/IRIX/...), and Mac OS X Aqua support +* support for requesting stencil, accumulation, alpha buffers, etc. +* multiple OpenGL drawing windows +* simple stereo rendering support +* simple, portable font support +* color-index mode support including color allocation functions +* overlay plane support +* OpenGL extension testing from Tcl +* Tcl Extension Architecture (TEA) 3 compliant + +Togl does almost no OpenGL drawing itself, instead it manages OpenGL +drawing by calling various Tcl commands (a.k.a., callback functions). Those +commands can be C functions that call OpenGL (in)directly or another Tcl +package (e.g., Tcl3D). + </longdescription> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/togl/togl-2.0-r6.ebuild b/dev-tcltk/togl/togl-2.0-r6.ebuild new file mode 100644 index 000000000000..c6f5b81af398 --- /dev/null +++ b/dev-tcltk/togl/togl-2.0-r6.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit dot-a + +MY_P=Togl${PV} + +DESCRIPTION="A Tk widget for OpenGL rendering" +HOMEPAGE="http://togl.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}-src.tar.gz" + +S=${WORKDIR}/${MY_P} + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~sparc x86" +IUSE="debug +threads" + +RDEPEND=" + <dev-lang/tk-9:* + media-libs/libglvnd[X] + x11-libs/libX11 + x11-libs/libXmu" +DEPEND="${RDEPEND}" + +# tests directory is missing +RESTRICT="test" + +PATCHES=( "${FILESDIR}"/${P}-clang6.patch ) + +QA_CONFIG_IMPL_DECL_SKIP=( + stat64 # used to test for Large File Support +) + +src_prepare() { + default + sed \ + -e 's:-fomit-frame-pointer::g' \ + -e 's:-O2::g' \ + -e 's:-pipe::g' \ + -i configure || die +} + +src_configure() { + lto-guarantee-fat + econf \ + $(use_enable debug symbols) \ + $(use_enable threads) +} + +src_install() { + HTML_DOCS=( doc/* ) + default + strip-lto-bytecode +} diff --git a/dev-tcltk/vtcl/Manifest b/dev-tcltk/vtcl/Manifest new file mode 100644 index 000000000000..3316ddb89973 --- /dev/null +++ b/dev-tcltk/vtcl/Manifest @@ -0,0 +1,2 @@ +DIST vtcl-1.6.0.tar.gz 554727 BLAKE2B abf5e9a9fbc42e8c9ab1c216f0d103fcd88c9894a73185d50b56e0c87c88e82e6f368dd3acd7339f3a1875c9cda22123e4df82f6852343da10abac330896c899 SHA512 bfc2ed114af4bee375e820e4b1e47d394a800541eb9917204ef42481a4033927c432d7d2b005d13edd086c7c91bd594908965aae512cc4af9e5654a2bfd296de +DIST vtcl-1.6.1a1.tar.gz 599864 BLAKE2B 59c3b503cad053de5110d4a46a92803c2e513ddee300ca525382bf76f523e09f01f2680b9ca7ad8b647350c609cedea691b0e40fe028da3ecb7475d95338d60a SHA512 8c7fa1a036d9e30aff322dff2a740ca473b4fe28689b3832304ab29832162967edaf7b6e67f641f2b298c24a9ed9cd911dc6d13277cc8e20fefcacd4268b71ad diff --git a/dev-tcltk/vtcl/files/vtcl-1.6.1_alpha1-tk86.patch b/dev-tcltk/vtcl/files/vtcl-1.6.1_alpha1-tk86.patch new file mode 100644 index 000000000000..ae09fe671408 --- /dev/null +++ b/dev-tcltk/vtcl/files/vtcl-1.6.1_alpha1-tk86.patch @@ -0,0 +1,10 @@ +--- a/configure 2021-01-06 17:35:58.921365193 +0100 ++++ b/configure 2021-01-06 17:34:44.859618414 +0100 +@@ -11,6 +11,7 @@ + ## + findwish( ) { + WISHES=" \ ++ wish8.6 \ + wish8.5 \ + wish8.4 \ + wish8.3 \ diff --git a/dev-tcltk/vtcl/metadata.xml b/dev-tcltk/vtcl/metadata.xml new file mode 100644 index 000000000000..2d8ef82aefa4 --- /dev/null +++ b/dev-tcltk/vtcl/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>tcltk@gentoo.org</email> + <name>TCL/TK project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/dev-tcltk/vtcl/vtcl-1.6.0-r2.ebuild b/dev-tcltk/vtcl/vtcl-1.6.0-r2.ebuild new file mode 100644 index 000000000000..61a39f123b03 --- /dev/null +++ b/dev-tcltk/vtcl/vtcl-1.6.0-r2.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Visual Tcl is a high-quality application development environment" +HOMEPAGE="http://vtcl.sf.net" +SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ppc x86" +IUSE="doc" +DEPEND="dev-lang/tk:*" +RDEPEND="${DEPEND}" + +MY_DESTDIR=/usr/share/${PN} + +src_compile() { + sed -i 's,^\(VTCL_HOME=\).*,\1'${MY_DESTDIR}',g' vtcl || die "Path fixing failed." + sed -i 's,package require -exact Tk ,package require Tk ,' lib/tkcon.tcl || die "Tcl8.5 patch failed" +} + +src_install() { + dodir ${MY_DESTDIR} + dobin vtcl + cp -r ./{demo,images,lib,sample,vtcl.tcl} "${D}/${MY_DESTDIR}" || die "Data installation failed." + if use doc; then + DOCS=( ChangeLog README doc/tutorial.txt ) + HTML_DOCS=( doc/*html ) + fi + einstalldocs +} diff --git a/dev-tcltk/vtcl/vtcl-1.6.1_alpha1-r1.ebuild b/dev-tcltk/vtcl/vtcl-1.6.1_alpha1-r1.ebuild new file mode 100644 index 000000000000..00b362b192c1 --- /dev/null +++ b/dev-tcltk/vtcl/vtcl-1.6.1_alpha1-r1.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit edos2unix + +MYP=${PN}-${PV/_alpha/a} + +DESCRIPTION="Visual Tcl is a high-quality application development environment" +HOMEPAGE="http://vtcl.sf.net" +SRC_URI="https://downloads.sourceforge.net/${PN}/${MYP}.tar.gz" + +S="${WORKDIR}"/${MYP} + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 ppc x86" +IUSE="doc" +DEPEND="<dev-lang/tk-9:*" +RDEPEND="${DEPEND}" + +MY_DESTDIR=/usr/share/${PN} + +PATCHES=( "${FILESDIR}"/${P}-tk86.patch ) + +src_prepare() { + edos2unix configure + default +} + +src_compile() { + sed -i 's,^\(VTCL_HOME=\).*,\1'${MY_DESTDIR}',g' vtcl || die "Path fixing failed." + sed -i 's,package require -exact Tk ,package require Tk ,' lib/tkcon.tcl || die "Tcl8.5 patch failed" +} + +src_install() { + dodir ${MY_DESTDIR} + dobin vtcl + cp -r ./{demo,images,lib,sample,vtcl.tcl} "${D}/${MY_DESTDIR}" || die "Data installation failed." + if use doc; then + DOCS=( ChangeLog README doc/tutorial.txt ) + HTML_DOCS=( doc/*html ) + fi + einstalldocs +} |
