summaryrefslogtreecommitdiff
path: root/meta/classes/package.bbclass
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-01-29 14:02:56 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-02-01 15:51:29 +0000
commitca2ee871f82dd0ba4122a8373e4efd21cec5722b (patch)
tree3fff0cdd64c29a23627491b7639f9bd3f19db3e6 /meta/classes/package.bbclass
parent96d268166ab0d4640767bf3a0886358dcb663d0f (diff)
downloadopenembedded-core-ca2ee871f82dd0ba4122a8373e4efd21cec5722b.tar.gz
openembedded-core-ca2ee871f82dd0ba4122a8373e4efd21cec5722b.tar.bz2
openembedded-core-ca2ee871f82dd0ba4122a8373e4efd21cec5722b.zip
package.bbclass: Improve package_fixsymlinks
Improve package_fixsymlinks so we don't handle RDEPENDS for every single package in PACKAGES. (From OE-Core rev: 20ff8feb95d54e4db646f8c0cb006ce187e288af) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/package.bbclass')
-rw-r--r--meta/classes/package.bbclass19
1 files changed, 12 insertions, 7 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 2f1695b646..1ccac9cdb8 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1064,24 +1064,29 @@ python package_fixsymlinks () {
target = os.path.join(root[len(inst_root):], target)
dangling_links[pkg].append(os.path.normpath(target))
- for pkg in packages:
- rdepends = bb.utils.explode_dep_versions2(d.getVar('RDEPENDS_' + pkg, True) or d.getVar('RDEPENDS', True) or "")
-
+ newrdepends = {}
+ for pkg in dangling_links:
for l in dangling_links[pkg]:
found = False
bb.debug(1, "%s contains dangling link %s" % (pkg, l))
for p in packages:
- for f in pkg_files[p]:
- if f == l:
+ if l in pkg_files[p]:
found = True
bb.debug(1, "target found in %s" % p)
if p == pkg:
break
- if p not in rdepends:
- rdepends[p] = []
+ if pkg not in newrdepends:
+ newrdepends[pkg] = []
+ newrdepends[pkg].append(p)
break
if found == False:
bb.note("%s contains dangling symlink to %s" % (pkg, l))
+
+ for pkg in newrdepends:
+ rdepends = bb.utils.explode_dep_versions2(d.getVar('RDEPENDS_' + pkg, True) or d.getVar('RDEPENDS', True) or "")
+ for p in newrdepends[pkg]:
+ if p not in rdepends:
+ rdepends[p] = []
d.setVar('RDEPENDS_' + pkg, bb.utils.join_deps(rdepends, commasep=False))
}