diff mbox

[4/4] package-qa: Ensure '_' is replaced by '-'

Message ID e7fca754fe5f9f9ddd26558f7d05802724a8cba6.1388736224.git.christian.braunersorensen@prevas.dk
State Superseded
Delegated to: Esben Haabendal
Headers show

Commit Message

christian.braunersorensen@prevas.dk Jan. 3, 2014, 8:04 a.m. UTC
From: Christian Sørensen <christian.braunersorensen@prevas.dk>

Signed-off-by: Christian Sørensen <christian.braunersorensen@prevas.dk>
---
 classes/package-qa.oeclass | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)
diff mbox

Patch

diff --git a/classes/package-qa.oeclass b/classes/package-qa.oeclass
index 4c6b8f2..25a9ef7 100644
--- a/classes/package-qa.oeclass
+++ b/classes/package-qa.oeclass
@@ -483,6 +483,7 @@  def do_packageqa(d):
         sonamify_re2 = re.compile(r"(.*?)(-[\d\.]*)?$")
         def sonamify(soname):
             def _sonamify(s):
+                s = s.replace("_","-")
                 m = sonamify_re.match(s)
                 if not m:
                     oebakery.debug("non-matching SONAME: %s"%(s))
@@ -620,7 +621,10 @@  def do_packageqa(d):
         # check consistency between library SONAME's and lib* PROVIDES
         soname_libs = set([])
         if soname:
-            soname_libs = set(sonamify(soname))
+            soname_orig = set([])
+            soname_orig = set(sonamify(soname))
+            for lib in soname_orig:
+               soname_libs.add(lib.replace("_","-"))
             missing_lib_provides = soname_libs.difference(lib_provides)
             allowed_missing = set([])
             if missing_lib_provides:
@@ -655,14 +659,19 @@  def do_packageqa(d):
 
 
         # depends that are missing, ie. in needed but not in depends.
-        missing_depends = set(sonamify(needed)).difference(
-            depends_provides.union(assume_provided))
+        dep_all = set([])
+        for lib in depends_provides.union(assume_provided):
+            dep_all.add(lib.replace("_","-"))
+        missing_depends = set(sonamify(needed)).difference(dep_all)
         if missing_depends:
             missing_depends = list(missing_depends)
+            assume_tmp = set([])
+            for lib in assume_provided:
+                assume_tmp.add(lib.replace("_","-"))
             for i in reversed(xrange(len(missing_depends))):
                 dep = missing_depends[i]
                 item = oelite.item.OEliteItem(dep, ('DEPENDS', pkg_type))
-                if str(item) in assume_provided:
+                if str(item) in assume_tmp:
                     del missing_depends[i]
         if missing_depends:
             msg = "Package %s missing DEPENDS: %s"%(
@@ -673,8 +682,11 @@  def do_packageqa(d):
                 oebakery.err(msg)
                 ok = False
         if not pkg_type in ('native', 'cross', 'sdk-cross'):
+            rdep_all = set([])
+            for lib in rdepends_provides:
+                rdep_all.add(lib.replace("_","-"))
             missing_rdepends = set(sonamify(needed)).difference(
-                rdepends_provides)
+                rdep_all)
             if missing_rdepends:
                 msg = "Package %s missing RDEPENDS: %s"%(
                     pkg, " ".join(sorted(missing_rdepends)))