So, is this ok? I think it's ok or very close to ok.
It would be nice to get over this hurdle.
Stu
On 04/09/14 17:58, Stuart Cassoff wrote:
> On 12/08/13 09:23, Marc Espie wrote:
>> On Sun, Dec 08, 2013 at 08:41:23AM -0500, Stuart Cassoff wrote:
>>> On 12/07/13 16:42, Marc Espie wrote:
>>>> On Sat, Dec 07, 2013 at 03:39:28PM -0500, Stuart Cassoff wrote:
>>>>> On 12/05/13 05:36, Marc Espie wrote:
>>>>>> On Thu, Dec 05, 2013 at 01:26:47AM -0500, Stuart Cassoff wrote:
>>>>>>> I'd like tcllib and tklib to make use of 'tcl modules'.
>>>>>>> Every package that can be installed as a tcl module saves one file and
>>>>>>> one dir
>>>>>>> and there are enough eligible packages that I think it's worth doing.
>>>>>>> This makes use of a newer tcl packaging system that's a bit better
>>>>>>> and/or faster.
>>>>>>>
>>>>>>> These should always be installend in the dir for lowest tcl version
>>>>>>> possible, which is 8.5.
>>>>>>> I'm concerned that ${MODTK_VERSION} in the PLIST isn't right.
>>>>>>>
>>>>>>> Here's the result for one package:
>>>>>>
>>>>>> So, make sure to look at the result of update-plist, it's not always
>>>>>> right.
>>>>>>
>>>>>
>>>>> How's this? Snippet from the port Makefile diff.
>>>>>
>>>>> +# We want the lowest Tcl version possible.
>>>>> +MODTK_VERSION = 8.5
>>>>> +
>>>>> +# Manual target to adjust PLIST after update-plist.
>>>>> +adj-plist:
>>>>> + perl -pi -e 's/\$${MODTK_VERSION}/8.5/' ${PKGDIR}/PLIST
>>>>> +
>>>> YUCK. A big *NO*.
>>>>
>>>> Did you try the approach I outlined ? Namely provide longer module
>>>> variables
>>>> that would be FIRST in the substituted list.
>>>>
>>
>>> It confused and frightened me.
>>>
>>> Eventually I manned-up and so with your approach I get this in the PLIST:
>>>
>>> lib/tcl/${MODTK_MODPATH}/autoscroll-1.1.tm
>>>
>>> Which I don't understand much more.
>>>
>>> Either way I get the same package file so maybe I don't actually have a
>>> problem here?
>>
>> Maybe you don't understand it much more, but it's cleaner, in as much
>> as there's no extra step to fix the plist after update-plist.
>>
>> ... and it will fix the same problem in (potentially) other ports, without
>> you needing to special-case each and every port.
>>
>
> Ok I understand now, thanks.
>
> How's this? Should there be a MODTK_MINVERSION as well?
>
>
> Index: lang/tcl/tcl.port.mk
> ===================================================================
> RCS file: /cvs/ports/lang/tcl/tcl.port.mk,v
> retrieving revision 1.16
> diff -u -p -u -p -r1.16 tcl.port.mk
> --- lang/tcl/tcl.port.mk 17 Nov 2013 11:08:03 -0000 1.16
> +++ lang/tcl/tcl.port.mk 9 Apr 2014 21:26:05 -0000
> @@ -3,6 +3,7 @@
> CATEGORIES += lang/tcl
>
> MODTCL_VERSION ?= 8.5
> +MODTCL_MINVERSION ?= 8.5
>
> .if ${MODTCL_VERSION} == 8.4
> _MODTCL_SPEC = tcl->=${MODTCL_VERSION},<8.5
> @@ -43,4 +44,4 @@ MODTCL_TCLSH_ADJ = perl -pi \
> # Same for 'wish'.
> MODTCL_WISH_ADJ = ${MODTCL_TCLSH_ADJ:S/tclsh/wish/}
>
> -SUBST_VARS += MODTCL_VERSION MODTCL_BIN
> +SUBST_VARS += MODTCL_MINVERSION MODTCL_VERSION MODTCL_BIN
> Index: x11/tk/tk.port.mk
> ===================================================================
> RCS file: /cvs/ports/x11/tk/tk.port.mk,v
> retrieving revision 1.12
> diff -u -p -u -p -r1.12 tk.port.mk
> --- x11/tk/tk.port.mk 2 Feb 2013 11:18:28 -0000 1.12
> +++ x11/tk/tk.port.mk 9 Apr 2014 21:26:55 -0000
> @@ -22,7 +22,7 @@ MODTK_LIBDIR ?= ${MODTCL_TCLDIR}/tk${MO
> MODTK_CONFIG ?= ${MODTK_LIBDIR}/tkConfig.sh
>
>
> -SUBST_VARS += MODTK_VERSION MODTK_BIN
> +SUBST_VARS += MODTCL_MINVERSION MODTK_VERSION MODTK_BIN
>
> MODULES += lang/tcl
>
>
>
> Index: port-modules.5
> ===================================================================
> RCS file: /cvs/src/share/man/man5/port-modules.5,v
> retrieving revision 1.172
> diff -u -p -u -p -r1.172 port-modules.5
> --- port-modules.5 2 Apr 2014 15:00:27 -0000 1.172
> +++ port-modules.5 9 Apr 2014 21:24:27 -0000
> @@ -933,8 +933,9 @@ Sets
> .Ev MODTCL_RUN_DEPENDS ,
> .Ev MODTCL_LIB ,
> .Ev MODTCL_LIB_DEPENDS ,
> +.Ev MODTCL_CONFIG
> and
> -.Ev MODTCL_CONFIG .
> +.Ev MODTCL_MINVERSION .
> .Ev MODTCL_VERSION
> is the default version used by all Tcl ports and may be overridden.
> Provides
> @@ -946,6 +947,10 @@ Also affects
> .Ev CATEGORIES
> and
> .Ev SUBST_VARS .
> +.Ev MODTCL_MINVERSION
> +may be used to prevent unwanted
> +.Ev MODTCL_VERSION
> +substitutions in PLISTs.
> .It perl
> This module is documented in the main
> .Xr bsd.port.mk 5
>
>
>