Openembedded Core Discussions
 help / color / mirror / Atom feed
* Coordinating inter-layer dependencies
@ 2011-12-01 11:23 Koen Kooi
  2011-12-01 12:24 ` Martin Jansa
                   ` (2 more replies)
  0 siblings, 3 replies; 29+ messages in thread
From: Koen Kooi @ 2011-12-01 11:23 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 1675 bytes --]

Hi,

During the past month there have been a number of updates to OE-core recipes that triggered parsing errors due to bbappend in other layers. A small seleciton:

* netbase
* libdrm
* xserver-xorg
* clutter

My view is that layer maintainers need to keep an eye on potential breakage and have updates ready when patches land into OE-core. Looking back I can see that while the situation is improving a bit, it's still not working. The problem with slow updates to layers is that (with my angstrom hat on) users (and with my TI hat on) customers and coworkers can't do builds without rm'ing the bbappends or disabling the layer.

This is bad for a number of reasons:

1) It creates unmanaged local diffs
2) it can cause PR to fluctuate back and forth if you rm is a bit overzealous or if you disable the complete layer.

My proposal is that OE-core recipe upgrades with known bbappends look like this:

1) add new version with a warning about bbappends
2) wait a N days (2 < N < 7)
3) delete old version

To avoid stressing out RP and Sau! I would strongly urge layer maintainers to respond to recipe update patches with "I have a bbappend, but my review process needs time, please use the above proposal" if you need time to test and update  your bbappends.

We're all human in the end and timezone differences aren't always helping with these kinds of problems, so let's work together to minimize parsing breakage.

Related to that: Please include information on how to send patches upstream in your layer/repo README. The meta-intel/emenlow lacks that and the top level README doesn't mention that there are sublevel READMEs.

regards,

Koen

[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 169 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 11:23 Coordinating inter-layer dependencies Koen Kooi
@ 2011-12-01 12:24 ` Martin Jansa
  2011-12-01 12:37   ` Richard Purdie
  2011-12-01 19:55 ` McClintock Matthew-B29882
  2011-12-08  0:17 ` Richard Purdie
  2 siblings, 1 reply; 29+ messages in thread
From: Martin Jansa @ 2011-12-01 12:24 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 2625 bytes --]

On Thu, Dec 01, 2011 at 12:23:08PM +0100, Koen Kooi wrote:
> Hi,
> 
> During the past month there have been a number of updates to OE-core recipes that triggered parsing errors due to bbappend in other layers. A small seleciton:
> 
> * netbase
> * libdrm
> * xserver-xorg
> * clutter
> 
> My view is that layer maintainers need to keep an eye on potential breakage and have updates ready when patches land into OE-core. Looking back I can see that while the situation is improving a bit, it's still not working. The problem with slow updates to layers is that (with my angstrom hat on) users (and with my TI hat on) customers and coworkers can't do builds without rm'ing the bbappends or disabling the layer.
> 
> This is bad for a number of reasons:
> 
> 1) It creates unmanaged local diffs
> 2) it can cause PR to fluctuate back and forth if you rm is a bit overzealous or if you disable the complete layer.
> 
> My proposal is that OE-core recipe upgrades with known bbappends look like this:
> 
> 1) add new version with a warning about bbappends
> 2) wait a N days (2 < N < 7)
> 3) delete old version
> 
> To avoid stressing out RP and Sau! I would strongly urge layer maintainers to respond to recipe update patches with "I have a bbappend, but my review process needs time, please use the above proposal" if you need time to test and update  your bbappends.
> 
> We're all human in the end and timezone differences aren't always helping with these kinds of problems, so let's work together to minimize parsing breakage.

That's exactly the reason why I'm using contrib/shr branches and my
setup scripts are updating only from contrib/shr, so I can push changes
to all related branches almost at once and when they are ready.

Sometimes it means extra patches in contrib/shr which are not yet in
master (and sometimes they are on ML already) sometimes it means that
I'm waiting with pulling newer master to shr branch before I prepare
corresponding changes in meta-smartphone (this was the case ie for last
libdrm upgrade). But to test corresponding changes sometimes takes many
hours to even build it...

A while back I've proposed to make .bbappend without corresponding .bb
only big fat warning, but not fatal to parse. Now you cannot even build
eglibc if there is libdrm bbappend you don't care at all about..

Of course if someone ignores big fat warning and build libdrm without
bbappend and then his mesa build is failing, he has to go back and
cleansstate libdrm to build it again properly.

Regards,

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 12:24 ` Martin Jansa
@ 2011-12-01 12:37   ` Richard Purdie
  2011-12-01 12:59     ` Otavio Salvador
  0 siblings, 1 reply; 29+ messages in thread
From: Richard Purdie @ 2011-12-01 12:37 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Thu, 2011-12-01 at 13:24 +0100, Martin Jansa wrote:
> A while back I've proposed to make .bbappend without corresponding .bb
> only big fat warning, but not fatal to parse. Now you cannot even build
> eglibc if there is libdrm bbappend you don't care at all about..

You can do this by setting:

BB_DANGLINGAPPENDS_WARNONLY

Cheers,

Richard




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 12:37   ` Richard Purdie
@ 2011-12-01 12:59     ` Otavio Salvador
  2011-12-01 13:02       ` Richard Purdie
  2011-12-01 13:07       ` Martin Jansa
  0 siblings, 2 replies; 29+ messages in thread
From: Otavio Salvador @ 2011-12-01 12:59 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 828 bytes --]

On Thu, Dec 1, 2011 at 10:37, Richard Purdie <
richard.purdie@linuxfoundation.org> wrote:

> On Thu, 2011-12-01 at 13:24 +0100, Martin Jansa wrote:
> > A while back I've proposed to make .bbappend without corresponding .bb
> > only big fat warning, but not fatal to parse. Now you cannot even build
> > eglibc if there is libdrm bbappend you don't care at all about..
>
> You can do this by setting:
>
> BB_DANGLINGAPPENDS_WARNONLY
>

This is even worse; you end up with a package without the changes done on
the bbappend and as most bbappend files do not change PR, adding it later
won't force a package update.

-- 
Otavio Salvador                             O.S. Systems
E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

[-- Attachment #2: Type: text/html, Size: 1346 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 12:59     ` Otavio Salvador
@ 2011-12-01 13:02       ` Richard Purdie
  2011-12-01 13:13         ` Martin Jansa
  2011-12-01 13:07       ` Martin Jansa
  1 sibling, 1 reply; 29+ messages in thread
From: Richard Purdie @ 2011-12-01 13:02 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Thu, 2011-12-01 at 10:59 -0200, Otavio Salvador wrote:
> On Thu, Dec 1, 2011 at 10:37, Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
>         On Thu, 2011-12-01 at 13:24 +0100, Martin Jansa wrote:
>         > A while back I've proposed to make .bbappend without
>         corresponding .bb
>         > only big fat warning, but not fatal to parse. Now you cannot
>         even build
>         > eglibc if there is libdrm bbappend you don't care at all
>         about..
>         
>         
>         You can do this by setting:
>         
>         BB_DANGLINGAPPENDS_WARNONLY
> 
> 
> This is even worse; you end up with a package without the changes done
> on the bbappend and as most bbappend files do not change PR, adding it
> later won't force a package update.

Which is why its off by default. My point is you can do with Martin is
suggesting, its just not without its drawbacks.

Cheers,

Richard






^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 12:59     ` Otavio Salvador
  2011-12-01 13:02       ` Richard Purdie
@ 2011-12-01 13:07       ` Martin Jansa
  2011-12-01 20:33         ` Richard Purdie
  1 sibling, 1 reply; 29+ messages in thread
From: Martin Jansa @ 2011-12-01 13:07 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 2706 bytes --]

On Thu, Dec 01, 2011 at 10:59:03AM -0200, Otavio Salvador wrote:
> On Thu, Dec 1, 2011 at 10:37, Richard Purdie <
> richard.purdie@linuxfoundation.org> wrote:
> 
> > On Thu, 2011-12-01 at 13:24 +0100, Martin Jansa wrote:
> > > A while back I've proposed to make .bbappend without corresponding .bb
> > > only big fat warning, but not fatal to parse. Now you cannot even build
> > > eglibc if there is libdrm bbappend you don't care at all about..
> >
> > You can do this by setting:
> >
> > BB_DANGLINGAPPENDS_WARNONLY
> >
> 
> This is even worse; you end up with a package without the changes done on
> the bbappend and as most bbappend files do not change PR, adding it later
> won't force a package update.

If we find a way to allow PRINC in multiple bbappends for same .bb then
we can say that every .bbappend should use PRINC.

For record I'll include my discussion about PRINC with RP and kergoth:
10:47 < JaMa> RP__: is there any way to improve PRINC concept to allow multiple increments for same recipe while parsing multiple layers?
10:48 < RP__> JaMa: PRINC_append = ".1" ?
10:49 < JaMa> RP__: ie when meta-openmoko sets PRINC = "1" and meta-shr sets PRINC = "2" then if you're unlucky meta-openmoko is parsed later and bumping PRINC in meta-shr won't help
10:49 < RP__> JaMa: I wonder if you could do PRINC := "${PRINC + 1}"
10:50 < JaMa> and do we have default PRINC = 0 somewhere?
10:50 < RP__> JaMa: you might need to add that
10:50 < JaMa> ok, I'll try this, thanks
10:51 < JaMa> currently I'm moving PRINC only to meta-shr layer.. but that breaks stuff if someone is using any BSP layer from meta-smartphone..

14:53 < JaMa> RP__: btw that PRINC trick didn't work (int type didn't like expresion :/)
15:13 < RP__> JaMa: ah, try PRINC := "${int(PRINC) + 1}"
15:21 < JaMa> RP__: still ValueError: invalid literal for int() with base 10: '${int(PRINC) + 1}'
15:21 < JaMa> with added PRINC := 0 to bitbake.conf
15:22 < RP__> PRINC := "${int(d.getVar(PRINC)) + 1}" ? :/
15:22 < JaMa> whole log http://paste.pocoo.org/show/514437/
15:22  * RP__ was trying to be too clever I suspect
15:23 < JaMa> ValueError: invalid literal for int() with base 10: '${int(d.getVar(PRINC)) + 1}'
15:41 < kergoth> PRINC is unquoted there, so it tries to get a value for a key of None
16:24 < RP__> kergoth: right, trying to do too many things at once :/
16:24 < RP__> kergoth: any thoughts on that knotty change to add the footer?
17:05 < JaMa> kergoth: something like this? ValueError: invalid literal for int() with base 10: "${int(d.getVar('PRINC')) + 1}"

Maybe someone else has better idea?

Cheers,
-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 13:02       ` Richard Purdie
@ 2011-12-01 13:13         ` Martin Jansa
  2011-12-01 14:33           ` Chris Larson
  2011-12-01 15:36           ` Koen Kooi
  0 siblings, 2 replies; 29+ messages in thread
From: Martin Jansa @ 2011-12-01 13:13 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 1559 bytes --]

On Thu, Dec 01, 2011 at 01:02:38PM +0000, Richard Purdie wrote:
> On Thu, 2011-12-01 at 10:59 -0200, Otavio Salvador wrote:
> > On Thu, Dec 1, 2011 at 10:37, Richard Purdie
> > <richard.purdie@linuxfoundation.org> wrote:
> >         On Thu, 2011-12-01 at 13:24 +0100, Martin Jansa wrote:
> >         > A while back I've proposed to make .bbappend without
> >         corresponding .bb
> >         > only big fat warning, but not fatal to parse. Now you cannot
> >         even build
> >         > eglibc if there is libdrm bbappend you don't care at all
> >         about..
> >         
> >         
> >         You can do this by setting:
> >         
> >         BB_DANGLINGAPPENDS_WARNONLY

Good to know, thanks.

> > This is even worse; you end up with a package without the changes done
> > on the bbappend and as most bbappend files do not change PR, adding it
> > later won't force a package update.
> 
> Which is why its off by default. My point is you can do with Martin is
> suggesting, its just not without its drawbacks.

I think the main advantage of this is that you're allowed to build stuff
which doesn't use those dangling appends. Ie start build of eglibc if
you know that nothing is bbappending to eglibc and to its dependency
tree. And when .bbaappends are fixed you can disable
BB_DANGLINGAPPENDS_WARNONLY and build the rest.

But waiting for _all_ recipes in _all_ layers to get their .bbappends
right can sometimes a bit long..

Cheers,

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 13:13         ` Martin Jansa
@ 2011-12-01 14:33           ` Chris Larson
  2011-12-01 19:57             ` McClintock Matthew-B29882
  2011-12-01 15:36           ` Koen Kooi
  1 sibling, 1 reply; 29+ messages in thread
From: Chris Larson @ 2011-12-01 14:33 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Thu, Dec 1, 2011 at 6:13 AM, Martin Jansa <martin.jansa@gmail.com> wrote:
> On Thu, Dec 01, 2011 at 01:02:38PM +0000, Richard Purdie wrote:
>> On Thu, 2011-12-01 at 10:59 -0200, Otavio Salvador wrote:
>> > On Thu, Dec 1, 2011 at 10:37, Richard Purdie
>> > <richard.purdie@linuxfoundation.org> wrote:
>> >         On Thu, 2011-12-01 at 13:24 +0100, Martin Jansa wrote:
>> >         > A while back I've proposed to make .bbappend without
>> >         corresponding .bb
>> >         > only big fat warning, but not fatal to parse. Now you cannot
>> >         even build
>> >         > eglibc if there is libdrm bbappend you don't care at all
>> >         about..
>> >
>> >
>> >         You can do this by setting:
>> >
>> >         BB_DANGLINGAPPENDS_WARNONLY
>
> Good to know, thanks.
>
>> > This is even worse; you end up with a package without the changes done
>> > on the bbappend and as most bbappend files do not change PR, adding it
>> > later won't force a package update.

People use bbappends without changing PR? I've been doing a PR .= ".1"
or whatever in every bbappend I've created since they were added to
bitbake, and used to do the same with amend.inc. It can result in some
long PR values, but I'd rather that than the alternative..
-- 
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 13:13         ` Martin Jansa
  2011-12-01 14:33           ` Chris Larson
@ 2011-12-01 15:36           ` Koen Kooi
  2011-12-01 15:56             ` Martin Jansa
  1 sibling, 1 reply; 29+ messages in thread
From: Koen Kooi @ 2011-12-01 15:36 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 2058 bytes --]


Op 1 dec. 2011, om 14:13 heeft Martin Jansa het volgende geschreven:

> On Thu, Dec 01, 2011 at 01:02:38PM +0000, Richard Purdie wrote:
>> On Thu, 2011-12-01 at 10:59 -0200, Otavio Salvador wrote:
>>> On Thu, Dec 1, 2011 at 10:37, Richard Purdie
>>> <richard.purdie@linuxfoundation.org> wrote:
>>>        On Thu, 2011-12-01 at 13:24 +0100, Martin Jansa wrote:
>>>> A while back I've proposed to make .bbappend without
>>>        corresponding .bb
>>>> only big fat warning, but not fatal to parse. Now you cannot
>>>        even build
>>>> eglibc if there is libdrm bbappend you don't care at all
>>>        about..
>>> 
>>> 
>>>        You can do this by setting:
>>> 
>>>        BB_DANGLINGAPPENDS_WARNONLY
> 
> Good to know, thanks.
> 
>>> This is even worse; you end up with a package without the changes done
>>> on the bbappend and as most bbappend files do not change PR, adding it
>>> later won't force a package update.
>> 
>> Which is why its off by default. My point is you can do with Martin is
>> suggesting, its just not without its drawbacks.
> 
> I think the main advantage of this is that you're allowed to build stuff
> which doesn't use those dangling appends. Ie start build of eglibc if
> you know that nothing is bbappending to eglibc and to its dependency
> tree. And when .bbaappends are fixed you can disable
> BB_DANGLINGAPPENDS_WARNONLY and build the rest.
> 
> But waiting for _all_ recipes in _all_ layers to get their .bbappends
> right can sometimes a bit long..

Which is why I sent this proposal, to give slow layers like meta-intel time to fix their stuff without breaking everyones build for 2 days till RP gets fed up and fixes it himself.
I don't have the time to maintain forks of every layer like you do with SHR and frankly speaking, it shouldn't be needed. I understand that things like review cycles take some time which is why the proposal tries to workaround the delays in layers in OE-core itself instead of angrily demanding maintainers to act quicker.

regards,

Koen

[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 169 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 15:36           ` Koen Kooi
@ 2011-12-01 15:56             ` Martin Jansa
  2011-12-01 16:03               ` Koen Kooi
  0 siblings, 1 reply; 29+ messages in thread
From: Martin Jansa @ 2011-12-01 15:56 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 3228 bytes --]

On Thu, Dec 01, 2011 at 04:36:40PM +0100, Koen Kooi wrote:
> 
> Op 1 dec. 2011, om 14:13 heeft Martin Jansa het volgende geschreven:
> 
> > On Thu, Dec 01, 2011 at 01:02:38PM +0000, Richard Purdie wrote:
> >> On Thu, 2011-12-01 at 10:59 -0200, Otavio Salvador wrote:
> >>> On Thu, Dec 1, 2011 at 10:37, Richard Purdie
> >>> <richard.purdie@linuxfoundation.org> wrote:
> >>>        On Thu, 2011-12-01 at 13:24 +0100, Martin Jansa wrote:
> >>>> A while back I've proposed to make .bbappend without
> >>>        corresponding .bb
> >>>> only big fat warning, but not fatal to parse. Now you cannot
> >>>        even build
> >>>> eglibc if there is libdrm bbappend you don't care at all
> >>>        about..
> >>> 
> >>> 
> >>>        You can do this by setting:
> >>> 
> >>>        BB_DANGLINGAPPENDS_WARNONLY
> > 
> > Good to know, thanks.
> > 
> >>> This is even worse; you end up with a package without the changes done
> >>> on the bbappend and as most bbappend files do not change PR, adding it
> >>> later won't force a package update.
> >> 
> >> Which is why its off by default. My point is you can do with Martin is
> >> suggesting, its just not without its drawbacks.
> > 
> > I think the main advantage of this is that you're allowed to build stuff
> > which doesn't use those dangling appends. Ie start build of eglibc if
> > you know that nothing is bbappending to eglibc and to its dependency
> > tree. And when .bbaappends are fixed you can disable
> > BB_DANGLINGAPPENDS_WARNONLY and build the rest.
> > 
> > But waiting for _all_ recipes in _all_ layers to get their .bbappends
> > right can sometimes a bit long..
> 
> Which is why I sent this proposal, to give slow layers like meta-intel time to fix their stuff without breaking everyones build for 2 days till RP gets fed up and fixes it himself.
> I don't have the time to maintain forks of every layer like you do with SHR and frankly speaking, it shouldn't be needed. I understand that things like review cycles take some time which is why the proposal tries to workaround the delays in layers in OE-core itself instead of angrily demanding maintainers to act quicker.

But the problem is that we cannot even push newer .bbappend in advance,
I would be happy to push libdrm-2.4.27.bbappend to master branch if it
doesn't break my builds which were still on 2.4.26.

Would be nice to be able to push danglings bbappends for stuff which is
only sitting on ML for review just in case I'll be at daywork or on
holidays or whatever when it gets applied to ie oe-core and someone just
hits update button..

I think the problem is not with *big* layers like oe-core and meta-oe
where is only 1 main maintainer but at least having full time job
related to maintaining it. But to maintain some hobbyist or community
layer in general in free time is sometimes pretty demanding just to stay
compatible with the rest of world (not breaking the rest of world if
they just want some BSP layer available from it). I wouldn't be
surprised if meta-smartphone BSP layers get disabled in layerman next
time I leave for month long holiday...

Just my 2c

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 15:56             ` Martin Jansa
@ 2011-12-01 16:03               ` Koen Kooi
  0 siblings, 0 replies; 29+ messages in thread
From: Koen Kooi @ 2011-12-01 16:03 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 3941 bytes --]


Op 1 dec. 2011, om 16:56 heeft Martin Jansa het volgende geschreven:

> On Thu, Dec 01, 2011 at 04:36:40PM +0100, Koen Kooi wrote:
>> 
>> Op 1 dec. 2011, om 14:13 heeft Martin Jansa het volgende geschreven:
>> 
>>> On Thu, Dec 01, 2011 at 01:02:38PM +0000, Richard Purdie wrote:
>>>> On Thu, 2011-12-01 at 10:59 -0200, Otavio Salvador wrote:
>>>>> On Thu, Dec 1, 2011 at 10:37, Richard Purdie
>>>>> <richard.purdie@linuxfoundation.org> wrote:
>>>>>       On Thu, 2011-12-01 at 13:24 +0100, Martin Jansa wrote:
>>>>>> A while back I've proposed to make .bbappend without
>>>>>       corresponding .bb
>>>>>> only big fat warning, but not fatal to parse. Now you cannot
>>>>>       even build
>>>>>> eglibc if there is libdrm bbappend you don't care at all
>>>>>       about..
>>>>> 
>>>>> 
>>>>>       You can do this by setting:
>>>>> 
>>>>>       BB_DANGLINGAPPENDS_WARNONLY
>>> 
>>> Good to know, thanks.
>>> 
>>>>> This is even worse; you end up with a package without the changes done
>>>>> on the bbappend and as most bbappend files do not change PR, adding it
>>>>> later won't force a package update.
>>>> 
>>>> Which is why its off by default. My point is you can do with Martin is
>>>> suggesting, its just not without its drawbacks.
>>> 
>>> I think the main advantage of this is that you're allowed to build stuff
>>> which doesn't use those dangling appends. Ie start build of eglibc if
>>> you know that nothing is bbappending to eglibc and to its dependency
>>> tree. And when .bbaappends are fixed you can disable
>>> BB_DANGLINGAPPENDS_WARNONLY and build the rest.
>>> 
>>> But waiting for _all_ recipes in _all_ layers to get their .bbappends
>>> right can sometimes a bit long..
>> 
>> Which is why I sent this proposal, to give slow layers like meta-intel time to fix their stuff without breaking everyones build for 2 days till RP gets fed up and fixes it himself.
>> I don't have the time to maintain forks of every layer like you do with SHR and frankly speaking, it shouldn't be needed. I understand that things like review cycles take some time which is why the proposal tries to workaround the delays in layers in OE-core itself instead of angrily demanding maintainers to act quicker.
> 
> But the problem is that we cannot even push newer .bbappend in advance,
> I would be happy to push libdrm-2.4.27.bbappend to master branch if it
> doesn't break my builds which were still on 2.4.26.

I thnk that either

a) becomes a matter of PREFERRED_VERSION of your distro
b) DEFAULT_PREFERENCE = -1 for the update in the grace period.

> Would be nice to be able to push danglings bbappends for stuff which is
> only sitting on ML for review just in case I'll be at daywork or on
> holidays or whatever when it gets applied to ie oe-core and someone just
> hits update button..

Which is where the grace period comes in :)

> I think the problem is not with *big* layers like oe-core and meta-oe
> where is only 1 main maintainer but at least having full time job
> related to maintaining it. But to maintain some hobbyist or community
> layer in general in free time is sometimes pretty demanding just to stay
> compatible with the rest of world (not breaking the rest of world if
> they just want some BSP layer available from it). I wouldn't be
> surprised if meta-smartphone BSP layers get disabled in layerman next
> time I leave for month long holiday...

That's an unfortunate side effect of having a low busfactor. I'll put that in the "shit happens" bin. The proposal won't fix every breakage, but it would make all our lives a lot easier for most upgrades.

Maybe after a while we'll realize that tracking OE-core is too painfull with a full set of slow layers, but I'd like to try this proposal first before giving up[1].

regards,

Koen

[1] Translation: I'm too lazy to add an automated 'lock layer' button to layerman right now 

[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 169 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 11:23 Coordinating inter-layer dependencies Koen Kooi
  2011-12-01 12:24 ` Martin Jansa
@ 2011-12-01 19:55 ` McClintock Matthew-B29882
  2011-12-01 20:28   ` Chris Larson
  2011-12-08  0:17 ` Richard Purdie
  2 siblings, 1 reply; 29+ messages in thread
From: McClintock Matthew-B29882 @ 2011-12-01 19:55 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Thu, Dec 1, 2011 at 5:23 AM, Koen Kooi <koen@dominion.thruhere.net> wrote:
> Hi,
>
> During the past month there have been a number of updates to OE-core recipes that triggered parsing errors due to bbappend in other layers. A small seleciton:
>
> * netbase
> * libdrm
> * xserver-xorg
> * clutter
>
> My view is that layer maintainers need to keep an eye on potential breakage and have updates ready when patches land into OE-core. Looking back I can see that while the situation is improving a bit, it's still not working. The problem with slow updates to layers is that (with my angstrom hat on) users (and with my TI hat on) customers and coworkers can't do builds without rm'ing the bbappends or disabling the layer.
>
> This is bad for a number of reasons:
>
> 1) It creates unmanaged local diffs
> 2) it can cause PR to fluctuate back and forth if you rm is a bit overzealous or if you disable the complete layer.
>
> My proposal is that OE-core recipe upgrades with known bbappends look like this:
>
> 1) add new version with a warning about bbappends
> 2) wait a N days (2 < N < 7)
> 3) delete old version
>
> To avoid stressing out RP and Sau! I would strongly urge layer maintainers to respond to recipe update patches with "I have a bbappend, but my review process needs time, please use the above proposal" if you need time to test and update  your bbappends.
>
> We're all human in the end and timezone differences aren't always helping with these kinds of problems, so let's work together to minimize parsing breakage.
>
> Related to that: Please include information on how to send patches upstream in your layer/repo README. The meta-intel/emenlow lacks that and the top level README doesn't mention that there are sublevel READMEs.

Why don't we make a version of bbappend that applies to all packages
with the same name? This would fix the constant changing
netbase_vXYZ.bbappend issue.

-M



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 14:33           ` Chris Larson
@ 2011-12-01 19:57             ` McClintock Matthew-B29882
  0 siblings, 0 replies; 29+ messages in thread
From: McClintock Matthew-B29882 @ 2011-12-01 19:57 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Thu, Dec 1, 2011 at 8:33 AM, Chris Larson <clarson@kergoth.com> wrote:
>>> > This is even worse; you end up with a package without the changes done
>>> > on the bbappend and as most bbappend files do not change PR, adding it
>>> > later won't force a package update.
>
> People use bbappends without changing PR? I've been doing a PR .= ".1"
> or whatever in every bbappend I've created since they were added to
> bitbake, and used to do the same with amend.inc. It can result in some
> long PR values, but I'd rather that than the alternative..

It would be nice to have something that WARNS or FATALS if there is no
PR modification in the bbappend. This should be required IMO but I
guess there could be some other issues that this would cause.

-M



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 19:55 ` McClintock Matthew-B29882
@ 2011-12-01 20:28   ` Chris Larson
  0 siblings, 0 replies; 29+ messages in thread
From: Chris Larson @ 2011-12-01 20:28 UTC (permalink / raw)
  To: McClintock Matthew-B29882,
	Patches and discussions about the oe-core layer

On Thu, Dec 1, 2011 at 12:55 PM, McClintock Matthew-B29882
<B29882@freescale.com> wrote:
>> To avoid stressing out RP and Sau! I would strongly urge layer maintainers to respond to recipe update patches with "I have a bbappend, but my review process needs time, please use the above proposal" if you need time to test and update  your bbappends.
>>
>> We're all human in the end and timezone differences aren't always helping with these kinds of problems, so let's work together to minimize parsing breakage.
>>
>> Related to that: Please include information on how to send patches upstream in your layer/repo README. The meta-intel/emenlow lacks that and the top level README doesn't mention that there are sublevel READMEs.
>
> Why don't we make a version of bbappend that applies to all packages
> with the same name? This would fix the constant changing
> netbase_vXYZ.bbappend issue.

I'm pretty sure going by filename was a conscious design decision in
bitbake, to keep things simple and avoid the need to parse up front
before being able to determine the appends to use. RP would know the
details.
-- 
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 13:07       ` Martin Jansa
@ 2011-12-01 20:33         ` Richard Purdie
  2011-12-02  8:46           ` Mats Kärrman
  0 siblings, 1 reply; 29+ messages in thread
From: Richard Purdie @ 2011-12-01 20:33 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Thu, 2011-12-01 at 14:07 +0100, Martin Jansa wrote:
> On Thu, Dec 01, 2011 at 10:59:03AM -0200, Otavio Salvador wrote:
> > On Thu, Dec 1, 2011 at 10:37, Richard Purdie <
> > richard.purdie@linuxfoundation.org> wrote:
> > 
> > > On Thu, 2011-12-01 at 13:24 +0100, Martin Jansa wrote:
> > > > A while back I've proposed to make .bbappend without corresponding .bb
> > > > only big fat warning, but not fatal to parse. Now you cannot even build
> > > > eglibc if there is libdrm bbappend you don't care at all about..
> > >
> > > You can do this by setting:
> > >
> > > BB_DANGLINGAPPENDS_WARNONLY
> > >
> > 
> > This is even worse; you end up with a package without the changes done on
> > the bbappend and as most bbappend files do not change PR, adding it later
> > won't force a package update.
> 
> If we find a way to allow PRINC in multiple bbappends for same .bb then
> we can say that every .bbappend should use PRINC.
> 
> For record I'll include my discussion about PRINC with RP and kergoth:
> 10:47 < JaMa> RP__: is there any way to improve PRINC concept to allow multiple increments for same recipe while parsing multiple layers?
> 10:48 < RP__> JaMa: PRINC_append = ".1" ?
> 10:49 < JaMa> RP__: ie when meta-openmoko sets PRINC = "1" and meta-shr sets PRINC = "2" then if you're unlucky meta-openmoko is parsed later and bumping PRINC in meta-shr won't help
> 10:49 < RP__> JaMa: I wonder if you could do PRINC := "${PRINC + 1}"
> 10:50 < JaMa> and do we have default PRINC = 0 somewhere?
> 10:50 < RP__> JaMa: you might need to add that
> 10:50 < JaMa> ok, I'll try this, thanks
> 10:51 < JaMa> currently I'm moving PRINC only to meta-shr layer.. but that breaks stuff if someone is using any BSP layer from meta-smartphone..
> 
> 14:53 < JaMa> RP__: btw that PRINC trick didn't work (int type didn't like expresion :/)
> 15:13 < RP__> JaMa: ah, try PRINC := "${int(PRINC) + 1}"
> 15:21 < JaMa> RP__: still ValueError: invalid literal for int() with base 10: '${int(PRINC) + 1}'
> 15:21 < JaMa> with added PRINC := 0 to bitbake.conf
> 15:22 < RP__> PRINC := "${int(d.getVar(PRINC)) + 1}" ? :/
> 15:22 < JaMa> whole log http://paste.pocoo.org/show/514437/
> 15:22  * RP__ was trying to be too clever I suspect
> 15:23 < JaMa> ValueError: invalid literal for int() with base 10: '${int(d.getVar(PRINC)) + 1}'
> 15:41 < kergoth> PRINC is unquoted there, so it tries to get a value for a key of None
> 16:24 < RP__> kergoth: right, trying to do too many things at once :/
> 16:24 < RP__> kergoth: any thoughts on that knotty change to add the footer?
> 17:05 < JaMa> kergoth: something like this? ValueError: invalid literal for int() with base 10: "${int(d.getVar('PRINC')) + 1}"
> 
> Maybe someone else has better idea?

Looking at that I was missing something obvious. Try:

PRINC := "${@int(PRINC) + 1}"

Cheers,

Richard




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 20:33         ` Richard Purdie
@ 2011-12-02  8:46           ` Mats Kärrman
  2011-12-02 13:34             ` Frans Meulenbroeks
  2011-12-02 16:18             ` Martin Jansa
  0 siblings, 2 replies; 29+ messages in thread
From: Mats Kärrman @ 2011-12-02  8:46 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

> From: openembedded-core-bounces@lists.openembedded.org [openembedded-core-bounces@lists.openembedded.org] on behalf of Richard Purdie [richard.purdie@linuxfoundation.org]
> Sent: Thursday, December 01, 2011 9:33 PM
> To: Patches and discussions about the oe-core layer
> Subject: Re: [OE-core] Coordinating inter-layer dependencies
> 
> On Thu, 2011-12-01 at 14:07 +0100, Martin Jansa wrote:
> > On Thu, Dec 01, 2011 at 10:59:03AM -0200, Otavio Salvador wrote:
> > > On Thu, Dec 1, 2011 at 10:37, Richard Purdie <
> > > richard.purdie@linuxfoundation.org> wrote:
> > >
> > > > On Thu, 2011-12-01 at 13:24 +0100, Martin Jansa wrote:
> > > > > A while back I've proposed to make .bbappend without corresponding .bb
> > > > > only big fat warning, but not fatal to parse. Now you cannot even build
> > > > > eglibc if there is libdrm bbappend you don't care at all about..
> > > >
> > > > You can do this by setting:
> > > >
> > > > BB_DANGLINGAPPENDS_WARNONLY
> > > >
> > >
> > > This is even worse; you end up with a package without the changes done on
> > > the bbappend and as most bbappend files do not change PR, adding it later
> > > won't force a package update.
> >
> > If we find a way to allow PRINC in multiple bbappends for same .bb then
> > we can say that every .bbappend should use PRINC.
> >
> > For record I'll include my discussion about PRINC with RP and kergoth:
> > 10:47 < JaMa> RP__: is there any way to improve PRINC concept to allow multiple increments for same recipe while parsing multiple layers?
> > 10:48 < RP__> JaMa: PRINC_append = ".1" ?
> > 10:49 < JaMa> RP__: ie when meta-openmoko sets PRINC = "1" and meta-shr sets PRINC = "2" then if you're unlucky meta-openmoko is parsed later and bumping PRINC in meta-shr won't help
> > 10:49 < RP__> JaMa: I wonder if you could do PRINC := "${PRINC + 1}"
> > 10:50 < JaMa> and do we have default PRINC = 0 somewhere?
> > 10:50 < RP__> JaMa: you might need to add that
> > 10:50 < JaMa> ok, I'll try this, thanks
> > 10:51 < JaMa> currently I'm moving PRINC only to meta-shr layer.. but that breaks stuff if someone is using any BSP layer from meta-smartphone..
> >
> > 14:53 < JaMa> RP__: btw that PRINC trick didn't work (int type didn't like expresion :/)
> > 15:13 < RP__> JaMa: ah, try PRINC := "${int(PRINC) + 1}"
> > 15:21 < JaMa> RP__: still ValueError: invalid literal for int() with base 10: '${int(PRINC) + 1}'
> > 15:21 < JaMa> with added PRINC := 0 to bitbake.conf
> > 15:22 < RP__> PRINC := "${int(d.getVar(PRINC)) + 1}" ? :/
> > 15:22 < JaMa> whole log http://paste.pocoo.org/show/514437/
> > 15:22  * RP__ was trying to be too clever I suspect
> > 15:23 < JaMa> ValueError: invalid literal for int() with base 10: '${int(d.getVar(PRINC)) + 1}'
> > 15:41 < kergoth> PRINC is unquoted there, so it tries to get a value for a key of None
> > 16:24 < RP__> kergoth: right, trying to do too many things at once :/
> > 16:24 < RP__> kergoth: any thoughts on that knotty change to add the footer?
> > 17:05 < JaMa> kergoth: something like this? ValueError: invalid literal for int() with base 10: "${int(d.getVar('PRINC')) + 1}"
> >
> > Maybe someone else has better idea?
> 
> Looking at that I was missing something obvious. Try:
> 
> PRINC := "${@int(PRINC) + 1}"
> 
> Cheers,
> 
> Richard
> 

As I understand it, the PRINC increases the PR of the appended recipe. Then the resulting package will have a version that is the same as "the next" version of the base recipe. Since many people (me included) hardly remember what they did a month ago, isn't there a big risk of confusion in your deployed systems if packages are upgraded there?

I do something like  PR .= ".local0"  where "local" is the name of the layer containing the .bbappend.
Of course this will create extensive version strings if multiple .bbappends are applied but the alternative is that you have no idea what layers that appended and what the the base version of the recipe really was.

// Mats



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-02  8:46           ` Mats Kärrman
@ 2011-12-02 13:34             ` Frans Meulenbroeks
  2011-12-02 14:38               ` Otavio Salvador
  2011-12-02 16:18             ` Martin Jansa
  1 sibling, 1 reply; 29+ messages in thread
From: Frans Meulenbroeks @ 2011-12-02 13:34 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 1085 bytes --]

Ideally a specific revision of a layer should specify on which revision it
depends on/was tested with, so people can reproduce that same setup.

Randomly mixing revisions is a recipe for problems.
Expecting that a layer informs its users that something is changing is
probably not workable. How would a layer maintainer know what layers are
actually depending on it (especially for things like oe-core)?

If one is using the head of a layer one is living on the bleeding edge (and
hence sometimes one bleeds) (and doing production work based on that seems
unwise).

Then again, I seem to recall that somewhere in the spring we agreed on a
deprecation policy where "high impact changes" like for toolchain would be
done like:
- commit new version
- wait a while (2 weeks?)
- remove old version

thus giving people a chance to migrate.

Frans.

(PS: of course it is also possible to proceed in a perfectly synchronised
lockstep, but that probably requires some central coordination and some
staging trees or so to test against before the lockstep is performed)

[-- Attachment #2: Type: text/html, Size: 1127 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-02 13:34             ` Frans Meulenbroeks
@ 2011-12-02 14:38               ` Otavio Salvador
  0 siblings, 0 replies; 29+ messages in thread
From: Otavio Salvador @ 2011-12-02 14:38 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 821 bytes --]

On Fri, Dec 2, 2011 at 11:34, Frans Meulenbroeks <
fransmeulenbroeks@gmail.com> wrote:

> Ideally a specific revision of a layer should specify on which revision it
> depends on/was tested with, so people can reproduce that same setup.
>

I've been using combo-layer to this to work here at O.S. Systems and this
has been very easy to handle.

I made an internal repository that has oe-core and the layers I need so
co-workers can get it and trust it will work; the person doing the update
on the layers is expected to do a build before pushing it onto our internal
repository and thus this works very well.

-- 
Otavio Salvador                             O.S. Systems
E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

[-- Attachment #2: Type: text/html, Size: 1296 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-02  8:46           ` Mats Kärrman
  2011-12-02 13:34             ` Frans Meulenbroeks
@ 2011-12-02 16:18             ` Martin Jansa
  2011-12-02 16:22               ` [PATCH] bitbake.conf: add default PRINC 0 to be able to increment it Martin Jansa
                                 ` (2 more replies)
  1 sibling, 3 replies; 29+ messages in thread
From: Martin Jansa @ 2011-12-02 16:18 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

[-- Attachment #1: Type: text/plain, Size: 5457 bytes --]

On Fri, Dec 02, 2011 at 08:46:43AM +0000, Mats Kärrman wrote:
> > From: openembedded-core-bounces@lists.openembedded.org [openembedded-core-bounces@lists.openembedded.org] on behalf of Richard Purdie [richard.purdie@linuxfoundation.org]
> > Sent: Thursday, December 01, 2011 9:33 PM
> > To: Patches and discussions about the oe-core layer
> > Subject: Re: [OE-core] Coordinating inter-layer dependencies
> > 
> > On Thu, 2011-12-01 at 14:07 +0100, Martin Jansa wrote:
> > > On Thu, Dec 01, 2011 at 10:59:03AM -0200, Otavio Salvador wrote:
> > > > On Thu, Dec 1, 2011 at 10:37, Richard Purdie <
> > > > richard.purdie@linuxfoundation.org> wrote:
> > > >
> > > > > On Thu, 2011-12-01 at 13:24 +0100, Martin Jansa wrote:
> > > > > > A while back I've proposed to make .bbappend without corresponding .bb
> > > > > > only big fat warning, but not fatal to parse. Now you cannot even build
> > > > > > eglibc if there is libdrm bbappend you don't care at all about..
> > > > >
> > > > > You can do this by setting:
> > > > >
> > > > > BB_DANGLINGAPPENDS_WARNONLY
> > > > >
> > > >
> > > > This is even worse; you end up with a package without the changes done on
> > > > the bbappend and as most bbappend files do not change PR, adding it later
> > > > won't force a package update.
> > >
> > > If we find a way to allow PRINC in multiple bbappends for same .bb then
> > > we can say that every .bbappend should use PRINC.
> > >
> > > For record I'll include my discussion about PRINC with RP and kergoth:
> > > 10:47 < JaMa> RP__: is there any way to improve PRINC concept to allow multiple increments for same recipe while parsing multiple layers?
> > > 10:48 < RP__> JaMa: PRINC_append = ".1" ?
> > > 10:49 < JaMa> RP__: ie when meta-openmoko sets PRINC = "1" and meta-shr sets PRINC = "2" then if you're unlucky meta-openmoko is parsed later and bumping PRINC in meta-shr won't help
> > > 10:49 < RP__> JaMa: I wonder if you could do PRINC := "${PRINC + 1}"
> > > 10:50 < JaMa> and do we have default PRINC = 0 somewhere?
> > > 10:50 < RP__> JaMa: you might need to add that
> > > 10:50 < JaMa> ok, I'll try this, thanks
> > > 10:51 < JaMa> currently I'm moving PRINC only to meta-shr layer.. but that breaks stuff if someone is using any BSP layer from meta-smartphone..
> > >
> > > 14:53 < JaMa> RP__: btw that PRINC trick didn't work (int type didn't like expresion :/)
> > > 15:13 < RP__> JaMa: ah, try PRINC := "${int(PRINC) + 1}"
> > > 15:21 < JaMa> RP__: still ValueError: invalid literal for int() with base 10: '${int(PRINC) + 1}'
> > > 15:21 < JaMa> with added PRINC := 0 to bitbake.conf
> > > 15:22 < RP__> PRINC := "${int(d.getVar(PRINC)) + 1}" ? :/
> > > 15:22 < JaMa> whole log http://paste.pocoo.org/show/514437/
> > > 15:22  * RP__ was trying to be too clever I suspect
> > > 15:23 < JaMa> ValueError: invalid literal for int() with base 10: '${int(d.getVar(PRINC)) + 1}'
> > > 15:41 < kergoth> PRINC is unquoted there, so it tries to get a value for a key of None
> > > 16:24 < RP__> kergoth: right, trying to do too many things at once :/
> > > 16:24 < RP__> kergoth: any thoughts on that knotty change to add the footer?
> > > 17:05 < JaMa> kergoth: something like this? ValueError: invalid literal for int() with base 10: "${int(d.getVar('PRINC')) + 1}"
> > >
> > > Maybe someone else has better idea?
> > 
> > Looking at that I was missing something obvious. Try:
> > 
> > PRINC := "${@int(PRINC) + 1}"
> > 
> > Cheers,
> > 
> > Richard
> > 
> 
> As I understand it, the PRINC increases the PR of the appended recipe. Then the resulting package will have a version that is the same as "the next" version of the base recipe. Since many people (me included) hardly remember what they did a month ago, isn't there a big risk of confusion in your deployed systems if packages are upgraded there?
> 
> I do something like  PR .= ".local0"  where "local" is the name of the layer containing the .bbappend.
> Of course this will create extensive version strings if multiple .bbappends are applied but the alternative is that you have no idea what layers that appended and what the the base version of the recipe really was.

So if you have some layer adding
layerB: PR .= ".b0"
and other
layerA: PR .= ".a0"

and PR appends are evaluated in this order, then you will break upgrade
patch forever if you have to remove layerB for some reason and you
cannot even fix it by bumping numbers in your layerA unless you rename
all PR appends as ".c0" right? That's why I prefer to use PRINC.

Yes it increases PR of desired number, but every time.. so if upper
layer increments PR your .bbappend will again increment it so you still
get always increasing sequence.

Only problem was multiple .bbappends overwritting PRINC value in each
other, but RP's latest proposal:
PRINC := "${@int(PRINC) + 1}"
works and I'm going to push meta-smartphone migration to this PRINC
usage instead of more common 'PRINC = "1"'

for bb in `git grep "^PRINC" . | sed 's/:.*//g'`; do sed -i 's/PRINC *= *"\(.*\)"/PRINC := "${@int(PRINC) + \1}"/g' $bb; done

And I'll send patch here to add default PRINC = "0" to bitbake.conf,
because otherwise it fails with:
ERROR: Failure expanding variable PRINC[:=], expression was
${@int(PRINC) + 1} which triggered exception NameError: name 'PRINC' is
not defined

Cheers,

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH] bitbake.conf: add default PRINC 0 to be able to increment it
  2011-12-02 16:18             ` Martin Jansa
@ 2011-12-02 16:22               ` Martin Jansa
  2011-12-02 16:42                 ` Richard Purdie
  2011-12-02 19:52               ` Coordinating inter-layer dependencies Chris Larson
  2011-12-02 23:58               ` Mats Kärrman
  2 siblings, 1 reply; 29+ messages in thread
From: Martin Jansa @ 2011-12-02 16:22 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/conf/bitbake.conf |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 87efd8e..552942b 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -166,6 +166,7 @@ ASSUME_PROVIDED = "\
 PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[0] or 'defaultpkgname'}"
 PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[1] or '1.0'}"
 PR = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[2] or 'r0'}"
+PRINC := "0"
 PF = "${PN}-${EXTENDPE}${PV}-${PR}"
 EXTENDPE = "${@['','${PE\x7d_'][d.getVar('PE',1) > 0]}"
 P = "${PN}-${PV}"
-- 
1.7.8.rc4




^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH] bitbake.conf: add default PRINC 0 to be able to increment it
  2011-12-02 16:22               ` [PATCH] bitbake.conf: add default PRINC 0 to be able to increment it Martin Jansa
@ 2011-12-02 16:42                 ` Richard Purdie
  2011-12-02 18:39                   ` [PATCHv2] " Martin Jansa
  0 siblings, 1 reply; 29+ messages in thread
From: Richard Purdie @ 2011-12-02 16:42 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Fri, 2011-12-02 at 17:22 +0100, Martin Jansa wrote:
> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
>  meta/conf/bitbake.conf |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> index 87efd8e..552942b 100644
> --- a/meta/conf/bitbake.conf
> +++ b/meta/conf/bitbake.conf
> @@ -166,6 +166,7 @@ ASSUME_PROVIDED = "\
>  PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[0] or 'defaultpkgname'}"
>  PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[1] or '1.0'}"
>  PR = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[2] or 'r0'}"
> +PRINC := "0"
>  PF = "${PN}-${EXTENDPE}${PV}-${PR}"
>  EXTENDPE = "${@['','${PE\x7d_'][d.getVar('PE',1) > 0]}"
>  P = "${PN}-${PV}"

Why does this need := ? (it doesn't)

Also, can you change the expression in base.bbclass from:

    princ = d.getVar('PRINC', True)
    if princ:

to:
    if princ and princ != "0":

since otherwise I think this will have rather a negative effect on
parsing speed.

Cheers,

Richard




^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCHv2] bitbake.conf: add default PRINC 0 to be able to increment it
  2011-12-02 16:42                 ` Richard Purdie
@ 2011-12-02 18:39                   ` Martin Jansa
  2011-12-02 19:29                     ` Chris Larson
  2011-12-05 16:09                     ` Richard Purdie
  0 siblings, 2 replies; 29+ messages in thread
From: Martin Jansa @ 2011-12-02 18:39 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
 meta/classes/base.bbclass |    2 +-
 meta/conf/bitbake.conf    |    1 +
 2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index ea53498..fbcaefb 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -335,7 +335,7 @@ python () {
 
     # If PRINC is set, try and increase the PR value by the amount specified
     princ = d.getVar('PRINC', True)
-    if princ:
+    if princ and princ != "0":
         pr = d.getVar('PR', True)
         pr_prefix = re.search("\D+",pr)
         prval = re.search("\d+",pr)
diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index acba388..e80cc32 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -167,6 +167,7 @@ ASSUME_PROVIDED = "\
 PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[0] or 'defaultpkgname'}"
 PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[1] or '1.0'}"
 PR = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE'),d)[2] or 'r0'}"
+PRINC ?= "0"
 PF = "${PN}-${EXTENDPE}${PV}-${PR}"
 EXTENDPE = "${@['','${PE\x7d_'][d.getVar('PE',1) > 0]}"
 P = "${PN}-${PV}"
-- 
1.7.8.rc4




^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCHv2] bitbake.conf: add default PRINC 0 to be able to increment it
  2011-12-02 18:39                   ` [PATCHv2] " Martin Jansa
@ 2011-12-02 19:29                     ` Chris Larson
  2011-12-05 16:09                     ` Richard Purdie
  1 sibling, 0 replies; 29+ messages in thread
From: Chris Larson @ 2011-12-02 19:29 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Fri, Dec 2, 2011 at 11:39 AM, Martin Jansa <martin.jansa@gmail.com> wrote:
> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
>  meta/classes/base.bbclass |    2 +-
>  meta/conf/bitbake.conf    |    1 +
>  2 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> index ea53498..fbcaefb 100644
> --- a/meta/classes/base.bbclass
> +++ b/meta/classes/base.bbclass
> @@ -335,7 +335,7 @@ python () {
>
>     # If PRINC is set, try and increase the PR value by the amount specified
>     princ = d.getVar('PRINC', True)
> -    if princ:
> +    if princ and princ != "0":

Could also do:

  if int(princ):

Or:

  PRINC[type] = "integer" # and:

  if oe.data.typed_value('PRINC', d):
-- 
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-02 16:18             ` Martin Jansa
  2011-12-02 16:22               ` [PATCH] bitbake.conf: add default PRINC 0 to be able to increment it Martin Jansa
@ 2011-12-02 19:52               ` Chris Larson
  2011-12-02 23:58               ` Mats Kärrman
  2 siblings, 0 replies; 29+ messages in thread
From: Chris Larson @ 2011-12-02 19:52 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Fri, Dec 2, 2011 at 9:18 AM, Martin Jansa <martin.jansa@gmail.com> wrote:
> So if you have some layer adding
> layerB: PR .= ".b0"
> and other
> layerA: PR .= ".a0"
>
> and PR appends are evaluated in this order, then you will break upgrade
> patch forever if you have to remove layerB for some reason and you
> cannot even fix it by bumping numbers in your layerA unless you rename
> all PR appends as ".c0" right? That's why I prefer to use PRINC.

And if you *remove* a layer you used to use? Will this not result in
it decrementing and breaking the upgrade path in that way? Or does
this persist the way localcount does?
-- 
Christopher Larson
clarson at kergoth dot com
Founder - BitBake, OpenEmbedded, OpenZaurus
Maintainer - Tslib
Senior Software Engineer, Mentor Graphics



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-02 16:18             ` Martin Jansa
  2011-12-02 16:22               ` [PATCH] bitbake.conf: add default PRINC 0 to be able to increment it Martin Jansa
  2011-12-02 19:52               ` Coordinating inter-layer dependencies Chris Larson
@ 2011-12-02 23:58               ` Mats Kärrman
  2 siblings, 0 replies; 29+ messages in thread
From: Mats Kärrman @ 2011-12-02 23:58 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

> From: openembedded-core-bounces@lists.openembedded.org [openembedded-core-bounces@lists.openembedded.org] on behalf of Martin Jansa [martin.jansa@gmail.com]
> Sent: Friday, December 02, 2011 5:18 PM
> To: Patches and discussions about the oe-core layer
> Subject: Re: [OE-core] Coordinating inter-layer dependencies
> 

...cut...

> > As I understand it, the PRINC increases the PR of the appended recipe. Then the resulting package will have a version that is the same as "the next" version of the base recipe. Since many people (me included) hardly remember what they did a month ago, isn't there a big risk of confusion in your deployed systems if packages are upgraded there?
> >
> > I do something like  PR .= ".local0"  where "local" is the name of the layer containing the .bbappend.
> > Of course this will create extensive version strings if multiple .bbappends are applied but the alternative is that you have no idea what layers that appended and what the the base version of the recipe really was.
> 
> So if you have some layer adding
> layerB: PR .= ".b0"
> and other
> layerA: PR .= ".a0"
> 
> and PR appends are evaluated in this order, then you will break upgrade
> patch forever if you have to remove layerB for some reason and you
> cannot even fix it by bumping numbers in your layerA unless you rename
> all PR appends as ".c0" right? That's why I prefer to use PRINC.

I don't really see what is breaking but I'm guessing that the problem you describe has to do with feed based upgrades and automatic evaluation of which version is latest (?). I don't do things that way but instead explicitly download and replace packages and then I prefer to be able to see exactly what was built. Of course you can achieve that also by some external procedure to make sure that you always no matter what produce increasing PR numbers on your packages but if you fail there is no telling... 

> 
> Yes it increases PR of desired number, but every time.. so if upper
> layer increments PR your .bbappend will again increment it so you still
> get always increasing sequence.

Unless, again, I remove a layer, then I'll have to extra-bump another "innocent" layer to keep the numbers up.


BR // Mats



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCHv2] bitbake.conf: add default PRINC 0 to be able to increment it
  2011-12-02 18:39                   ` [PATCHv2] " Martin Jansa
  2011-12-02 19:29                     ` Chris Larson
@ 2011-12-05 16:09                     ` Richard Purdie
  1 sibling, 0 replies; 29+ messages in thread
From: Richard Purdie @ 2011-12-05 16:09 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Fri, 2011-12-02 at 19:39 +0100, Martin Jansa wrote:
> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
> ---
>  meta/classes/base.bbclass |    2 +-
>  meta/conf/bitbake.conf    |    1 +
>  2 files changed, 2 insertions(+), 1 deletions(-)

Merged to master, thanks.

Richard




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-01 11:23 Coordinating inter-layer dependencies Koen Kooi
  2011-12-01 12:24 ` Martin Jansa
  2011-12-01 19:55 ` McClintock Matthew-B29882
@ 2011-12-08  0:17 ` Richard Purdie
  2011-12-08 21:07   ` McClintock Matthew-B29882
  2011-12-10  0:51   ` Andreas Müller
  2 siblings, 2 replies; 29+ messages in thread
From: Richard Purdie @ 2011-12-08  0:17 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Thu, 2011-12-01 at 12:23 +0100, Koen Kooi wrote:
> During the past month there have been a number of updates to OE-core
> recipes that triggered parsing errors due to bbappend in other layers.
> A small seleciton:
> 
> * netbase
> * libdrm
> * xserver-xorg
> * clutter
> 
> My view is that layer maintainers need to keep an eye on potential
> breakage and have updates ready when patches land into OE-core.
> Looking back I can see that while the situation is improving a bit,
> it's still not working. The problem with slow updates to layers is
> that (with my angstrom hat on) users (and with my TI hat on) customers
> and coworkers can't do builds without rm'ing the bbappends or
> disabling the layer.


I've been thinking about this. I wondered if the notion of wildcards
for .bbappend might help, e.g. a file called:

netbase_%.bbappend

would match all versions of the netbase recipe.

The % is consistent with PREFERRED_VERSION, I'm a little reluctant to
use * since its a shell quoting mess.

It wouldn't be hard to allow bitbake to support this and would solve
some of the issues we've been having...

Cheers,

Richard






^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-08  0:17 ` Richard Purdie
@ 2011-12-08 21:07   ` McClintock Matthew-B29882
  2011-12-10  0:51   ` Andreas Müller
  1 sibling, 0 replies; 29+ messages in thread
From: McClintock Matthew-B29882 @ 2011-12-08 21:07 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Wed, Dec 7, 2011 at 6:17 PM, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
> On Thu, 2011-12-01 at 12:23 +0100, Koen Kooi wrote:
>> During the past month there have been a number of updates to OE-core
>> recipes that triggered parsing errors due to bbappend in other layers.
>> A small seleciton:
>>
>> * netbase
>> * libdrm
>> * xserver-xorg
>> * clutter
>>
>> My view is that layer maintainers need to keep an eye on potential
>> breakage and have updates ready when patches land into OE-core.
>> Looking back I can see that while the situation is improving a bit,
>> it's still not working. The problem with slow updates to layers is
>> that (with my angstrom hat on) users (and with my TI hat on) customers
>> and coworkers can't do builds without rm'ing the bbappends or
>> disabling the layer.
>
>
> I've been thinking about this. I wondered if the notion of wildcards
> for .bbappend might help, e.g. a file called:
>
> netbase_%.bbappend
>
> would match all versions of the netbase recipe.
>
> The % is consistent with PREFERRED_VERSION, I'm a little reluctant to
> use * since its a shell quoting mess.
>
> It wouldn't be hard to allow bitbake to support this and would solve
> some of the issues we've been having...

For what it's worth, I like the wild card idea.

-M



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: Coordinating inter-layer dependencies
  2011-12-08  0:17 ` Richard Purdie
  2011-12-08 21:07   ` McClintock Matthew-B29882
@ 2011-12-10  0:51   ` Andreas Müller
  1 sibling, 0 replies; 29+ messages in thread
From: Andreas Müller @ 2011-12-10  0:51 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On Thursday, December 08, 2011 01:17:37 AM Richard Purdie wrote:
> On Thu, 2011-12-01 at 12:23 +0100, Koen Kooi wrote:
> > During the past month there have been a number of updates to OE-core
> > recipes that triggered parsing errors due to bbappend in other layers.
> > A small seleciton:
> > 
> > * netbase
> > * libdrm
> > * xserver-xorg
> > * clutter
> > 
> > My view is that layer maintainers need to keep an eye on potential
> > breakage and have updates ready when patches land into OE-core.
> > Looking back I can see that while the situation is improving a bit,
> > it's still not working. The problem with slow updates to layers is
> > that (with my angstrom hat on) users (and with my TI hat on) customers
> > and coworkers can't do builds without rm'ing the bbappends or
> > disabling the layer.
> 
> I've been thinking about this. I wondered if the notion of wildcards
> for .bbappend might help, e.g. a file called:
> 
> netbase_%.bbappend
> 
> would match all versions of the netbase recipe.
> 
> The % is consistent with PREFERRED_VERSION, I'm a little reluctant to
> use * since its a shell quoting mess.
> 
> It wouldn't be hard to allow bitbake to support this and would solve
> some of the issues we've been having...
> 
If being used in sub layers parse errors (weekend breakers) would turn into

* no issue
* build error

which are both enhancing current situation.

Andreas



^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2011-12-10  0:58 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-01 11:23 Coordinating inter-layer dependencies Koen Kooi
2011-12-01 12:24 ` Martin Jansa
2011-12-01 12:37   ` Richard Purdie
2011-12-01 12:59     ` Otavio Salvador
2011-12-01 13:02       ` Richard Purdie
2011-12-01 13:13         ` Martin Jansa
2011-12-01 14:33           ` Chris Larson
2011-12-01 19:57             ` McClintock Matthew-B29882
2011-12-01 15:36           ` Koen Kooi
2011-12-01 15:56             ` Martin Jansa
2011-12-01 16:03               ` Koen Kooi
2011-12-01 13:07       ` Martin Jansa
2011-12-01 20:33         ` Richard Purdie
2011-12-02  8:46           ` Mats Kärrman
2011-12-02 13:34             ` Frans Meulenbroeks
2011-12-02 14:38               ` Otavio Salvador
2011-12-02 16:18             ` Martin Jansa
2011-12-02 16:22               ` [PATCH] bitbake.conf: add default PRINC 0 to be able to increment it Martin Jansa
2011-12-02 16:42                 ` Richard Purdie
2011-12-02 18:39                   ` [PATCHv2] " Martin Jansa
2011-12-02 19:29                     ` Chris Larson
2011-12-05 16:09                     ` Richard Purdie
2011-12-02 19:52               ` Coordinating inter-layer dependencies Chris Larson
2011-12-02 23:58               ` Mats Kärrman
2011-12-01 19:55 ` McClintock Matthew-B29882
2011-12-01 20:28   ` Chris Larson
2011-12-08  0:17 ` Richard Purdie
2011-12-08 21:07   ` McClintock Matthew-B29882
2011-12-10  0:51   ` Andreas Müller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox