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:51:29 +0000 |
commit | ca2ee871f82dd0ba4122a8373e4efd21cec5722b (patch) | |
tree | 3fff0cdd64c29a23627491b7639f9bd3f19db3e6 /meta/classes | |
parent | 96d268166ab0d4640767bf3a0886358dcb663d0f (diff) | |
download | openembedded-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')
-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 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)) } |