]> code.ossystems Code Review - openembedded-core.git/commitdiff
package.bbclass: Add additional debugging for dependencies
authorMark Hatle <mark.hatle@windriver.com>
Wed, 23 May 2012 20:24:37 +0000 (15:24 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 25 May 2012 10:17:40 +0000 (11:17 +0100)
When trying to understand why a QA wanring such as:

ERROR: QA Issue: foo rdepends on bar-dev

it is very difficult to figure out where the bar-dev dependency
comes from, since many of them are added dynamically.

This adds a debug statement that says which dependency adds an
rdepends to the system.

Also, while doing this work, it was noted that the same dependencies
were being scanned for over and over.  Instead we shorten the list
by only added to the dep list if the dependency was not already there.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
meta/classes/package.bbclass

index 6fba5b69076671f20df9ad4d2da1f48cb5c82759..8b0ac55b7625f44b0bf156565361d9b109edf251 100644 (file)
@@ -1266,7 +1266,8 @@ python package_do_shlibs() {
                for l in lines:
                        m = re.match("\s+NEEDED\s+([^\s]*)", l)
                        if m:
-                               needed[pkg].append(m.group(1))
+                               if m.group(1) not in needed[pkg]:
+                                       needed[pkg].append(m.group(1))
                        m = re.match("\s+SONAME\s+([^\s]*)", l)
                        if m:
                                this_soname = m.group(1)
@@ -1338,7 +1339,7 @@ python package_do_shlibs() {
                                                                name = dep.replace("-l", "lib")
                                                        if pkg not in needed:
                                                                needed[pkg] = []
-                                                       if name:
+                                                       if name and name not in needed[pkg]:
                                                                needed[pkg].append(name)
                                                                #bb.note("Adding %s for %s" % (name, pkg))
 
@@ -1443,6 +1444,8 @@ python package_do_shlibs() {
                        if n in shlib_provider.keys():
                                (dep_pkg, ver_needed) = shlib_provider[n]
 
+                               bb.debug(2, '%s: Dependency %s requires package %s' % (pkg, n, dep_pkg))
+
                                if dep_pkg == pkg:
                                        continue