Dynamic plists

Rob Farmer rfarmer at predatorlabs.net
Fri Apr 23 02:23:57 UTC 2010


On Thu, Apr 22, 2010 at 10:20 AM, Charlie Kester <corky1951 at comcast.net> wrote:
> On Thu 22 Apr 2010 at 08:48:55 PDT Rob Farmer wrote:
>>
>> On Wed, Apr 21, 2010 at 11:57 PM, Lars Engels <lars.engels at 0x20.net>
>> wrote:
>>>
>>> On Thu, Apr 22, 2010 at 08:18:29AM +0200, Dominic Fandrey wrote:
>>>>
>>>> On 22/04/2010 01:45, Rob Farmer wrote:
>>>> > I maintain math/scilab and am preparing to update it. This port has a
>>>> > huge plist (slightly under 15000 lines), hundreds of which change
>>>> > depending on what options are selected. It is a bit of a pain to
>>>> > update. The porters handbook makes vague reference to dynamic plists -
>>>> > so I was wondering, would this be a good idea? And if so, what is the
>>>> > best way to make one?
>>>>
>>>> You normally base it on the output of
>>>> ${FIND} -s PATH -type f
>>>> ${FIND} -d PATH -type d | ${SED} 's,^, at dirrm ,'
>>>>
>>>> Of course there's normally more to it, but that's the basic principle.
>>>>
>>>
>>> Or use auto-plist:
>>> http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi/portstools/auto-plist/
>>>
>>
>> Seems to have the same limitation of genplist - it doesn't address the
>> fact that the plist may change if OPTIONS change.
>
> I feel your pain.
> But tools like genplist and auto-plist might get you part of the way to
> your solution.  To get the rest of the way, you might need to write a
> custom maintenance script.
>
> Just thinking out loud here, but it seems you'll need to something
> similar to what mergemaster does:
>
> - enable all the options and use 'genplist create' to get a new plist
> - diff the previous portversion's plist and the new genplist
> - emit any lines that haven't changed
> - for lines that differ only in the presence of a PLIST_SUB variable at
>  the beginning of the old line, emit the old line
> - ignore any lines which exist only in the old plist
> - for lines that are new, prompt for a decision on what to do  (leave as
>  is or preface with one of a predetermined set of PLIST_SUB variables)

What I have been doing is running genplist with no options enabled, to
get a base plist, then turning them on one at a time and rerunning
genplist, placing the appropriate PLIST_SUB variable at the beginning
of any new lines, and then testing with random sets of options in
tinderbox.

Basically, the point of my message was just wondering if there is a
better way to be doing things. From the responses so far, it would
appear not, so I'll stick with this.

Thanks,
-- 
Rob Farmer

>
> This doesn't automate the whole process, but at least it reduces the
> manual inspection and intervention to the plist lines that really need
> it.
> This is only a first stab at the problem, so the steps I outlined
> probably need to be refined and debugged.
>
> Or maybe I'm just being stupid.  Wouldn't be the first time.  :)
> _______________________________________________
> freebsd-ports at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-ports
> To unsubscribe, send any mail to "freebsd-ports-unsubscribe at freebsd.org"
>


More information about the freebsd-ports mailing list