From: Stuart Henderson Subject: Re: databases/sqlite3-tcl port and tcl9 To: Stuart Cassoff Cc: Chris Billington , ports@openbsd.org Date: Tue, 16 Jun 2026 16:07:42 +0100 On 2026/06/16 20:03, Chris Billington wrote: > > I'm not the biggest fan of a build stage in post-install, but it's > > probably better than other options here. > > > > nitpicking, but could you indent the lines after \ please? > > > > 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/ > > > > ok > > > If the formatting could be corrected, would anyone like to give a second OK? doesn't need a second ok, Stuart can commit himself and I've ok'd that with the indent change. On 2026/06/16 09:33, Stuart Cassoff wrote: > 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. > 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} ... > +.PHONY: configure8 this is getting a lot more hairy than i like...(i.e. it comes under the "other options" in "probably better than other options" that I mentioned before). it's in the same sort of area as bootstrap ports etc and we have various problems with those. > 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/ how horrible would it be to use a different directory for tcl8/tcl9 (e.g. lib/tcl9/...) to avoid the duplication? or I suppose it might be possible to do this: FLAVOR=tcl8 -> packaging only lib/tcl/sqlite3/libsqlite${VER}.so FLAVOR=tcl9 -> packaging only lib/tcl/sqlite3/libtcl9sqlite${VER}.so default -> depends on ,tcl8 and ,tcl9, and provides the other files (pkgIndex/manuals/etc) multi version support for libraries for languages in ports is really tricky to do nicely.