multilib.bbclass: Fix renaming logic for "FILES_", "RDEPENDS_", etc

In the orignal logic, the renaming will not work for "FILES_" if defined
variables as:

PACKAGES = "${PN}"
FILES_abc = "/usr/include/abc.h"

It is because ${PN} is "lib64-abc" so it will not be contained in
pkgrename.

This commit enumerates all element in PACKAGES, getting the original
packages and multilib packages, then doing renaming for "FILES_",
"RDEPENDS_", etc. This fixes a lot of missing files and incorrect
dependencies.

(From OE-Core rev: ea7c196b4097d64b4f42faccaf075334c297ba20)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Dongxiao Xu 2011-08-25 21:30:12 +08:00 committed by Richard Purdie
parent ae2a894756
commit 45f805a6c8
1 changed files with 8 additions and 10 deletions

View File

@ -63,20 +63,18 @@ python __anonymous () {
newvar.append(extend_name(v))
d.setVar(varname, " ".join(newvar))
pkgs = []
pkgrename = {}
pkgs_mapping = []
for pkg in (d.getVar("PACKAGES", True) or "").split():
if pkg.startswith(variant):
pkgs.append(pkg)
pkgs_mapping.append([pkg.split(variant + "-")[1], pkg])
continue
pkgrename[pkg] = extend_name(pkg)
pkgs.append(pkgrename[pkg])
pkgs_mapping.append([pkg, extend_name(pkg)])
if pkgrename:
d.setVar("PACKAGES", " ".join(pkgs))
for pkg in pkgrename:
for subs in ["FILES", "RDEPENDS", "RRECOMMENDS", "SUMMARY", "DESCRIPTION", "RSUGGESTS", "RPROVIDES", "RCONFLICTS", "PKG", "ALLOW_EMPTY"]:
d.renameVar("%s_%s" % (subs, pkg), "%s_%s" % (subs, pkgrename[pkg]))
d.setVar("PACKAGES", " ".join([row[1] for row in pkgs_mapping]))
for pkg_mapping in pkgs_mapping:
for subs in ["FILES", "RDEPENDS", "RRECOMMENDS", "SUMMARY", "DESCRIPTION", "RSUGGESTS", "RPROVIDES", "RCONFLICTS", "PKG", "ALLOW_EMPTY"]:
d.renameVar("%s_%s" % (subs, pkg_mapping[0]), "%s_%s" % (subs, pkg_mapping[1]))
map_dependencies("DEPENDS", d)
for pkg in (d.getVar("PACKAGES", True).split() + [""]):