variants vs separate ports
Bradley Giesbrecht
brad at pixilla.com
Mon May 24 10:06:42 PDT 2010
On May 24, 2010, at 8:59 AM, Ryan Schmidt wrote:
> On May 24, 2010, at 10:29, Bradley Giesbrecht wrote:
>
>> I am working on a port where I must chose only one of five backend
>> systems.
>>
>> The port is a plugin for dovecot called antispam.
>> The five backends are:
>> crm114-exec
>> dspam-exec
>> mailtrain
>> signature-log
>> spool2dir
>>
>> I was going to create five separate ports and conflict each port
>> with the others.
>>
>> Optionally I could create one port with five variants and conflict
>> the variants with each other. If I use variants there must be one
>> and only one of the five backends chosen. I know I can conflict
>> variants but I do not know how to force a variant.
>>
>> From a naming and maintenance standpoint I like one port with five
>> variants vs five ports.
>>
>> dovecot-antispam
>>
>> vs
>>
>> dovecot-antispam-crm114
>> dovecot-antispam-dspam
>> dovecot-antispam-mailtrain
>> dovecot-antispam-signature
>> dovecot-antispam-spool2dir
>
> Conflicting variants is easy. Check out for example the
> GraphicsMagick port's quality variants (q8, q16, q32).
Right, conflicting is easy. I looked for variant_isset in port sources
and came up with this.
Would this be a reasonable way to ensure that a variant is set?
Keep in mind that ONE and ONLY ONE variant MUST be set.
pre-fetch {
if {![array size variations]} {
variant_set {mailtrain}
}
}
Port appears to handle misspelled or nonexistent variations so [array
size variations] seems to be zero if the user did not pass in valid
variations for this port. I mention this incase the user is installing
more then one package or if this port ever became a dependency and
variations for other ports are on the command line.
// Brad
More information about the macports-dev
mailing list