diff options
Diffstat (limited to 'common/recipes-graphics')
24 files changed, 1305 insertions, 0 deletions
diff --git a/common/recipes-graphics/directfb/directfb-examples_git.bb b/common/recipes-graphics/directfb/directfb-examples_git.bb new file mode 100644 index 0000000..a022393 --- /dev/null +++ b/common/recipes-graphics/directfb/directfb-examples_git.bb @@ -0,0 +1,20 @@ +DEFAULT_PREFERENCE = "-1" +DESCRIPTION = "The DirectFB-examples package contains a set of simple DirectFB \ + applications that can be used to test and demonstrate various DirectFB \ + features" +DEPENDS = "directfb" +SECTION = "libs" +LICENSE = "MIT" +RV = "1.7-0+git" +PR = "r0" + +SRC_URI = " \ + git://git.directfb.org/git/directfb/extras/DirectFB-examples.git;protocol=git \ + " +SRCREV = "61ddf7dc02ee28d8cab20ad482f37c2ad4390835" + +LIC_FILES_CHKSUM = "file://COPYING;md5=ecf6fd2b19915afc4da56043926ca18f" + +S = "${WORKDIR}/git" + +inherit autotools diff --git a/common/recipes-graphics/directfb/directfb.inc b/common/recipes-graphics/directfb/directfb.inc new file mode 100644 index 0000000..60b12f7 --- /dev/null +++ b/common/recipes-graphics/directfb/directfb.inc @@ -0,0 +1,72 @@ +SUMMARY = "Graphics abstraction library for the Linux Framebuffer Device" +DESCRIPTION = "DirectFB is a thin library that provides developers \ +with hardware graphics acceleration, input device handling and \ +abstraction, an integrated windowing system with support for \ +translucent windows and multiple display layers on top of the \ +Linux framebuffer device." +SECTION = "libs" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589" + +HOMEPAGE = "http://directfb.org" +DEPENDS = "jpeg libpng freetype zlib tslib" + +INC_PR = "r0" + +SRC_URI = "http://directfb.org/downloads/Core/DirectFB-1.6/DirectFB-${PV}.tar.gz \ + file://configurefix.patch" + +S = "${WORKDIR}/DirectFB-${PV}" + +LDFLAGS_append =" -lts -lm" + +inherit autotools binconfig pkgconfig + +PACKAGECONFIG ??= "" +PACKAGECONFIG[jpeg2000] = "--enable-jpeg2000,--disable-jpeg2000,jasper" + +EXTRA_OECONF = "\ + --with-gfxdrivers=none \ + --enable-libmpeg3=no \ + --enable-freetype=yes \ + --enable-sdl=no \ + --enable-vnc=no \ + --disable-x11 \ + --disable-mesa \ +" + +#Once -fno-omit-frame-pointer option of gcc is added into TARGET_CLFAGS as default +#this will cause directfb build failure on x86 arch, so filter out it. +TARGET_CFLAGS_x86 := "${@oe_filter_out('-fno-omit-frame-pointer', '${TARGET_CFLAGS}', d)}" + +#PACKAGES_DYNAMIC += "^directfb-inputdrivers-.*" +# +#python populate_packages_prepend () { +# inputdrivers_libdir = d.expand('${libdir}/directfb-${RV}/inputdrivers') +# do_split_packages(d, inputdrivers_libdir, '*.so$', 'directfb-inputdrivers-%s', 'Directfb plugin for %s') +#} + +# NOTE: monolithic packaging for now, should improve that eventually + + + +FILES_${PN}-dbg += "\ + ${libdir}/directfb-${RV}/*/*/.debug/*.so \ + ${libdir}/directfb-${RV}/*/.debug/*.so \ +" + +FILES_${PN}-dev += "\ + ${bindir}/directfb-config \ + ${libdir}/directfb-${RV}/systems/*.la \ + ${libdir}/directfb-${RV}/inputdrivers/*.la \ + ${libdir}/directfb-${RV}/interfaces/*/*.la \ + ${libdir}/directfb-${RV}/wm/*.la \ +" + +FILES_${PN} += "\ + ${libdir}/directfb-${RV}/systems/*.so \ + ${libdir}/directfb-${RV}/inputdrivers/*.so \ + ${libdir}/directfb-${RV}/interfaces/*/*.so \ + ${libdir}/directfb-${RV}/wm/*.so \ + ${datadir}/directfb-${PV} \ +" 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 ) + { diff --git a/common/recipes-graphics/directfb/directfb_1.6.3.bb b/common/recipes-graphics/directfb/directfb_1.6.3.bb new file mode 100644 index 0000000..7e0a6e6 --- /dev/null +++ b/common/recipes-graphics/directfb/directfb_1.6.3.bb @@ -0,0 +1,28 @@ +require directfb.inc + +RV = "1.6-0" +PR = "${INC_PR}.2" + +DEPENDS += "sysfsutils" +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI += "file://fix-compilation-with-zlib.patch \ + file://rename-no-instrument-function-macro.patch \ + file://fixsepbuild.patch \ +" + +EXTRA_OECONF = "\ + --enable-freetype=yes \ + --enable-zlib \ + --with-gfxdrivers=none \ + --disable-sdl \ + --disable-vnc \ + --disable-x11 \ + --disable-imlib2 \ + --disable-mesa \ +" + +LEAD_SONAME = "libdirectfb-1.6.so.0" + +SRC_URI[md5sum] = "641e8e999c017770da647f9b5b890906" +SRC_URI[sha256sum] = "7a96aced0f69b2ec0810e9923068e61c21e6b19dd593e09394c872414df75e70" diff --git a/common/recipes-graphics/directfb/directfb_1.6.3.bbappend b/common/recipes-graphics/directfb/directfb_1.6.3.bbappend new file mode 100644 index 0000000..4d839a4 --- /dev/null +++ b/common/recipes-graphics/directfb/directfb_1.6.3.bbappend @@ -0,0 +1,6 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" +SRC_URI_append_armadillo800eva = " file://fbdev-uiomux-register.patch" + +EXTRA_OECONF += "\ + --with-inputdrivers=linuxinput \ +" diff --git a/common/recipes-graphics/directfb/directfb_git.bb b/common/recipes-graphics/directfb/directfb_git.bb new file mode 100644 index 0000000..87da7c8 --- /dev/null +++ b/common/recipes-graphics/directfb/directfb_git.bb @@ -0,0 +1,68 @@ +DEFAULT_PREFERENCE = "-1" + +require directfb_git.inc + +RV = "1.8-0" +PR = "r6" +S = "${WORKDIR}/git" + +DEPENDS += "flux-native sysfsutils libuiomux libdrm linux-fusion khronos-headers" + +SRC_URI += "file://fix-compilation-with-zlib.patch \ + file://directfbrc \ + file://0001-drmkms-fix-property-to-check-when-setting-source-col.patch \ + file://0002-drmkms-mute-plane-when-opacity-is-set-to-zero.patch \ + " + +SRCREV = "b5301bba8c0878d86cb5a1901ccc587ecea20673" + +EXTRA_OECONF = "\ + --enable-freetype \ + --enable-zlib \ + --disable-sdl \ + --disable-vnc \ + --disable-x11 \ + --disable-imlib2 \ + --disable-mesa \ + --enable-trace \ + --enable-debug \ + --enable-debug-support \ + --disable-one \ + --enable-multi \ + --enable-multicore \ + --enable-network \ + --enable-voodoo \ + --enable-sawman \ + --enable-fusiondale \ + --enable-fusionsound \ + --disable-unique \ + --with-tests \ + --with-fs-drivers=dummy \ + --with-inputdrivers=linuxinput \ + --without-smooth-scaling \ + --without-vorbis \ + --enable-fbdev \ + --enable-png \ + --disable-x11vdpau \ + --disable-devmem \ + --disable-linotype \ + --enable-drmkms \ + --enable-idirectfbgl-egl \ + --with-gfxdrivers=gp2d \ +" + +TARGET_CFLAGS += "-I${STAGING_INCDIR}/libdrm" + +do_configure_prepend() { + export GP2D_LIBS="-ldrm" + export DRMKMS_LIBS="-ldrm -lkms" +} + +do_install_append () { + install -d ${D}/etc + install -m 0644 ${WORKDIR}/directfbrc ${D}/etc/ + rm -rf ${D}/usr/lib/nm-n.* +} + +LEAD_SONAME = "libdirectfb-1.8.so.0" + diff --git a/common/recipes-graphics/directfb/directfb_git.inc b/common/recipes-graphics/directfb/directfb_git.inc new file mode 100644 index 0000000..eaa4269 --- /dev/null +++ b/common/recipes-graphics/directfb/directfb_git.inc @@ -0,0 +1,71 @@ +SUMMARY = "Graphics abstraction library for the Linux Framebuffer Device" +DESCRIPTION = "DirectFB is a thin library that provides developers \ +with hardware graphics acceleration, input device handling and \ +abstraction, an integrated windowing system with support for \ +translucent windows and multiple display layers on top of the \ +Linux framebuffer device." +SECTION = "libs" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589" + +HOMEPAGE = "http://directfb.org" +DEPENDS = "jpeg libpng freetype zlib tslib" + +INC_PR = "r0" + +SRC_URI = "git://git.directfb.org/git/directfb/core/DirectFB.git;protocol=git \ + file://directfb-1.2.x-fix-pkgconfig-cflags.patch \ + file://configurefix.patch" + +S = "${WORKDIR}/git" + +LDFLAGS_append =" -lts -lm" + +inherit autotools binconfig pkgconfig + +EXTRA_OECONF = "\ + --with-gfxdrivers=none \ + --enable-libmpeg3=no \ + --enable-freetype=yes \ + --enable-sdl=no \ + --enable-vnc=no \ + --disable-x11 \ + --disable-mesa \ +" + +#PACKAGES_DYNAMIC += "^directfb-inputdrivers-.*" +# +#python populate_packages_prepend () { +# inputdrivers_libdir = d.expand('${libdir}/directfb-${RV}/inputdrivers') +# do_split_packages(d, inputdrivers_libdir, '*.so$', 'directfb-inputdrivers-%s', 'Directfb plugin for %s') +#} + +# NOTE: monolithic packaging for now, should improve that eventually + + + +FILES_${PN}-dbg += "\ + ${libdir}/directfb-${RV}/*/*/.debug/*.so \ + ${libdir}/directfb-${RV}/*/.debug/*.so \ +" + +FILES_${PN}-dev += "\ + ${bindir}/directfb-config \ + ${libdir}/directfb-${RV}/systems/*.la \ + ${libdir}/directfb-${RV}/inputdrivers/*.la \ + ${libdir}/directfb-${RV}/interfaces/*/*.la \ + ${libdir}/directfb-${RV}/wm/*.la \ + ${libdir}/directfb-${RV}/gfxdrivers/*.la \ + ${libdir}/directfb-${RV}/snddrivers/*.la \ +" + +FILES_${PN} += "\ + ${libdir}/directfb-${RV}/systems/*.so \ + ${libdir}/directfb-${RV}/inputdrivers/*.so \ + ${libdir}/directfb-${RV}/interfaces/*/*.so \ + ${libdir}/directfb-${RV}/wm/*.so \ + ${libdir}/directfb-${RV}/gfxdrivers/*.so \ + ${libdir}/directfb-${RV}/snddrivers/*.so \ + ${datadir}/directfb-${PV} \ + /usr/share \ +" diff --git a/common/recipes-graphics/drm/libdrm/0001-modetest-add-the-possibility-to-select-the-refresh-f.patch b/common/recipes-graphics/drm/libdrm/0001-modetest-add-the-possibility-to-select-the-refresh-f.patch new file mode 100644 index 0000000..090cc00 --- /dev/null +++ b/common/recipes-graphics/drm/libdrm/0001-modetest-add-the-possibility-to-select-the-refresh-f.patch @@ -0,0 +1,118 @@ +From de0970203091618834e4753c14d5169770797800 Mon Sep 17 00:00:00 2001 +From: Vincent ABRIOU <vincent.abriou@st.com> +Date: Fri, 10 Jan 2014 11:02:33 +0100 +Subject: [PATCH] modetest: add the possibility to select the refresh + frequency for a mode + +When mode is selected we only give the name of the mode as parameter. +But sometime, two different modes have the same name but not +the same vrefresh frequency. +This patch give the possibility to select a mode by its name +and optionally by its refresh frequency. + +Signed-off-by: Vincent Abriou <vincent.abriou@st.com> +Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> +Signed-off-by: Rob Clark <robclark@freedesktop.org> +--- + tests/modetest/modetest.c | 35 +++++++++++++++++++++++++++-------- + 1 file changed, 27 insertions(+), 8 deletions(-) + +diff --git a/tests/modetest/modetest.c b/tests/modetest/modetest.c +index 0afd1c8..12365d4 100644 +--- a/tests/modetest/modetest.c ++++ b/tests/modetest/modetest.c +@@ -753,6 +753,7 @@ struct pipe_arg { + uint32_t crtc_id; + char mode_str[64]; + char format_str[5]; ++ unsigned int vrefresh; + unsigned int fourcc; + drmModeModeInfo *mode; + struct crtc *crtc; +@@ -774,7 +775,8 @@ struct plane_arg { + }; + + static drmModeModeInfo * +-connector_find_mode(struct device *dev, uint32_t con_id, const char *mode_str) ++connector_find_mode(struct device *dev, uint32_t con_id, const char *mode_str, ++ const unsigned int vrefresh) + { + drmModeConnector *connector; + drmModeModeInfo *mode; +@@ -786,8 +788,16 @@ connector_find_mode(struct device *dev, uint32_t con_id, const char *mode_str) + + for (i = 0; i < connector->count_modes; i++) { + mode = &connector->modes[i]; +- if (!strcmp(mode->name, mode_str)) +- return mode; ++ if (!strcmp(mode->name, mode_str)) { ++ /* If the vertical refresh frequency is not specified then return the ++ * first mode that match with the name. Else, return the mode that match ++ * the name and the specified vertical refresh frequency. ++ */ ++ if (vrefresh == 0) ++ return mode; ++ else if (mode->vrefresh == vrefresh) ++ return mode; ++ } + } + + return NULL; +@@ -849,7 +859,7 @@ static int pipe_find_crtc_and_mode(struct device *dev, struct pipe_arg *pipe) + + for (i = 0; i < (int)pipe->num_cons; i++) { + mode = connector_find_mode(dev, pipe->con_ids[i], +- pipe->mode_str); ++ pipe->mode_str, pipe->vrefresh); + if (mode == NULL) { + fprintf(stderr, + "failed to find mode \"%s\" for connector %u\n", +@@ -1175,8 +1185,8 @@ static void set_mode(struct device *dev, struct pipe_arg *pipes, unsigned int co + if (pipe->mode == NULL) + continue; + +- printf("setting mode %s@%s on connectors ", +- pipe->mode_str, pipe->format_str); ++ printf("setting mode %s-%dHz@%s on connectors ", ++ pipe->mode_str, pipe->mode->vrefresh, pipe->format_str); + for (j = 0; j < pipe->num_cons; ++j) + printf("%u, ", pipe->con_ids[j]); + printf("crtc %d\n", pipe->crtc->crtc->crtc_id); +@@ -1308,6 +1318,7 @@ static int parse_connector(struct pipe_arg *pipe, const char *arg) + const char *p; + char *endp; + ++ pipe->vrefresh = 0; + pipe->crtc_id = (uint32_t)-1; + strcpy(pipe->format_str, "XR24"); + +@@ -1342,11 +1353,19 @@ static int parse_connector(struct pipe_arg *pipe, const char *arg) + + arg = endp + 1; + +- p = strchrnul(arg, '@'); ++ /* Search for the vertical refresh or the format. */ ++ p = strpbrk(arg, "-@"); ++ if (p == NULL) ++ p = arg + strlen(arg); + len = min(sizeof pipe->mode_str - 1, (unsigned int)(p - arg)); + strncpy(pipe->mode_str, arg, len); + pipe->mode_str[len] = '\0'; + ++ if (*p == '-') { ++ pipe->vrefresh = strtoul(p + 1, &endp, 10); ++ p = endp; ++ } ++ + if (*p == '@') { + strncpy(pipe->format_str, p + 1, 4); + pipe->format_str[4] = '\0'; +@@ -1434,7 +1453,7 @@ static void usage(char *name) + + fprintf(stderr, "\n Test options:\n\n"); + fprintf(stderr, "\t-P <crtc_id>[@<source_id>]:<w>x<h>[+<x>+<y>][@<format>]\tset a plane\n"); +- fprintf(stderr, "\t-s <connector_id>[,<connector_id>][@<crtc_id>]:<mode>[@<format>]\tset a mode\n"); ++ fprintf(stderr, "\t-s <connector_id>[,<connector_id>][@<crtc_id>]:<mode>[-<vrefresh>][@<format>]\tset a mode\n"); + fprintf(stderr, "\t-v\ttest vsynced page flipping\n"); + fprintf(stderr, "\t-w <obj_id>:<prop_name>:<value>\tset property\n"); + diff --git a/common/recipes-graphics/drm/libdrm/GNU_SOURCE_definition.patch b/common/recipes-graphics/drm/libdrm/GNU_SOURCE_definition.patch new file mode 100644 index 0000000..8eb1d5e --- /dev/null +++ b/common/recipes-graphics/drm/libdrm/GNU_SOURCE_definition.patch @@ -0,0 +1,30 @@ +uclibc headers need to know if _GNU_SOURCE is defined or not and its defined +in config.h so include it first to get the definition if its there fixed build +problems on uclibc + +test_decode.c:107:2: error: implicit declaration of function 'open_memstream' [-Werror=implicit-function-declaration] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending + +Index: libdrm-2.4.30/intel/test_decode.c +=================================================================== +--- libdrm-2.4.30.orig/intel/test_decode.c 2012-02-03 14:28:46.409355918 -0800 ++++ libdrm-2.4.30/intel/test_decode.c 2012-02-03 14:29:02.357356689 -0800 +@@ -21,6 +21,8 @@ + * IN THE SOFTWARE. + */ + ++#include "config.h" ++ + #include <string.h> + #include <stdlib.h> + #include <stdio.h> +@@ -31,7 +33,6 @@ + #include <sys/mman.h> + #include <err.h> + +-#include "config.h" + #include "intel_bufmgr.h" + #include "intel_chipset.h" + diff --git a/common/recipes-graphics/drm/libdrm/installtests.patch b/common/recipes-graphics/drm/libdrm/installtests.patch new file mode 100644 index 0000000..7d443af --- /dev/null +++ b/common/recipes-graphics/drm/libdrm/installtests.patch @@ -0,0 +1,23 @@ +tests: also install tests app + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Yu Ke <ke.yu@intel.com> + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index bf1987f..d909e19 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -6,10 +6,11 @@ AM_CPPFLAGS = \ + + LDADD = $(top_builddir)/libdrm.la + +-check_PROGRAMS = \ ++bin_PROGRAMS = \ + dristat \ + drmstat + ++check_PROGRAMS = + SUBDIRS = modeprint + + if HAVE_LIBKMS diff --git a/common/recipes-graphics/drm/libdrm_2.4.45.bb b/common/recipes-graphics/drm/libdrm_2.4.45.bb new file mode 100644 index 0000000..c76af78 --- /dev/null +++ b/common/recipes-graphics/drm/libdrm_2.4.45.bb @@ -0,0 +1,14 @@ +require recipes-graphics/drm/libdrm.inc + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRCREV = "4d8674077c006f68ec4771530891df8231da839d" +SRC_URI = "git://git.ideasonboard.com/renesas/drm.git;protocol=git;branch=live \ + file://installtests.patch \ + file://GNU_SOURCE_definition.patch \ + file://0001-modetest-add-the-possibility-to-select-the-refresh-f.patch \ + " + +PV_append = "+git${SRCREV}" +S = "${WORKDIR}/git" +EXTRA_OECONF += "--enable-install-test-programs" diff --git a/common/recipes-graphics/flux/flux_1.4.4.bb b/common/recipes-graphics/flux/flux_1.4.4.bb new file mode 100644 index 0000000..9a5870a --- /dev/null +++ b/common/recipes-graphics/flux/flux_1.4.4.bb @@ -0,0 +1,18 @@ +SUMMARY = "flux is an interface description language used by DirectFB" +HOMEPAGE = "http://directfb.org" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://src/fluxcomp.cpp;beginline=13;endline=32;md5=eb9874d4eb31887b9bc6b14fefff731c" + +PR = "r0" + +SRCREV = "d3086b8e39aaddd5302de6ce16cdc300ffd3ac75" +SRC_URI = "git://git.directfb.org/git/directfb/core/flux.git;protocol=git" + +PR = "r0" +PV = "1.4.4+git${SRCPV}" +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +BBCLASSEXTEND = "native" diff --git a/common/recipes-graphics/khronos-headers/khronos-headers/support_arm.patch b/common/recipes-graphics/khronos-headers/khronos-headers/support_arm.patch new file mode 100644 index 0000000..13c8f40 --- /dev/null +++ b/common/recipes-graphics/khronos-headers/khronos-headers/support_arm.patch @@ -0,0 +1,12 @@ +diff -urN a/EGL/eglplatform.h b/EGL/eglplatform.h +--- b/EGL/eglplatform.h 2010-08-19 15:46:25.000000000 +0900 ++++ a/EGL/eglplatform.h 2010-11-02 19:40:45.000000000 +0900 +@@ -72,7 +72,7 @@ + typedef HBITMAP EGLNativePixmapType; + typedef HWND EGLNativeWindowType; + +-#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ ++#elif defined(__WINSCW__) || defined(__SYMBIAN32__) || defined(__arm__) /* Symbian */ + + typedef int EGLNativeDisplayType; + typedef void *EGLNativeWindowType; diff --git a/common/recipes-graphics/khronos-headers/khronos-headers_20131030.bb b/common/recipes-graphics/khronos-headers/khronos-headers_20131030.bb new file mode 100644 index 0000000..73dcd62 --- /dev/null +++ b/common/recipes-graphics/khronos-headers/khronos-headers_20131030.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "khronos header files (http://www.khronos.org/registry/)" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://CL/cl.h;beginline=1;endline=22;md5=688fcb59ec225081cedfaef77315908f" + +PV = "20130424" +PR = "r0" + +SRC_URI = " \ + http://www.khronos.org/registry/khronos_headers.tgz \ + file://support_arm.patch \ +" + +SRC_URI[md5sum] = "56ad0e432eb56ba3ff058595eda7fa52" +SRC_URI[sha256sum] = "0e5a8df9fc34cfe88a76d1796e3b5f7384139448a07f2f8819f3f2ebbcdb223e" + +S = "${WORKDIR}/khronos_headers" + +do_install () { + install -d ${D}/usr/include + cp -rf * ${D}/usr/include/. +} + +FILES_${PN} += "usr/include/*" |