summaryrefslogtreecommitdiffstats
path: root/common/recipes-graphics/directfb/directfb
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-graphics/directfb/directfb')
-rw-r--r--common/recipes-graphics/directfb/directfb/0001-drmkms-fix-property-to-check-when-setting-source-col.patch26
-rw-r--r--common/recipes-graphics/directfb/directfb/0002-drmkms-mute-plane-when-opacity-is-set-to-zero.patch150
-rw-r--r--common/recipes-graphics/directfb/directfb/configurefix.patch60
-rw-r--r--common/recipes-graphics/directfb/directfb/dfb_uiomux_support.patch36
-rw-r--r--common/recipes-graphics/directfb/directfb/directfb-1.2.x-fix-pkgconfig-cflags.patch48
-rw-r--r--common/recipes-graphics/directfb/directfb/directfbrc5
-rw-r--r--common/recipes-graphics/directfb/directfb/fbdev-uiomux-register.patch54
-rw-r--r--common/recipes-graphics/directfb/directfb/fix-compilation-with-zlib.patch29
-rw-r--r--common/recipes-graphics/directfb/directfb/fixsepbuild.patch19
-rw-r--r--common/recipes-graphics/directfb/directfb/mesa9.patch29
-rw-r--r--common/recipes-graphics/directfb/directfb/rename-no-instrument-function-macro.patch345
11 files changed, 801 insertions, 0 deletions
diff --git a/common/recipes-graphics/directfb/directfb/0001-drmkms-fix-property-to-check-when-setting-source-col.patch b/common/recipes-graphics/directfb/directfb/0001-drmkms-fix-property-to-check-when-setting-source-col.patch
new file mode 100644
index 0000000..5c62dda
--- /dev/null
+++ b/common/recipes-graphics/directfb/directfb/0001-drmkms-fix-property-to-check-when-setting-source-col.patch
@@ -0,0 +1,26 @@
+From 5bd208eb5e9d5e3e7f864e2e5d44060854fa40b4 Mon Sep 17 00:00:00 2001
+From: Takanari Hayama <taki@igel.co.jp>
+Date: Thu, 19 Sep 2013 18:55:03 +0900
+Subject: [PATCH 1/2] drmkms: fix property to check when setting source color
+ key.
+
+---
+ systems/drmkms/drmkms_layer.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/systems/drmkms/drmkms_layer.c b/systems/drmkms/drmkms_layer.c
+index bcae04f..a80d2e5 100644
+--- a/systems/drmkms/drmkms_layer.c
++++ b/systems/drmkms/drmkms_layer.c
+@@ -434,7 +434,7 @@ drmkmsPlaneSetRegion( CoreLayer *layer,
+
+ }
+
+- if ((updated & (CLRCF_SRCKEY | CLRCF_OPTIONS)) && data->alpha_propid) {
++ if ((updated & (CLRCF_SRCKEY | CLRCF_OPTIONS)) && data->colorkey_propid) {
+ uint32_t drm_colorkey = config->src_key.r << 16 | config->src_key.g << 8 | config->src_key.b;
+
+ if (config->options & DLOP_SRC_COLORKEY)
+--
+1.7.9.5
+
diff --git a/common/recipes-graphics/directfb/directfb/0002-drmkms-mute-plane-when-opacity-is-set-to-zero.patch b/common/recipes-graphics/directfb/directfb/0002-drmkms-mute-plane-when-opacity-is-set-to-zero.patch
new file mode 100644
index 0000000..226d5d5
--- /dev/null
+++ b/common/recipes-graphics/directfb/directfb/0002-drmkms-mute-plane-when-opacity-is-set-to-zero.patch
@@ -0,0 +1,150 @@
+From 68e46530a1821ab2a2209899bf971e1ca39acac9 Mon Sep 17 00:00:00 2001
+From: Takanari Hayama <taki@igel.co.jp>
+Date: Thu, 19 Sep 2013 18:55:43 +0900
+Subject: [PATCH 2/2] drmkms: mute plane when opacity is set to zero.
+
+If the opacity value of zero is passed, then we mute the plane
+by disabling the plane. We re-enable when the plane if non-zero
+opacity value is passed.
+---
+ systems/drmkms/drmkms_layer.c | 65 +++++++++++++++++++++++++---------------
+ systems/drmkms/drmkms_system.h | 2 ++
+ 2 files changed, 43 insertions(+), 24 deletions(-)
+
+diff --git a/systems/drmkms/drmkms_layer.c b/systems/drmkms/drmkms_layer.c
+index a80d2e5..f2e8011 100644
+--- a/systems/drmkms/drmkms_layer.c
++++ b/systems/drmkms/drmkms_layer.c
+@@ -388,8 +388,7 @@ drmkmsPlaneTestRegion( CoreLayer *layer,
+
+ CoreLayerRegionConfigFlags failed = CLRCF_NONE;
+
+- if (((config->options & DLOP_OPACITY ) && !data->alpha_propid ) ||
+- ((config->options & DLOP_SRC_COLORKEY) && !data->colorkey_propid))
++ if ((config->options & DLOP_SRC_COLORKEY) && !data->colorkey_propid)
+ failed |= CLRCF_OPTIONS;
+
+ if (ret_failed)
+@@ -414,11 +413,15 @@ drmkmsPlaneSetRegion( CoreLayer *layer,
+ CoreSurfaceBufferLock *right_lock )
+ {
+ int ret;
++ bool unmute = false;
+ DRMKMSData *drmkms = driver_data;
+ DRMKMSLayerData *data = layer_data;
+
+ D_DEBUG_AT( DRMKMS_Layer, "%s()\n", __FUNCTION__ );
+- if (updated & (CLRCF_WIDTH | CLRCF_HEIGHT | CLRCF_BUFFERMODE | CLRCF_DEST | CLRCF_SOURCE)) {
++ if ((updated & CLRCF_OPACITY) && data->muted && config->opacity)
++ unmute = true;
++
++ if ((updated & (CLRCF_WIDTH | CLRCF_HEIGHT | CLRCF_BUFFERMODE | CLRCF_DEST | CLRCF_SOURCE)) || unmute) {
+ ret = drmModeSetPlane(drmkms->fd, data->plane->plane_id, drmkms->encoder[0]->crtc_id, (u32)(long)left_lock->handle,
+ /* plane_flags */ 0, config->dest.x, config->dest.y, config->dest.w, config->dest.h,
+ config->source.x << 16, config->source.y <<16, config->source.w << 16, config->source.h << 16);
+@@ -431,7 +434,7 @@ drmkmsPlaneSetRegion( CoreLayer *layer,
+ }
+
+ data->config = config;
+-
++ data->muted = false;
+ }
+
+ if ((updated & (CLRCF_SRCKEY | CLRCF_OPTIONS)) && data->colorkey_propid) {
+@@ -448,15 +451,26 @@ drmkmsPlaneSetRegion( CoreLayer *layer,
+ }
+ }
+
+- if (updated & CLRCF_OPACITY && data->alpha_propid) {
+- ret = drmModeObjectSetProperty( drmkms->fd, data->plane->plane_id, DRM_MODE_OBJECT_PLANE, data->alpha_propid, config->opacity );
++ if (updated & CLRCF_OPACITY) {
++ if (config->opacity == 0) {
++ ret = drmModeSetPlane(drmkms->fd, data->plane->plane_id, drmkms->encoder[0]->crtc_id, 0,
++ /* plane_flags */ 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0);
+
+- if (ret) {
+- D_ERROR( "DirectFB/DRMKMS: drmModeObjectSetProperty() failed setting alpha\n");
+- return DFB_FAILURE;
+- }
+- }
++ if (ret) {
++ D_ERROR( "DirectFB/DRMKMS: drmModeSetPlane() failed disabling plane\n");
++ return DFB_FAILURE;
++ }
++
++ data->muted = true;
++ } else if (data->alpha_propid) {
++ ret = drmModeObjectSetProperty( drmkms->fd, data->plane->plane_id, DRM_MODE_OBJECT_PLANE, data->alpha_propid, config->opacity );
+
++ if (ret) {
++ D_ERROR( "DirectFB/DRMKMS: drmModeObjectSetProperty() failed setting alpha\n");
++ return DFB_FAILURE;
++ }
++ }
++ }
+
+ return DFB_OK;
+ }
+@@ -473,13 +487,14 @@ drmkmsPlaneRemoveRegion( CoreLayer *layer,
+
+ D_DEBUG_AT( DRMKMS_Layer, "%s()\n", __FUNCTION__ );
+
++ if (!data->muted) {
++ ret = drmModeSetPlane(drmkms->fd, data->plane->plane_id, drmkms->encoder[0]->crtc_id, 0,
++ /* plane_flags */ 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0);
+
+- ret = drmModeSetPlane(drmkms->fd, data->plane->plane_id, drmkms->encoder[0]->crtc_id, 0,
+- /* plane_flags */ 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0);
+-
+- if (ret) {
+- D_PERROR( "DRMKMS/Layer/Remove: Failed setting plane configuration!\n" );
+- return ret;
++ if (ret) {
++ D_PERROR( "DRMKMS/Layer/Remove: Failed setting plane configuration!\n" );
++ return ret;
++ }
+ }
+
+ return DFB_OK;
+@@ -521,16 +536,18 @@ drmkmsPlaneFlipRegion( CoreLayer *layer,
+ /* Task */
+ data->pending_task = left_lock->task;
+
+- ret = drmModeSetPlane(drmkms->fd, data->plane->plane_id, drmkms->encoder[0]->crtc_id, (u32)(long)left_lock->handle,
+- /* plane_flags */ 0, data->config->dest.x, data->config->dest.y, data->config->dest.w, data->config->dest.h,
+- data->config->source.x << 16, data->config->source.y <<16, data->config->source.w << 16, data->config->source.h << 16);
++ if (!data->muted) {
++ ret = drmModeSetPlane(drmkms->fd, data->plane->plane_id, drmkms->encoder[0]->crtc_id, (u32)(long)left_lock->handle,
++ /* plane_flags */ 0, data->config->dest.x, data->config->dest.y, data->config->dest.w, data->config->dest.h,
++ data->config->source.x << 16, data->config->source.y <<16, data->config->source.w << 16, data->config->source.h << 16);
+
+- if (ret) {
+- D_PERROR( "DRMKMS/Layer/FlipRegion: Failed setting plane configuration!\n" );
++ if (ret) {
++ D_PERROR( "DRMKMS/Layer/FlipRegion: Failed setting plane configuration!\n" );
+
+- direct_mutex_unlock( &data->lock );
++ direct_mutex_unlock( &data->lock );
+
+- return ret;
++ return ret;
++ }
+ }
+
+ dfb_surface_flip( surface, false );
+diff --git a/systems/drmkms/drmkms_system.h b/systems/drmkms/drmkms_system.h
+index 008bfea..142ec68 100644
+--- a/systems/drmkms/drmkms_system.h
++++ b/systems/drmkms/drmkms_system.h
+@@ -83,6 +83,8 @@ typedef struct {
+
+ DirectMutex lock;
+ DirectWaitQueue wq_event;
++
++ bool muted;
+ } DRMKMSLayerData;
+
+ typedef struct {
+--
+1.7.9.5
+
diff --git a/common/recipes-graphics/directfb/directfb/configurefix.patch b/common/recipes-graphics/directfb/directfb/configurefix.patch
new file mode 100644
index 0000000..dd8c019
--- /dev/null
+++ b/common/recipes-graphics/directfb/directfb/configurefix.patch
@@ -0,0 +1,60 @@
+Libtool needs these set correctly else we end up with pointless rpaths
+such as the QA warnings:
+
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfblayer contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbmaster contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/mkdgifft contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbdump contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbinput contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbfx contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbscreen contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/mkdgiff contains probably-redundant RPATH /usr/libWARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbinspector contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/mkdfiff contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbinfo contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbpenmount contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/bin/dfbg contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/libfusion-1.4.so.6 contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/libdirectfb-1.4.so.6.0.9 contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/libdirectfb-1.4.so.6 contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/libfusion-1.4.so.6.0.9 contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/systems/libdirectfb_fbdev.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/systems/libdirectfb_devmem.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/systems/libdirectfb_dummy.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_v4l.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBVideoProvider/libidirectfbvideoprovider_gif.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/ICoreResourceManager/libicoreresourcemanager_test.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_jpeg.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_png.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_dfiff.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBImageProvider/libidirectfbimageprovider_gif.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBFont/libidirectfbfont_ft2.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/interfaces/IDirectFBFont/libidirectfbfont_dgiff.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/wm/libdirectfbwm_default.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_zytronic.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_penmount.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_linux_input.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_serialmouse.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_mutouch.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_tslib.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_joystick.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_sonypi.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_lirc.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_wm97xx_ts.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_ps2mouse.so contains probably-redundant RPATH /usr/lib
+WARNING: QA Issue: directfb: /work/i586-poky-linux/directfb-1.4.15-r1/packages-split/directfb/usr/lib/directfb-1.4-6/inputdrivers/libdirectfb_keyboard.so contains probably-redundant RPATH /usr/lib
+
+Upstream-Status: Pending
+
+RP 2012/03/16
+
+Index: DirectFB-1.4.15/configure.in
+===================================================================
+--- DirectFB-1.4.15.orig/configure.in 2012-03-16 13:32:23.692402879 +0000
++++ DirectFB-1.4.15/configure.in 2012-03-16 13:33:22.312400960 +0000
+@@ -97,13 +97,6 @@
+ AC_CHECK_SIZEOF(long long)
+ AC_CHECK_FUNCS(fork)
+
+-
+-## Work around libstuhl during cross build...
+-if test "$host" != "$build"; then
+- sys_lib_dlsearch_path_spec=""
+- sys_lib_search_path_spec=""
+-fi
+-
+ AC_PATH_PROGS(PERL, perl5 perl)
+
+ AC_PATH_PROG(MAN2HTML, man2html, no)
diff --git a/common/recipes-graphics/directfb/directfb/dfb_uiomux_support.patch b/common/recipes-graphics/directfb/directfb/dfb_uiomux_support.patch
new file mode 100644
index 0000000..fdad88b
--- /dev/null
+++ b/common/recipes-graphics/directfb/directfb/dfb_uiomux_support.patch
@@ -0,0 +1,36 @@
+diff --git a/systems/fbdev/Makefile.am b/systems/fbdev/Makefile.am
+index 2911ad8..ce268de 100644
+--- a/systems/fbdev/Makefile.am
++++ b/systems/fbdev/Makefile.am
+@@ -41,7 +43,8 @@ libdirectfb_fbdev_la_SOURCES = \
+ libdirectfb_fbdev_la_LIBADD = \
+ $(top_builddir)/lib/direct/libdirect.la \
+ $(top_builddir)/lib/fusion/libfusion.la \
+- $(top_builddir)/src/libdirectfb.la
++ $(top_builddir)/src/libdirectfb.la \
++ -luiomux
+
+
+ include $(top_srcdir)/rules/libobject.make
+diff --git a/systems/fbdev/fbdev.c b/systems/fbdev/fbdev.c
+index dd1c343..03e7361 100644
+--- a/systems/fbdev/fbdev.c
++++ b/systems/fbdev/fbdev.c
+@@ -93,6 +93,7 @@
+ #include "agp.h"
+
+ #include <core/core_system.h>
++#include <uiomux/uiomux.h>
+
+ DFB_CORE_SYSTEM( fbdev )
+
+@@ -517,6 +518,9 @@ system_initialize( CoreDFB *core, void **data )
+ goto error;
+ }
+
++ uiomux_register(dfb_fbdev->framebuffer_base, shared->fix.smem_start,
++ shared->fix.smem_len);
++
+ if (ioctl( dfb_fbdev->fd, FBIOGET_VSCREENINFO, &shared->orig_var ) < 0) {
+ D_PERROR( "DirectFB/FBDev: "
+ "Could not get variable screen information!\n" );
diff --git a/common/recipes-graphics/directfb/directfb/directfb-1.2.x-fix-pkgconfig-cflags.patch b/common/recipes-graphics/directfb/directfb/directfb-1.2.x-fix-pkgconfig-cflags.patch
new file mode 100644
index 0000000..ee60718
--- /dev/null
+++ b/common/recipes-graphics/directfb/directfb/directfb-1.2.x-fix-pkgconfig-cflags.patch
@@ -0,0 +1,48 @@
+directfb: Get this patch from Openembedded
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
+
+diff -Nur DirectFB-1.4.15/directfb-internal.pc.in DirectFB-1.4.15.new//directfb-internal.pc.in
+--- DirectFB-1.4.15/directfb-internal.pc.in 2011-09-29 17:51:21.000000000 +0800
++++ DirectFB-1.4.15.new//directfb-internal.pc.in 2011-11-03 15:14:37.000000000 +0800
+@@ -2,10 +2,10 @@
+ exec_prefix=@exec_prefix@
+ moduledir=@MODULEDIR@
+ moduledirname=@MODULEDIRNAME@
+-includedir=@INTERNALINCLUDEDIR@
++includedir=@includedir@
+
+ Name: DirectFB-Internal
+ Description: Third party module support package for DirectFB.
+ Version: @VERSION@
+ Requires: directfb = @VERSION@
+-Cflags: @DFB_INTERNAL_CFLAGS@ -I@INTERNALINCLUDEDIR@
++Cflags: @DFB_INTERNAL_CFLAGS@ -I${includedir}/directfb -I${includedir}
+diff -Nur DirectFB-1.4.15/directfb.pc.in DirectFB-1.4.15.new//directfb.pc.in
+--- DirectFB-1.4.15/directfb.pc.in 2011-09-29 17:51:21.000000000 +0800
++++ DirectFB-1.4.15.new//directfb.pc.in 2011-11-03 15:15:55.000000000 +0800
+@@ -9,4 +9,4 @@
+ Requires: @DEP_VOODOO@ fusion direct
+ Libs: -L${libdir} -ldirectfb @THREADLIB@ @OSX_LIBS@
+ Libs.private: -L${libdir} @LIBM@ @DYNLIB@ @ZLIB_LIBS@
+-Cflags: @THREADFLAGS@ -I@INCLUDEDIR@
++Cflags: @THREADFLAGS@ -I${includedir}/directfb
+diff -Nur DirectFB-1.4.15/lib/fusion/fusion.pc.in DirectFB-1.4.15.new//lib/fusion/fusion.pc.in
+--- DirectFB-1.4.15/lib/fusion/fusion.pc.in 2011-09-29 17:51:21.000000000 +0800
++++ DirectFB-1.4.15.new//lib/fusion/fusion.pc.in 2011-11-03 15:16:46.000000000 +0800
+@@ -8,4 +8,4 @@
+ Version: @VERSION@
+ Requires: direct
+ Libs: -L${libdir} -lfusion
+-Cflags: -I@INCLUDEDIR@
++Cflags: -I${includedir}/directfb -I${includedir}
+diff -Nur DirectFB-1.4.15/lib/voodoo/voodoo.pc.in DirectFB-1.4.15.new//lib/voodoo/voodoo.pc.in
+--- DirectFB-1.4.15/lib/voodoo/voodoo.pc.in 2011-09-29 17:51:21.000000000 +0800
++++ DirectFB-1.4.15.new//lib/voodoo/voodoo.pc.in 2011-11-03 15:17:34.000000000 +0800
+@@ -8,4 +8,4 @@
+ Version: @VERSION@
+ Requires: direct
+ Libs: -L${libdir} -lvoodoo
+-Cflags: -I@INCLUDEDIR@
++Cflags: -I${includedir}/directfb -I${includedir}
diff --git a/common/recipes-graphics/directfb/directfb/directfbrc b/common/recipes-graphics/directfb/directfb/directfbrc
new file mode 100644
index 0000000..75e9359
--- /dev/null
+++ b/common/recipes-graphics/directfb/directfb/directfbrc
@@ -0,0 +1,5 @@
+system=drmkms
+drmkms-use-prime-fd
+drmkms-device=/dev/dri/card1
+no-vt
+mode=1024x768
diff --git a/common/recipes-graphics/directfb/directfb/fbdev-uiomux-register.patch b/common/recipes-graphics/directfb/directfb/fbdev-uiomux-register.patch
new file mode 100644
index 0000000..9bea5a3
--- /dev/null
+++ b/common/recipes-graphics/directfb/directfb/fbdev-uiomux-register.patch
@@ -0,0 +1,54 @@
+diff -ru DirectFB-1.6.0//systems/fbdev/fbdev.c ../DirectFB-1.6.0//systems/fbdev/fbdev.c
+--- DirectFB-1.6.0//systems/fbdev/fbdev.c 2012-06-15 01:00:08.000000000 +0900
++++ ../DirectFB-1.6.0//systems/fbdev/fbdev.c 2012-08-30 16:16:11.998778572 +0900
+@@ -93,6 +93,7 @@
+ #include "agp.h"
+
+ #include <core/core_system.h>
++#include <uiomux/uiomux.h>
+
+ DFB_CORE_SYSTEM( fbdev )
+
+@@ -517,6 +518,9 @@
+ goto error;
+ }
+
++ uiomux_register(dfb_fbdev->framebuffer_base, shared->fix.smem_start,
++ shared->fix.smem_len);
++
+ if (ioctl( dfb_fbdev->fd, FBIOGET_VSCREENINFO, &shared->orig_var ) < 0) {
+ D_PERROR( "DirectFB/FBDev: "
+ "Could not get variable screen information!\n" );
+diff -ru DirectFB-1.6.0//systems/fbdev/Makefile.am ../DirectFB-1.6.0//systems/fbdev/Makefile.am
+--- DirectFB-1.6.0//systems/fbdev/Makefile.am 2012-06-15 01:00:08.000000000 +0900
++++ ../DirectFB-1.6.0//systems/fbdev/Makefile.am 2012-08-30 16:28:27.022814147 +0900
+@@ -5,7 +5,8 @@
+ -I$(top_builddir)/lib \
+ -I$(top_srcdir)/include \
+ -I$(top_srcdir)/lib \
+- -I$(top_srcdir)/src
++ -I$(top_srcdir)/src \
++ -I/usr/local/include
+
+ AM_CPPFLAGS = -D_XOPEN_SOURCE=500
+
+@@ -29,7 +30,8 @@
+
+ libdirectfb_fbdev_la_LDFLAGS = \
+ -avoid-version \
+- -module
++ -module \
++ -L/usr/local/lib
+
+ libdirectfb_fbdev_la_SOURCES = \
+ agp.c \
+@@ -41,7 +43,8 @@
+ libdirectfb_fbdev_la_LIBADD = \
+ $(top_builddir)/lib/direct/libdirect.la \
+ $(top_builddir)/lib/fusion/libfusion.la \
+- $(top_builddir)/src/libdirectfb.la
++ $(top_builddir)/src/libdirectfb.la \
++ -luiomux
+
+
+ include $(top_srcdir)/rules/libobject.make
diff --git a/common/recipes-graphics/directfb/directfb/fix-compilation-with-zlib.patch b/common/recipes-graphics/directfb/directfb/fix-compilation-with-zlib.patch
new file mode 100644
index 0000000..8b99b4e
--- /dev/null
+++ b/common/recipes-graphics/directfb/directfb/fix-compilation-with-zlib.patch
@@ -0,0 +1,29 @@
+Upstream-Status: Pending
+
+From 1d6d597050fc24769e9df2693f754bdc824a8b78 Mon Sep 17 00:00:00 2001
+From: Laurentiu Palcu <laurentiu.palcu@intel.com>
+Date: Tue, 3 Jul 2012 16:06:10 +0300
+Subject: [PATCH] fix compilation with zlib
+
+Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
+---
+ src/core/surface.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/core/surface.c b/src/core/surface.c
+index 50434a2..52f50ab 100644
+--- a/src/core/surface.c
++++ b/src/core/surface.c
+@@ -49,6 +49,9 @@
+ #include <gfx/convert.h>
+ #include <gfx/util.h>
+
++#ifdef USE_ZLIB
++#include <zlib.h>
++#endif
+
+ D_DEBUG_DOMAIN( Core_Surface, "Core/Surface", "DirectFB Core Surface" );
+
+--
+1.7.9.5
+
diff --git a/common/recipes-graphics/directfb/directfb/fixsepbuild.patch b/common/recipes-graphics/directfb/directfb/fixsepbuild.patch
new file mode 100644
index 0000000..94a9ba5
--- /dev/null
+++ b/common/recipes-graphics/directfb/directfb/fixsepbuild.patch
@@ -0,0 +1,19 @@
+Fix out of tree builds
+
+Upstream-Status: Pending
+
+RP 2013/03/21
+
+Index: DirectFB-1.6.1/configure.in
+===================================================================
+--- DirectFB-1.6.1.orig/configure.in 2013-03-19 01:38:28.174004720 +0000
++++ DirectFB-1.6.1/configure.in 2013-03-21 12:18:10.253113675 +0000
+@@ -111,7 +111,7 @@
+ AC_PATH_TOOL(FLUXCOMP, fluxcomp)
+ AC_SUBST(FLUXCOMP)
+ if test -z "$FLUXCOMP"; then
+- if ! test -e src/core/CoreDFB.cpp; then
++ if ! test -e $srcdir/src/core/CoreDFB.cpp; then
+ AC_MSG_ERROR([
+ *** DirectFB compilation requires fluxcomp ***
+
diff --git a/common/recipes-graphics/directfb/directfb/mesa9.patch b/common/recipes-graphics/directfb/directfb/mesa9.patch
new file mode 100644
index 0000000..43fd5c2
--- /dev/null
+++ b/common/recipes-graphics/directfb/directfb/mesa9.patch
@@ -0,0 +1,29 @@
+Patch from upstream to fix build against Mesa 9.
+
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+From 54beba0715a4fead2a0aa5477977347f81fc2bc0 Mon Sep 17 00:00:00 2001
+From: Andreas Shimokawa <andi@directfb.org>
+Date: Wed, 24 Oct 2012 18:01:15 +0200
+Subject: [PATCH] mesa: fix compatibility with mesa 9.0
+
+---
+ systems/mesa/mesa_surface_pool.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/systems/mesa/mesa_surface_pool.c b/systems/mesa/mesa_surface_pool.c
+index 0a588bb..bfb5ff3 100644
+--- a/systems/mesa/mesa_surface_pool.c
++++ b/systems/mesa/mesa_surface_pool.c
+@@ -297,7 +297,7 @@ mesaAllocateBuffer( CoreSurfacePool *pool,
+ alloc->bo = gbm_bo_create( mesa->gbm, surface->config.size.w, surface->config.size.h, GBM_BO_FORMAT_ARGB8888,
+ GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING );
+ alloc->handle = gbm_bo_get_handle( alloc->bo ).u32;
+- alloc->pitch = gbm_bo_get_pitch( alloc->bo );
++ alloc->pitch = gbm_bo_get_stride( alloc->bo );
+
+ alloc->image = eglCreateImageKHR( mesa->dpy, NULL, EGL_NATIVE_PIXMAP_KHR, alloc->bo, NULL );
+
+--
+1.7.9.5
diff --git a/common/recipes-graphics/directfb/directfb/rename-no-instrument-function-macro.patch b/common/recipes-graphics/directfb/directfb/rename-no-instrument-function-macro.patch
new file mode 100644
index 0000000..443df5a
--- /dev/null
+++ b/common/recipes-graphics/directfb/directfb/rename-no-instrument-function-macro.patch
@@ -0,0 +1,345 @@
+Rename __no_instrument_function__ macro to avoid conficting redefinitions
+of the same symbol.
+
+Upstream-Status: Pending
+Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+
+Index: DirectFB-1.6.1/lib/direct/clock.c
+===================================================================
+--- DirectFB-1.6.1.orig/lib/direct/clock.c 2012-06-29 19:01:11.000000000 +0300
++++ DirectFB-1.6.1/lib/direct/clock.c 2013-01-05 18:03:24.000000000 +0200
+@@ -36,28 +36,28 @@
+
+ /**********************************************************************************************************************/
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ long long
+ direct_clock_get_micros( void )
+ {
+ return direct_clock_get_time( DIRECT_CLOCK_SESSION );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ long long
+ direct_clock_get_millis( void )
+ {
+ return direct_clock_get_time( DIRECT_CLOCK_SESSION ) / 1000LL;
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ long long
+ direct_clock_get_abs_micros( void )
+ {
+ return direct_clock_get_time( DIRECT_CLOCK_REALTIME );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ long long
+ direct_clock_get_abs_millis( void )
+ {
+Index: DirectFB-1.6.1/lib/direct/debug.c
+===================================================================
+--- DirectFB-1.6.1.orig/lib/direct/debug.c 2012-06-29 19:01:11.000000000 +0300
++++ DirectFB-1.6.1/lib/direct/debug.c 2013-01-05 18:03:49.000000000 +0200
+@@ -48,7 +48,7 @@
+
+ #if DIRECT_BUILD_DEBUGS /* Build with debug support? */
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_debug_log( DirectLogDomain *domain,
+ unsigned int debug_level, /* 1-9, 0 = info */
+@@ -63,7 +63,7 @@
+ va_end( ap );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_debug_at( DirectLogDomain *domain,
+ const char *format, ... )
+@@ -77,7 +77,7 @@
+
+ #endif /* DIRECT_BUILD_DEBUGS */
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_debug_at_always( DirectLogDomain *domain,
+ const char *format, ... )
+@@ -93,7 +93,7 @@
+
+ #if DIRECT_BUILD_DEBUGS /* Build with debug support? */
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_break( const char *func,
+ const char *file,
+@@ -123,7 +123,7 @@
+ direct_trap( "Break", SIGABRT );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_assertion( const char *exp,
+ const char *func,
+@@ -144,7 +144,7 @@
+ direct_trap( "Assertion", SIGTRAP );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_assumption( const char *exp,
+ const char *func,
+Index: DirectFB-1.6.1/lib/direct/interface.c
+===================================================================
+--- DirectFB-1.6.1.orig/lib/direct/interface.c 2012-06-29 19:01:11.000000000 +0300
++++ DirectFB-1.6.1/lib/direct/interface.c 2013-01-05 18:04:56.000000000 +0200
+@@ -522,7 +522,7 @@
+
+ /**************************************************************************************************/
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ static InterfaceDesc *
+ allocate_interface_desc( void )
+ {
+@@ -543,7 +543,7 @@
+ return &alloc_list[alloc_count++];
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ static __inline__ void
+ fill_interface_desc( InterfaceDesc *desc,
+ const void *interface_ptr,
+@@ -565,7 +565,7 @@
+
+ /**************************************************************************************************/
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_dbg_interface_add( const char *func,
+ const char *file,
+@@ -586,7 +586,7 @@
+ direct_mutex_unlock( &alloc_lock );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_dbg_interface_remove( const char *func,
+ const char *file,
+Index: DirectFB-1.6.1/lib/direct/log.c
+===================================================================
+--- DirectFB-1.6.1.orig/lib/direct/log.c 2012-06-29 19:01:11.000000000 +0300
++++ DirectFB-1.6.1/lib/direct/log.c 2013-01-05 18:04:18.000000000 +0200
+@@ -128,7 +128,7 @@
+ return DR_OK;
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ DirectResult
+ direct_log_printf( DirectLog *log,
+ const char *format, ... )
+@@ -197,7 +197,7 @@
+ return DR_OK;
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_log_lock( DirectLog *log )
+ {
+@@ -211,7 +211,7 @@
+ direct_mutex_lock( &log->lock );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_log_unlock( DirectLog *log )
+ {
+@@ -262,7 +262,7 @@
+
+ /**********************************************************************************************************************/
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ DirectLog *
+ direct_log_default( void )
+ {
+Index: DirectFB-1.6.1/lib/direct/log_domain.c
+===================================================================
+--- DirectFB-1.6.1.orig/lib/direct/log_domain.c 2012-06-29 19:01:11.000000000 +0300
++++ DirectFB-1.6.1/lib/direct/log_domain.c 2013-01-05 18:04:38.000000000 +0200
+@@ -69,7 +69,7 @@
+
+ /**********************************************************************************************************************/
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ static __inline__ LogDomainEntry *
+ lookup_domain( const char *name, bool sub );
+
+@@ -104,7 +104,7 @@
+ return NULL;
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ static DirectLogLevel
+ check_domain( DirectLogDomain *domain );
+
+@@ -207,7 +207,7 @@
+ /* FIXME: merge following */
+
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ DirectResult
+ direct_log_domain_vprintf( DirectLogDomain *domain,
+ DirectLogLevel level,
+@@ -268,7 +268,7 @@
+ return DR_OK;
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ DirectResult
+ direct_log_domain_log( DirectLogDomain *domain,
+ DirectLogLevel level,
+Index: DirectFB-1.6.1/lib/direct/mem.c
+===================================================================
+--- DirectFB-1.6.1.orig/lib/direct/mem.c 2012-06-29 19:01:11.000000000 +0300
++++ DirectFB-1.6.1/lib/direct/mem.c 2013-01-05 18:03:08.000000000 +0200
+@@ -121,7 +121,7 @@
+
+ /**********************************************************************************************************************/
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ static __inline__ MemDesc *
+ fill_mem_desc( MemDesc *desc, int bytes, const char *func, const char *file, int line, DirectTraceBuffer *trace )
+ {
+Index: DirectFB-1.6.1/lib/direct/messages.c
+===================================================================
+--- DirectFB-1.6.1.orig/lib/direct/messages.c 2012-06-29 19:01:11.000000000 +0300
++++ DirectFB-1.6.1/lib/direct/messages.c 2013-01-05 18:02:57.000000000 +0200
+@@ -40,7 +40,7 @@
+
+ #if DIRECT_BUILD_TEXT
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_messages_info( const char *format, ... )
+ {
+@@ -57,7 +57,7 @@
+ direct_log_printf( NULL, "(*) %s", buf );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_messages_error( const char *format, ... )
+ {
+@@ -76,7 +76,7 @@
+ direct_trace_print_stack( NULL );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_messages_derror( DirectResult result, const char *format, ... )
+ {
+@@ -95,7 +95,7 @@
+ direct_trace_print_stack( NULL );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_messages_perror( int erno, const char *format, ... )
+ {
+@@ -114,7 +114,7 @@
+ direct_trace_print_stack( NULL );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_messages_dlerror( const char *dlerr, const char *format, ... )
+ {
+@@ -133,7 +133,7 @@
+ direct_trace_print_stack( NULL );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_messages_once( const char *func,
+ const char *file,
+@@ -155,7 +155,7 @@
+ direct_trace_print_stack( NULL );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_messages_unimplemented( const char *func,
+ const char *file,
+@@ -166,7 +166,7 @@
+ direct_trace_print_stack( NULL );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_messages_bug( const char *func,
+ const char *file,
+@@ -188,7 +188,7 @@
+ direct_trace_print_stack( NULL );
+ }
+
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ void
+ direct_messages_warn( const char *func,
+ const char *file,
+Index: DirectFB-1.6.1/lib/direct/os/linux/glibc/types.h
+===================================================================
+--- DirectFB-1.6.1.orig/lib/direct/os/linux/glibc/types.h 2012-06-29 19:01:11.000000000 +0300
++++ DirectFB-1.6.1/lib/direct/os/linux/glibc/types.h 2013-01-05 18:06:04.000000000 +0200
+@@ -74,7 +74,7 @@
+
+ #define __inline__ inline
+ #define D_UNUSED __attribute__((unused))
+-#define __no_instrument_function__ __attribute__((no_instrument_function))
++#define __dfb_no_instrument_function__ __attribute__((no_instrument_function))
+ #define __constructor__ __attribute__((constructor))
+ #define __destructor__ __attribute__((destructor))
+ #define __typeof__(x) typeof(x)
+Index: DirectFB-1.6.1/lib/direct/util.c
+===================================================================
+--- DirectFB-1.6.1.orig/lib/direct/util.c 2012-06-29 19:01:11.000000000 +0300
++++ DirectFB-1.6.1/lib/direct/util.c 2013-01-05 18:03:59.000000000 +0200
+@@ -110,7 +110,7 @@
+ /*
+ * translates errno to DirectResult
+ */
+-__no_instrument_function__
++__dfb_no_instrument_function__
+ DirectResult
+ errno2result( int erno )
+ {