Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Jul 2006 08:19:37 -0600
From:      John E Hein <jhein@timing.com>
To:        Chuck Swiger <cswiger@mac.com>
Cc:        ports@freebsd.org
Subject:   Re: conflicting dependency
Message-ID:  <17599.37113.693799.8184@gromit.timing.com>
In-Reply-To: <44BF877E.70208@mac.com>
References:  <17598.52872.765184.211253@gromit.timing.com> <44BF877E.70208@mac.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Chuck Swiger wrote at 09:39 -0400 on Jul 20, 2006:
 > John E Hein wrote:
 > > Let's say there are two ports A & B.
 > > They both provide libfoo.so.1 (and so register CONFLICTS with each other).
 > > 
 > > Now port C wants to use libfoo (and doesn't care if it gets it
 > > from A or B).
 > > 
 > > What does port C list in it's LIB_DEPENDS?
 > 
 > Whichever one the author of port C chooses.
 > 
 > Quite often, at least for things like the BerkeleyDB, the author of port C 
 > will provide tunable OPTIONS or WITH_ or WITHOUT_ flags that you as the user 
 > of the port can tune to choose a particular version that you like.

Just for purposes of clarification, in this example, for purposes of
what C wants libfoo for, either libfoo from A or B will do.  C doesn't
care.


 > > What if it lists A and someone installs B... does A get registered as
 > > the dependency when C is installed even though A is not installed?
 > 
 > No, the port should be registered against B and not A, if B is installed.

I agree.  It should.  But how does the ports infrastructure accomplish
that?

If the porter listed A as the dependency and libfoo is already
installed via B, what is the mechanism in the ports infrastructure by
which B gets registered as the dependency?

B could have been installed 6 months ago before the user decided today
that he wants to use C.

Maybe there is no way right now to register the "installed"
alternative dependency automatically.


 > However, if a porter misses listing a necessary dependency, then
 > things can get a little confused, and running "pkgdb -F" might
 > help...

It's not that he missed listing a dependency.  The problem is that he
can't list both A & B - they conflict.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?17599.37113.693799.8184>