Proposal: variants naming conventions

Yves de Champlain yves at macports.org
Sun Feb 11 10:12:32 PST 2007


Le 07-02-11 à 10:25, Randall Wood a écrit :

> I have noticed that most variants add or delete a configure flag in  
> the form of --enable-*/--disable-*/--with-*/--without-* and maybe  
> add or delete a related dependency.
>
> Therefore, I propose that all variants should fit the following forms:
>
> {en|dis}able_package: If a ported software package has optional  
> compile-time features, the user can give configure command line  
> options to specify whether to compile them. The options have one of  
> these forms:
> --enable-feature
> --disable-feature
> (Note that this is slightly different then how configure scripts  
> work[1]).
>
> with[out]_package: When a port requires, or can optionally use,  
> other ports that can be or already are installed. The user can give  
> configure command line options to specify which such external  
> software to use. A port can be written with options have one of  
> these forms:
> +with_package
> +without_package
> (Note that this is slightly different then how configure scripts  
> work[2]).
>
> (Most configure scripts allow these options to passed with further  
> information in the form of --option=arg where a reasonable default  
> is set if =arg is not specified. port can't handle that, so =arg is  
> not allowed in variant names and this proposal does not contemplate  
> changing that)
>
> Changing this variant structure has, I believe, the following  
> benefits:
>
> 1) Adding the verb enable/disable/use/with/without makes the  
> variant more meaningful to users. I know there have been comments  
> on the mailing list about the inability to comment on variants such  
> that 'port info' is capable of explaining what each variant does.  
> The verb will help address those complaints.
>
> 2) There are currently variants no-*, no_*, and no* These are  
> inconsistent and do not tell me (the user) if I am disabling a  
> feature (that some other port may depend on) or simply building the  
> port without using some other package.
>
> 3) Negative variants are confusing. with_*/without_* or enable_*/ 
> disable_* is more readable than +*/-* as an indicator of  what is  
> going on.

I agree on both the usefulness of this undertaking and the logic of  
this proposal.

However, two points are less clear for me :

1- You seem to propose "use" and "add" keywords, but I don't see  
their usefulness.  [en|dis]able and with[out] look plain perfect to  
me, unless there is somme case I miss.

2- My experience is that variant names should not include "-" because  
of the way arguments are parsed.  I always use underscore "_" because  
of that, but if I am wrong, I would be glad to know !

Finally, shouldn't ports build most of the functionnalities by  
default ?  Maybe it is a good time to say it again.

yves




More information about the macports-dev mailing list