]> code.ossystems Code Review - openembedded-core.git/commitdiff
xorg-font-common: fix sysroot injection for encoding maps
authorRichard Tollerton <rich.tollerton@ni.com>
Fri, 20 Feb 2015 19:02:35 +0000 (13:02 -0600)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 21 Feb 2015 22:04:25 +0000 (22:04 +0000)
The xorg font builds use `pkg-config --variable=mapdir fontutil` to
locate encoding maps. This variable ought to be sysroot-relative, but
neither pkg-config nor font-util nor the fonts themselves provide any
facility to add the sysroot back in.

We're presently adding the sysroot by by twiddling MAPFILES_PATH in
configure.ac. This is broken; it's actually defined in aclocal.m4,
because the definition is provided by fontutil.m4. Another (more
speculative) criticism is that it also hardcodes a build-specific
absolute path into builds which might (incorrectly) encode it into
target-installable packages.

A somewhat more robust, focused, and clear solution is to override
UTIL_DIR on the make command line. (UTIL_DIR, not MAPFILES_PATH, is what
is actually referenced in the build.)

Signed-off-by: Richard Tollerton <rich.tollerton@ni.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/recipes-graphics/xorg-font/xorg-font-common.inc

index 55adde36084e6f0fc48506bdec25d291177da37f..d3b995a358d65a8f3e859283be0a191916727a97 100644 (file)
@@ -15,13 +15,7 @@ S = "${WORKDIR}/${XORG_PN}-${PV}"
 
 inherit autotools pkgconfig
 
-EXTRA_OEMAKE += "FCCACHE=/bin/true"
-
-do_configure_prepend() {
-        if [ -f "${S}"/configure.ac ] ; then
-                sed -i "s#^MAPFILES_PATH=.*#MAPFILES_PATH=\"${STAGING_DIR_TARGET}/\$(pkg-config --variable=mapdir fontutil)\"#g" "${S}"/configure.ac
-        fi
-}
+EXTRA_OEMAKE += "FCCACHE=/bin/true UTIL_DIR=${STAGING_DIR_TARGET}\$\(MAPFILES_PATH\)"
 
 do_install_append() {
        find ${D}${libdir}/X11/fonts -type f -name fonts.dir | xargs rm -f