Forcing a variant to a variant

Ryan Schmidt ryandesign at macports.org
Thu Jun 4 16:18:13 PDT 2009


On Jun 4, 2009, at 18:08, Scott Haneda wrote:

> On Jun 4, 2009, at 4:01 PM, Ryan Schmidt wrote:
>
>> On Jun 4, 2009, at 17:49, Scott Haneda wrote:
>>
>>> I want to do this:
>>> variant clamav description {Enable virus scanning} {
>>>     depends_lib-append port:clamav +server
>>> }
>>>
>>> This errors on me, I assume as a result of the +server, which is  
>>> clamav just installs a startup item.
>>>
>>> Within my port, I will want to be able to do:
>>> port install assp +clamav and have the +server forced.
>>
>> It is not possible. This is issue #126.
>>
>> Consider requesting that the +server variant be removed from the  
>> clamav port, and a new port clamav-server be created instead. See  
>> the postgresql ports and (in a moment) the mysql5 port for  
>> examples of this strategy.
>
> Thanks.  So to get this straight, the desired goal is port  
> duplication outside of a few lines for a variant?
>
> clamav port
> code....
> code...
> more code....
> code....
> code...
> more code....
>
> clamav server port
> code....
> code...
> more code....
> ( startup item )
> code....
> code...
> more code....
>
> I think I understand why, and I think I understand the long term  
> goal here, but the above has me wondering a little.
>
> Is it a terrible idea to pop in a second startup item in which will  
> just instal the clamav startup item?  This seems messy to me, but  
> it also will get the job done.


The goal is not duplication, but separation, so that you can declare  
dependencies on those separate parts. The clamav port would then  
install everything clamav except the server component, and the clamav- 
server port would install only the clamav server component (and  
depend on the clamav port). See the postgresql83 and postgresql83- 
server ports, and the mysql5 and mysql5-server ports (now committed),  
for examples.





More information about the macports-dev mailing list