Openembedded Devel Discussions
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox