Index | Thread | Search

From:
Stuart Cassoff <exokoide@yahoo.ca>
Subject:
textproc/tdom for Tcl 8 and 9
To:
OpenBSD Ports <ports@openbsd.org>
Date:
Fri, 7 Aug 2026 14:22:03 -0400

Download raw body.

Thread
  • Stuart Cassoff:

    textproc/tdom for Tcl 8 and 9

A linkable lib type port.



Build for Tcl 8 and 9.



diff -Nurp /usr/ports/textproc/tdom/Makefile ./Makefile
--- /usr/ports/textproc/tdom/Makefile	Sat Nov 15 07:30:26 2025
+++ ./Makefile	Fri Aug  7 11:56:38 2026
@@ -1,10 +1,14 @@
-COMMENT =		fast XML/DOM/XPath/XSLT/HTML/JSON extension for Tcl
+COMMENT =		fast XML/DOM/XPath/XSLT/HTML/JSON extension for Tcl ${MODTCL_COMMENT}
 
+REVISION =		0
+
 V =			0.9.6
 VER =			${V:S/.//g}
 
 DISTNAME =		tdom-${V}
-SHARED_LIBS =		tdom${VER} 0.0
+
+SHARED_LIBS =		${MODTCL_EXTLIB}tdom${VER} 0.0
+
 CATEGORIES =		textproc
 HOMEPAGE =		http://www.tdom.org/
 MAINTAINER =		Stuart Cassoff <stwo@users.sourceforge.net>
@@ -18,7 +22,6 @@ EXTRACT_SUFX =		-src.tgz
 WANTLIB =		expat
 
 MODULES =		lang/tcl
-MODTCL_VERSION =	8.6
 
 BUILD_DEPENDS =		${MODTCL_BUILD_DEPENDS}
 RUN_DEPENDS =		${MODTCL_RUN_DEPENDS}
@@ -26,22 +29,48 @@ RUN_DEPENDS =		${MODTCL_RUN_DEPENDS}
 FAKE_FLAGS =		PKG_DIR=tdom \
 			pkglibdir='$$(libdir)/tcl/$$(PKG_DIR)'
 
+TEST_FLAGS =		TESTFLAGS='${TESTFLAGS}'
+
 SEPARATE_BUILD =	Yes
 CONFIGURE_STYLE =	gnu
 
 CONFIGURE_ARGS +=	--with-tcl=${MODTCL_LIBDIR} \
 			--with-expat=/usr \
 			--disable-rpath \
-			SHLIB_VERSION=${LIBtdom${VER}_VERSION}
+			SHLIB_VERSION=${LIB${MODTCL_EXTLIB}tdom${VER}_VERSION}
 
 TEST_TARGET =		test
-SUBST_VARS =		VER
 
+SUBST_VARS =		VER MODTCL_EXTLIB MODTCL_EXT8 MODTCL_EXT9
+
 WRKDIST =		${WRKDIR}/${DISTNAME}-src
 
+# Use TESTFLAGS to control the Tdom tests
+TESTFLAGS =
+
+FLAVORS = tcl8
+FLAVOR ?=
+
+.if ${FLAVOR:Mtcl8}
+MODTCL_VERSION =	8.6
+.else
+MODTCL_VERSION =	9
+INSTALL_TARGET =	all install-lib-binaries
+RUN_DEPENDS +=		textproc/tdom,tcl8
+TEST_FLAGS +=		TCLSH_PROG=${MODTCL_BIN}
+.endif
+
+.if ${FLAVOR:Mtcl8}
 post-install:
 	${INSTALL_DATA_DIR} ${DESTDIR}${MODTCL_MODDIR}/86
 	${INSTALL_DATA} ${WRKSRC}/extensions/tdomhtml/tdomhtml.tcl \
 		${DESTDIR}${MODTCL_MODDIR}/86/tdomhtml-0.1.0.tm
+.else
+post-install:
+	rm ${WRKINST}${MODTCL_TCLDIR}/tdom/{pkgIndex.tcl,tdom.tcl}
+	${INSTALL_DATA_DIR} ${WRKINST}${MODTCL_TCLDIR}/tdom/tcl9
+	mv ${WRKINST}${MODTCL_TCLDIR}/tdom/tdomConfig.sh \
+	    ${WRKINST}${MODTCL_TCLDIR}/tdom/tcl9/
+.endif
 
 .include <bsd.port.mk>
diff -Nurp /usr/ports/textproc/tdom/patches/patch-configure ./patches/patch-configure
--- /usr/ports/textproc/tdom/patches/patch-configure	Sat Nov 15 07:30:26 2025
+++ ./patches/patch-configure	Thu Aug  6 11:34:20 2026
@@ -1,8 +1,20 @@
-Set this here so it propagates through everything.
+Libs go in ${LOCALBASE}/lib.
+Consistent naming convention for stub libs.
+Set here to propagate through everything.
 
+
 Index: configure
 --- configure.orig
 +++ configure
+@@ -9066,7 +9066,7 @@ $as_echo "#define TCL_MAJOR_VERSION 8" >>confdefs.h
+ 	fi
+ 	# Some packages build their own stubs libraries
+ 	if test "${TCL_MAJOR_VERSION}" -gt 8 -a x"${with_tcl8}" = x; then
+-	    eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_LIB_PREFIX8}${PACKAGE_NAME}stub.a"
++	    eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_LIB_PREFIX9}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+ 	else
+ 	    eval eval "PKG_STUB_LIB_FILE=lib${PACKAGE_LIB_PREFIX8}${PACKAGE_NAME}stub${UNSHARED_LIB_SUFFIX}"
+ 	fi
 @@ -9322,7 +9322,7 @@ TDOMSHELL=tcldomsh
      #--------------------------------------------------------------------
  
@@ -12,3 +24,13 @@ Index: configure
      if test "${TCL_LIB_VERSIONS_OK}" = "ok"; then
  	eval tdom_LIB_FLAG="-ltdom${PACKAGE_VERSION}"
  	eval tdom_STUB_LIB_FLAG="-ltdomstub${PACKAGE_VERSION}"
+@@ -9331,7 +9331,8 @@ TDOMSHELL=tcldomsh
+ 	eval tdom_STUB_LIB_FLAG="-ltdomstub`echo ${PACKAGE_VERSION} | tr -d .`"
+     fi
+     if test "${TCL_MAJOR_VERSION}" -gt 8 -a x"${with_tcl8}" = x; then
+-	eval tdom_STUB_LIB_FLAG="-ltdomstub"
++	eval tdom_LIB_FLAG="-ltcl9tdom`echo ${PACKAGE_VERSION} | tr -d .`"
++	eval tdom_STUB_LIB_FLAG="-ltcl9tdomstub`echo ${PACKAGE_VERSION} | tr -d .`"
+     fi
+ 
+     tdom_BUILD_LIB_SPEC="-L`$CYGPATH $(pwd)` ${tdom_LIB_FLAG}"
diff -Nurp /usr/ports/textproc/tdom/pkg/PLIST ./pkg/PLIST
--- /usr/ports/textproc/tdom/pkg/PLIST	Sat Nov 15 07:30:26 2025
+++ ./pkg/PLIST	Thu Aug  6 11:53:00 2026
@@ -1,18 +1,21 @@
-include/tdom.h
-@lib lib/libtdom${VER}.so.${LIBtdom${VER}_VERSION}
-@static-lib lib/libtdomstub${VER}.a
-lib/tcl/modules/86/tdomhtml-0.1.0.tm
-lib/tcl/tdom/
-lib/tcl/tdom/pkgIndex.tcl
-lib/tcl/tdom/tdom.tcl
-lib/tcl/tdom/tdomConfig.sh
-@man man/mann/dom.n
-@man man/mann/domDoc.n
-@man man/mann/domNode.n
-@man man/mann/expat.n
-@man man/mann/expatapi.n
-@man man/mann/pullparser.n
-@man man/mann/schema.n
-@man man/mann/tdomcmd.n
-@man man/mann/tnc.n
-@man man/mann/xpathFunc.n
+@option no-default-conflict
+${MODTCL_EXT8}include/tdom.h
+@lib lib/lib${MODTCL_EXTLIB}tdom${VER}.so.${LIB${MODTCL_EXTLIB}tdom${VER}_VERSION}
+@static-lib lib/lib${MODTCL_EXTLIB}tdomstub${VER}.a
+${MODTCL_EXT8}lib/tcl/modules/86/tdomhtml-0.1.0.tm
+${MODTCL_EXT8}lib/tcl/tdom/pkgIndex.tcl
+${MODTCL_EXT8}lib/tcl/tdom/tdom.tcl
+${MODTCL_EXT8}lib/tcl/tdom/tdomConfig.sh
+${MODTCL_EXT8}@man man/mann/dom.n
+${MODTCL_EXT8}@man man/mann/domDoc.n
+${MODTCL_EXT8}@man man/mann/domNode.n
+${MODTCL_EXT8}@man man/mann/expat.n
+${MODTCL_EXT8}@man man/mann/expatapi.n
+${MODTCL_EXT8}@man man/mann/pullparser.n
+${MODTCL_EXT8}@man man/mann/schema.n
+${MODTCL_EXT8}@man man/mann/tdomcmd.n
+${MODTCL_EXT8}@man man/mann/tnc.n
+${MODTCL_EXT8}@man man/mann/xpathFunc.n
+${MODTCL_EXT8}lib/tcl/tdom/
+${MODTCL_EXT9}lib/tcl/tdom/tcl9/
+${MODTCL_EXT9}lib/tcl/tdom/tcl9/tdomConfig.sh