summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-08-30 14:22:21 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-08-31 19:38:30 +0100
commitc7869b4d4cade8e87e9aab9e27c07bbc6fed39fe (patch)
tree896484f170b020235f902de84b369aa913d9ac07 /meta
parent9958a579e7486a245680094dd43a1bffa8dfb02c (diff)
downloadpoky-c7869b4d4cade8e87e9aab9e27c07bbc6fed39fe.tar.gz
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. (From OE-Core rev: 0614b9aa62a46f81d334ca4230080cc707347f3c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/multilib.bbclass3
-rw-r--r--meta/classes/package.bbclass14
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 () {
72 72
73 d.setVar("PACKAGES", " ".join([row[1] for row in pkgs_mapping])) 73 d.setVar("PACKAGES", " ".join([row[1] for row in pkgs_mapping]))
74 74
75 vars = (d.getVar("PACKAGEVARS", True) or "").split()
75 for pkg_mapping in pkgs_mapping: 76 for pkg_mapping in pkgs_mapping:
76 for subs in ["FILES", "RDEPENDS", "RRECOMMENDS", "SUMMARY", "DESCRIPTION", "RSUGGESTS", "RPROVIDES", "RCONFLICTS", "PKG", "ALLOW_EMPTY", "pkg_postinst", "pkg_postrm", "INITSCRIPT_NAME", "INITSCRIPT_PARAMS"]: 77 for subs in vars:
77 d.renameVar("%s_%s" % (subs, pkg_mapping[0]), "%s_%s" % (subs, pkg_mapping[1])) 78 d.renameVar("%s_%s" % (subs, pkg_mapping[0]), "%s_%s" % (subs, pkg_mapping[1]))
78 79
79 map_dependencies("DEPENDS", d) 80 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() {
1620 pkg_addrrecs(pkg, base, suffix, func, rdeps, d) 1620 pkg_addrrecs(pkg, base, suffix, func, rdeps, d)
1621} 1621}
1622 1622
1623# Since bitbake can't determine which variables are accessed during package
1624# iteration, we need to list them here:
1625PACKAGEVARS = "FILES RDEPENDS RRECOMMENDS SUMMARY DESCRIPTION RSUGGESTS RPROVIDES RCONFLICTS PKG ALLOW_EMPTY pkg_postinst pkg_postrm INITSCRIPT_NAME INITSCRIPT_PARAMS"
1626
1627def gen_packagevar(d):
1628 ret = []
1629 pkgs = (d.getVar("PACKAGES", True) or "").split()
1630 vars = (d.getVar("PACKAGEVARS", True) or "").split()
1631 for p in pkgs:
1632 for v in vars:
1633 ret.append(v + "_" + p)
1634 return " ".join(ret)
1635
1623PACKAGE_PREPROCESS_FUNCS ?= "" 1636PACKAGE_PREPROCESS_FUNCS ?= ""
1624PACKAGEFUNCS ?= "package_get_auto_pr \ 1637PACKAGEFUNCS ?= "package_get_auto_pr \
1625 perform_packagecopy \ 1638 perform_packagecopy \
@@ -1656,6 +1669,7 @@ python do_package () {
1656} 1669}
1657 1670
1658do_package[dirs] = "${SHLIBSWORKDIR} ${PKGDESTWORK} ${D}" 1671do_package[dirs] = "${SHLIBSWORKDIR} ${PKGDESTWORK} ${D}"
1672do_package[vardeps] += "${PACKAGEFUNCS} ${@gen_packagevar(d)}"
1659addtask package before do_build after do_install 1673addtask package before do_build after do_install
1660 1674
1661PACKAGELOCK = "${STAGING_DIR}/package-output.lock" 1675PACKAGELOCK = "${STAGING_DIR}/package-output.lock"