From a17faa832798f5c76e344d2662ffdb470974bfe3 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Mon, 22 Oct 2012 10:37:25 +0100 Subject: [PATCH] xorg-driver: add xserver driver ABI dependencies At build time extract the xserver driver ABI versions that we're building against and add RDEPENDs on them, so the driver isn't used against an xserver with a different ABI (which won't work). Signed-off-by: Ross Burton Signed-off-by: Saul Wold --- .../xorg-driver/xorg-driver-common.inc | 17 ++++++++++++++++- .../xorg-driver/xorg-driver-input.inc | 4 ++++ .../xorg-driver/xorg-driver-video.inc | 3 +++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc b/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc index 9a474b76de9..f9f25ffe954 100644 --- a/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc +++ b/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc @@ -5,7 +5,7 @@ SECTION = "x11/drivers" LICENSE = "MIT-X" PE = "2" -INC_PR = "r17" +INC_PR = "r18" DEPENDS = "virtual/xserver xproto randrproto util-macros" @@ -31,3 +31,18 @@ do_configure_prepend () { do_install_append() { find ${D}${libdir}/xorg/modules -regex ".*\.la$" | xargs rm -f -- } + +# Function to add the relevant ABI dependency to drivers, which should be called +# from a populate_packages append/prepend. +def add_abi_depends(d, name): + # Map of ABI names exposed in the dependencies to pkg-config variables + abis = { + "video": "abi_videodrv", + "input": "abi_xinput" + } + + output = os.popen("pkg-config xorg-server --variable=%s" % abis[name]).read() + abi = "xorg-abi-%s-%s" % (name, output.split(".")[0]) + + pn = d.getVar("PN", True) + d.appendVar('RDEPENDS_' + pn, ' ' + abi) diff --git a/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc b/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc index bf4ca6cb770..a544d71bf25 100644 --- a/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc +++ b/meta/recipes-graphics/xorg-driver/xorg-driver-input.inc @@ -2,5 +2,9 @@ include xorg-driver-common.inc DEPENDS += "inputproto kbproto " +python populate_packages_prepend() { + add_abi_depends(d, "input") +} + FILES_${PN} += " ${libdir}/xorg/modules/input/*.so" FILES_${PN}-dbg += " ${libdir}/xorg/modules/input/.debug" diff --git a/meta/recipes-graphics/xorg-driver/xorg-driver-video.inc b/meta/recipes-graphics/xorg-driver/xorg-driver-video.inc index 57c80d10173..4fe33491b7a 100644 --- a/meta/recipes-graphics/xorg-driver/xorg-driver-video.inc +++ b/meta/recipes-graphics/xorg-driver/xorg-driver-video.inc @@ -2,3 +2,6 @@ include xorg-driver-common.inc DEPENDS =+ "renderproto videoproto xextproto fontsproto" +python populate_packages_prepend() { + add_abi_depends(d, "video") +} -- 2.47.3