Index | Thread | Search

From:
Stuart Cassoff <exokoide@yahoo.ca>
Subject:
Re: databases/sqlite3-tcl for Tcl 8 and 9
To:
OpenBSD Ports <ports@openbsd.org>
Date:
Fri, 17 Jul 2026 10:02:06 -0400

Download raw body.

Thread
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