Resolving circular dependencies

Scot Hetzel swhetzel at gmail.com
Sun Dec 22 14:51:54 UTC 2013


On Sat, Dec 21, 2013 at 6:41 PM, Erick Turnquist
<jhujhiti at adjectivism.org> wrote:
> Hi List,
>
> A few weeks ago, I submitted a patch to build security/krb5 with LDAP
> support (adding a dependency on security/openldap24-sasl-client). All was
> well.
>
> Now, I've realized that security/cyrus-sasl2 (which the OpenLDAP client
> depends on) is going to need a knob to control which Kerberos implementation
> to use. My first thought was to simply LIB_DEPENDS+=security/krb5, but that
> leaves me with a circle (need to install krb5 before building cyrus-sasl2,
> but can't install krb5's dependency openldap24-sasl-client without
> cyrus-sasl2).
>
> I've tried searching, but can't find any advice on resolving issues like
> this. I'm sure this sort of thing has been encountered before. What's the
> best way to deal with it?
>
The non-Poudriere of dealing with this is to:

1.  install security/cyrus-sasl2 with krb5 support disabled
2. install security/openldap24-sasl-client
3. install security/krb5 with LDAP enabled
4. re-install security/cyrus-sasl2 with krb5 support enabled

I looked thru the security/cyrus-sasl2/Makefile, and it currently
doesn't have a LIB_DEPENDS on any of the Kerberos ports.  So the above
doesn't create a circular dependency.

The best way to solve this would be to create 3 ports that would
create the appropriate gssapi mech:

security/cyrus-sasl2-mech-gssapi-base <- Kerberos Support from
/usr/lib/libkrb5.a
security/cyrus-sasl2-mech-gssapi-krb5 (slave port)
security/cyrus-sasl2-mech-gssapi-hemidal (slave port)

That way you could use Poudriere to build these 4 ports (cyrus-sasl2,
openldap24-sasl-client, krb5 and cyrus-sasl2-mech-gssapi-krb5).

Now if someone could sit down and code these mech ports. ;-)

-- 
DISCLAIMER:

No electrons were maimed while sending this message. Only slightly bruised.


More information about the freebsd-ports mailing list