On Wed, 8 Jul 2026, Stuart Cassoff wrote:
> > On Wed, 8 Jul 2026, Stuart Cassoff wrote:
> > On Sun, 5 Jul 2026, Stuart Cassoff wrote:
> > > Here is a Tcl 8/9 version of sqlite3-tcl.
> Getting there.
This is looking pretty good. Bikeshed on the var names.
Tcl 8 users can use the flavor and get a working Tcl 8 package,
minus the examples, which are shebanged for Tcl 9.
The normal (sqlite3-tcl) package will install everything,
so people currently using it will now get it for both Tcl 8 and 9.
Stu
--- /usr/ports/lang/tcl/tcl.port.mk Sun Feb 8 13:36:57 2026
+++ tcl.port.mk Fri Jul 17 09:50:44 2026
@@ -24,6 +24,18 @@
MODTCL_LIB_DEPENDS ?= ${_MODTCL_SPEC}:lang/tcl/${MODTCL_VERSION}
MODTCL_WANTLIB ?= ${MODTCL_LIB}
+# For Tcl 8/9 ports
+.if "${MODTCL_VERSION}" == "9"
+MODTCL_EXTLIB = tcl9
+MODTCL_TCL8 = "@comment "
+MODTCL_TCL9 =
+MODTCL_COMMENT = (Tcl9)
+.else
+MODTCL_EXTLIB =
+MODTCL_TCL8 =
+MODTCL_TCL9 = "@comment "
+MODTCL_COMMENT = (Tcl8)
+.endif
# Handle the two most commonly used methods
# for starting up executable Tcl scripts.
diff -Nurp /usr/ports/databases/sqlite3-tcl/Makefile ./Makefile
--- /usr/ports/databases/sqlite3-tcl/Makefile Fri Jun 19 01:49:00 2026
+++ ./Makefile Fri Jul 17 09:28:21 2026
@@ -1,6 +1,6 @@
-COMMENT = Tcl bindings for SQLite3
+COMMENT = Tcl bindings for SQLite3 ${MODTCL_COMMENT}
-REVISION = 0
+REVISION = 1
V = 3.53.0
@@ -17,19 +17,14 @@ PERMIT_PACKAGE = Yes
WANTLIB = pthread
SITES = ${SITE_SOURCEFORGE:=tcl/}
-
DISTFILES = tclsqlite{sqlite}${V}${EXTRACT_SUFX}
MODULES = lang/tcl
-MODTCL_VERSION = 9
BUILD_DEPENDS = ${MODTCL_BUILD_DEPENDS}
+RUN_DEPENDS = ${MODTCL_RUN_DEPENDS}
-RUN_DEPENDS = ${MODTCL_RUN_DEPENDS} \
- lang/tcl/8.6
-
FAKE_FLAGS = PKG_DIR=sqlite3
-TEST_FLAGS = TCLSH_PROG=${MODTCL_BIN}
SEPARATE_BUILD = Yes
CONFIGURE_STYLE = gnu
@@ -46,19 +41,29 @@ CFLAGS += -DSQLITE_HAVE_ISNAN=1 \
ALL_TARGET = binaries
TEST_TARGET = test
-SUBST_VARS = VER
+SUBST_VARS = VER MODTCL_EXTLIB MODTCL_TCL8 MODTCL_TCL9
VER = ${V:S/.//g}
+FLAVORS = tcl8
+FLAVOR ?=
+
+.if ${FLAVOR:Mtcl8}
+MODTCL_VERSION = 8.6
+INSTALL_TARGET = all install-lib-binaries install-doc
+.else
+MODTCL_VERSION = 9
+INSTALL_TARGET = all install-lib-binaries install-bin-binaries
+RUN_DEPENDS += databases/sqlite3-tcl,tcl8
+TEST_FLAGS = TCLSH_PROG=${MODTCL_BIN}
+.endif
+
+.if ! ${FLAVOR:Mtcl8}
pre-configure:
@${MODTCL_TCLSH_ADJ} ${WRKSRC}/compat/sqlite3/spaceanal.tcl
post-install:
- cd ${WRKBUILD} && umask 022 && exec \
- env -i ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \
- -f ${MAKE_FILE} clean ${ALL_TARGET} \
- CPPFLAGS='-DTCL_MAJOR_VERSION=8' \
- PKG_LIB_FILE=libsqlite${VER}.so
- ${INSTALL_DATA} ${WRKBUILD}/libsqlite${VER}.so
${DESTDIR}${MODTCL_TCLDIR}/sqlite3/
+ rm ${WRKINST}${MODTCL_TCLDIR}/sqlite3/pkgIndex.tcl
+.endif
.include <bsd.port.mk>
diff -Nurp /usr/ports/databases/sqlite3-tcl/pkg/PLIST ./pkg/PLIST
--- /usr/ports/databases/sqlite3-tcl/pkg/PLIST Fri Jun 19 01:49:00 2026
+++ ./pkg/PLIST Fri Jul 17 09:24:27 2026
@@ -1,8 +1,8 @@
+@option no-default-conflict
@pkgpath databases/sqlite3,-tcl
-lib/tcl/sqlite3/
-@so lib/tcl/sqlite3/libsqlite${VER}.so
-@so lib/tcl/sqlite3/libtcl9sqlite${VER}.so
-lib/tcl/sqlite3/pkgIndex.tcl
-@man man/mann/sqlite3.n
-share/examples/sqlite3-tcl/
-share/examples/sqlite3-tcl/sqlite3_analyzer
+${MODTCL_TCL8}lib/tcl/sqlite3/
+@so lib/tcl/sqlite3/lib${MODTCL_EXTLIB}sqlite${VER}.so
+${MODTCL_TCL8}lib/tcl/sqlite3/pkgIndex.tcl
+${MODTCL_TCL8}@man man/mann/sqlite3.n
+${MODTCL_TCL9}share/examples/sqlite3-tcl/
+${MODTCL_TCL9}share/examples/sqlite3-tcl/sqlite3_analyzer