Install tkdnd via teacup?


I read that in 2021, teapot/teacup got removed from ActiveTcl 8.6. I’m surprised that such a convenient tool would get removed and am baffled by the rationale behind that move. Furthermore, it was mentioned on the ActiveTcl webpage that teapot became open-source (GitHub - ActiveState/teapot: Tcl TEApot), so I thought great! I would simply install separately from ActiveTcl, but the GitHub repo is very cryptic and does not provide end-user instructions in for simply utilizing teapot to connect to a repo of packages and installing a package like tkdnd, which I need for a tcl/tk GUI I am building in Ruby (almost all the instructions I saw in the docs were mentioning setting up my own teapot server, which to an end-user is useless as that is more useful to providers of packages not to end-users)

All I want is to simply install packages from this index:

I was hoping it would be as easy as setting up a teacup command script in my path with that index URL and then having the ability to simply call teacup to install the packages I want like tkdnd to solve my problem.

Is there such a simple solution available? How do I obtain tkdnd in the simplest way possible without having to go and compile tkdnd myself?

It would be a shame if things took a step backward instead of forward towards the convenience of installing tcl/tk packages in general.


p.s. I am no Tcl expert (I mostly use Tk from Ruby).

When I try to run the teapot.tcl script from the cloned teapot repository, I get this error:

can’t find package repository::capp
while executing
“package require repository::capp”
(file “./app/teapot/teapot.tcl” line 46)

I am on a MacOS Catalina

TEA was never in Tcl. TEA support was available in ActiveTcl for as long as we maintained a fork of Tcl that was distinct from the reference version maintained by the Tcl Community. In 2016, we made a decision that ActiveState would not produce products that diverged from the reference code base as long as the reference code base was still being maintained. If TEA is adopted as a standard part of Tcl, it will return to ActiveTcl. TEA has been OpenSourced, but it hasn’t been picked up in 8.6 because of a binary compatibility barrier. Maybe it will be in the release versions of 8.7 or 9.0.

Compiling tkdnd isn’t the only thing you would need to do in order to install a package under TEA. You would need a Tcl core that supports TEA as well, so the alternative is really to compile both Tcl and tkdnd. On Catalina, that might not be absolutely necessary if you have the same compiler available locally as was used to compile the Tcl. You may also need header files though, so the task might get quite involved. It largely depends on how any extension has been written.
That sounds pretty daunting, because the full process is daunting. Fortunately, there’s a post

about adding TkDnD into Python’s Tkinter, which is a similar kind of implementation to how Ruby pulls in Tk. That post makes it sound pretty easy, so you might be in luck.
There will likely also be some kind of Ruby wrapper for calling TkDnD, which wouldn’t be available from TEA anyway.

Thank you for the swift response. I will give that post a read.