diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-08-30 14:22:21 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-08-31 19:29:45 +0100 |
commit | 0614b9aa62a46f81d334ca4230080cc707347f3c (patch) | |
tree | cd848ffa05fa899ca687e1c62b91fff7bf0df204 | |
parent | b9fa8fd4f09b68cbcc12b557451a58a1f218d7f3 (diff) | |
download | openembedded-core-0614b9aa62a46f81d334ca4230080cc707347f3c.tar.gz openembedded-core-0614b9aa62a46f81d334ca4230080cc707347f3c.tar.bz2 openembedded-core-0614b9aa62a46f81d334ca4230080cc707347f3c.zip |
package.bbclass: Ensure task's variable dependencies are correctly caputred in the sstate checksum
[YOCTO #1388]
This change is needed to correctly add the dependencies for the do_package
task which bitbake is unable to automatically detect itself.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/multilib.bbclass | 3 | ||||
-rw-r--r-- | meta/classes/package.bbclass | 14 |
2 files changed, 16 insertions, 1 deletions
diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass index 286b806cf0..5d975fd33e 100644 --- a/meta/classes/multilib.bbclass +++ b/meta/classes/multilib.bbclass @@ -72,8 +72,9 @@ python __anonymous () { d.setVar("PACKAGES", " ".join([row[1] for row in pkgs_mapping])) + vars = (d.getVar("PACKAGEVARS", True) or "").split() for pkg_mapping in pkgs_mapping: - for subs in ["FILES", "RDEPENDS", "RRECOMMENDS", "SUMMARY", "DESCRIPTION", "RSUGGESTS", "RPROVIDES", "RCONFLICTS", "PKG", "ALLOW_EMPTY", "pkg_postinst", "pkg_postrm", "INITSCRIPT_NAME", "INITSCRIPT_PARAMS"]: + for subs in vars: d.renameVar("%s_%s" % (subs, pkg_mapping[0]), "%s_%s" % (subs, pkg_mapping[1])) map_dependencies("DEPENDS", d) diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 15c414274f..73e8f6365f 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -1620,6 +1620,19 @@ python package_depchains() { pkg_addrrecs(pkg, base, suffix, func, rdeps, d) } +# Since bitbake can't determine which variables are accessed during package +# iteration, we need to list them here: +PACKAGEVARS = "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm INITSCRIPT_NAME INITSCRIPT_PARAMS" + +def gen_packagevar(d): + ret = [] + pkgs = (d.getVar("PACKAGES", True) or "").split() + vars = (d.getVar("PACKAGEVARS", True) or "").split() + for p in pkgs: + for v in vars: + ret.append(v + "_" + p) + return " ".join(ret) + PACKAGE_PREPROCESS_FUNCS ?= "" PACKAGEFUNCS ?= "package_get_auto_pr \ perform_packagecopy \ @@ -1656,6 +1669,7 @@ python do_package () { } do_package[dirs] = "${SHLIBSWORKDIR} ${PKGDESTWORK} ${D}" +do_package[vardeps] += "${PACKAGEFUNCS} ${@gen_packagevar(d)}" addtask package before do_build after do_install PACKAGELOCK = "${STAGING_DIR}/package-output.lock" |