[OE-core] [PATCH v3 1/3] dbus: merge .bb and .inc
Patrick Ohly
patrick.ohly at intel.com
Thu Dec 3 07:46:41 UTC 2015
On Wed, 2015-12-02 at 16:47 +0000, Burton, Ross wrote:
>
> On 2 December 2015 at 16:27, Patrick Ohly <patrick.ohly at intel.com>
> wrote:
> I'm not sure about the "more complicated to do changes in
> external
> layers". Why is that?
>
> Quite the opposite, I found it useful that the version
> independent build
> rules (*) were in a .inc file and relied on including
> that .inc file in
> a "dbus-cynara" recipe which builds a specific fork of the
> source code
> [2].
>
> But I understand that this is an unusual usage of OE-core. As
> I didn't
> notice the change in time (it's in master now), I'll just copy
> the
> previous content of dbus.inc.
>
> When a bb and an inc are split the inc has to be considered some sort
> of ABI. For example, you couldn't remove a configure option that was
> removed in a new release from the .inc because older recipes that use
> the inc will still want it. Then of course on new recipes that
> triggers a QA warning. New options need to be added to the
> relevant .bb and not the inc, but then break if other users don't
> notice that they need to add options explicitly. Basically the idea
> of bb/inc seems good, and in some situations is useful (multiple
> recipes maintained *in the same place* sharing common code) but as a
> method of re-using packaging it's got many pitfalls,
Thanks for the explanation, I understand now better why relying on
a .inc file is not recommended ;-) However, it remains unclear to me why
its presence makes changes in external layers more complicated. Based on
what you said, these external layers should completely ignore that there
is a .inc file and just work with the .bb file. I'm just curious whether
I'm still missing something.
> especially as your recipe could include the .bb from oe-core directly
> or be a bbappend.
In the layer I am trying to be compatible with OE-core master, dizzy,
fido and jethro. That means I cannot "require
recipes-core/dbus/dbus_1.8.18.bb" because that file only exists on
master.
It is possible to use a dbus_%.bbappend and then make changes based on
the current $PV (this is how some other differences between the OE-core
branches are handled), but that is not so easy for dbus-cynara because
it is not just modifying dbus. It's a new recipe.
I guess a virtual package created from the dbus recipe could work, but
that sounds way too complex compared to just copying the dbus.inc file.
--
Best Regards, Patrick Ohly
The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.
More information about the Openembedded-core
mailing list