Hi Stuart,
Thanks for responding! I was able to use tcllib with tcl9 for my basic
stuff at least, but haven't found a definitive statement about
compatibility yet.
My (embedded) target platform is running Alpine Linux. They seem to have
dodged the issue with sqlite-tcl for tcl9 by bundling the libtcl9sqlite
library with tcl9 itself. Your fix in your later mail is much cleaner.
For tclthread, there is an indication that version 3.0.3 and onward are
able to work with both tcl8.6 and 9.x:
(https://core.tcl-lang.org/thread/info/c339140d1c367beb) but no way am I
an expert...
Latest released version seems to be 3.0.5
Chris
Stuart Cassoff wrote:
Hi!
Thanks for bringing this up. I've been thinking about it for a while now.
Notes:
Ports like tcllib and tklib (ie. Tcl-only) should be fine with Tcl 8 or 9.
Ports like sqlite3-tcl we can try a few things.
Ports like tclthread may need a separate port for Tcl 9.
Last I checked, there was one tclthread for 8 and another for 9.
Maybe this has changed by now.
Stu
On Thu, 11 Jun 2026, Chris Billington wrote:
The present databases/sqlite3-tcl port is built with MODTCL_VERSION = 8.6,
producing /usr/local/lib/tcl/sqlite3/libsqlite3513.so
I am working on a tcl9 application (given that the 8.6 series has had its
final release), so wanted to use the tcl9 version of the sqlite3 library and
made a test port to suit. it seems libraries have been renamed in tcl9 to
include the string 'tcl9' in the name, and the pkgIndex file handles this in
cases that I have seen, but the tcl9 version of libraries is not built by the
present ports.
The build goes fine, the tcl9 library (libtcl9sqlite3513.so) is built and
works in basic testing.
However, it conflicts with the sqlite3-tcl port due to having identical
pkgIndex.tcl, manpage and example files.
My question is how this might be handled in the future, preserving the
availability of the tcl8.6 version of the library for legacy applications.
- have two ports, sqlite3-tcl and sqlite3-tcl9 with CONFLICTS =
sqlite3-tcl-* ?
- two mutually-exclusive flavors of a single port ?
- or is there a way to have both installed at the same time, and overwrite the
conflicting files on installation, which I guess breaks the convention to not
touch files in another package?
Is there a precedent for this elsewhere? There are probably other ports like
tcllib, tclthread that are currently not available for tcl9.
All advice, info welcome.
Chris