Patchwork eglibc-locale: fix localedef packaging

login
register
mail settings
Submitter Phil Blundell
Date June 30, 2011, 11:17 a.m.
Message ID <1309432642.2551.131.camel@phil-desktop>
Download mbox | patch
Permalink /patch/6749/
State New, archived
Headers show

Comments

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.
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

Patch

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