port dependencies with port options

Chris Rees utisoft at gmail.com
Fri Apr 20 15:56:21 UTC 2012


On 20 Apr 2012 16:37, "Jeremy Messenger" <mezz.freebsd at gmail.com> wrote:
>
> On Fri, Apr 20, 2012 at 5:29 AM, Vitaly Magerya <vmagerya at gmail.com>
wrote:
> > Chris Inacio wrote:
> >> I wanted to add an option to multiple ports - that is easy.  But, those
> >> ports have a dependency relationship, and I only want the last node in
the
> >> port dependency graph to build with that option if the requisite ports
have
> >> too.
> >>
> >> In real terms:
> >>
> >> net/spread <- net/libfixbuf <- net-mgmt/yaf
> >>
> >> I added a SPREAD option to net/libfixbuf & to net-mgmt/yaf.
 net-mgmt/yaf
> >> can only build a Spread version if libfixbuf was built with a Spread
> >> version.
> >>
> >> Question 1)  How do you construct such that if a user goes into
> >> net-mgmt/yaf chooses Spread and fixbuf isn't already installed, it
builds
> >> fixbuf with the spread option?
> >>
> >> Question 2) How do you ensure that if fixbuf is already installed, it
has
> >> 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
>

I agree with Jeremy here.

The easiest way to do this is to create a slave port of fixbuf, perhaps
libfixbuf-spread, and put WITH_SPREAD, and depend on that file.

I'm happy to help if you'd like a hand designing the slave.

Chris


More information about the freebsd-ports mailing list