Download raw body.
databases/sqlite3-tcl port and tcl9
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.
databases/sqlite3-tcl port and tcl9