Patchwork libc-common: Apply Debian-naming to libc debug symbols too

login
register
mail settings
Submitter Mike Crowe
Date March 16, 2012, 4:32 p.m.
Message ID <1331915573-28368-1-git-send-email-mac@mcrowe.com>
Download mbox | patch
Permalink /patch/23715/
State New
Headers show

Comments

Mike Crowe - March 16, 2012, 4:32 p.m.
The magic in rootfs_ipk.bbclass expects to generate debug package
names by just appending '-dbg'. This breaks for eglibc because whilst
the binary package has been renamed to libc6 the debug package is
still called libc-dbg. This patch ensures that the debug package is
renamed too.
---
 meta/classes/libc-common.bbclass |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Koen Kooi - March 16, 2012, 7:39 p.m.
Op 16 mrt. 2012, om 17:32 heeft Mike Crowe het volgende geschreven:

> The magic in rootfs_ipk.bbclass expects to generate debug package
> names by just appending '-dbg'. This breaks for eglibc because whilst
> the binary package has been renamed to libc6 the debug package is
> still called libc-dbg. This patch ensures that the debug package is
> renamed too.
> ---
> meta/classes/libc-common.bbclass |    1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/meta/classes/libc-common.bbclass b/meta/classes/libc-common.bbclass
> index 962f205..d0c1ab4 100644
> --- a/meta/classes/libc-common.bbclass
> +++ b/meta/classes/libc-common.bbclass
> @@ -27,4 +27,5 @@ python populate_packages_prepend () {
> 		bpn = d.getVar('BPN', True)
> 		d.setVar('PKG_'+bpn, 'libc6')
> 		d.setVar('PKG_'+bpn+'-dev', 'libc6-dev')
> +		d.setVar('PKG_'+bpn+'-dbg', 'libc6-dbg')
> }

Missing PR bump and broken upgrade path.
Mike Crowe - March 19, 2012, 11:52 a.m.
Op 16 mrt. 2012, om 17:32 heeft Mike Crowe het volgende geschreven:
> > The magic in rootfs_ipk.bbclass expects to generate debug package
> > names by just appending '-dbg'.

It turns out that the above was a local change so that statement was
incorrect. Nevertheless the change probably makes sense anyway.

> >                                 This breaks for eglibc because whilst
> > the binary package has been renamed to libc6 the debug package is
> > still called libc-dbg. This patch ensures that the debug package is
> > renamed too.
> > ---
> > meta/classes/libc-common.bbclass |    1 +
> > 1 files changed, 1 insertions(+), 0 deletions(-)
> > 
> > diff --git a/meta/classes/libc-common.bbclass b/meta/classes/libc-common.bbclass
> > index 962f205..d0c1ab4 100644
> > --- a/meta/classes/libc-common.bbclass
> > +++ b/meta/classes/libc-common.bbclass
> > @@ -27,4 +27,5 @@ python populate_packages_prepend () {
> > 		bpn = d.getVar('BPN', True)
> > 		d.setVar('PKG_'+bpn, 'libc6')
> > 		d.setVar('PKG_'+bpn+'-dev', 'libc6-dev')
> > +		d.setVar('PKG_'+bpn+'-dbg', 'libc6-dbg')
> > }
 
On Fri, Mar 16, 2012 at 08:39:00PM +0100, Koen Kooi wrote:
> Missing PR bump

On eglibc?

>                 and broken upgrade path.

I'm having trouble coming up with a way to solve that. I think the
libc6-dbg package needs to RPROVIDE, RREPLACE and RCONFLICT with
libc-dbg but if I add the following:

  d.setVar('RPROVIDES_' + bpn + '-dbg', bpn + '-dbg')
  d.setVar('RCONFLICTS_' + bpn + '-dbg', bpn + '-dbg')
  d.setVar('RREPLACES_' + bpn + '-dbg', bpn + '-dbg')

Then the package names undergo translation and I get:

  Provides: libc6-dbg
  Replaces: libc6-dbg
  Conflicts: libc6-dbg

Which is clearly wrong. :(

How would you recommend I provide backward compatibility for this
change (assuming it is still seen as desirable?)

Thanks for your comments.

Mike.
Koen Kooi - March 19, 2012, 11:59 a.m.
Op 19 mrt. 2012, om 12:52 heeft Mike Crowe het volgende geschreven:

> Op 16 mrt. 2012, om 17:32 heeft Mike Crowe het volgende geschreven:
>>> The magic in rootfs_ipk.bbclass expects to generate debug package
>>> names by just appending '-dbg'.
> 
> It turns out that the above was a local change so that statement was
> incorrect. Nevertheless the change probably makes sense anyway.
> 
>>>                                This breaks for eglibc because whilst
>>> the binary package has been renamed to libc6 the debug package is
>>> still called libc-dbg. This patch ensures that the debug package is
>>> renamed too.
>>> ---
>>> meta/classes/libc-common.bbclass |    1 +
>>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>> 
>>> diff --git a/meta/classes/libc-common.bbclass b/meta/classes/libc-common.bbclass
>>> index 962f205..d0c1ab4 100644
>>> --- a/meta/classes/libc-common.bbclass
>>> +++ b/meta/classes/libc-common.bbclass
>>> @@ -27,4 +27,5 @@ python populate_packages_prepend () {
>>> 		bpn = d.getVar('BPN', True)
>>> 		d.setVar('PKG_'+bpn, 'libc6')
>>> 		d.setVar('PKG_'+bpn+'-dev', 'libc6-dev')
>>> +		d.setVar('PKG_'+bpn+'-dbg', 'libc6-dbg')
>>> }
> 
> On Fri, Mar 16, 2012 at 08:39:00PM +0100, Koen Kooi wrote:
>> Missing PR bump
> 
> On eglibc?

On everything that uses that class.

> 
>>                and broken upgrade path.
> 
> I'm having trouble coming up with a way to solve that. I think the
> libc6-dbg package needs to RPROVIDE, RREPLACE and RCONFLICT with
> libc-dbg but if I add the following:
> 
>  d.setVar('RPROVIDES_' + bpn + '-dbg', bpn + '-dbg')
>  d.setVar('RCONFLICTS_' + bpn + '-dbg', bpn + '-dbg')
>  d.setVar('RREPLACES_' + bpn + '-dbg', bpn + '-dbg')

Does d.setVar('RREPLACES_' + bpn + '-dbg', 'libc-dbg') work?

regards,

Koen

> 
> Then the package names undergo translation and I get:
> 
>  Provides: libc6-dbg
>  Replaces: libc6-dbg
>  Conflicts: libc6-dbg
> 
> Which is clearly wrong. :(
> 
> How would you recommend I provide backward compatibility for this
> change (assuming it is still seen as desirable?)
> 
> Thanks for your comments.
> 
> Mike.
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Martin Jansa - March 19, 2012, 12:03 p.m.
On Mon, Mar 19, 2012 at 11:52:36AM +0000, Mike Crowe wrote:
> Op 16 mrt. 2012, om 17:32 heeft Mike Crowe het volgende geschreven:
> > > The magic in rootfs_ipk.bbclass expects to generate debug package
> > > names by just appending '-dbg'.
> 
> It turns out that the above was a local change so that statement was
> incorrect. Nevertheless the change probably makes sense anyway.
> 
> > >                                 This breaks for eglibc because whilst
> > > the binary package has been renamed to libc6 the debug package is
> > > still called libc-dbg. This patch ensures that the debug package is
> > > renamed too.
> > > ---
> > > meta/classes/libc-common.bbclass |    1 +
> > > 1 files changed, 1 insertions(+), 0 deletions(-)
> > > 
> > > diff --git a/meta/classes/libc-common.bbclass b/meta/classes/libc-common.bbclass
> > > index 962f205..d0c1ab4 100644
> > > --- a/meta/classes/libc-common.bbclass
> > > +++ b/meta/classes/libc-common.bbclass
> > > @@ -27,4 +27,5 @@ python populate_packages_prepend () {
> > > 		bpn = d.getVar('BPN', True)
> > > 		d.setVar('PKG_'+bpn, 'libc6')
> > > 		d.setVar('PKG_'+bpn+'-dev', 'libc6-dev')
> > > +		d.setVar('PKG_'+bpn+'-dbg', 'libc6-dbg')
> > > }
>  
> On Fri, Mar 16, 2012 at 08:39:00PM +0100, Koen Kooi wrote:
> > Missing PR bump
> 
> On eglibc?
> 
> >                 and broken upgrade path.
> 
> I'm having trouble coming up with a way to solve that. I think the
> libc6-dbg package needs to RPROVIDE, RREPLACE and RCONFLICT with
> libc-dbg but if I add the following:
> 
>   d.setVar('RPROVIDES_' + bpn + '-dbg', bpn + '-dbg')
>   d.setVar('RCONFLICTS_' + bpn + '-dbg', bpn + '-dbg')
>   d.setVar('RREPLACES_' + bpn + '-dbg', bpn + '-dbg')

try to hardcode "libc" instead of bpn in value if you want

Provides: libc-dbg
Replaces: libc-dbg
Conflicts: libc-dbg


> 
> Then the package names undergo translation and I get:
> 
>   Provides: libc6-dbg
>   Replaces: libc6-dbg
>   Conflicts: libc6-dbg
> 
> Which is clearly wrong. :(
> 
> How would you recommend I provide backward compatibility for this
> change (assuming it is still seen as desirable?)
> 
> Thanks for your comments.
> 
> Mike.
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Mike Crowe - March 19, 2012, 1:37 p.m.
Op 16 mrt. 2012, om 17:32 heeft Mike Crowe het volgende geschreven:
>>>> diff --git a/meta/classes/libc-common.bbclass b/meta/classes/libc-common.bbclass
>>>> index 962f205..d0c1ab4 100644
>>>> --- a/meta/classes/libc-common.bbclass
>>>> +++ b/meta/classes/libc-common.bbclass
>>>> @@ -27,4 +27,5 @@ python populate_packages_prepend () {
>>>> 		bpn = d.getVar('BPN', True)
>>>> 		d.setVar('PKG_'+bpn, 'libc6')
>>>> 		d.setVar('PKG_'+bpn+'-dev', 'libc6-dev')
>>>> +		d.setVar('PKG_'+bpn+'-dbg', 'libc6-dbg')
>>>> }

On Fri, Mar 16, 2012 at 08:39:00PM +0100, Koen Kooi wrote:
>>> Missing PR bump

Op 19 mrt. 2012, om 12:52 heeft Mike Crowe het volgende geschreven:
>> On eglibc?

On Mon, Mar 19, 2012 at 12:59:53PM +0100, Koen Kooi wrote:
> On everything that uses that class.

OK.

>>>                and broken upgrade path.

>> I'm having trouble coming up with a way to solve that. I think the
>> libc6-dbg package needs to RPROVIDE, RREPLACE and RCONFLICT with
>> libc-dbg but if I add the following:
>> 
>>  d.setVar('RPROVIDES_' + bpn + '-dbg', bpn + '-dbg')
>>  d.setVar('RCONFLICTS_' + bpn + '-dbg', bpn + '-dbg')
>>  d.setVar('RREPLACES_' + bpn + '-dbg', bpn + '-dbg')

> Does d.setVar('RREPLACES_' + bpn + '-dbg', 'libc-dbg') work?

It seems to. Do I just need to set RREPLACES or all three?

Thanks.

Mike.

Patch

diff --git a/meta/classes/libc-common.bbclass b/meta/classes/libc-common.bbclass
index 962f205..d0c1ab4 100644
--- a/meta/classes/libc-common.bbclass
+++ b/meta/classes/libc-common.bbclass
@@ -27,4 +27,5 @@  python populate_packages_prepend () {
 		bpn = d.getVar('BPN', True)
 		d.setVar('PKG_'+bpn, 'libc6')
 		d.setVar('PKG_'+bpn+'-dev', 'libc6-dev')
+		d.setVar('PKG_'+bpn+'-dbg', 'libc6-dbg')
 }