Re: Tcl extensions for Tcl 8 and 9
Stuart Henderson <[email protected]>
| Newsgroups | gmane.os.openbsd.ports |
|---|---|
| Message-ID | <1a02f0baf10.288f.545c230b3f27d53b49609e7db70685b8@spacehopper.org> |
seems ok, let's give it a go, if we find we need something else or it's too hard to work with we can change it -- Sent from a phone, apologies for poor formatting. On 22 August 2026 14:33:59 Stuart Cassoff <[email protected]> wrote: > Hi, I'd like to know if I'm on the right track with this. > To me it looks good; I'm quite pleased with how it turned out. > I'd like to finish this up and get some ports working with Tcl 8/9. > > > Stu > > > On Fri, 7 Aug 2026, Stuart Cassoff wrote: > >> On Wed, 8 Jul 2026, Stuart Henderson wrote: >> > An important part of this is that where you have a file where the >> > names differ for Tcl8/Tcl9 but it's broadly equivalent (i.e. the >> > loadable .so, or the linkable library), it's represented by a >> > single PLIST entry that uses variables to expand to the relevant >> > filename for the current flavour. >> > >> > You just want to have an @comment/"" variable to 'turn off' the >> > files that you don't want in one of the flavours, rather than using >> > them for "either/or" lines in PLISTs. >> > >> > That way you just need to make sure you're using the correct flavour >> > (presumably Tcl9) which includes pkgIndex etc when you generate the >> > PLIST, and life is much much easier for updates/new ports. Otherwise >> > you need to reinstate the lines for the other of the "either/or" >> > options (or deal with a PLIST and a couple of PFRAG files). >> > >> >> The comment var might be too much. >> >> >> >> New variables for Tcl 8/9 ports. >> >> >> >> Index: tcl.port.mk >> =================================================================== >> RCS file: /cvs/ports/lang/tcl/tcl.port.mk,v >> diff -u -p -u -p -r1.22 tcl.port.mk >> --- tcl.port.mk 16 Mar 2026 15:44:31 -0000 1.22 >> +++ tcl.port.mk 7 Aug 2026 14:11:30 -0000 >> @@ -24,6 +24,18 @@ MODTCL_RUN_DEPENDS ?= ${_MODTCL_SPEC}:la >> MODTCL_LIB_DEPENDS ?= ${_MODTCL_SPEC}:lang/tcl/${MODTCL_VERSION} >> MODTCL_WANTLIB ?= ${MODTCL_LIB} >> >> +# For Tcl 8/9 ports. >> +.if "${MODTCL_VERSION}" == "9" >> +MODTCL_EXTLIB = tcl9 >> +MODTCL_EXT8 = "@comment " >> +MODTCL_EXT9 = >> +MODTCL_COMMENT = (Tcl9) >> +.else >> +MODTCL_EXTLIB = >> +MODTCL_EXT8 = >> +MODTCL_EXT9 = "@comment " >> +MODTCL_COMMENT = (Tcl8) >> +.endif >> >> # Handle the two most commonly used methods >> # for starting up executable Tcl scripts. >> >> >> >> >> Index: port-modules.5 >> =================================================================== >> RCS file: /cvs/src/share/man/man5/port-modules.5,v >> diff -u -p -u -p -r1.286 port-modules.5 >> --- port-modules.5 25 Jun 2026 07:30:43 -0000 1.286 >> +++ port-modules.5 7 Aug 2026 14:11:51 -0000 >> @@ -1097,6 +1097,14 @@ Sets >> .Ev MODTCL_LIB_DEPENDS , >> and >> .Ev MODTCL_LIB . >> +Also sets >> +.Ev MODTCL_EXTLIB , >> +.Ev MODTCL_EXT8 , >> +.Ev MODTCL_EXT9 , >> +and >> +.Ev MODTCL_COMMENT , >> +for Tcl 8/9 ports. >> +See textproc/tdom and x11/dbus-tcl. >> .Ev MODTCL_VERSION >> is the default version used by all Tcl ports and may be overridden. >> Provides >> >>