All of lore.kernel.org
 help / color / mirror / Atom feed
From: Esben Haabendal <eha@doredevelopment.dk>
To: openembedded-devel@lists.openembedded.org
Subject: Re: Eliminating dependency race-conditions (was Re: [PATCH] net-snmp: disable libnl use)
Date: Fri, 18 Mar 2011 06:29:03 +0100	[thread overview]
Message-ID: <1300426143.8862.0.camel@eha> (raw)
In-Reply-To: <1300395614.3026.2.camel@lenovo.internal.reciva.com>

On Thu, 2011-03-17 at 21:00 +0000, Phil Blundell wrote:
> On Thu, 2011-03-17 at 20:58 +0100, Esben Haabendal wrote:
> > There is a number of ways that I believe package based build
> > dependencies are better than recipe based.
> > 
> > a) It is possible to depend on parts of a recipe, which fx. is useful
> > when a recipe provides more than 1 library, where you might not want all
> > of them.
> 
> You'd still need to have built all of them (at least as far as the end
> of do_compile) though, right?

Of-course.  All recipes providing something for  a do_stage must be
build up till the do_package stage, so I can unpack the actual target
packages needed.

> In that case it doesn't seem as though
> installing the unnecessary ones in the sysroot is all that big a
> hardship.

It is not to save time, it is about controlling what goes into a build.
As many software packages scans for presence of various components
through the availability of headers and libraries, I believe it is
important to decide not just what goes into the stage directory, but
also what does not.  So in OE-lite, if I say I depend on libfoo, I do
not get foobar, just because it was built by the same recipe.

> > b) To build a recipe, you depend on some stuff which you don't need to,
> > or perhaps even really don't want to pass on to recipes depending on
> > this recipe.
> 
> Sorry, I don't understand what you're saying here.

Example:

I build recipe A.
Recipe A depends on package B-b from recipe B.
Recipe B depends on package C-c from recipe C, and D-d-native from
recipe D.
Recipe A only get's package B-b staged, unless the B-b package has
specified some build-time dependencies.

This is relevant both for target library and native tools dependencies.

> > c) KISS. Using the actual target packages for satisfying build-time
> > dependencies are a very simple approach, which I strongly believe will
> > make OE a better tool in the long run, by reducing complexity, and thus
> > lowering the bar for contributing to OE archictural work.
> 
> I agree with this, but it seems unrelated to the question of whether
> build dependencies should be specified in terms of recipes or output
> packages.

Yes, I get your point.  You could of-course still specify build
dependencies using recipe names/provides, and then just unpack all
target packages build by that recipe.

This would give you the major part of the KISS win I see, except for in
the dependency handling code of BitBake (and in the learning curve of OE
developers).  Keep in mind that by using packages for build-time
dependencies, the mechanism is exactly identical for run-time and
build-time dependencies.  Exactly the same code in BitBake handles both,
and the same mechanism needs to be understood.  This is also part of the
KISS win of doing it this way.

> > The maintenance headache you talk about is already there.  In OE-lite
> > build-time dependency 95% of the time just follow the run-time
> > dependencies, perhaps making it easier to maintain than OE, as we don't
> > have to think about another type of "item names" to depend on.
> 
> (How) do you deal with library package renaming in OE-lite?

What exactly do you mean?  (We are doing several things with library
package naming...)

/Esben





  reply	other threads:[~2011-03-18  5:31 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-11 11:04 [PATCH] net-snmp: disable libnl use Steffen Sledz
2011-03-11 13:05 ` Koen Kooi
2011-03-11 15:53   ` Steffen Sledz
2011-03-12  0:05     ` Khem Raj
2011-03-14  7:06       ` Steffen Sledz
2011-03-14 16:39         ` Khem Raj
2011-03-15  9:08 ` Eliminating dependency race-conditions (was Re: [PATCH] net-snmp: disable libnl use) Esben Haabendal
2011-03-15 22:03   ` Denys Dmytriyenko
2011-03-16  5:47     ` Eliminating dependency race-conditions Esben Haabendal
2011-03-16  6:22       ` Python-native dependency in libxml2 Ahsan, Noor
2011-03-16  7:08         ` Khem Raj
2011-03-16  7:28           ` Frans Meulenbroeks
2011-03-16  7:43             ` Khem Raj
2011-03-16  8:00               ` Frans Meulenbroeks
2011-03-16  8:05             ` Martin Jansa
2011-03-16  8:38               ` Ahsan, Noor
2011-03-17 10:40                 ` Ahsan, Noor
2011-03-18  7:41                   ` Ahsan, Noor
2011-03-18  8:38                     ` Martin Jansa
2011-03-18  9:47                       ` Koen Kooi
2011-03-18  9:01                     ` Frans Meulenbroeks
2011-03-16  6:35       ` Eliminating dependency race-conditions Frans Meulenbroeks
2011-03-15 23:15   ` Eliminating dependency race-conditions (was Re: [PATCH] net-snmp: disable libnl use) Graham Gower
2011-03-17 11:18   ` Phil Blundell
2011-03-17 14:43     ` Esben Haabendal
2011-03-17 14:52       ` Graeme Gregory
2011-03-17 15:24         ` Koen Kooi
2011-03-17 15:07       ` Phil Blundell
2011-03-17 17:52         ` Esben Haabendal
2011-03-17 18:05           ` Phil Blundell
2011-03-17 19:58             ` Esben Haabendal
2011-03-17 21:00               ` Phil Blundell
2011-03-18  5:29                 ` Esben Haabendal [this message]
2011-03-18 10:26                   ` Phil Blundell
2011-03-18 12:14                     ` Eliminating dependency race-conditions Esben Haabendal
2011-03-19  0:32                       ` Richard Purdie
2011-03-22  9:01                         ` Esben Haabendal
2011-03-23 20:31                           ` Frans Meulenbroeks
2011-03-19  0:18               ` Eliminating dependency race-conditions (was Re: [PATCH] net-snmp: disable libnl use) Richard Purdie
2011-03-22  9:00                 ` Eliminating dependency race-conditions Esben Haabendal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1300426143.8862.0.camel@eha \
    --to=eha@doredevelopment.dk \
    --cc=openembedded-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.