Message ID | cbee3382e54c46b70c237e71b93e9676cd917d98.1388738733.git.christian.braunersorensen@prevas.dk |
---|---|
State | Accepted |
Delegated to: | Esben Haabendal |
Headers | show |
<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 --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)))