Dependencies relationship to default variants?

Ryan Schmidt ryandesign at macports.org
Fri Jul 11 01:02:34 PDT 2008


On Jul 10, 2008, at 23:50, Tabitha McNerney wrote:

> When I look at port dependencies for cyrus-sasl2 I get:
>
> $ port deps cyrus-sasl2
> cyrus-sasl2 has library dependencies on:
>     openssl
>     zlib
>
> When I look at file dependencies for cyrus-sasl2 I get:
>
> $ port info --depends_lib cyrus-sasl2 @2.1.21_0
> depends_lib: port:openssl, lib:libz:zlib
> and
>
> $ port info --depends_run cyrus-sasl2 @2.1.21_0
> no info for 'depends_run'
>
> and
>
> $ port info --depends_build cyrus-sasl2 @2.1.21_0
> no info for 'depends_build'

port info and port deps consider only the global definitions in the  
portfile, not any additions that might be made to the dependencies by  
any variant, even a variant that will be selected by default.


> but after installing cyrus-sasl2 (I never negate default variants),  
> I discovered this default variant:
>
> $ port installed cyrus-sasl2
> The following ports are currently installed:
>   cyrus-sasl2 @2.1.21_0+kerberos (active)
>
> Woah! Kerberos is a default variant? But there is no kerberos port,  
> there is only a port named "kerberos5". And there is nothing  
> regarding file dependencies about making use of a vendor's (e.g.,  
> Apple's) install of kerberos.
>
> I don't know how to interpret the meaning of the default variant in  
> the context of dependencies, given this example above.

I see this in the cyrus-sasl2 portfile:


default_variants	+kerberos

variant kerberos {
         if {[variant_isset darwin]} {
                 configure.args-append --enable-gssapi --with- 
gss_impl=mit
         }
         if {[variant_isset freebsd]} {
                 configure.args-append --enable-gssapi --with- 
gss_impl=heimdal
         }
}


So apparently Mac OS X includes the MIT GSS implementation, and  
FreeBSD includes the Heimdal GSS implementation, and cyrus-sasl2  
makes use of those. It looks like on other platforms, the kerberos  
variant will still be selected, but it will have no effect. Perhaps  
one of the cyrus-sasl2 maintainers can comment further.


> Also, is there any way (before installing a port) to use the port  
> command-line program to request a port's default variants  
> information? Or is the only way to obtain this information to parse  
> each port's Portfile and look for it that way?

You would like a way to know that the kerberos variant will be  
selected by default for this port? I'm not sure if there is a port  
command that will tell you that.


> The reason I ask is that I've been working on a very robust system  
> for tracking, maintaining and auditing MacPorts for use mostly on  
> Xserves. It has turned out to be quite a complicated process due to  
> the intertangling (graphs essentially) of dependencies, sequence of  
> installations, etc.




More information about the macports-users mailing list