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

Reply via email to