port dependencies with port options

Jeremy Messenger mezz.freebsd at gmail.com
Fri Apr 20 17:03:48 UTC 2012


On Fri, Apr 20, 2012 at 10:52 AM, Chris Inacio <nacho319 at gmail.com> wrote:
>
>
> On Fri, Apr 20, 2012 at 11:36 AM, 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
>>
>>
>
> So let me see if I understand the conversation so far correctly:
>
> (*) If I want to detect it, then I would need something like a new library
> name output from from fixbuf based on the build.  (This currently doesn't
> exist.)

I don't have access to FreeBSD and CVS too due to firewall at work,
but if it doesn't has seperate library. I do not recommend to rename
the library and go with enable option by default instead.

If the spread is very small and doesn't has tons of dependency, you
can even have libfixbuf depends on spread by default without provide
option to turn off/on. Simple.

Cheers,
Mezz

> (*) I could do some split port, but (even being a noob) sounds pretty bad.
>
> (*) There isn't a current method that directly queries build options from
> one port to another.
>
> Am I capturing current state?
>
> Chris


More information about the freebsd-ports mailing list