Default variants

Yves de Champlain yves at macports.org
Thu Aug 16 06:25:47 PDT 2007


Le 07-08-16 à 08:49, N_Ox a écrit :

>
> Le 16 août 07 à 13:47, Rainer Müller a écrit :
>
>> N_Ox wrote:
>>>
>>> Le 14 août 07 à 19:58, N_Ox a écrit :
>>>
>>>>
>>>> Le 12 août 07 à 05:28, N_Ox a écrit :
>>>>
>>>>> From what I've understood, the problem with default variants is  
>>>>> that
>>>>> if we do something like `port foo -bar` and that foo has
>>>>> `default_variants +bar`, if an upgrade of foo is released, then  
>>>>> `port
>>>>> upgrade foo` will enable bar variant because variant disabling are
>>>>> not saved and `default_variants +bar` will be evaluated.
>>>>>
>>>>> Is this really a problem?
>>>>> Can't we use the magic of the TCL interpreter and ignore the  
>>>>> call to
>>>>> default_variants procedure in upgrade variant?
>>>>>
>>>>> These were my $0.02 for tonight...
>>>>> ...I'll now take my pills and go to bed :p
>>>>>
>>>>
>>>> Another problem with default_variants are variant conflicts.
>>>> Something among those lines:
>>>>
>>>> variant apache2 {...}
>>>> variant apache conflicts apache2 {...}
>>>> default_variants +apache2
>>>>
>>>> and this port command:
>>>> port install +apache
>>>>
>>>> would produce an error because that would select apache and  
>>>> apache2.
>>>>
>>>> So here is my idea: let's create a new block named  
>>>> variant_group, or
>>>> variant_choice, or even both.
>>>>
>>>> variant_(group|choice) webserver {
>>>>     variant apache2 {...}
>>>>     variant apache {...}
>>>> }
>>>>
>>>> variant_group would tell us that we _can_ enable support for _one_
>>>> webserver, namely apache or apache2.
>>>> variant_choice would tell us that we _must_ enable support for  
>>>> _one_
>>>> webserver, namely apache or apache2.
>>>>
>>>> That's all for today.
>>>> Regards,
>>>>
>>>
>>> Almost all...
>>> I've forgotten something:
>>>
>>> default_variants +apache2 and port install +apache would not fail  
>>> and
>>> would automagically select apache instead of +apache2.
>>
>> No one commented on this yet, so I will do start the discussion. I  
>> think
>> this is a very reasonable idea to group variants to make it easier to
>> implement choices. I also remember that we have some port having a
>> choice between gnutls and openssl, so this is really a common use  
>> case.
>> But there is still the need to record disabled default variants in  
>> order
>> for this to work.
>>
>> Rainer
>
> As I've said in the very first mail of this discussion, I don't  
> think recording disabled default variants is really a problem.
> The only case it is one is during upgrade, and what I've said  
> should fix that.

It should also be noted that

port install foo -bar

will fail as -bar is not a recognized option.

yves





More information about the macports-dev mailing list