Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Jun 2012 11:11:49 +0200
From:      Olli Hauer <ohauer@FreeBSD.org>
To:        FreeBSD Ports <ports@FreeBSD.org>
Cc:        Baptiste Daroussin <bapt@FreeBSD.org>, Doug Barton <dougb@FreeBSD.org>, Olli Hauer <ohauer@FreeBSD.org>, Michael Scheidell <scheidell@FreeBSD.org>, Ganael LAPLANCHE <martymac@FreeBSD.org>, Matthew Seaman <matthew@FreeBSD.org>
Subject:   Re: optionsng and tinderbox?
Message-ID:  <4FE58855.6000607@FreeBSD.org>
In-Reply-To: <20120623081843.GC41054@ithaqua.etoilebsd.net>
References:  <4FE12F2D.9080302@FreeBSD.org> <20120620061136.GA79164@ithaqua.etoilebsd.net> <4FE1829D.6030109@FreeBSD.org> <20120620091321.GA83730@ithaqua.etoilebsd.net> <20120620094431.M12775@martymac.org> <20120620103412.GB83730@ithaqua.etoilebsd.net> <4FE1C1EA.8070901@FreeBSD.org> <20120621090226.M48537@FreeBSD.org> <4FE4AEFC.4070405@FreeBSD.org> <4FE51858.4010502@FreeBSD.org> <20120623081843.GC41054@ithaqua.etoilebsd.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2012-06-23 10:18, Baptiste Daroussin wrote:
> On Fri, Jun 22, 2012 at 06:14:00PM -0700, Doug Barton wrote:
>> On 06/22/2012 10:44, Olli Hauer wrote:
>>> On 2012-06-21 11:26, Ganael LAPLANCHE wrote:
>>>> On Wed, 20 Jun 2012 13:28:26 +0100, Matthew Seaman wrote
>>>>
>>>>> [...]
>>>>> Shouldn't make.conf / commandline settings override OPTIONSFILE rather
>>>>> than the other way round?  Seems there's not much point in being able to
>>>>> set options from make.conf unless that is so, as OPTIONSFILE would be
>>>>> created more often than not whenever make(1) was invoked in the port's
>>>>> directory.
>>>>
>>>> I think that command-line options should always override file ones, but
>>>> the main problem here is that we cannot distinguish what comes from the
>>>> command line from what comes from make.conf.
>>>>
>>>> What would sound logical to me would be the following order of precedence :
>>>>
>>>> make.conf -> overridden by option files -> overridden by command line
>>>
>>>
>>> This looks wrong to me.
>>>
>>> Options set in make.conf should not be overwritten by the option file
>>> else you don't need etc/make.conf at all.
>>
>> Right. make.conf and options files should be flipped in the example above.
>>
>>
>> Doug
>>
> Well the priority ordering the logical was to give the end word to the last user
> action.
> 
> It goes from global to specific
> 
> 1/ the global options (infrastructures) are applied
> 2/ the maintainer option (ports are applied)
> 3/ the user global options are applied (OPTIONS_{,UN}SET)
> 4/ the user ports options are applied (${UNIQUENAME}_{,UN}SET)
> 5/ the dialog (make config) options are applied
> 
> If that it looks not good to anyone, please comment (we can still change it) and
> please provide arguments.
> 
> regards,
> Bapt
> 


OK, in case of tinderbox or any other build system think about the following.

You do a build for production or testing and it is required to always use pgsql
and *really* avoid mysql (real use case in my prod builds, I don't care
about mysql only ports, I just stay away from them).

Now you create a fresh build and set the proper build options in build.xxx or
inject a make.conf via post-extract hook since there you want to define with
two statements the dependencies.
 - OPTIONS_UNSET+=MYSQL
 - OPTIONS_SET+=PGSQL

This will not work if the directives are overwritten by /4 and /5.
In case of ports-mgmt/tinderbox you will end with a mysql enabled tinderbox :(

To prevent this you have to go over a whole build and all configure dialogs to
make sure this settings are in place which is not practical, time consuming
and error prone.

Luckily at the moment /4 and /5 can be overwritten with the old WITH|OUT_$opt
directives since this logic is applied as last in bsd.options.mk

So ether fix the logic or keep the old WITH|OUT_$opt logic in bsd.options.mk
so we can use make.conf last file of defense.

--
Regards,
olli



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4FE58855.6000607>