Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 1 Sep 2013 09:14:27 +0000
From:      Alexey Dokuchaev <danfe@FreeBSD.org>
To:        Bryan Drewery <bdrewery@FreeBSD.org>
Cc:        svn-ports-head@freebsd.org, svn-ports-all@freebsd.org, ports-committers@freebsd.org
Subject:   Re: svn commit: r325807 - in head: . Mk
Message-ID:  <20130901091427.GA77614@FreeBSD.org>
In-Reply-To: <5221FA9D.7020005@FreeBSD.org>
References:  <201308311356.r7VDu8N8094811@svn.freebsd.org> <20130831141013.GA27765@FreeBSD.org> <5221FA9D.7020005@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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).
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



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