svn commit: r325807 - in head: . Mk

Bryan Drewery bdrewery at FreeBSD.org
Sun Sep 1 13:21:43 UTC 2013


On Sep 1, 2013, at 4:14, Alexey Dokuchaev <danfe at FreeBSD.org> wrote:

> On Sat, Aug 31, 2013 at 09:15:57AM -0500, Bryan Drewery wrote:
>> make build-depends USE_PACKAGE_DEPENDS
>>  This installs dependencies from packages if present, else, fallback on
>> source.
>> 
>> make build-depends USE_PACKAGE_DEPENDS_ONLY
>>  This installs dependencies from packages only.
> 
> Yes, that's how I understood it.  I still fail to see how it can be useful
> for regular ports users (vs. bulk builders like poudriere or tinderbox)

It is not intended to.

> Several things are immediately not clear to me: 1) as a ports user, I do
> not have any binary packages repositories around (except tinderbox cache);
> 2) even if I would, how can it be decided on per-ports basis what *user*
> wants to use, ports or packages: I don't see the reason to expose this at
> the ports' Makefile level; 3) it looks (even without looking at the details
> of implementation) like some sort of hack, and that bothers me.
> 
>> It has nothing to do with misspelling anything.
> 
> I was referring to the cases when wrongly spelled LIB_DEPENDS results in
> ports rebuilding already-installed-from-package dependencies because, say,
> package installs libfoo.so.4, but port says libfoo.so.3 because of missed
> shlib version bump.  In this case, build log would be polluted with the
> build of the dependency, which normally would not happen (only lines like
> "package libfoo-1.42 already installed" and "... depends on libfoo.so.4 -
> found" should be there).
> 
>> These are used to install dependencies from packages using the ports
>> framework. The alternative is to have the package building tool install
>> the dependencies themselves, which tinderbox _and_ portbuild do wrong!
> 
> Perhaps I don't quite understand this particular point here, but why not
> fix tinderbox/portbuild instead?  Are we talking about some really hard to
> track down and fix bug(s) here?
> 
>> The reason for _ONLY is that if a dependency failed to build, a port
>> would still, in some race-condition cases, run build-depends, not find
>> the dependency packages, then try to build them. Having no network
>> access, it would hit fetch errors; it shouldn't be building missing
>> dependencies, it should immediately fail because dependencies were not met.
>> 
>> The PR has more information and linked patches which demonstrate the issue:
>> 
>> http://www.bayofrum.net/~crees/scratch/log.log
>> 
>> With fix:
>> 
>> http://www.bayofrum.net/~crees/scratch/loglog.log
> 
> What I see exactly proves my point: these knobs belong inside the bulk
> builder, not in the ports' Makefiles.  If I would see, as a user, that I'm
> having some network problem, I would rather go and fix it, and continue
> to play with my ports.  This obviously may not work for bulk builders,
> but that's totally different use case and definitely not something normal
> ports users should case about or even know = see those USE_PACKAGE_DEPENDS*
> knobs.
> 
> ./danfe


More information about the svn-ports-all mailing list