Index | Thread | Search

From:
Stuart Cassoff <exokoide@yahoo.ca>
Subject:
Re: databases/sqlite3-tcl port and tcl9
To:
Stuart Henderson <stu@spacehopper.org>
Cc:
Chris Billington <emulti@disroot.org>, ports@openbsd.org
Date:
Tue, 16 Jun 2026 09:33:21 -0400

Download raw body.

Thread
On Fri, 12 Jun 2026, Stuart Henderson wrote:

> nitpicking, but could you indent the lines after \ please?

Totally, fer sure.


> ok

Thanks.


Now how about this abuse of the ports system?
Build/test/etc separately with 8.6 for the 8.6 .so.

"configure" only thinks it finds a usable tclsh9,
so that has to be overridden.

Something like a build dep on a port's own flavor could work,
but locks seem to prevent that. I've been trying a bunch of things.


Stu



diff -Nurp /usr/ports//databases/sqlite3-tcl/Makefile ./Makefile
--- /usr/ports//databases/sqlite3-tcl/Makefile	Thu May 14 22:51:47 2026
+++ ./Makefile	Tue Jun 16 09:15:32 2026
@@ -1,5 +1,7 @@
 COMMENT =		Tcl bindings for SQLite3
 
+REVISION =		0
+
 V =			3.53.0
 
 DISTNAME =		sqlite${V}
@@ -19,12 +21,16 @@ SITES =			${SITE_SOURCEFORGE:=tcl/}
 DISTFILES =		tclsqlite{sqlite}${V}${EXTRACT_SUFX}
 
 MODULES =		lang/tcl
-MODTCL_VERSION =	8.6
+MODTCL_VERSION =	9
 
-BUILD_DEPENDS =		${MODTCL_BUILD_DEPENDS}
-RUN_DEPENDS =		${MODTCL_RUN_DEPENDS}
+BUILD_DEPENDS =		${MODTCL_BUILD_DEPENDS} \
+			lang/tcl/8.6
 
+RUN_DEPENDS =		${MODTCL_RUN_DEPENDS} \
+			lang/tcl/8.6
+
 FAKE_FLAGS =		PKG_DIR=sqlite3
+TEST_FLAGS =		TCLSH_PROG=tclsh9 # instead of patching
 SEPARATE_BUILD =	Yes
 CONFIGURE_STYLE =	gnu
 
@@ -45,5 +51,33 @@ VER =			${V:S/.//g}
 
 pre-configure:
 	@${MODTCL_TCLSH_ADJ} ${WRKSRC}/compat/sqlite3/spaceanal.tcl
+
+post-configure:
+	mkdir ${WRKBUILD}-tcl8 && \
+	make WRKBUILD=${WRKBUILD}-tcl8 MODTCL_VERSION=8.6 configure8
+
+configure8:
+	${MODGNU_configure}
+
+post-build:
+	cd ${WRKBUILD}-tcl8 && \
+	env -i ${MAKE_ENV} ${MAKE_PROGRAM} ${MAKE_FLAGS} \
+	    -f ${MAKE_FILE} ${ALL_TARGET}
+
+post-install:
+	mkdir ${WRKINST}-tcl8 && \
+	cd ${WRKBUILD}-tcl8 && \
+	env -i ${MAKE_ENV} ${FAKE_SETUP} DESTDIR=${WRKINST}-tcl8 \
+	    ${MAKE_PROGRAM} ${ALL_FAKE_FLAGS} DESTDIR=${WRKINST}-tcl8 \
+	    -f ${MAKE_FILE} ${FAKE_TARGET} && \
+	${INSTALL_DATA} ${WRKINST}-tcl8${MODTCL_TCLDIR}/sqlite3/libsqlite${VER}.so \
+	    ${DESTDIR}${MODTCL_TCLDIR}/sqlite3/
+
+post-test:
+	cd ${WRKBUILD}-tcl8 && \
+	env -i ${ALL_TEST_ENV} ${MAKE_PROGRAM} ${ALL_TEST_FLAGS} TCLSH_PROG=tclsh8.6 \
+	    -f ${MAKE_FILE} ${TEST_TARGET} ${TEST_LOG}-tcl8
+
+.PHONY: configure8
 
 .include <bsd.port.mk>
diff -Nurp /usr/ports//databases/sqlite3-tcl/pkg/PLIST ./pkg/PLIST
--- /usr/ports//databases/sqlite3-tcl/pkg/PLIST	Wed Nov 19 15:31:24 2025
+++ ./pkg/PLIST	Mon Jun 15 08:33:41 2026
@@ -1,6 +1,7 @@
 @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/