diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/package.bbclass | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 23ff4772fa..cc64ddffc3 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass | |||
@@ -535,7 +535,7 @@ def copydebugsources(debugsrcdir, sources, d): | |||
535 | # Package data handling routines | 535 | # Package data handling routines |
536 | # | 536 | # |
537 | 537 | ||
538 | def get_package_mapping (pkg, basepkg, d): | 538 | def get_package_mapping (pkg, basepkg, d, depversions=None): |
539 | import oe.packagedata | 539 | import oe.packagedata |
540 | 540 | ||
541 | data = oe.packagedata.read_subpkgdata(pkg, d) | 541 | data = oe.packagedata.read_subpkgdata(pkg, d) |
@@ -546,6 +546,14 @@ def get_package_mapping (pkg, basepkg, d): | |||
546 | if bb.data.inherits_class('allarch', d) and not d.getVar('MULTILIB_VARIANTS') \ | 546 | if bb.data.inherits_class('allarch', d) and not d.getVar('MULTILIB_VARIANTS') \ |
547 | and data[key] == basepkg: | 547 | and data[key] == basepkg: |
548 | return pkg | 548 | return pkg |
549 | if depversions == []: | ||
550 | # Avoid returning a mapping if the renamed package rprovides its original name | ||
551 | rprovkey = "RPROVIDES_%s" % pkg | ||
552 | if rprovkey in data: | ||
553 | if pkg in bb.utils.explode_dep_versions2(data[rprovkey]): | ||
554 | bb.note("%s rprovides %s, not replacing the latter" % (data[key], pkg)) | ||
555 | return pkg | ||
556 | # Do map to rewritten package name | ||
549 | return data[key] | 557 | return data[key] |
550 | 558 | ||
551 | return pkg | 559 | return pkg |
@@ -566,8 +574,10 @@ def runtime_mapping_rename (varname, pkg, d): | |||
566 | 574 | ||
567 | new_depends = {} | 575 | new_depends = {} |
568 | deps = bb.utils.explode_dep_versions2(d.getVar(varname) or "") | 576 | deps = bb.utils.explode_dep_versions2(d.getVar(varname) or "") |
569 | for depend in deps: | 577 | for depend, depversions in deps.items(): |
570 | new_depend = get_package_mapping(depend, pkg, d) | 578 | new_depend = get_package_mapping(depend, pkg, d, depversions) |
579 | if depend != new_depend: | ||
580 | bb.note("package name mapping done: %s -> %s" % (depend, new_depend)) | ||
571 | new_depends[new_depend] = deps[depend] | 581 | new_depends[new_depend] = deps[depend] |
572 | 582 | ||
573 | d.setVar(varname, bb.utils.join_deps(new_depends, commasep=False)) | 583 | d.setVar(varname, bb.utils.join_deps(new_depends, commasep=False)) |