From patchwork Mon Oct 22 09:37:26 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [3/3] insane: add a check for Xorg driver ABI dependencies Date: Mon, 22 Oct 2012 09:37:26 -0000 From: Ross Burton X-Patchwork-Id: 38397 Message-Id: <4bb20610fa08a2daf71f59b42929181500345e75.1350898411.git.ross.burton@intel.com> To: openembedded-core@lists.openembedded.org Now that xserver provides driver ABI names, all drivers should depend on the ABI version that they have been built against. All drivers that include xorg-driver-input.inc or xorg-driver-video.inc will get these automatically, so this should only impact binary drivers. Signed-off-by: Ross Burton --- meta/classes/insane.bbclass | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index 71a9a58..29b122e 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -109,7 +109,7 @@ def package_qa_get_machine_dict(): # Currently not being used by default "desktop" -WARN_QA ?= "ldflags useless-rpaths rpaths unsafe-references-in-binaries unsafe-references-in-scripts staticdev libdir" +WARN_QA ?= "ldflags useless-rpaths rpaths unsafe-references-in-binaries unsafe-references-in-scripts staticdev libdir xorg-driver-abi" ERROR_QA ?= "dev-so debug-deps dev-deps debug-files arch la2 pkgconfig la perms dep-cmp" ALL_QA = "${WARN_QA} ${ERROR_QA}" @@ -496,6 +496,24 @@ def package_qa_check_buildpaths(path, name, d, elf, messages): if tmpdir in file_content: messages.append("File %s in package contained reference to tmpdir" % package_qa_clean_path(path,d)) + +QAPATHTEST[xorg-driver-abi] = "package_qa_check_xorg_driver_abi" +def package_qa_check_xorg_driver_abi(path, name, d, elf, messages): + """ + Check that all packages containing Xorg drivers have ABI dependencies + """ + + # Skip dev, dbg or nativesdk packages + if name.endswith("-dev") or name.endswith("-dbg") or name.startswith("nativesdk-"): + return + + driverdir = d.expand("${libdir}/xorg/modules/drivers/") + if driverdir in path and path.endswith(".so"): + for rdep in bb.utils.explode_deps(d.getVar('RDEPENDS_' + name, True) or ""): + if rdep.startswith("xorg-abi-"): + return + messages.append("Package %s contains Xorg driver (%s) but no xorg-abi- dependencies" % (name, os.path.basename(path))) + def package_qa_check_license(workdir, d): """ Check for changes in the license files