[oe] Problems bumping clutter recipes
Andreas Mueller
schnitzeltony at gmx.de
Tue Jun 29 15:47:11 UTC 2010
I am working on building clutter recipes (clutter / clutter-box2d / clutter-gtk / clutter-gst). Since none of the recipes worked - most crashed already during patching - I decided to rework these
recipes and bump to latest stable versions. With clutter / clutter-box2d / clutter-gtk I had success so far but now I am in trouble with clutter-gst.
The modifications I made:
-----------------------------------------------------------------------------------------------------------------------------------------
From 503e5976ff638b278511d232c69058c03e4a2cea Mon Sep 17 00:00:00 2001
From: Andreas Mueller <schnitzeltony at gmx.de>
Date: Tue, 29 Jun 2010 16:25:31 +0200
Subject: [PATCH] Bump clutter recipes to latest stable versions
Note: clutter-gst fails during compile at overo environment!
Signed-off-by: Andreas Mueller <schnitzeltony at gmx.de>
---
recipes/clutter/clutter-box2d.inc | 2 +-
recipes/clutter/clutter-box2d_0.10.0_git.bb | 13 +++++++++++++
recipes/clutter/clutter-gst.inc | 13 +------------
recipes/clutter/clutter-gst_1.0.0.bb | 12 ++++++++++++
recipes/clutter/clutter-gtk_0.10.4.bb | 12 ++++++++++++
recipes/clutter/clutter.inc | 2 +-
recipes/clutter/clutter_1.2.10.bb | 18 ++++++++++++++++++
7 files changed, 58 insertions(+), 14 deletions(-)
create mode 100644 recipes/clutter/clutter-box2d_0.10.0_git.bb
create mode 100644 recipes/clutter/clutter-gst_1.0.0.bb
create mode 100644 recipes/clutter/clutter-gtk_0.10.4.bb
create mode 100644 recipes/clutter/clutter_1.2.10.bb
diff --git a/recipes/clutter/clutter-box2d.inc b/recipes/clutter/clutter-box2d.inc
index 8189d12..bb4f1b6 100644
--- a/recipes/clutter/clutter-box2d.inc
+++ b/recipes/clutter/clutter-box2d.inc
@@ -5,7 +5,7 @@ LICENSE = "GPLv2"
DEPENDS = "clutter"
# The main clutter lib is machine specific so we need to be too
-PACKAGE_ARCH = "${MACHINE_ARCH}"
+#PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit autotools pkgconfig gtk-doc
diff --git a/recipes/clutter/clutter-box2d_0.10.0_git.bb b/recipes/clutter/clutter-box2d_0.10.0_git.bb
new file mode 100644
index 0000000..6417a7d
--- /dev/null
+++ b/recipes/clutter/clutter-box2d_0.10.0_git.bb
@@ -0,0 +1,13 @@
+require clutter-box2d.inc
+
+SRCREV = "dae84a82efe22b284cba8ca1985ce14bb4e86c99"
+
+PV = "0.10.0"
+PR = "r0"
+PR_append = "+git${SRCREV}"
+
+SRC_URI = "git://git.clutter-project.org/clutter-box2d.git;protocol=git"
+
+S = "${WORKDIR}/git"
+
+
diff --git a/recipes/clutter/clutter-gst.inc b/recipes/clutter/clutter-gst.inc
index fa8f810..262f033 100644
--- a/recipes/clutter/clutter-gst.inc
+++ b/recipes/clutter/clutter-gst.inc
@@ -7,17 +7,6 @@ DEPENDS = "clutter gstreamer gst-plugins-base"
PACKAGES =+ "${PN}-examples"
FILES_${PN}-examples = "${bindir}/video-player ${bindir}/video-sink ${bindir}/audio"
-inherit autotools pkgconfig
+inherit autotools pkgconfig gtk-doc
-do_configure_prepend() {
- if [ -e ${WORKDIR}/gtk-doc.make ] ; then
- cp ${WORKDIR}/gtk-doc.make ${S}/gtk-doc.make
- else
- touch ${S}/gtk-doc.make
- fi
-}
-
-do_stage () {
- autotools_stage_all
-}
diff --git a/recipes/clutter/clutter-gst_1.0.0.bb b/recipes/clutter/clutter-gst_1.0.0.bb
new file mode 100644
index 0000000..ef6589f
--- /dev/null
+++ b/recipes/clutter/clutter-gst_1.0.0.bb
@@ -0,0 +1,12 @@
+require clutter-gst.inc
+
+PR = "r0"
+
+SRC_URI = "http://source.clutter-project.org/sources/clutter-gst/1.0/clutter-gst-${PV}.tar.bz2 \
+ "
+
+# The main clutter lib is machine specific so we need to be too
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRC_URI[md5sum] = "673e9548172698ebd48713ebedff500c"
+SRC_URI[sha256sum] = "ae6ec048b570157130e9f9069f2495caf0da9eefa8d7f3b1789f3346fb16f696"
diff --git a/recipes/clutter/clutter-gtk_0.10.4.bb b/recipes/clutter/clutter-gtk_0.10.4.bb
new file mode 100644
index 0000000..8f4e6a8
--- /dev/null
+++ b/recipes/clutter/clutter-gtk_0.10.4.bb
@@ -0,0 +1,12 @@
+require clutter-gtk.inc
+
+PR = "r0"
+
+SRC_URI = "http://source.clutter-project.org/sources/clutter-gtk/0.10/clutter-gtk-${PV}.tar.bz2 \
+ "
+
+DEPENDS = "clutter"
+
+SRC_URI[md5sum] = "fd015e8080e1212dacc95d0e3d776d0d"
+SRC_URI[sha256sum] = "0134a8de202c518e231f340f5f2f3e988350105de9fadd0e849f08d95ac1b912"
+
diff --git a/recipes/clutter/clutter.inc b/recipes/clutter/clutter.inc
index fce3236..8f38419 100644
--- a/recipes/clutter/clutter.inc
+++ b/recipes/clutter/clutter.inc
@@ -4,7 +4,7 @@ LICENSE = "LGPL"
COMPATIBLE_MACHINE = "(zylonite|mx31litekit|omap-3430ldp|omap-3430sdp|mx31ads|qemuarm|qemux86|ipodtouch|am3517-evm|dm3730-am3715-evm|beagleboard|overo|omap3evm|
omap5912osk)"
-STDDEPENDS = "virtual/libx11 gtk-doc-native pango glib-2.0 libxfixes gtk+"
+STDDEPENDS = "virtual/libx11 gtk-doc-native pango glib-2.0 libxfixes gtk+ cairo"
BASE_CONF = "--disable-gtk-doc ${@get_clutter_fpu_setting(bb, d)}"
DEPENDS = "${STDDEPENDS} virtual/libgl"
diff --git a/recipes/clutter/clutter_1.2.10.bb b/recipes/clutter/clutter_1.2.10.bb
new file mode 100644
index 0000000..298972d
--- /dev/null
+++ b/recipes/clutter/clutter_1.2.10.bb
@@ -0,0 +1,18 @@
+require clutter.inc
+
+PR = "${INC_PR}.0"
+
+SRC_URI = "http://source.clutter-project.org/sources/clutter/1.2/clutter-${PV}.tar.bz2 \
+ "
+
+PARALLEL_MAKE = ""
+
+do_compile_prepend() {
+ for i in $(find ${S} -name Makefile) ; do
+ sed -i -e s:-Werror::g $i
+ done
+ ( cd clutter/cogl/gles ; for i in *.glsl ; do sh stringify.sh -h $i ; done )
+}
+
+SRC_URI[md5sum] = "ca8dbc4a65c55720779872c13eac86ba"
+SRC_URI[sha256sum] = "26cdee7a528eb1346553d16ae8d8d87f35a8a46c0a86829eabd227067e84da5d"
--
1.5.3.4
-----------------------------------------------------------------------------------------------------------------------------------------
Some comments of what I did:
1. clutter-box2d does use latest git because the stable version is missing HAVE_INTROSPECTION (see
http://git.clutter-project.org/clutter-box2d/commit/?id=dae84a82efe22b284cba8ca1985ce14bb4e86c99)
2. In clutter-box2d.inc I removed PACKAGE_ARCH = "${MACHINE_ARCH}" because I had the feeling that this caused OE build an empty image.
3. To get clutter-gst I did several attempts:
- With or without PACKAGE_ARCH = "${MACHINE_ARCH}"
- Checked poky recipes
- Tried with latest git version
All compiling attempts lead to a bunch of warnings like
| /home/Superandi/OpenEmbedded/tmp/sysroots/armv7a-angstrom-linux-gnueabi/usr/include/gstreamer-0.10/gst/gstmessage.h: In function 'gst_message_ref':
| /home/Superandi/OpenEmbedded/tmp/sysroots/armv7a-angstrom-linux-gnueabi/usr/include/gstreamer-0.10/gst/gstmessage.h:306: warning: cast increases required alignment of target type
| /home/Superandi/OpenEmbedded/tmp/sysroots/armv7a-angstrom-linux-gnueabi/usr/include/gstreamer-0.10/gst/gstmessage.h: In function 'gst_message_copy':
| /home/Superandi/OpenEmbedded/tmp/sysroots/armv7a-angstrom-linux-gnueabi/usr/include/gstreamer-0.10/gst/gstmessage.h:344: warning: cast increases required alignment of target type
and ends up in error
| ./clutter-gst-video-sink.c:138: error: expected ')' before 'GLUNIFORM1IPROC'
| ./clutter-gst-video-sink.c:140: error: expected ')' before 'GLGENPROGRAMSPROC'
| ./clutter-gst-video-sink.c:141: error: expected ')' before 'GLBINDPROGRAMPROC'
| ./clutter-gst-video-sink.c:142: error: expected ')' before 'GLPROGRAMSTRINGPROC'
| ./clutter-gst-video-sink.c:147: error: expected specifier-qualifier-list before 'GLGENPROGRAMSPROC'
The code found from clutter-gst-video-sink.c:138 is
typedef void (APIENTRYP GLUNIFORM1IPROC)(GLint location, GLint value);
/* GL_ARB_fragment_program */
typedef void (APIENTRYP GLGENPROGRAMSPROC)(GLsizei n, GLuint *programs);
typedef void (APIENTRYP GLBINDPROGRAMPROC)(GLenum target, GLuint program);
typedef void (APIENTRYP GLPROGRAMSTRINGPROC)(GLenum target, GLenum format,
GLsizei len, const void *string);
I seems that APIENTRYP is not defined. APIENTRYP is found in <OEDir>/tmp/sysroots/armv7a-angstrom-linux-gnueabi/usr/include/GL/gl.h the mesa OpenGL header which is not to be included
here. The header of interest which is coming from libgles-omap3 in <OEDir>/tmp/sysroots/armv7a-angstrom-linux-gnueabi/usr/include/GLES2/gl2.h does not define APIENTRYP.
OK these are the symthoms.
What is a good solution? Creating a patch which adds APIENTRYP (and others) to GLES2/gl2.h? I am afraid that this is not the solution because the warnings make me feel that it might leed to a
successful build but will the code work as expected? To me it seems that there is some configure/automake option not properly feeded - especially if you take a look on clutter-gst-video-sink.c:
It seems there is code to feed shaders (do we have any on omap3?). Is possible that clutter-gst is not suitable for omap3 or did it ever build?
I would be very pleased to get some suggestions on this...
More information about the Openembedded-devel
mailing list