From owner-freebsd-ports@FreeBSD.ORG Fri Apr 20 15:37:00 2012 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2FEC8106566B for ; Fri, 20 Apr 2012 15:37:00 +0000 (UTC) (envelope-from mezz.freebsd@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id E89888FC0C for ; Fri, 20 Apr 2012 15:36:59 +0000 (UTC) Received: by iahk25 with SMTP id k25so17666059iah.13 for ; Fri, 20 Apr 2012 08:36:59 -0700 (PDT) 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:content-transfer-encoding; bh=JKeFhfaSbX6NOYNEHRw/7laGJAJZpUJKnGsntHjyOGY=; b=Su7cHWyRAqhZxtytYEui6N1pFEvCaAt3sqKG9O0fK0ZRvDk8JoCHAfd57WWST8iEiy swDuZzc3L4QaX+H1PbS7CUNzq/ORM4DcXVO/KL0Rg+kgXvbHH62TwqEpRYueQ+UqmSas U3bb5eG5tk4avMSzWPBcNMphqW31fER0L5Af/Xf0lmbMphikX5IdI9GRQDNrb1nfjMHg 8N21GUePvohz9BFg6jcBmaihYH6Kf6Odo/Yr6szY9olL1FlCEIFoQCYt/ChZsxdYgtGD GcDbZ211ksrmeV+yXVrjUlkciHpa0t4nM3CisgG2H/AAhN4z1f+wjhnlp3FB5F+2v19F tHTw== MIME-Version: 1.0 Received: by 10.50.140.71 with SMTP id re7mr6549676igb.67.1334936219300; Fri, 20 Apr 2012 08:36:59 -0700 (PDT) Received: by 10.42.153.4 with HTTP; Fri, 20 Apr 2012 08:36:59 -0700 (PDT) In-Reply-To: <4F913A7C.7050601@gmail.com> References: <4F913A7C.7050601@gmail.com> Date: Fri, 20 Apr 2012 10:36:59 -0500 Message-ID: From: Jeremy Messenger To: Vitaly Magerya Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: freebsd-ports@freebsd.org, Chris Inacio Subject: Re: port dependencies with port options X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Apr 2012 15:37:00 -0000 On Fri, Apr 20, 2012 at 5:29 AM, Vitaly Magerya wrote: > Chris Inacio wrote: >> I wanted to add an option to multiple ports - that is easy. =A0But, thos= e >> ports have a dependency relationship, and I only want the last node in t= he >> port dependency graph to build with that option if the requisite ports h= ave >> too. >> >> In real terms: >> >> net/spread <- net/libfixbuf <- net-mgmt/yaf >> >> I added a SPREAD option to net/libfixbuf & to net-mgmt/yaf. =A0net-mgmt/= yaf >> can only build a Spread version if libfixbuf was built with a Spread >> version. >> >> Question 1) =A0How do you construct such that if a user goes into >> net-mgmt/yaf chooses Spread and fixbuf isn't already installed, it build= s >> fixbuf with the spread option? >> >> Question 2) How do you ensure that if fixbuf is already installed, it ha= s >> the Spread option enabled, or disallow/error the Yaf Spread option? > > One way to do this is to create a separate port net/libfixbuf-spread > that either installs separate libfixbuf-spread.so or just conflicts with > net/libfixbuf, and then make net-mgmt/yaf depend on that if SPREAD > option is on. Please do not create a split port that will end up conflict with the each others. It creates more problems rather than solve. Either split port without have conflict to the each others or enable SPREAD by default. If enable by default then add a check error if libfixbuf-spread.so does not exist then give user a head up to enable SPREAD back on. Split port without conflict is always best opinion, but if it's complicate to do it then do the enable SPREAD by default instead. Cheers, Mezz --=20 mezz.freebsd@gmail.com - mezz@FreeBSD.org FreeBSD GNOME Team http://www.FreeBSD.org/gnome/ - gnome@FreeBSD.org