How can I override global OPTIONS_UNSET for specific port in make.conf? www/xcache

Marco Steinbach coco at executive-computing.de
Sat Jun 21 10:42:24 UTC 2014


Marco Steinbach wrote on 20.06.2014 02:06:
> Marco Steinbach wrote on 19.06.2014 23:49:
>> Miroslav Lachman schrieb:
>>> I don't need DOCS, EXAMPLES etc. for each port as I normaly do not 
>>> use them on servers.
>>> I have this line in make.conf
>>>
>>> OPTIONS_UNSET= X11 GUI CUPS DOCS EXAMPLES NLS
>>>
>>> Now I need www/xcache port installed with EXAMPLES.
>>> I tried following in make.conf:
>>>
>>> xcache_SET= EXAMPLES
>>>
>>> or
>>>
>>> xcache_SET_FORCE= EXAMPLES
>>>
>>> In both cases, xcache is installed without EXAMPLES.
>>>
>>> So how can I have globally disabled EXAMPLES and enable it only for 
>>> one specific port?
>>
>> After some testing, I think this could be a bug in the handling of 
>> PORTEXAMPLES / PORTDOCS, since flipping EXAMPLES / DOCS options (and 
>> any other options I tried) with these switches works as expected.
>>
>> I'll try and have a go at this.
>>
> 
> [...]
> 
> If a port does not explicitly define an option for a feature in its 
> Makefile, then a port specific setting for that option has no effect, 
> since it simply doesn't match against the options defined in the ports 
> Makefile.
> 
> IOW: If a port does not explicity define an EXAMPLES option, then a port 
> specific SET or UNSET for the EXAMPLES option in /etc/make.conf has no 
> effect.
> 
> Consequently, in the case of www/xcache, simply adding a dummy EXAMPLE 
> option to OPTIONS_DEFINE makes xcache_SET_FORCE=EXAMPLES work as 
> expected: It installs examples, overriding OPTIONS_UNSET_FORCE.
> 
> 
> Depending on ones point of view, one could say, that this works as 
> advertised.  But it's confusing and robs us of port specific _FORCE 
> flags in certain cases.
> 
> One possible solution could be, to have Mk/bsd.options.mk detect the use 
> of PORTEXAMPLES and PORTDOCS in a port, and then silently translate 
> these into DOCS / EXAMPLES options (adding them to 
> ${COMPLETE_OPTIONS_LIST}), if they're not present.
> 
> Without them popping up in a dialog, since that would be the maintainers 
> domain, and without persisting them, of course.
> 
> I'm still trying to wrap my head around these parts of the ports system, 
> though, in order to not accidentially break things.
> 
> MfG CoCo
> PS: I'm taking bapt@ out of the loop again, until we're either 
> completely stuck or are able to produce a patch.
> 
> 

I think I found a more simple way to do this.  Could you please try the 
attached patch ?

Thanks.

MfG CoCo
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: bsd.options.mk.patch
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20140621/04007ad0/attachment.ksh>


More information about the freebsd-ports mailing list