eglibc-locale: fix localedef packaging

Submitted by Phil Blundell on June 30, 2011, 11:17 a.m.

Details

Message ID 1309432642.2551.131.camel@phil-desktop
State New, archived
Headers show

Commit Message

Phil Blundell June 30, 2011, 11:17 a.m.
On Wed, 2011-06-29 at 14:49 +0100, Richard Purdie wrote:
> On Wed, 2011-06-29 at 14:36 +0100, Phil Blundell wrote:
> > On Tue, 2011-06-28 at 22:32 +0200, Koen Kooi wrote:
> > > From http://git.angstrom-distribution.org/cgi-bin/cgit.cgi/testlab/commit/?h=yocto&id=0d0e14cda2ddd881d09798b0e6edd8086aa9b6d9
> > > 
> > > +libc6 -> libc6_dev;
> > > 
> > > So libc6 now depends on libc6-dev :(
> > 
> > I guess it would be straightforward to patch insane.bbclass to detect
> > that particular failure (which does indeed seem to happen to libc
> > distressingly often).  It already diagnoses the case where a package
> > erroneously depends on a -dbg package, and I can't think of any reason
> > why the same logic couldn't be applied to -dev.
> 
> I'd love to see a patch for this! :)

Your wish, naturally, is my command.  I've built micro-base-image with
this and verified that I didn't get any false positives; I also checked
(via some manual fiddling) that it did indeed detect the case that we
want it to.  

I guess it might be a good idea for someone to test it with a slightly
larger dataset before actually checking it in, just in case.

p.

Patch hide | download patch | download mbox

diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
index 35809b9..f7e5524 100644
--- a/meta/classes/insane.bbclass
+++ b/meta/classes/insane.bbclass
@@ -103,6 +103,7 @@  def package_qa_get_machine_dict():
 # 8 - .la contains reference to the workdir
 # 9 - LDFLAGS ignored
 # 10 - Build paths in binaries
+# 11 - package depends on devel package
 
 def package_qa_clean_path(path,d):
     """ Remove the common prefix from the path. In this case it is the TMPDIR"""
@@ -134,6 +135,7 @@  def package_qa_write_error(error_class, name, path, d):
         ".la contains reference to the workdir",
         "LDFLAGS ignored",
         "package contains reference to tmpdir paths",
+	"package depends on devel package",
     ]
 
     log_path = os.path.join( bb.data.getVar('T', d, True), "log.qa_package" )
@@ -493,12 +495,14 @@  def package_qa_check_rdepends(pkg, pkgdest, d):
         # Now check the RDEPENDS
         rdepends = bb.utils.explode_deps(bb.data.getVar('RDEPENDS', localdata, True) or "")
 
-
         # Now do the sanity check!!!
         for rdepend in rdepends:
             if "-dbg" in rdepend:
                 error_msg = "%s rdepends on %s" % (pkgname,rdepend)
                 sane = package_qa_handle_error(2, error_msg, pkgname, rdepend, d)
+	    if (not "-dev" in pkg and not "-staticdev" in pkg) and rdepend.endswith("-dev"):
+	        error_msg = "%s rdepends on %s" % (pkgname, rdepend)
+                sane = package_qa_handle_error(11, error_msg, pkgname, rdepend, d)
 
     return sane
 

Comments

Koen Kooi June 30, 2011, 11:24 a.m.
Op 30 jun 2011, om 13:17 heeft Phil Blundell het volgende geschreven:

> On Wed, 2011-06-29 at 14:49 +0100, Richard Purdie wrote:
>> On Wed, 2011-06-29 at 14:36 +0100, Phil Blundell wrote:
>>> On Tue, 2011-06-28 at 22:32 +0200, Koen Kooi wrote:
>>>> From http://git.angstrom-distribution.org/cgi-bin/cgit.cgi/testlab/commit/?h=yocto&id=0d0e14cda2ddd881d09798b0e6edd8086aa9b6d9
>>>> 
>>>> +libc6 -> libc6_dev;
>>>> 
>>>> So libc6 now depends on libc6-dev :(
>>> 
>>> I guess it would be straightforward to patch insane.bbclass to detect
>>> that particular failure (which does indeed seem to happen to libc
>>> distressingly often).  It already diagnoses the case where a package
>>> erroneously depends on a -dbg package, and I can't think of any reason
>>> why the same logic couldn't be applied to -dev.
>> 
>> I'd love to see a patch for this! :)
> 
> Your wish, naturally, is my command.  I've built micro-base-image with
> this and verified that I didn't get any false positives; I also checked
> (via some manual fiddling) that it did indeed detect the case that we
> want it to.  
> 
> I guess it might be a good idea for someone to test it with a slightly
> larger dataset before actually checking it in, just in case.

Does it whitelist recipes that inherit task.bbclass? I have tasks used for beagleboard workshops that drag in the native toolchain and headers for the things we need to build against (e.g. opencv, qt).

regards,

Koen
Phil Blundell June 30, 2011, 1:04 p.m.
On Thu, 2011-06-30 at 13:24 +0200, Koen Kooi wrote:
> Does it whitelist recipes that inherit task.bbclass? I have tasks used for beagleboard workshops that drag in the native toolchain and headers for the things we need to build against (e.g. opencv, qt).

No.  The existing logic for -dbg packages, which I just reused for this
case, does:

    if not "-dbg" in pkg and not "task-" in pkg and not "-image" in pkg:

but it doesn't have a check for inheritance as such.  If you can suggest
a good way to identify recipes that have inherited task then I'd be
happy to adjust the patch accordingly.

p.
Koen Kooi June 30, 2011, 1:40 p.m.
Op 30 jun 2011, om 15:04 heeft Phil Blundell het volgende geschreven:

> On Thu, 2011-06-30 at 13:24 +0200, Koen Kooi wrote:
>> Does it whitelist recipes that inherit task.bbclass? I have tasks used for beagleboard workshops that drag in the native toolchain and headers for the things we need to build against (e.g. opencv, qt).
> 
> No.  The existing logic for -dbg packages, which I just reused for this
> case, does:
> 
>    if not "-dbg" in pkg and not "task-" in pkg and not "-image" in pkg:
> 
> but it doesn't have a check for inheritance as such.  If you can suggest
> a good way to identify recipes that have inherited task then I'd be
> happy to adjust the patch accordingly.

The current logic seems to do what I want, but I remember something about being able to do 'if inherits(task)', but that was about 5 years :)
Richard Purdie June 30, 2011, 2:54 p.m.
On Thu, 2011-06-30 at 12:17 +0100, Phil Blundell wrote:
> On Wed, 2011-06-29 at 14:49 +0100, Richard Purdie wrote:
> > I'd love to see a patch for this! :)
> 
> Your wish, naturally, is my command.  I've built micro-base-image with
> this and verified that I didn't get any false positives; I also checked
> (via some manual fiddling) that it did indeed detect the case that we
> want it to.  
> 
> I guess it might be a good idea for someone to test it with a slightly
> larger dataset before actually checking it in, just in case.

Thanks, I'll let Saul try this against a wider build and assuming it
doesn't throw out too many issues we can get it merged.

Cheers,

Richard

> p.
> 
> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
> index 35809b9..f7e5524 100644
> --- a/meta/classes/insane.bbclass
> +++ b/meta/classes/insane.bbclass
> @@ -103,6 +103,7 @@ def package_qa_get_machine_dict():
>  # 8 - .la contains reference to the workdir
>  # 9 - LDFLAGS ignored
>  # 10 - Build paths in binaries
> +# 11 - package depends on devel package
>  
>  def package_qa_clean_path(path,d):
>      """ Remove the common prefix from the path. In this case it is the TMPDIR"""
> @@ -134,6 +135,7 @@ def package_qa_write_error(error_class, name, path, d):
>          ".la contains reference to the workdir",
>          "LDFLAGS ignored",
>          "package contains reference to tmpdir paths",
> +	"package depends on devel package",
>      ]
>  
>      log_path = os.path.join( bb.data.getVar('T', d, True), "log.qa_package" )
> @@ -493,12 +495,14 @@ def package_qa_check_rdepends(pkg, pkgdest, d):
>          # Now check the RDEPENDS
>          rdepends = bb.utils.explode_deps(bb.data.getVar('RDEPENDS', localdata, True) or "")
>  
> -
>          # Now do the sanity check!!!
>          for rdepend in rdepends:
>              if "-dbg" in rdepend:
>                  error_msg = "%s rdepends on %s" % (pkgname,rdepend)
>                  sane = package_qa_handle_error(2, error_msg, pkgname, rdepend, d)
> +	    if (not "-dev" in pkg and not "-staticdev" in pkg) and rdepend.endswith("-dev"):
> +	        error_msg = "%s rdepends on %s" % (pkgname, rdepend)
> +                sane = package_qa_handle_error(11, error_msg, pkgname, rdepend, d)
>  
>      return sane
>  
> 
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Richard Purdie June 30, 2011, 2:54 p.m.
On Thu, 2011-06-30 at 14:04 +0100, Phil Blundell wrote:
> On Thu, 2011-06-30 at 13:24 +0200, Koen Kooi wrote:
> > Does it whitelist recipes that inherit task.bbclass? I have tasks used for beagleboard workshops that drag in the native toolchain and headers for the things we need to build against (e.g. opencv, qt).
> 
> No.  The existing logic for -dbg packages, which I just reused for this
> case, does:
> 
>     if not "-dbg" in pkg and not "task-" in pkg and not "-image" in pkg:
> 
> but it doesn't have a check for inheritance as such.  If you can suggest
> a good way to identify recipes that have inherited task then I'd be
> happy to adjust the patch accordingly.

Would bb.data.inherits_class('task', d) help?

Cheers,

Richard
Saul Wold June 30, 2011, 3:53 p.m.
On 06/30/2011 07:54 AM, Richard Purdie wrote:
> On Thu, 2011-06-30 at 12:17 +0100, Phil Blundell wrote:
>> On Wed, 2011-06-29 at 14:49 +0100, Richard Purdie wrote:
>>> I'd love to see a patch for this! :)
>>
>> Your wish, naturally, is my command.  I've built micro-base-image with
>> this and verified that I didn't get any false positives; I also checked
>> (via some manual fiddling) that it did indeed detect the case that we
>> want it to.
>>
>> I guess it might be a good idea for someone to test it with a slightly
>> larger dataset before actually checking it in, just in case.
>
> Thanks, I'll let Saul try this against a wider build and assuming it
> doesn't throw out too many issues we can get it merged.
>
Phil,

Can I get this as a proper patch email with a clean header, I will start 
testing with below.

Thanks
	Sau!


> Cheers,
>
> Richard
>
>> p.
>>
>> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
>> index 35809b9..f7e5524 100644
>> --- a/meta/classes/insane.bbclass
>> +++ b/meta/classes/insane.bbclass
>> @@ -103,6 +103,7 @@ def package_qa_get_machine_dict():
>>   # 8 - .la contains reference to the workdir
>>   # 9 - LDFLAGS ignored
>>   # 10 - Build paths in binaries
>> +# 11 - package depends on devel package
>>
>>   def package_qa_clean_path(path,d):
>>       """ Remove the common prefix from the path. In this case it is the TMPDIR"""
>> @@ -134,6 +135,7 @@ def package_qa_write_error(error_class, name, path, d):
>>           ".la contains reference to the workdir",
>>           "LDFLAGS ignored",
>>           "package contains reference to tmpdir paths",
>> +	"package depends on devel package",
>>       ]
>>
>>       log_path = os.path.join( bb.data.getVar('T', d, True), "log.qa_package" )
>> @@ -493,12 +495,14 @@ def package_qa_check_rdepends(pkg, pkgdest, d):
>>           # Now check the RDEPENDS
>>           rdepends = bb.utils.explode_deps(bb.data.getVar('RDEPENDS', localdata, True) or "")
>>
>> -
>>           # Now do the sanity check!!!
>>           for rdepend in rdepends:
>>               if "-dbg" in rdepend:
>>                   error_msg = "%s rdepends on %s" % (pkgname,rdepend)
>>                   sane = package_qa_handle_error(2, error_msg, pkgname, rdepend, d)
>> +	    if (not "-dev" in pkg and not "-staticdev" in pkg) and rdepend.endswith("-dev"):
>> +	        error_msg = "%s rdepends on %s" % (pkgname, rdepend)
>> +                sane = package_qa_handle_error(11, error_msg, pkgname, rdepend, d)
>>
>>       return sane
>>
>>
>>
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
Richard Purdie July 5, 2011, 1:05 p.m.
On Thu, 2011-06-30 at 12:17 +0100, Phil Blundell wrote:
> On Wed, 2011-06-29 at 14:49 +0100, Richard Purdie wrote:
> > On Wed, 2011-06-29 at 14:36 +0100, Phil Blundell wrote:
> > > On Tue, 2011-06-28 at 22:32 +0200, Koen Kooi wrote:
> > > > From http://git.angstrom-distribution.org/cgi-bin/cgit.cgi/testlab/commit/?h=yocto&id=0d0e14cda2ddd881d09798b0e6edd8086aa9b6d9
> > > > 
> > > > +libc6 -> libc6_dev;
> > > > 
> > > > So libc6 now depends on libc6-dev :(
> > > 
> > > I guess it would be straightforward to patch insane.bbclass to detect
> > > that particular failure (which does indeed seem to happen to libc
> > > distressingly often).  It already diagnoses the case where a package
> > > erroneously depends on a -dbg package, and I can't think of any reason
> > > why the same logic couldn't be applied to -dev.
> > 
> > I'd love to see a patch for this! :)
> 
> Your wish, naturally, is my command.  I've built micro-base-image with
> this and verified that I didn't get any false positives; I also checked
> (via some manual fiddling) that it did indeed detect the case that we
> want it to.  
> 
> I guess it might be a good idea for someone to test it with a slightly
> larger dataset before actually checking it in, just in case.

I merged an updated version of this into master as I think its a useful
check, thanks.

Richard