[meta-freescale] [meta-freescale-layer][PATCH] qoriq-ppc64: fix build issue caused by gobject-introspection-data enablement in python-pygobject

Zhenhua Luo zhenhua.luo at nxp.com
Fri Apr 15 00:50:33 PDT 2016


The python-pygobject-3.18.2 depends on gobject-introspection which uses qemu-ppc64
native utility, currently qemu-native doesn't support qemu-ppc64, so use
python-pygobject-2.28.3 for ppc64e5500 and ppc64e6500 targets.

Signed-off-by: Zhenhua Luo <zhenhua.luo at nxp.com>
---
 conf/machine/include/e5500-64b.inc                 |  3 ++
 conf/machine/include/e6500-64b.inc                 |  3 ++
 .../obsolete_automake_macros.patch                 | 23 ++++++++++
 recipes-devtools/python/python-pygobject_2.28.3.bb | 53 ++++++++++++++++++++++
 4 files changed, 82 insertions(+)
 create mode 100644 recipes-devtools/python/python-pygobject/obsolete_automake_macros.patch
 create mode 100644 recipes-devtools/python/python-pygobject_2.28.3.bb

diff --git a/conf/machine/include/e5500-64b.inc b/conf/machine/include/e5500-64b.inc
index 72b958c..5d1e19f 100644
--- a/conf/machine/include/e5500-64b.inc
+++ b/conf/machine/include/e5500-64b.inc
@@ -9,3 +9,6 @@ MACHINEOVERRIDES =. "e5500-64b:"
 require conf/multilib.conf
 MULTILIBS ?= "multilib:lib32"
 DEFAULTTUNE_virtclass-multilib-lib32 ?= "ppce5500"
+
+PREFERRED_VERSION_python-pygobject = "2.28.3"
+PREFERRED_VERSION_python-pygobject-native = "2.28.3"
diff --git a/conf/machine/include/e6500-64b.inc b/conf/machine/include/e6500-64b.inc
index e0e04db..f33fc8f 100644
--- a/conf/machine/include/e6500-64b.inc
+++ b/conf/machine/include/e6500-64b.inc
@@ -9,3 +9,6 @@ MACHINEOVERRIDES =. "e6500-64b:"
 require conf/multilib.conf
 MULTILIBS ?= "multilib:lib32"
 DEFAULTTUNE_virtclass-multilib-lib32 ?= "ppce6500"
+
+PREFERRED_VERSION_python-pygobject = "2.28.3"
+PREFERRED_VERSION_python-pygobject-native = "2.28.3"
diff --git a/recipes-devtools/python/python-pygobject/obsolete_automake_macros.patch b/recipes-devtools/python/python-pygobject/obsolete_automake_macros.patch
new file mode 100644
index 0000000..c259112
--- /dev/null
+++ b/recipes-devtools/python/python-pygobject/obsolete_automake_macros.patch
@@ -0,0 +1,23 @@
+Upstream-Status: Accepted [https://bugzilla.gnome.org/show_bug.cgi?id=691101]
+
+Signed-off-by: Marko Lindqvist <cazfi74 at gmail.com>
+diff -Nurd pygobject-2.27.91/configure.ac pygobject-2.27.91/configure.ac
+--- pygobject-2.27.91/configure.ac	2011-02-23 22:14:37.000000000 +0200
++++ pygobject-2.27.91/configure.ac	2013-01-03 05:13:44.034949954 +0200
+@@ -35,7 +35,7 @@
+ AC_DEFINE(PYGOBJECT_MICRO_VERSION, pygobject_micro_version, [pygobject micro version])
+ AC_SUBST(PYGOBJECT_MICRO_VERSION, pygobject_micro_version)
+
+-AM_CONFIG_HEADER(config.h)
++AC_CONFIG_HEADERS(config.h)
+ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)])
+ AM_INIT_AUTOMAKE(foreign)
+ AM_MAINTAINER_MODE
+@@ -82,7 +82,6 @@
+ m4_ifdef([LT_OUTPUT], [LT_OUTPUT])
+ AC_ISC_POSIX
+ AC_PROG_CC
+-AM_PROG_CC_STDC
+ AM_PROG_CC_C_O
+
+ # check that we have the minimum version of python necisary to build
diff --git a/recipes-devtools/python/python-pygobject_2.28.3.bb b/recipes-devtools/python/python-pygobject_2.28.3.bb
new file mode 100644
index 0000000..81d37b4
--- /dev/null
+++ b/recipes-devtools/python/python-pygobject_2.28.3.bb
@@ -0,0 +1,53 @@
+SUMMARY = "Python GObject bindings"
+SECTION = "devel/python"
+LICENSE = "LGPLv2.1"
+
+RECIPE_NO_UPDATE_REASON = "Newer versions of python-pygobject depend on gobject-introspection which doesn't cross-compile"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
+DEPENDS = "python python-pygobject-native libffi glib-2.0"
+DEPENDS_class-native = "python-native libffi-native glib-2.0-native"
+RDEPENDS_class-native = ""
+
+MAJ_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]}"
+
+SRC_URI = "${GNOME_MIRROR}/pygobject/${MAJ_VER}/pygobject-${PV}.tar.bz2 \
+           file://obsolete_automake_macros.patch \
+"
+
+# libtool-native doesn't have fixinstall.patch applied which means
+# that libs get relinked at installation time. This triggers a 
+# relinking along the lines of:
+# gcc -L/tmp/foo/media/build1/poky/build/tmp/sysroots/x86_64-linux/usr/lib -lpyglib-2.0-python -o .libs/_glib.so
+# where /tmp/foo is DESTDIR and pyglib-2.0-python may be installed/reinstalled
+# at the same time as the gcc command runs.
+# If this happens between the handoff between gcc and ld, you can see:
+# /bin/ld: cannot find -lpyglib-2.0-python
+# Adding a dependency rule like  install-pyglibLTLIBRARIES: install-libLTLIBRARIES
+# would be ideal but automake can't cope with that without manually 
+# defining the whole function. Give up and disable parallel make in native builds.
+PARALLEL_MAKEINST_class-native = ""
+
+SRC_URI[md5sum] = "aa64900b274c4661a5c32e52922977f9"
+SRC_URI[sha256sum] = "7da88c169a56efccc516cebd9237da3fe518a343095a664607b368fe21df95b6"
+S = "${WORKDIR}/pygobject-${PV}"
+
+EXTRA_OECONF += "--disable-introspection"
+
+inherit autotools distutils-base pkgconfig
+
+# necessary to let the call for python-config succeed
+export BUILD_SYS
+export HOST_SYS
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+PACKAGES += "${PN}-lib"
+
+RDEPENDS_${PN} += "python-textutils"
+
+FILES_${PN} = "${libdir}/python*"
+FILES_${PN}-lib = "${libdir}/lib*.so.*"
+FILES_${PN}-dev += "${bindir} ${datadir}"
+
+BBCLASSEXTEND = "native"
-- 
2.4.11



More information about the meta-freescale mailing list