Date: Fri, 20 Jun 2014 02:06:21 +0200 From: Marco Steinbach <coco@executive-computing.de> To: Miroslav Lachman <000.fbsd@quip.cz> Cc: FreeBSD Ports <ports@freebsd.org> Subject: Re: How can I override global OPTIONS_UNSET for specific port in make.conf? www/xcache Message-ID: <53A37AFD.3060302@executive-computing.de> In-Reply-To: <53A35AE9.8090702@executive-computing.de> References: <53A33F83.7050807@quip.cz> <53A35AE9.8090702@executive-computing.de>
next in thread | previous in thread | raw e-mail | index | archive | help
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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?53A37AFD.3060302>