Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Dec 2013 08:51:53 -0600
From:      Scot Hetzel <swhetzel@gmail.com>
To:        Erick Turnquist <jhujhiti@adjectivism.org>
Cc:        FreeBSD Ports <freebsd-ports@freebsd.org>
Subject:   Re: Resolving circular dependencies
Message-ID:  <CACdU%2Bf_iGTCzC1q7HUiprz5T4YRLF3n3Zm-ZagP8E=3fKKNvDw@mail.gmail.com>
In-Reply-To: <52B6352E.4050804@scrubbed.adjectivism.org>
References:  <52B6352E.4050804@scrubbed.adjectivism.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Dec 21, 2013 at 6:41 PM, Erick Turnquist
<jhujhiti@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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACdU%2Bf_iGTCzC1q7HUiprz5T4YRLF3n3Zm-ZagP8E=3fKKNvDw>