summaryrefslogtreecommitdiffstats
path: root/meta/classes/package_deb.bbclass
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2012-10-02 11:37:07 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-10-02 11:40:53 +0100
commit5fdbda6922327d963d4fe1c597fed8f0dfd20ed1 (patch)
tree98e3a58efeaead2fa76110b571cfda3f63414277 /meta/classes/package_deb.bbclass
parent0bfb2094e3eadc85358a354d12b211ff69612a61 (diff)
downloadpoky-5fdbda6922327d963d4fe1c597fed8f0dfd20ed1.tar.gz
classes: Update to use corrected bb.utils.explode_dep_versions2 API
The bb.utils.explode_dep_versions function has issues where dependency information can be lost. The API doesn't support maintaining the correct information so this changes to use a new function which correctly handles the data. This patch also fixes various points in the code to ensure that we do not have any duplicates in things that use explode_dep_versions. A new sanity test to test the contents of the R* variables is also added. [Some changes from Mark Hatle <mark.hatle@windriver.com>] (From OE-Core rev: 16a892431d0c0d03f8b561b92909cf2f11af4918) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/package_deb.bbclass')
-rw-r--r--meta/classes/package_deb.bbclass21
1 files changed, 11 insertions, 10 deletions
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass
index a25e5d783e..d273cb0f84 100644
--- a/meta/classes/package_deb.bbclass
+++ b/meta/classes/package_deb.bbclass
@@ -341,28 +341,29 @@ python do_package_deb () {
341 # adjust these to the '<<' and '>>' equivalents 341 # adjust these to the '<<' and '>>' equivalents
342 # 342 #
343 for dep in var: 343 for dep in var:
344 if (var[dep] or "").startswith("< "): 344 for i, v in enumerate(var[dep]):
345 var[dep] = var[dep].replace("< ", "<< ") 345 if (v or "").startswith("< "):
346 elif (var[dep] or "").startswith("> "): 346 var[dep][i] = var[dep][i].replace("< ", "<< ")
347 var[dep] = var[dep].replace("> ", ">> ") 347 elif (v or "").startswith("> "):
348 var[dep][i] = var[dep][i].replace("> ", ">> ")
348 349
349 rdepends = bb.utils.explode_dep_versions(localdata.getVar("RDEPENDS", True) or "") 350 rdepends = bb.utils.explode_dep_versions2(localdata.getVar("RDEPENDS", True) or "")
350 debian_cmp_remap(rdepends) 351 debian_cmp_remap(rdepends)
351 for dep in rdepends: 352 for dep in rdepends:
352 if '*' in dep: 353 if '*' in dep:
353 del rdepends[dep] 354 del rdepends[dep]
354 rrecommends = bb.utils.explode_dep_versions(localdata.getVar("RRECOMMENDS", True) or "") 355 rrecommends = bb.utils.explode_dep_versions2(localdata.getVar("RRECOMMENDS", True) or "")
355 debian_cmp_remap(rrecommends) 356 debian_cmp_remap(rrecommends)
356 for dep in rrecommends: 357 for dep in rrecommends:
357 if '*' in dep: 358 if '*' in dep:
358 del rrecommends[dep] 359 del rrecommends[dep]
359 rsuggests = bb.utils.explode_dep_versions(localdata.getVar("RSUGGESTS", True) or "") 360 rsuggests = bb.utils.explode_dep_versions2(localdata.getVar("RSUGGESTS", True) or "")
360 debian_cmp_remap(rsuggests) 361 debian_cmp_remap(rsuggests)
361 rprovides = bb.utils.explode_dep_versions(localdata.getVar("RPROVIDES", True) or "") 362 rprovides = bb.utils.explode_dep_versions2(localdata.getVar("RPROVIDES", True) or "")
362 debian_cmp_remap(rprovides) 363 debian_cmp_remap(rprovides)
363 rreplaces = bb.utils.explode_dep_versions(localdata.getVar("RREPLACES", True) or "") 364 rreplaces = bb.utils.explode_dep_versions2(localdata.getVar("RREPLACES", True) or "")
364 debian_cmp_remap(rreplaces) 365 debian_cmp_remap(rreplaces)
365 rconflicts = bb.utils.explode_dep_versions(localdata.getVar("RCONFLICTS", True) or "") 366 rconflicts = bb.utils.explode_dep_versions2(localdata.getVar("RCONFLICTS", True) or "")
366 debian_cmp_remap(rconflicts) 367 debian_cmp_remap(rconflicts)
367 if rdepends: 368 if rdepends:
368 ctrlfile.write("Depends: %s\n" % unicode(bb.utils.join_deps(rdepends))) 369 ctrlfile.write("Depends: %s\n" % unicode(bb.utils.join_deps(rdepends)))