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