Index | Thread | Search

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

Download raw body.

Thread
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.