[OE-core] [PATCH 2/2] package.bbclass: convert file depends into pkg depends
Robert Yang
liezhi.yang at windriver.com
Mon Jul 14 09:41:04 UTC 2014
The ipk or deb can't depend on file such as "/usr/bin/perl", so it would
know nothing about perl, and there would be dependencies problems when
we run "apt-get install" on the target. Convert the file depends into
pkg depends can fix the issue:
/bin/bash -> bash
/usr/bin/perl -> perl
/usr/bin/python -> python
NOTE, we still need the QA check package_qa_check_file_depends though we
have this fix, manually add the pkg to RDEPENDS is correct, anyway.
TODO:
- Add a global var for the paths, such as BASH_PATH = "/bin/bash" rather than
directly use /bin/bash ?
[YOCTO #1662]
Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
---
meta/classes/package.bbclass | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 26a20d1..419cdcf 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -1318,6 +1318,9 @@ python package_do_filedeps() {
pool.close()
pool.join()
+ # Used for converting file depends into pkg depends
+ prog_maps = {"/bin/bash": "bash", "/usr/bin/perl": "perl", "/usr/bin/python": "python"}
+
provides_files = {}
requires_files = {}
@@ -1334,10 +1337,21 @@ python package_do_filedeps() {
key = "FILERPROVIDES_" + file + "_" + pkg
d.setVar(key, " ".join(provides[file]))
+ req_file_pkgs = []
for file in requires:
requires_files[pkg].append(file)
key = "FILERDEPENDS_" + file + "_" + pkg
d.setVar(key, " ".join(requires[file]))
+ for req_file in requires[file]:
+ if req_file in prog_maps and prog_maps[req_file] not in req_file_pkgs:
+ req_file_pkgs.append(prog_maps[req_file])
+
+ if req_file_pkgs:
+ rdepends = bb.utils.explode_deps(d.getVar('RDEPENDS_' + pkg, True) or "")
+ for p in req_file_pkgs:
+ if p not in rdepends:
+ bb.note("Adding %s to RDEPENDS_%s" % (p, pkg))
+ d.appendVar("RDEPENDS_" + pkg, ' ' + p)
for pkg in requires_files:
d.setVar("FILERDEPENDSFLIST_" + pkg, " ".join(requires_files[pkg]))
--
1.7.9.5
More information about the Openembedded-core
mailing list