From owner-freebsd-ports@FreeBSD.ORG Sun Dec 22 14:51:54 2013 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 38ED0597 for ; Sun, 22 Dec 2013 14:51:54 +0000 (UTC) Received: from mail-ig0-x22e.google.com (mail-ig0-x22e.google.com [IPv6:2607:f8b0:4001:c05::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0928611E8 for ; Sun, 22 Dec 2013 14:51:53 +0000 (UTC) Received: by mail-ig0-f174.google.com with SMTP id hk11so19286263igb.1 for ; Sun, 22 Dec 2013 06:51:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=7xtzFpoBD16Dv2QNxiyAmDAYTx4LCJc13JgvazqiuSs=; b=VLrGTTbIhiHudJBYJ3A2m73ppq/tLpOkWbrs+5h2AfoDxM5GoIjjWerRjgWjLkfeHE 96RvCkuF5y/RQ1aO4iui3JB0/Ywu/7sDWxccwJl4Eqo8uCBPVwIx9XY1L3Xr0A7R4Ggc SvDVyEOZCn9XhQcgF3aMbSPYQFYjwMp6bMlwXU1evNJTmStpRFJwLdRMfN0bOhpAkV6N Rd0Q6Pobu5dkg7bWKUud+XVs659vgJoWJ0tMj0VQTc0Xc/WlvZhXt2RAuCsRdUQZaA6F Nforu244X0sLfF+2XyMSvqF76L3HbXvVvUu2i9GX7+0GukNNupcxOb8MrQLJSvj0ub+K XzXg== MIME-Version: 1.0 X-Received: by 10.50.141.133 with SMTP id ro5mr16384852igb.35.1387723913420; Sun, 22 Dec 2013 06:51:53 -0800 (PST) Received: by 10.50.127.232 with HTTP; Sun, 22 Dec 2013 06:51:53 -0800 (PST) In-Reply-To: <52B6352E.4050804@scrubbed.adjectivism.org> References: <52B6352E.4050804@scrubbed.adjectivism.org> Date: Sun, 22 Dec 2013 08:51:53 -0600 Message-ID: Subject: Re: Resolving circular dependencies From: Scot Hetzel To: Erick Turnquist Content-Type: text/plain; charset=ISO-8859-1 Cc: FreeBSD Ports X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Dec 2013 14:51:54 -0000 On Sat, Dec 21, 2013 at 6:41 PM, Erick Turnquist 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.