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
next prev parent 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