Good idea but 8.6 will still be picked up
in a ports tree where Tcl/Tk default versions are 8.6
and the port Makefile contains MODTK_VERSION=8.5 if MODULES=lang/tcl x11/tk.
(x11/tk lang/tcl) would work).
A remedy would be to swap them around or set MODTCL_VERSION as well.

Only two ports with this problem; I doubt we'll see (or think about it) it much.

For the reasons above and prevention being better than cure, I propose 
something like:

Index: tk.port.mk
===================================================================
RCS file: /cvs/ports/x11/tk/tk.port.mk,v
retrieving revision 1.13
diff -u -p -u -p -r1.13 tk.port.mk
--- tk.port.mk  22 Jul 2018 01:49:25 -0000      1.13
+++ tk.port.mk  25 Jul 2018 00:56:28 -0000
@@ -1,5 +1,9 @@
 # $OpenBSD: tk.port.mk,v 1.13 2018/07/22 01:49:25 stu Exp $
 
+.if ${MODULES:Mlang/tcl}
+ERRORS += "Fatal: MODULES = lang/tcl or x11/tk but not both.\nChoose one and 
set MOD* variables accordingly."
+.endif
+
 CATEGORIES +=          x11/tk
 
 MODTK_VERSION ?=       8.5


Stu


> ---------- Original Message ----------
> From: Stuart Henderson <s...@spacehopper.org>
> Date: July 24, 2018 at 5:52 PM
> 
> 
> On 2018/07/24 12:32, Stuart Cassoff wrote:
> > Only one is needed. Having both can cause problems.
> > 
> > I found 2 ports (lang/pypy, systutils/libisoburn) with this problem, which 
> > can be seen:
> > $ cd /usr/ports/sysutils/libisoburn/ && make show=MODULES
> > lang/tcl x11/tk gnu lang/tcl
> > 
> > If MODULES=x11/tk then lang/tcl will be automatically added at the end.
> > 
> > A port with "MODULES = lang/tcl x11/tk" and "MODTK_VERSION=8.5"
> > will break if the default ports Tcl/Tk is 8.6
> > 
> > Using "MODULES=x11/tk" and "MODTK_VERSION=8.5" would be sufficient.
> > 
> > OK?
> > 
> > Stu
> > 
> > 
> > Index: Makefile
> > ===================================================================
> > RCS file: /cvs/ports/lang/pypy/Makefile,v
> > retrieving revision 1.30
> > diff -u -p -u -p -r1.30 Makefile
> > --- Makefile        15 Dec 2017 16:47:34 -0000      1.30
> > +++ Makefile        24 Jul 2018 16:19:50 -0000
> > @@ -55,7 +55,7 @@ DISTFILES +=              ${BOOTSTRAP-${MACHINE_ARCH
> >  # if adding archs, list *all* bootstraps in SUPDISTFILES
> >  SUPDISTFILES =             ${BOOTSTRAP-amd64}:0
> >  
> > -MODULES +=         lang/python lang/tcl x11/tk
> > +MODULES +=         lang/python x11/tk
> >  MODPY_VERSION =            2.7
> >  
> >  COMPILER =         base-clang ports-gcc
> > 
> > 
> > Index: Makefile
> > ===================================================================
> > RCS file: /cvs/ports/sysutils/libisoburn/Makefile,v
> > retrieving revision 1.1.1.1
> > diff -u -p -u -p -r1.1.1.1 Makefile
> > --- Makefile        19 Dec 2017 20:20:44 -0000      1.1.1.1
> > +++ Makefile        24 Jul 2018 16:20:35 -0000
> > @@ -22,7 +22,7 @@ MASTER_SITES =    http://files.libburnia-pr
> >  # GPLv2+
> >  PERMIT_PACKAGE_CDROM =     Yes
> >  
> > -MODULES =          lang/tcl x11/tk
> > +MODULES =          x11/tk
> >  
> >  LIB_DEPENDS-main = sysutils/libisofs \
> >                     sysutils/libburn
> > 
> 
> Makes sense, but how about making tk.port.mk more robust against this
> as well?
> 
> Index: tk.port.mk
> ===================================================================
> RCS file: /cvs/ports/x11/tk/tk.port.mk,v
> retrieving revision 1.12
> diff -u -p -r1.12 tk.port.mk
> --- tk.port.mk        2 Feb 2013 11:18:28 -0000       1.12
> +++ tk.port.mk        24 Jul 2018 21:52:32 -0000
> @@ -24,7 +24,9 @@ MODTK_CONFIG ?=             ${MODTK_LIBDIR}/tkConfi
>  
>  SUBST_VARS +=                MODTK_VERSION MODTK_BIN
>  
> +.if !${MODULES:Mlang/tcl}
>  MODULES +=           lang/tcl
> +.endif
>  
>  MODTK_BUILD_DEPENDS ?=       ${_MODTK_SPEC}:x11/tk/${MODTK_VERSION} \
>                       ${MODTCL_BUILD_DEPENDS}
> 
>

Reply via email to