Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 04 May 2015 10:18:37 -0400
From:      Lowell Gilbert <freebsd-ports-local@be-well.ilk.org>
To:        freebsd-ports@freebsd.org
Subject:   Re: Broken _DEPENDS logic
Message-ID:  <44k2wozarm.fsf@lowell-desk.lan>
In-Reply-To: <5546B03B.9050604@heuristicsystems.com.au> (Dewayne Geraghty's message of "Mon, 04 May 2015 09:33:15 %2B1000")
References:  <20150503043317.73FD0DAD@hub.freebsd.org> <44a8xlqv8x.fsf@lowell-desk.lan> <55469545.9000404@FreeBSD.org> <5546B03B.9050604@heuristicsystems.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
Dewayne Geraghty <dewayne.geraghty@heuristicsystems.com.au> writes:

> On 4/05/2015 7:38 AM, Matthew Seaman wrote:
>> On 03/05/2015 21:08, Lowell Gilbert wrote:
>>> But, generally, the answer to your question is "no," becuase it is often
>>> the case that more than one port can serve as a dependency for another
>>> port. Your suggestion amounts to saying that only one port can satisfy a
>>> dependency for another port, which is not the case.
>> You're correct as far as the ports goes, but not when you're dealing
>> with precompiled packages.  Once you've built the package, the
>> dependency on the specific version of the other port is baked into it.
>> That's something which is likely to change in the not too distant
>> future, but it's going to mean some fundamental changes in the ports in
>> order to bring about.
>>
>> At the moment, therefore, the advice for pkg users when you want to make
>> customizations like eg. using a different version of postfix is to set
>> up your onw instance of poudriere and build your own.
>>
> I read Lowell's issue as indirectly suggesting an enhancement to the
> packaging system.

That was not my intention.

> For the sake of the discussion, lets assume a dependency hierarchy of: X
> depends upon Y.
> While building X, rather than assume the prefix for Y, and test for the
> existence of a file installed by Y (and this is very often used), use
> pkg to ascertain the dependency's origin and lookup the prefix for Y,
> prior to the test.

Asking pkg doesn't work if, as is often the case, more than one port can
fill the dependency. Checking for a critical file works much better,
because the dependent port doesn't have to care whether it's depending
on a particular other port; as long as *something* installed the
functionality it needs, it's happy.

> And please can we not assume that everyone is using poudriere.

Matthew isn't *assuming* that; he's saying that it's the standard advice
for people who want to use packages with non-standard options. Once a
package set is built, the dependencies are "baked in," but how those are
built is irrelevant.  If you get your packages from someone else, you're
stuck with the configuration (including any optional dependencies) that
the "someone else" used in building them.



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