Re: databases/sqlite3-tcl for Tcl 8 and 9

Stuart Cassoff <[email protected]>
Newsgroups gmane.os.openbsd.ports
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.