diff mbox

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

Message ID cbee3382e54c46b70c237e71b93e9676cd917d98.1388738733.git.christian.braunersorensen@prevas.dk
State Accepted
Delegated to: Esben Haabendal
Headers show

Commit Message

christian.braunersorensen@prevas.dk Jan. 3, 2014, 8:46 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(-)

Comments

Esben Haabendal Jan. 3, 2014, 10:47 a.m. UTC | #1
<christian.braunersorensen@prevas.dk> writes:

> 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 --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("_","-"))

I dropped this part of the patch (as suggested by Kim).

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

Merged to master, with the change described above.

/Esben
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)))