[OE-core] [oe-core][PATCH 4/7] gobject-introspection: fix file conflict when multilib enabled

Zhang Xiao xiao.zhang at windriver.com
Mon Mar 12 09:13:00 UTC 2018


Script files conflict between 32 and 64 bit packages:
${bindir}/g-ir-annotation-tool
${bindir}/g-ir-compiler-wrapper
${bindir}/g-ir-scanner
${bindir}/g-ir-scanner-lddwrapper
${bindir}/g-ir-scanner-qemuwrapper
${bindir}/g-ir-scanner-wrapper
${datadir}/gir-1.0/GLib-2.0.gir

Use update-alternatives to add base_libdir as suffix to avoid it.

Signed-off-by: Zhang Xiao <xiao.zhang at windriver.com>
---
 .../gobject-introspection_1.54.1.bb                | 34 +++++++++++++++++++++-
 1 file changed, 33 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.54.1.bb b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.54.1.bb
index 85c8001dea..d9d5825a78 100644
--- a/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.54.1.bb
+++ b/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.54.1.bb
@@ -19,9 +19,41 @@ SRC_URI = "${GNOME_MIRROR}/${BPN}/1.54/${BPN}-${PV}.tar.xz \
 SRC_URI[md5sum] = "126c29e4d54adbed2ed4e2b04483de41"
 SRC_URI[sha256sum] = "b88ded5e5f064ab58a93aadecd6d58db2ec9d970648534c63807d4f9a7bb877e"
 
-inherit autotools pkgconfig gtk-doc python3native qemu gobject-introspection-data upstream-version-is-even
+inherit autotools pkgconfig gtk-doc python3native qemu gobject-introspection-data upstream-version-is-even update-alternatives
 BBCLASSEXTEND = "native"
 
+MULTILIB_SUFFIX = "${@d.getVar('base_libdir',1).split('/')[-1]}"
+ALTERNATIVE_${PN} = "annotation-tool compiler-wrapper scanner scanner-lddwrapper scanner-qemuwrapper scanner-wrapper"
+ALTERNATIVE_${PN}-dev = "GLib-2.0.gir"
+ALTERNATIVE_LINK_NAME[annotation-tool] = "${bindir}/g-ir-annotation-tool"
+ALTERNATIVE_TARGET[annotation-tool] = "${bindir}/g-ir-annotation-tool-${MULTILIB_SUFFIX}"
+ALTERNATIVE_LINK_NAME[compiler-wrapper] = "${bindir}/g-ir-compiler-wrapper"
+ALTERNATIVE_TARGET[compiler-wrapper] = "${bindir}/g-ir-compiler-wrapper-${MULTILIB_SUFFIX}"
+ALTERNATIVE_LINK_NAME[scanner] = "${bindir}/g-ir-scanner"
+ALTERNATIVE_TARGET[scanner] = "${bindir}/g-ir-scanner-${MULTILIB_SUFFIX}"
+ALTERNATIVE_LINK_NAME[scanner-lddwrapper] = "${bindir}/g-ir-scanner-lddwrapper"
+ALTERNATIVE_TARGET[scanner-lddwrapper] = "${bindir}/g-ir-scanner-lddwrapper-${MULTILIB_SUFFIX}"
+ALTERNATIVE_LINK_NAME[scanner-qemuwrapper] = "${bindir}/g-ir-scanner-qemuwrapper"
+ALTERNATIVE_TARGET[scanner-qemuwrapper] = "${bindir}/g-ir-scanner-qemuwrapper-${MULTILIB_SUFFIX}"
+ALTERNATIVE_LINK_NAME[scanner-wrapper] = "${bindir}/g-ir-scanner-wrapper"
+ALTERNATIVE_TARGET[scanner-wrapper] = "${bindir}/g-ir-scanner-wrapper-${MULTILIB_SUFFIX}"
+ALTERNATIVE_LINK_NAME[GLib-2.0.gir] = "${datadir}/gir-1.0/GLib-2.0.gir"
+ALTERNATIVE_TARGET[GLib-2.0.gir] = "${datadir}/gir-1.0/GLib-2.0.gir-${MULTILIB_SUFFIX}"
+
+FILES_${PN}-dev += "${datadir}/gir-1.0/GLib-2.0.gir-${MULTILIB_SUFFIX}"
+
+PACKAGE_PREPROCESS_FUNCS += "gobject_alternative_rename"
+
+gobject_alternative_rename() {
+        mv ${PKGD}${bindir}/g-ir-annotation-tool ${PKGD}${bindir}/g-ir-annotation-tool-${MULTILIB_SUFFIX}
+        mv ${PKGD}${bindir}/g-ir-compiler-wrapper ${PKGD}${bindir}/g-ir-compiler-wrapper-${MULTILIB_SUFFIX}
+        mv ${PKGD}${bindir}/g-ir-scanner ${PKGD}${bindir}/g-ir-scanner-${MULTILIB_SUFFIX}
+        mv ${PKGD}${bindir}/g-ir-scanner-lddwrapper ${PKGD}${bindir}/g-ir-scanner-lddwrapper-${MULTILIB_SUFFIX}
+        mv ${PKGD}${bindir}/g-ir-scanner-qemuwrapper ${PKGD}${bindir}/g-ir-scanner-qemuwrapper-${MULTILIB_SUFFIX}
+        mv ${PKGD}${bindir}/g-ir-scanner-wrapper ${PKGD}${bindir}/g-ir-scanner-wrapper-${MULTILIB_SUFFIX}
+        mv ${PKGD}${datadir}/gir-1.0/GLib-2.0.gir ${PKGD}${datadir}/gir-1.0/GLib-2.0.gir-${MULTILIB_SUFFIX}
+}
+
 # needed for writing out the qemu wrapper script
 export STAGING_DIR_HOST
 export B
-- 
2.11.0




More information about the Openembedded-core mailing list