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
Date: Fri, 18 Mar 2011 13:14:56 +0100	[thread overview]
Message-ID: <87ei6439rz.fsf@eha.doredevelopment.dk> (raw)
In-Reply-To: <1300443987.9054.64.camel@phil-desktop> (Phil Blundell's message of "Fri, 18 Mar 2011 10:26:27 +0000")

Phil Blundell <philb@gnu.org> writes:

> On Fri, 2011-03-18 at 06:29 +0100, Esben Haabendal wrote:
>> 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.
>
> Right.  So, it seems to me that the appropriate way to attack the
> problem in OE is to start by doing exactly that: leave the syntax of
> DEPENDS alone for now, treat each entry in DEPENDS as meaning "all
> packages built by the named recipe", and then implement the per-recipe
> sysroot construction that I think we are agreed is highly desirable.

By doing it this way, I don't think we are getting much closer to the
second step (package-based build-time dependencies).  The OE-lite
implementation of per-recipe staging builds on top of package-based
build-time dependencies, so to do it the other way around, would imply
taking the sstate concept and extend it to do per-recipe sysroots.
After that, I believe you have exactly the same amount of development
left to get where OE-lite is in respect to package-based build-time
depencies and per-recipe staging.

As I see it, package-based build-time dependencies practically obsoletes
sstate.  So if we for a moment imagine that we have moved OE to have
sstate based per-recipe staging, we still have the same amount of work
to do in the following areas:

* Modifying BitBake and OE metadata to handle package-based build-time
  dependencies
* Modifying existing recipes to include package-based build-time
  dependency information

You can see the per-recipe staging as a postive side-effect of the
package-based build-time dependency implementation.

So why take the detour instead of just doing it?

> Then, as a later refinement, we could introduce a mechanism for
> specifying dependencies more precisely, at the package level rather than
> the recipe level.  We could do that either by extending the syntax of
> DEPENDS, something like:
>
> DEPENDS = "boost:boost-iostreams"
>
> (to say that you wanted just the boost-iostreams package from the boost
> recipe)

That is IMO just adding more cruft to OE.  Not really what we need.

> or, alternately, by introducing a new variable which would either
> supplement or replace DEPENDS.  Either of those would allow us to
> migrate to fine-grained dependencies without breaking existing recipes.

Sounds better.

Also, just as for run-time dependencies, the build-time package
dependencies is not necesarely the actual package names, but some
provides names, so having a "recipe:package" syntax really does not make
much sense.

>> > (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...)
>
> I was thinking of situations like the Debian package autonamer, ie the
> thing that causes glibc-dev to come out named "libc6-dev.ipk" or similar
> depending on the soname of the library that was built.  It seems like
> this would be a bit awkward to deal with if your dependencies were
> specified purely in terms of output packages.

As OE-lite is not OE, we are currently not supporting such type of
package renaming.  Let's leave that to Debian guys to fight with ;-)

But as we build-time dependencies are typically in the form of some
package "provides", it doesn't really matter if the package is renamed.

/Esben



  reply	other threads:[~2011-03-18 12:25 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
2011-03-18 10:26                   ` Phil Blundell
2011-03-18 12:14                     ` Esben Haabendal [this message]
2011-03-19  0:32                       ` Eliminating dependency race-conditions 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=87ei6439rz.fsf@eha.doredevelopment.dk \
    --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.