Checks in FILES and pkg_* variables ,solves common mistake of using ${D} instead of $D and warns the user accordingly.
[YOCTO #6642] Signed-off-by: Alejandro Hernandez <alejandro.hernan...@linux.intel.com> --- meta/classes/insane.bbclass | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index 0b45374..419c89b 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -906,6 +906,39 @@ def package_qa_check_deps(pkg, pkgdest, skip, d): return sane +def package_qa_check_unexpanded_d(d): + """ + Check for unexpanded D variable in pkg_* and FILES + variables, warn the user to use it correctly. + """ + + sane = True + + # Get variables for current package + pkg = d.getVar('PN', True) + localdata = bb.data.createCopy(d) + localdata.setVar('OVERRIDES', pkg) + bb.data.update_data(localdata) + + # Go through all variables and check if unexpanded D is found, warn the user accordingly + for var in 'FILES','pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm': + bbvar = localdata.getVar(var, False) + if bbvar: + if "${D}" in bbvar: + if var == 'FILES': + bb.error("FILES should not contain the ${D} variable as it references the local build directory not the target filesystem, best solution is to remove the ${D} reference") + sane = False + else: + bb.error("%s in %s recipe contains ${D}, it should be replaced by $D instead" % (var, pkg)) + sane = False + return sane + +# Actual task to check for ${D +python do_qa_check_unexpanded_d(){ + package_qa_check_unexpanded_d(d) +} +addtask qa_check_unexpanded_d before do_compile + # The PACKAGE FUNC to scan each package python do_package_qa () { import subprocess @@ -1000,7 +1033,6 @@ python do_package_qa () { if not package_qa_check_deps(package, pkgdest, skip, d): deps_sane = False - if 'libdir' in d.getVar("ALL_QA", True).split(): package_qa_check_libdir(d) -- 1.9.1 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core