Date: Thu, 20 Jul 2006 10:44:41 -0400 From: Chuck Swiger <cswiger@mac.com> To: John E Hein <jhein@timing.com> Cc: ports@freebsd.org Subject: Re: conflicting dependency Message-ID: <44BF96D9.5080100@mac.com> In-Reply-To: <17599.37113.693799.8184@gromit.timing.com> References: <17598.52872.765184.211253@gromit.timing.com> <44BF877E.70208@mac.com> <17599.37113.693799.8184@gromit.timing.com>
next in thread | previous in thread | raw e-mail | index | archive | help
John E Hein wrote: > 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. That's right. Plenty of software will work with anything from BDB-1.85 through 4.x, for example. >>> 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? It uses pkg_which to figure out which port the file being depended upon actually comes from. > 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? The package database keeps track of all files installed by ports and knows which port installed which file. See "man pkg_which". -- -Chuck
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44BF96D9.5080100>