Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 1 Sep 2013 08:21:37 -0500
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        Alexey Dokuchaev <danfe@FreeBSD.org>
Cc:        "svn-ports-head@freebsd.org" <svn-ports-head@freebsd.org>, "svn-ports-all@freebsd.org" <svn-ports-all@freebsd.org>, "ports-committers@freebsd.org" <ports-committers@freebsd.org>
Subject:   Re: svn commit: r325807 - in head: . Mk
Message-ID:  <A888D446-5B5B-4C48-9083-328F70653049@FreeBSD.org>
In-Reply-To: <20130901091427.GA77614@FreeBSD.org>
References:  <201308311356.r7VDu8N8094811@svn.freebsd.org> <20130831141013.GA27765@FreeBSD.org> <5221FA9D.7020005@FreeBSD.org> <20130901091427.GA77614@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Sep 1, 2013, at 4:14, Alexey Dokuchaev <danfe@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.
>>=20
>> make build-depends USE_PACKAGE_DEPENDS_ONLY
>>  This installs dependencies from packages only.
>=20
> 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 detail=
s
> of implementation) like some sort of hack, and that bothers me.
>=20
>> It has nothing to do with misspelling anything.
>=20
> 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).
>=20
>> 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!
>=20
> 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?
>=20
>> 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 me=
t.
>>=20
>> The PR has more information and linked patches which demonstrate the issu=
e:
>>=20
>> http://www.bayofrum.net/~crees/scratch/log.log
>>=20
>> With fix:
>>=20
>> http://www.bayofrum.net/~crees/scratch/loglog.log
>=20
> 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 =3D see those USE_PACKAGE_DEPEN=
DS*
> knobs.
>=20
> ./danfe



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A888D446-5B5B-4C48-9083-328F70653049>