diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-01-29 14:02:56 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-02-01 15:54:02 +0000 |
commit | ed931d0314e4d1bb5230b266d2ec6d55dcb63df6 (patch) | |
tree | f8061497d3f9e76cb9bdf414e4d5497135e7d5d7 | |
parent | 398d62fd74b87d5f9c655a86f5c163da89188cb5 (diff) | |
download | ast2050-yocto-poky-ed931d0314e4d1bb5230b266d2ec6d55dcb63df6.zip ast2050-yocto-poky-ed931d0314e4d1bb5230b266d2ec6d55dcb63df6.tar.gz |
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)
(From OE-Core rev: ca2ee871f82dd0ba4122a8373e4efd21cec5722b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/package.bbclass | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 2f1695b..1ccac9c 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)) } |