diff options
Diffstat (limited to 'recipes-graphics')
19 files changed, 755 insertions, 0 deletions
diff --git a/recipes-graphics/xorg-driver/emgd-driver-bin/egl.pc b/recipes-graphics/xorg-driver/emgd-driver-bin/egl.pc new file mode 100644 index 0000000..42efd64 --- /dev/null +++ b/recipes-graphics/xorg-driver/emgd-driver-bin/egl.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include + +Name: egl +Description: EMGD EGL library +Requires.private: +Version: 1.16 +Libs: -L${libdir} -lEGL +Libs.private: -lm -lpthread -ldl +Cflags: -I${includedir} diff --git a/recipes-graphics/xorg-driver/emgd-driver-bin/glchar.patch b/recipes-graphics/xorg-driver/emgd-driver-bin/glchar.patch new file mode 100644 index 0000000..2781ec9 --- /dev/null +++ b/recipes-graphics/xorg-driver/emgd-driver-bin/glchar.patch @@ -0,0 +1,17 @@ +EMGD's gl2.h is missing the GLchar typedef, so add it. + +Upstream-Status: Submitted +Signed-off-by: Ross Burton <ross.burton@intel.com> + +diff --git a/usr/include/GLES2/gl2.h b/usr/include/GLES2/gl2.h +index 8b83f3f..4fbd12e 100644 +--- a/usr/include/GLES2/gl2.h ++++ b/usr/include/GLES2/gl2.h +@@ -21,6 +21,7 @@ typedef unsigned int GLenum; + typedef unsigned char GLboolean; + typedef unsigned int GLbitfield; + typedef khronos_int8_t GLbyte; ++typedef char GLchar; + typedef short GLshort; + typedef int GLint; + typedef int GLsizei; diff --git a/recipes-graphics/xorg-driver/emgd-driver-bin/gles_cm.pc b/recipes-graphics/xorg-driver/emgd-driver-bin/gles_cm.pc new file mode 100644 index 0000000..a0c828f --- /dev/null +++ b/recipes-graphics/xorg-driver/emgd-driver-bin/gles_cm.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include + +Name: gles_cm +Description: EMGD OpenGL ES 1.1 CM library +Requires.private: +Version: 1.16 +Libs: -L${libdir} -lGLES_CM +Libs.private: -lm -lpthread -ldl +Cflags: -I${includedir} diff --git a/recipes-graphics/xorg-driver/emgd-driver-bin/glesv2.pc b/recipes-graphics/xorg-driver/emgd-driver-bin/glesv2.pc new file mode 100644 index 0000000..02171fa --- /dev/null +++ b/recipes-graphics/xorg-driver/emgd-driver-bin/glesv2.pc @@ -0,0 +1,12 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=/usr/lib +includedir=/usr/include + +Name: glesv2 +Description: EMGD OpenGL ES 2.0 library +Requires.private: +Version: 1.16 +Libs: -L${libdir} -lGLESv2 +Libs.private: -lm -lpthread -ldl +Cflags: -I${includedir} diff --git a/recipes-graphics/xorg-driver/emgd-driver-bin_1.16.bb b/recipes-graphics/xorg-driver/emgd-driver-bin_1.16.bb new file mode 100644 index 0000000..963536f --- /dev/null +++ b/recipes-graphics/xorg-driver/emgd-driver-bin_1.16.bb @@ -0,0 +1,186 @@ +SUMMARY = "EMGD 1.16 xserver binaries" +DESCRIPTION = "EMGD 1.16 includes some userspace binaries that use non-free \ +licensing, which are now available via a non-click-through downloadable \ +tarball, and is what this recipe now uses. Since it is a non-free license, \ +this recipe is marked as 'License_emgd-driver-bin_1.16' and you need to add \ +to LICENSE_FLAGS_WHITELIST += \"license_emgd-driver-bin_1.16\" to your \ +local.conf in order to enable it in a build." +LICENSE = "Intel-software-license-emgd-1.16 & Intel-user-space-graphics-driver-binary-license-emgd-1.16 & MIT" +LICENSE_FLAGS = "license_${PN}_${PV}" +PR = "r0" + +COMPATIBLE_HOST = "(i.86).*-linux" + +EMGD_LIC_DIR = "IEMGD_HEAD_Linux/License" +EMGD_RPM_DIR = "IEMGD_HEAD_Linux/MeeGo1.2" +EMGD_VIDEO_PLUGIN_DIR = "../common/video_plugin" + +LIC_FILES_CHKSUM = "file://${WORKDIR}/${EMGD_LIC_DIR}/License.txt;md5=b54f01caaf8483b3cb60c0c40f2bf22d \ + file://${WORKDIR}/${EMGD_LIC_DIR}/readme.txt;md5=73cbec7a0d2bc22faf567238e055bfc8" + +DEPENDS = "rpm-native xz-native" +RDEPENDS_${PN} = "libxcb-dri2 cairo xserver-xorg" +RDEPENDS_emgd-gst-plugins-mixvideo = "libva-tpi" + +# These libraries shouldn't get installed in world builds unless something +# explicitly depends upon them. +EXCLUDE_FROM_WORLD = "1" +PROVIDES = "virtual/libgles1 virtual/libgles2 virtual/egl" + +# Add the ABI dependency at package generation time, as otherwise bitbake will +# attempt to find a provider for it (and fail) when it does the parse. +# +# This version *must* be kept correct. +python populate_packages_prepend() { + pn = d.getVar("PN", True) + d.appendVar("RDEPENDS_" + pn, " xorg-abi-video-8") +} + +inherit distro_features_check +REQUIRED_DISTRO_FEATURES = "opengl" + +SRC_URI = "https://edc.intel.com/App_Shared/Downloads/LIN_IEMGD_1_16_GOLD_3228.tgz \ + file://egl.pc \ + file://gles_cm.pc \ + file://glesv2.pc \ + " + +SRC_URI[md5sum] = "339c902baeac0a5816108bea827b3685" +SRC_URI[sha256sum] = "33ef38b83914ef7d1e12a430ec009352b415b9d5840c9d0db25744b7dc6a2473" + + +# make sure generated rpm packages get non conflicting names +PKG_${PN} = "emgd-driver" +PKG_${PN}-dev = "emgd-driver-dev" +PKG_${PN}-dbg = "emgd-driver-dbg" +PKG_${PN}-doc = "emgd-driver-doc" + +PACKAGES =+ "emgd-libmixcommon emgd-libmixvideo emgd-libmixvbp \ + emgd-gst-vabuffer emgd-gst-plugins-mixvideo \ + emgd-gst-plugins-va emgd-driver-video" + +# These are closed binaries generated elsewhere so don't check ldflags & text relocations +INSANE_SKIP_emgd-driver-video = "ldflags textrel" +# Inhibit warnings about files being stripped, we can't do anything about it. +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +# Avoid auto renaming of these packages +DEBIAN_NOAUTONAME_emgd-libmixcommon = "1" +DEBIAN_NOAUTONAME_emgd-libmixvideo = "1" +DEBIAN_NOAUTONAME_emgd-libmixvbp = "1" +DEBIAN_NOAUTONAME_emgd-gst-vabuffer = "1" + +FILES_emgd-libmixcommon = "${libdir}/libmixcommon.so.0.10.8 ${libdir}/libmixcommon.so.0" +FILES_emgd-libmixvideo = "${libdir}/libmixvideo.so.0.10.10 ${libdir}/libmixvideo.so.0" +FILES_emgd-libmixvbp = "${libdir}/libmixvbp.so.0.10.9 ${libdir}/libmixvbp.so.0 \ + ${libdir}/libmixvbp_h264.so.0.10.9 ${libdir}/libmixvbp_h264.so.0 \ + ${libdir}/libmixvbp_mpeg4.so.0.10.9 ${libdir}/libmixvbp_mpeg4.so.0 \ + ${libdir}/libmixvbp_vc1.so.0.10.9 ${libdir}/libmixvbp_vc1.so.0 " +FILES_emgd-gst-vabuffer = "${libdir}/libgstvabuffer.so.0.10.8 ${libdir}/libgstvabuffer.so.0" +FILES_emgd-gst-plugins-mixvideo = "${libdir}/gstreamer-0.10/libgstmixvideoplugin.so" +FILES_emgd-gst-plugins-va = "${libdir}/gstreamer-0.10/libgstvaplugin.so" +FILES_emgd-driver-video = "${libdir}/dri/emgd_drv_video.so" +FILES_${PN} += "${libdir}/dri ${libdir}/xorg/modules/drivers" +FILES_${PN}-dbg += "${libdir}/xorg/modules/drivers/.debug ${libdir}/dri/.debug ${libdir}/gstreamer-0.10/.debug" + +S = "${WORKDIR}/${EMGD_RPM_DIR}" + +RPM2CPIO = "${COREBASE}/scripts/rpm2cpio.sh" + +do_install () { + # cleanup previous files if any + rm -rf usr + + # A gstreamer VA buffer library + ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/gst-vabuffer*.rpm | cpio -id + + # MIX Common contains common classes, datatype, header files used by other MIX components + ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/mixcommon*.rpm | cpio -id + + # MIX Video Bitstream Parser is an user library interface for various video format bitstream parsing + ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/mixvbp*.rpm | cpio -id + + # MIX Video is an user library interface for various video codecs available on the platform. + ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/mixvideo*.rpm | cpio -id + + install -d -m 0755 ${D}${libdir}/gstreamer-0.10 + install -m 0755 ${S}/usr/lib/* ${D}${libdir}/ + + # A gstreamer plugin that uses MIX Video for hardware accelerated video decoding and rendering. + ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/gst-plugins-mixvideo*.rpm | cpio -id + + # A collection of gstreamer plugins that uses VA libraries for hardware accelerated video rendering and text overlay. + ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/gst-plugins-va*.rpm | cpio -id + + install -m 0755 ${S}/usr/lib/gstreamer-0.10/* ${D}${libdir}/gstreamer-0.10/ + + # EMGD runtime graphics libraries + ${RPM2CPIO} ${S}/emgd-bin*.rpm | cpio -id + + install -d -m 0755 ${D}${libdir}/dri + install -d -m 0755 ${D}${libdir}/xorg/modules/drivers + install -d -m 0755 ${D}${sysconfdir} + install -d -m 0755 ${D}${mandir}/man4 + install -m 0755 ${S}/usr/lib/*.so.* ${D}${libdir}/ + install -m 0755 ${S}/usr/lib/dri/* ${D}${libdir}/dri/ + install -m 0755 ${S}/usr/lib/xorg/modules/drivers/* ${D}${libdir}/xorg/modules/drivers/ + install -m 0755 ${S}/etc/* ${D}${sysconfdir}/ + install -m 0755 ${S}/usr/share/man/man4/* ${D}${mandir}/man4/ + + # Khronos development headers needed for EGL, OpenGL-ES, and OpenVG development + ${RPM2CPIO} ${S}/emgd-devel*.rpm | cpio -id + + install -d -m 0755 ${D}${includedir}/EGL + install -m 0755 ${S}/usr/include/EGL/*.h ${D}${includedir}/EGL/ + install -d -m 0755 ${D}${includedir}/GLES + install -m 0755 ${S}/usr/include/GLES/*.h ${D}${includedir}/GLES/ + install -d -m 0755 ${D}${includedir}/GLES2 + install -m 0755 ${S}/usr/include/GLES2/*.h ${D}${includedir}/GLES2/ + install -d -m 0755 ${D}${includedir}/KHR + install -m 0755 ${S}/usr/include/KHR/*.h ${D}${includedir}/KHR/ + install -d -m 0755 ${D}${includedir}/VG + install -m 0755 ${S}/usr/include/VG/*.h ${D}${includedir}/VG/ + + EMGD_SNAPSHOT="1.5.15.3226" + ln -sf libEGL.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEGL.so.1 + ln -sf libEGL.so.1 ${D}${libdir}/libEGL.so + ln -sf libGLES_CM.so.${EMGD_SNAPSHOT} ${D}${libdir}/libGLES_CM.so.1 + ln -sf libGLES_CM.so.1 ${D}${libdir}/libGLES_CM.so + ln -sf libGLESv2.so.${EMGD_SNAPSHOT} ${D}${libdir}/libGLESv2.so.2 + ln -sf libGLESv2.so.2 ${D}${libdir}/libGLESv2.so + ln -sf libOpenVG.so.${EMGD_SNAPSHOT} ${D}${libdir}/libOpenVG.so.1 + ln -sf libOpenVG.so.1 ${D}${libdir}/libOpenVG.so + ln -sf libOpenVGU.so.${EMGD_SNAPSHOT} ${D}${libdir}/libOpenVGU.so.1 + ln -sf libOpenVGU.so.1 ${D}${libdir}/libOpenVGU.so + ln -sf libEMGD2d.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEMGD2d.so + ln -sf libEMGDegl.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEMGDegl.so + ln -sf libemgdglslcompiler.so.${EMGD_SNAPSHOT} ${D}${libdir}/libemgdglslcompiler.so + ln -sf libEMGDOGL.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEMGDOGL.so + ln -sf libemgdPVR2D_DRIWSEGL.so.${EMGD_SNAPSHOT} ${D}${libdir}/libemgdPVR2D_DRIWSEGL.so + ln -sf libEMGDScopeServices.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEMGDScopeServices.so + ln -sf libemgdsrv_init.so.${EMGD_SNAPSHOT} ${D}${libdir}/libemgdsrv_init.so + ln -sf libemgdsrv_um.so.${EMGD_SNAPSHOT} ${D}${libdir}/libemgdsrv_um.so + + #Replace duplicate files with symlinks + rm -f ${D}${libdir}/libmixvideo.so.0 + ln -sf libmixvideo.so.0.10.10 ${D}${libdir}/libmixvideo.so.0 + rm -f ${D}${libdir}/libmixvbp_h264.so.0 + ln -sf libmixvbp_h264.so.0.10.9 ${D}${libdir}/libmixvbp_h264.so.0 + rm -f ${D}${libdir}/libmixvbp.so.0 + ln -sf libmixvbp.so.0.10.9 ${D}${libdir}/libmixvbp.so.0 + rm -f ${D}${libdir}/libmixvbp_vc1.so.0 + ln -sf libmixvbp_vc1.so.0.10.9 ${D}${libdir}/libmixvbp_vc1.so.0 + rm -f ${D}${libdir}/libmixvbp_mpeg4.so.0 + ln -sf libmixvbp_mpeg4.so.0.10.9 ${D}${libdir}/libmixvbp_mpeg4.so.0 + rm -f ${D}${libdir}/libmixcommon.so.0 + ln -sf libmixcommon.so.0.10.8 ${D}${libdir}/libmixcommon.so.0 + rm -f ${D}${libdir}/libgstvabuffer.so.0 + ln -sf libgstvabuffer.so.0.10.8 ${D}${libdir}/libgstvabuffer.so.0 + + # Copy the .pc files + install -d -m 0755 ${D}${libdir}/pkgconfig + install -m 0644 ${WORKDIR}/*.pc ${D}${libdir}/pkgconfig/ +} + +LEAD_SONAME = "libEGL.so" diff --git a/recipes-graphics/xorg-driver/emgd-driver-bin_1.18.bb b/recipes-graphics/xorg-driver/emgd-driver-bin_1.18.bb new file mode 100644 index 0000000..150663e --- /dev/null +++ b/recipes-graphics/xorg-driver/emgd-driver-bin_1.18.bb @@ -0,0 +1,188 @@ +SUMMARY = "EMGD 1.18 xserver binaries" +DESCRIPTION = "EMGD 1.18 includes some userspace binaries that use non-free \ +licensing, which are now available via a non-click-through downloadable \ +tarball, and is what this recipe now uses. Since it is a non-free license, \ +this recipe is marked as 'License_emgd-driver-bin_1.18' and you need to add \ +to LICENSE_FLAGS_WHITELIST += \"license_emgd-driver-bin_1.18\" to your \ +local.conf in order to enable it in a build." +LICENSE = "Intel-software-license-emgd-1.18 & Intel-user-space-graphics-driver-binary-license-emgd-1.18 & MIT" +LICENSE_FLAGS = "license_${PN}_${PV}" +PR = "r1" + +COMPATIBLE_HOST = "(i.86).*-linux" + +EMGD_LIC_DIR = "IEMGD_HEAD_Linux/License" +EMGD_RPM_DIR = "IEMGD_HEAD_Linux/MeeGo1.2" +EMGD_VIDEO_PLUGIN_DIR = "../common/video_plugin" + +LIC_FILES_CHKSUM = "file://${WORKDIR}/${EMGD_LIC_DIR}/License.txt;md5=7ce256e6a32a208bb3e509ef8febc6e4 \ + file://${WORKDIR}/${EMGD_LIC_DIR}/readme.txt;md5=73cbec7a0d2bc22faf567238e055bfc8" + +DEPENDS = "rpm-native xz-native" +RDEPENDS_${PN} = "libxcb-dri2 cairo xserver-xorg" +RDEPENDS_emgd-gst-plugins-mixvideo = "libva-tpi" + +# These libraries shouldn't get installed in world builds unless something +# explicitly depends upon them. +EXCLUDE_FROM_WORLD = "1" +PROVIDES = "virtual/libgles1 virtual/libgles2 virtual/egl" + +# Add the ABI dependency at package generation time, as otherwise bitbake will +# attempt to find a provider for it (and fail) when it does the parse. +# +# This version *must* be kept correct. +python populate_packages_prepend() { + pn = d.getVar("PN", True) + d.appendVar("RDEPENDS_" + pn, " xorg-abi-video-8") +} + +inherit distro_features_check +REQUIRED_DISTRO_FEATURES = "opengl" + +SRC_URI = "http://downloadmirror.intel.com/22865/eng/LIN_IEMGD_1_18_GOLD_3398.tgz \ + file://egl.pc \ + file://gles_cm.pc \ + file://glesv2.pc \ + file://glchar.patch;apply=0 \ + " + +SRC_URI[md5sum] = "a165c397866d3fb70ddab318c834e49a" +SRC_URI[sha256sum] = "2d709deecda595983b0d8f1d3c7bd0b4d5c79ae665c621b3b9b11c366b34873f" + +# make sure generated rpm packages get non conflicting names +PKG_${PN} = "emgd-driver" +PKG_${PN}-dev = "emgd-driver-dev" +PKG_${PN}-dbg = "emgd-driver-dbg" +PKG_${PN}-doc = "emgd-driver-doc" + +PACKAGES =+ "emgd-libmixcommon emgd-libmixvideo emgd-libmixvbp \ + emgd-gst-vabuffer emgd-gst-plugins-mixvideo \ + emgd-gst-plugins-va emgd-driver-video" + +# These are closed binaries generated elsewhere so don't check ldflags & text relocations +INSANE_SKIP_emgd-driver-video = "ldflags textrel" +# Inhibit warnings about files being stripped, we can't do anything about it. +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +# Avoid auto renaming of these packages +DEBIAN_NOAUTONAME_emgd-libmixcommon = "1" +DEBIAN_NOAUTONAME_emgd-libmixvideo = "1" +DEBIAN_NOAUTONAME_emgd-libmixvbp = "1" +DEBIAN_NOAUTONAME_emgd-gst-vabuffer = "1" + +FILES_emgd-libmixcommon = "${libdir}/libmixcommon.so.0.10.8 ${libdir}/libmixcommon.so.0" +FILES_emgd-libmixvideo = "${libdir}/libmixvideo.so.0.10.10 ${libdir}/libmixvideo.so.0" +FILES_emgd-libmixvbp = "${libdir}/libmixvbp.so.0.10.9 ${libdir}/libmixvbp.so.0 \ + ${libdir}/libmixvbp_h264.so.0.10.9 ${libdir}/libmixvbp_h264.so.0 \ + ${libdir}/libmixvbp_mpeg4.so.0.10.9 ${libdir}/libmixvbp_mpeg4.so.0 \ + ${libdir}/libmixvbp_vc1.so.0.10.9 ${libdir}/libmixvbp_vc1.so.0 " +FILES_emgd-gst-vabuffer = "${libdir}/libgstvabuffer.so.0.10.8 ${libdir}/libgstvabuffer.so.0" +FILES_emgd-gst-plugins-mixvideo = "${libdir}/gstreamer-0.10/libgstmixvideoplugin.so" +FILES_emgd-gst-plugins-va = "${libdir}/gstreamer-0.10/libgstvaplugin.so" +FILES_emgd-driver-video = "${libdir}/dri/emgd_drv_video.so" +FILES_${PN} += "${libdir}/dri ${libdir}/xorg/modules/drivers" +FILES_${PN}-dbg += "${libdir}/xorg/modules/drivers/.debug ${libdir}/dri/.debug ${libdir}/gstreamer-0.10/.debug" + +S = "${WORKDIR}/${EMGD_RPM_DIR}" + +RPM2CPIO = "${COREBASE}/scripts/rpm2cpio.sh" + +do_install () { + # cleanup previous files if any + rm -rf usr + + # A gstreamer VA buffer library + ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/gst-vabuffer*.rpm | cpio -id + + # MIX Common contains common classes, datatype, header files used by other MIX components + ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/mixcommon*.rpm | cpio -id + + # MIX Video Bitstream Parser is an user library interface for various video format bitstream parsing + ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/mixvbp*.rpm | cpio -id + + # MIX Video is an user library interface for various video codecs available on the platform. + ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/mixvideo*.rpm | cpio -id + + install -d -m 0755 ${D}${libdir}/gstreamer-0.10 + install -m 0755 ${S}/usr/lib/* ${D}${libdir}/ + + # A gstreamer plugin that uses MIX Video for hardware accelerated video decoding and rendering. + ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/gst-plugins-mixvideo*.rpm | cpio -id + + # A collection of gstreamer plugins that uses VA libraries for hardware accelerated video rendering and text overlay. + ${RPM2CPIO} ${S}/${EMGD_VIDEO_PLUGIN_DIR}/gst-plugins-va*.rpm | cpio -id + + install -m 0755 ${S}/usr/lib/gstreamer-0.10/* ${D}${libdir}/gstreamer-0.10/ + + # EMGD runtime graphics libraries + ${RPM2CPIO} ${S}/emgd-bin*.rpm | cpio -id + + install -d -m 0755 ${D}${libdir}/dri + install -d -m 0755 ${D}${libdir}/xorg/modules/drivers + install -d -m 0755 ${D}${sysconfdir} + install -d -m 0755 ${D}${mandir}/man4 + install -m 0755 ${S}/usr/lib/*.so.* ${D}${libdir}/ + install -m 0755 ${S}/usr/lib/dri/* ${D}${libdir}/dri/ + install -m 0755 ${S}/usr/lib/xorg/modules/drivers/* ${D}${libdir}/xorg/modules/drivers/ + install -m 0755 ${S}/etc/* ${D}${sysconfdir}/ + install -m 0755 ${S}/usr/share/man/man4/* ${D}${mandir}/man4/ + + # Khronos development headers needed for EGL, OpenGL-ES, and OpenVG development + ${RPM2CPIO} ${S}/emgd-devel*.rpm | cpio -id + + patch -d ${S} -p1 < ${WORKDIR}/glchar.patch + + install -d -m 0755 ${D}${includedir}/EGL + install -m 0755 ${S}/usr/include/EGL/*.h ${D}${includedir}/EGL/ + install -d -m 0755 ${D}${includedir}/GLES + install -m 0755 ${S}/usr/include/GLES/*.h ${D}${includedir}/GLES/ + install -d -m 0755 ${D}${includedir}/GLES2 + install -m 0755 ${S}/usr/include/GLES2/*.h ${D}${includedir}/GLES2/ + install -d -m 0755 ${D}${includedir}/KHR + install -m 0755 ${S}/usr/include/KHR/*.h ${D}${includedir}/KHR/ + install -d -m 0755 ${D}${includedir}/VG + install -m 0755 ${S}/usr/include/VG/*.h ${D}${includedir}/VG/ + + EMGD_SNAPSHOT="1.5.15.3226" + ln -sf libEGL.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEGL.so.1 + ln -sf libEGL.so.1 ${D}${libdir}/libEGL.so + ln -sf libGLES_CM.so.${EMGD_SNAPSHOT} ${D}${libdir}/libGLES_CM.so.1 + ln -sf libGLES_CM.so.1 ${D}${libdir}/libGLES_CM.so + ln -sf libGLESv2.so.${EMGD_SNAPSHOT} ${D}${libdir}/libGLESv2.so.2 + ln -sf libGLESv2.so.2 ${D}${libdir}/libGLESv2.so + ln -sf libOpenVG.so.${EMGD_SNAPSHOT} ${D}${libdir}/libOpenVG.so.1 + ln -sf libOpenVG.so.1 ${D}${libdir}/libOpenVG.so + ln -sf libOpenVGU.so.${EMGD_SNAPSHOT} ${D}${libdir}/libOpenVGU.so.1 + ln -sf libOpenVGU.so.1 ${D}${libdir}/libOpenVGU.so + ln -sf libEMGD2d.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEMGD2d.so + ln -sf libEMGDegl.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEMGDegl.so + ln -sf libemgdglslcompiler.so.${EMGD_SNAPSHOT} ${D}${libdir}/libemgdglslcompiler.so + ln -sf libEMGDOGL.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEMGDOGL.so + ln -sf libemgdPVR2D_DRIWSEGL.so.${EMGD_SNAPSHOT} ${D}${libdir}/libemgdPVR2D_DRIWSEGL.so + ln -sf libEMGDScopeServices.so.${EMGD_SNAPSHOT} ${D}${libdir}/libEMGDScopeServices.so + ln -sf libemgdsrv_init.so.${EMGD_SNAPSHOT} ${D}${libdir}/libemgdsrv_init.so + ln -sf libemgdsrv_um.so.${EMGD_SNAPSHOT} ${D}${libdir}/libemgdsrv_um.so + + #Replace duplicate files with symlinks + rm -f ${D}${libdir}/libmixvideo.so.0 + ln -sf libmixvideo.so.0.10.10 ${D}${libdir}/libmixvideo.so.0 + rm -f ${D}${libdir}/libmixvbp_h264.so.0 + ln -sf libmixvbp_h264.so.0.10.9 ${D}${libdir}/libmixvbp_h264.so.0 + rm -f ${D}${libdir}/libmixvbp.so.0 + ln -sf libmixvbp.so.0.10.9 ${D}${libdir}/libmixvbp.so.0 + rm -f ${D}${libdir}/libmixvbp_vc1.so.0 + ln -sf libmixvbp_vc1.so.0.10.9 ${D}${libdir}/libmixvbp_vc1.so.0 + rm -f ${D}${libdir}/libmixvbp_mpeg4.so.0 + ln -sf libmixvbp_mpeg4.so.0.10.9 ${D}${libdir}/libmixvbp_mpeg4.so.0 + rm -f ${D}${libdir}/libmixcommon.so.0 + ln -sf libmixcommon.so.0.10.8 ${D}${libdir}/libmixcommon.so.0 + rm -f ${D}${libdir}/libgstvabuffer.so.0 + ln -sf libgstvabuffer.so.0.10.8 ${D}${libdir}/libgstvabuffer.so.0 + + # Copy the .pc files + install -d -m 0755 ${D}${libdir}/pkgconfig + install -m 0644 ${WORKDIR}/*.pc ${D}${libdir}/pkgconfig/ +} + +LEAD_SONAME = "libEGL.so" diff --git a/recipes-graphics/xorg-driver/xf86-input-evdev_2.6.0.bb b/recipes-graphics/xorg-driver/xf86-input-evdev_2.6.0.bb new file mode 100644 index 0000000..ab43ef5 --- /dev/null +++ b/recipes-graphics/xorg-driver/xf86-input-evdev_2.6.0.bb @@ -0,0 +1,20 @@ +require recipes-graphics/xorg-driver/xorg-driver-input.inc + +SUMMARY = "X.Org X server -- event devices (evdev) input driver" + +DESCRIPTION = "evdev is an Xorg input driver for Linux's generic event \ +devices. It therefore supports all input devices that the kernel knows \ +about, including most mice and keyboards. \ +\ +The evdev driver can serve as both a pointer and a keyboard input \ +device, and may be used as both the core keyboard and the core pointer. \ +Multiple input devices are supported by multiple instances of this \ +driver, with one Load directive for evdev in the Module section of your \ +xorg.conf for each input device that will use this driver. " + +LIC_FILES_CHKSUM = "file://COPYING;md5=fefe33b1cf0cacba0e72e3b0fa0f0e16" + +PR = "${INC_PR}.0" + +SRC_URI[md5sum] = "f33fe9413bde68936d8909206a13e8a1" +SRC_URI[sha256sum] = "b0e7f3991a8183a4743196c3e16d7184d439b80bf43653aa2f45b0756a6753ac" diff --git a/recipes-graphics/xorg-driver/xf86-input-synaptics_1.6.3.bb b/recipes-graphics/xorg-driver/xf86-input-synaptics_1.6.3.bb new file mode 100644 index 0000000..cc582a1 --- /dev/null +++ b/recipes-graphics/xorg-driver/xf86-input-synaptics_1.6.3.bb @@ -0,0 +1,23 @@ +require recipes-graphics/xorg-driver/xorg-driver-input.inc + +#SRC_URI += "file://configurefix.patch" + +SUMMARY = "X.Org X server -- synaptics touchpad input driver" + +DESCRIPTION = "synaptics is an Xorg input driver for the touchpads from \ +Synaptics Incorporated. Even though these touchpads (by default, \ +operating in a compatibility mode emulating a standard mouse) can be \ +handled by the normal evdev or mouse drivers, this driver allows more \ +advanced features of the touchpad to become available." + +LIC_FILES_CHKSUM = "file://COPYING;md5=e395e21f3c21d4fc3a243783e85e9ab5" + +PR = "${INC_PR}.0" + +SRC_URI[md5sum] = "3568930b0bda522e00272b64c0ca2ca2" +SRC_URI[sha256sum] = "b40c9dbd5f743ff1eb2ac81a23b9676df72e76ed3fa6408de3f8a3a260248604" + +DEPENDS += "libxi mtdev" + +FILES_${PN} += "${datadir}/X11/xorg.conf.d" + diff --git a/recipes-graphics/xorg-driver/xorg-driver-common.inc b/recipes-graphics/xorg-driver/xorg-driver-common.inc new file mode 100644 index 0000000..1ed2742 --- /dev/null +++ b/recipes-graphics/xorg-driver/xorg-driver-common.inc @@ -0,0 +1,33 @@ +DESCRIPTION = "X driver" +HOMEPAGE = "http://www.x.org" +BUGTRACKER = "https://bugs.freedesktop.org" +SECTION = "x11/drivers" +LICENSE = "MIT-X" + +PE = "2" +INC_PR = "r0" + +DEPENDS = "virtual/xserver xproto randrproto util-macros" + +SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2" + +S = "${WORKDIR}/${BPN}-${PV}" + +FILES_${PN} += " ${libdir}/xorg/modules/drivers/*.so" +FILES_${PN}-dbg += " ${libdir}/xorg/modules/drivers/.debug" + +inherit autotools pkgconfig + +# AC_CHECK_FILE doesn't work when cross compiling, so we create a replacement +# macro that simply assumes the test succeeds. +do_configure_prepend () { + echo 'AC_DEFUN(CC_AC_CHECK_FILE, $2)' > configure.ac.new + sed 's/AC_CHECK_FILE/CC_AC_CHECK_FILE/g' configure.ac >> configure.ac.new + mv configure.ac.new configure.ac +} + +# FIXME: We don't want to include the libtool archives (*.la) from modules +# directory, as they serve no useful purpose. Upstream should fix Makefile.am +do_install_append() { + find ${D}${libdir}/xorg/modules -regex ".*\.la$" | xargs rm -f -- +} diff --git a/recipes-graphics/xorg-driver/xorg-driver-video.inc b/recipes-graphics/xorg-driver/xorg-driver-video.inc new file mode 100644 index 0000000..57c80d1 --- /dev/null +++ b/recipes-graphics/xorg-driver/xorg-driver-video.inc @@ -0,0 +1,4 @@ +include xorg-driver-common.inc + +DEPENDS =+ "renderproto videoproto xextproto fontsproto" + diff --git a/recipes-graphics/xorg-xserver/xserver-xf86-config/minnow/xorg.conf b/recipes-graphics/xorg-xserver/xserver-xf86-config/minnow-emgd/xorg.conf index c8befc3..d371227 100644 --- a/recipes-graphics/xorg-xserver/xserver-xf86-config/minnow/xorg.conf +++ b/recipes-graphics/xorg-xserver/xserver-xf86-config/minnow-emgd/xorg.conf @@ -9,6 +9,8 @@ Section "Screen" Device "IntelEMGD-0" Monitor "Monitor0" SubSection "Display" + Depth "24" + Modes "1366x768" EndSubSection EndSection diff --git a/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3.inc b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3.inc new file mode 100644 index 0000000..1c71d7b --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3.inc @@ -0,0 +1,20 @@ +SRC_URI += "file://nodolt.patch \ + file://crosscompile.patch" + +# Misc build failure for master HEAD +SRC_URI += "file://fix_open_max_preprocessor_error.patch" + +# What once were warnings now are errors, fix those up +SRC_URI += "file://werror-address-fix.patch \ + file://ptr-to-int-cast-fix.patch" + +PROTO_DEPS += "xf86driproto dri2proto" +DEPENDS += "font-util" +EXTRA_OECONF += "--enable-dri --enable-dri2 --enable-dga" + +LIC_FILES_CHKSUM = "file://COPYING;md5=3dd2bbe3563837f80ed8926b06c1c353" + +SRC_URI[md5sum] = "5bef6839a76d029204ab31aa2fcb5201" +SRC_URI[sha256sum] = "864831f51e841ff37f2445d1c85b86b559c8860a435fb496aead4f256a2b141d" + +PR = "r2" diff --git a/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/crosscompile.patch b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/crosscompile.patch new file mode 100644 index 0000000..2f98bb8 --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/crosscompile.patch @@ -0,0 +1,22 @@ +Upstream-Status: Inappropriate [configuration] + +diff --git a/configure.ac b/configure.ac +index b3b752c..600500b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -523,13 +523,9 @@ dnl Uses --default-font-path if set, otherwise checks for /etc/X11/fontpath.d, + dnl otherwise uses standard subdirectories of FONTROOTDIR. When cross + dnl compiling, assume default font path uses standard FONTROOTDIR directories. + DEFAULT_FONT_PATH="${FONTMISCDIR}/,${FONTTTFDIR}/,${FONTOTFDIR}/,${FONTTYPE1DIR}/,${FONT100DPIDIR}/,${FONT75DPIDIR}/" +-if test "$cross_compiling" != yes; then +- AC_CHECK_FILE([${sysconfdir}/X11/fontpath.d], +- [DEFAULT_FONT_PATH='catalogue:${sysconfdir}/X11/fontpath.d'], +- [case $host_os in ++ case $host_os in + darwin*) DEFAULT_FONT_PATH="${DEFAULT_FONT_PATH},/Library/Fonts,/System/Library/Fonts" ;; +- esac]) +-fi ++ esac + AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]), + [ FONTPATH="$withval" ], + [ FONTPATH="${DEFAULT_FONT_PATH}" ]) diff --git a/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/fix_open_max_preprocessor_error.patch b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/fix_open_max_preprocessor_error.patch new file mode 100644 index 0000000..9c33072 --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/fix_open_max_preprocessor_error.patch @@ -0,0 +1,15 @@ +Upstream-Status: Inappropriate [embedded specific] + +Index: git/os/osdep.h +=================================================================== +--- git.orig/os/osdep.h 2008-10-07 18:38:21.000000000 +0100 ++++ git/os/osdep.h 2008-10-07 18:39:36.000000000 +0100 +@@ -92,7 +92,7 @@ + * like sysconf(_SC_OPEN_MAX) is not supported. + */ + +-#if OPEN_MAX <= 256 ++#if 0 + #define MAXSOCKS (OPEN_MAX - 1) + #else + #define MAXSOCKS 256 diff --git a/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/macro_tweak.patch b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/macro_tweak.patch new file mode 100644 index 0000000..2b75427 --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/macro_tweak.patch @@ -0,0 +1,30 @@ +This is the revised version of files/macro_tweak.patch for +xorg-server 1.8.99.904. + +the files/macro_tweak.patch can not removed now since it is used by +xserver-kdrive-1.7.99.2 and xserver-xf86-lite_1.7.99.2. Once they +are all upgraded to 1.8.99.904, the the files/macro_tweak.patch +can be safely replace by this patch. + +Upstream-Status: Pending + +Signed-off-by: Yu Ke <ke.yu@intel.com> + +diff --git a/xorg-server.m4 b/xorg-server.m4 +index bdecf62..040fdb8 100644 +--- a/xorg-server.m4 ++++ b/xorg-server.m4 +@@ -28,10 +28,12 @@ dnl + # Checks for the $1 define in xorg-server.h (from the sdk). If it + # is defined, then add $1 to $REQUIRED_MODULES. + ++m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR) ++ + AC_DEFUN([XORG_DRIVER_CHECK_EXT],[ + AC_REQUIRE([PKG_PROG_PKG_CONFIG]) + SAVE_CFLAGS="$CFLAGS" +- CFLAGS="$CFLAGS -I`$PKG_CONFIG --variable=sdkdir xorg-server`" ++ CFLAGS="$CFLAGS -I$PKG_CONFIG_SYSROOT_DIR`$PKG_CONFIG --variable=sdkdir xorg-server`" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include "xorg-server.h" + #if !defined $1 diff --git a/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/nodolt.patch b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/nodolt.patch new file mode 100644 index 0000000..9cd7f93 --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/nodolt.patch @@ -0,0 +1,14 @@ +Upstream-Status: Inappropriate [configuration] + +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac 2009-01-15 20:35:31.000000000 +0000 ++++ git/configure.ac 2009-01-15 20:35:38.000000000 +0000 +@@ -62,7 +62,6 @@ + AC_LIBTOOL_WIN32_DLL + AC_DISABLE_STATIC + AC_PROG_LIBTOOL +-DOLT + AC_PROG_MAKE_SET + PKG_PROG_PKG_CONFIG + AC_PROG_LEX diff --git a/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/ptr-to-int-cast-fix.patch b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/ptr-to-int-cast-fix.patch new file mode 100644 index 0000000..705cffc --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/ptr-to-int-cast-fix.patch @@ -0,0 +1,92 @@ +Upstream-Status: Inappropriate [already upstream] + +It's broken for devices with BARs above 4G, and the sysfs method should +work everywhere anyway. As a pleasant side effect, this fixes some +warnings: + +fbdevhw.c: In function 'fbdev_open_pci': +fbdevhw.c:333:4: warning: cast from pointer to integer of different size +fbdevhw.c:334:4: warning: cast from pointer to integer of different size +fbdevhw.c:336:4: warning: cast from pointer to integer of different size +fbdevhw.c:337:4: warning: cast from pointer to integer of different size + +Signed-off-by: Adam Jackson <ajax (a] redhat.com> +Integrated-by: Tom Zanussi <tom.zanussi (a] intel.com> + +Index: xorg-server-1.9.3/hw/xfree86/fbdevhw/fbdevhw.c +=================================================================== +--- xorg-server-1.9.3.orig/hw/xfree86/fbdevhw/fbdevhw.c 2012-01-12 10:32:07.097729262 -0600 ++++ xorg-server-1.9.3/hw/xfree86/fbdevhw/fbdevhw.c 2012-01-12 10:32:55.076732780 -0600 +@@ -291,14 +291,7 @@ + { + struct fb_fix_screeninfo fix; + char filename[256]; +- int fd,i,j; +- +- +- /* There are two ways to that we can determine which fb device is +- * associated with this PCI device. The more modern way is to look in +- * the sysfs directory for the PCI device for a file named +- * "graphics/fb*" +- */ ++ int fd, i; + + for (i = 0; i < 8; i++) { + sprintf(filename, +@@ -331,55 +324,10 @@ + } + } + +- +- /* The other way is to examine the resources associated with each fb +- * device and see if there is a match with the PCI device. This technique +- * has some problems on certain mixed 64-bit / 32-bit architectures. +- * There is a flaw in the fb_fix_screeninfo structure in that it only +- * returns the low 32-bits of the address of the resources associated with +- * a device. However, on a mixed architecture the base addresses of PCI +- * devices, even for 32-bit applications, may be higher than 0x0f0000000. +- */ +- +- for (i = 0; i < 8; i++) { +- sprintf(filename,"/dev/fb%d",i); +- if (-1 == (fd = open(filename,O_RDWR,0))) { +- xf86DrvMsg(-1, X_WARNING, +- "open %s: %s\n", filename, strerror(errno)); +- continue; +- } +- if (-1 == ioctl(fd,FBIOGET_FSCREENINFO,(void*)&fix)) { +- close(fd); +- continue; +- } +- for (j = 0; j < 6; j++) { +- const pciaddr_t res_start = pPci->regions[j].base_addr; +- const pciaddr_t res_end = res_start + pPci->regions[j].size; +- +- if ((0 != fix.smem_len && +- (pciaddr_t) fix.smem_start >= res_start && +- (pciaddr_t) fix.smem_start < res_end) || +- (0 != fix.mmio_len && +- (pciaddr_t) fix.mmio_start >= res_start && +- (pciaddr_t) fix.mmio_start < res_end)) +- break; +- } +- if (j == 6) { +- close(fd); +- continue; +- } +- if (namep) { +- *namep = xnfalloc(16); +- strncpy(*namep,fix.id,16); +- } +- return fd; +- } +- + if (namep) + *namep = NULL; + +- xf86DrvMsg(-1, X_ERROR, +- "Unable to find a valid framebuffer device\n"); ++ xf86DrvMsg(-1, X_ERROR, "Unable to find a valid framebuffer device\n"); + return -1; + } + diff --git a/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/werror-address-fix.patch b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/werror-address-fix.patch new file mode 100644 index 0000000..49d3f94 --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/werror-address-fix.patch @@ -0,0 +1,49 @@ +Upstream-Status: Inappropriate [yocto-specific] + +This is fixed upstream by actually making these tests meaningful. +As they stand, the warning is correct and they're no-ops, so remove +them. + +Signed-off-by: Tom Zanussi <tom.zanussi (a] intel.com> + +Index: xorg-server-1.9.3/Xext/xvmc.c +=================================================================== +--- xorg-server-1.9.3.orig/Xext/xvmc.c 2012-01-12 09:57:36.306947860 -0600 ++++ xorg-server-1.9.3/Xext/xvmc.c 2012-01-12 10:24:59.286729946 -0600 +@@ -467,7 +467,6 @@ + return Success; + } + +- + static int + ProcXvMCListSubpictureTypes(ClientPtr client) + { +@@ -487,9 +486,6 @@ + + pScreen = pPort->pAdaptor->pScreen; + +- if(XvMCScreenKey == NULL) /* No XvMC adaptors */ +- return BadMatch; +- + if(!(pScreenPriv = XVMC_GET_PRIVATE(pScreen))) + return BadMatch; /* None this screen */ + +@@ -668,9 +664,6 @@ + { + ExtensionEntry *extEntry; + +- if(XvMCScreenKey == NULL) /* nobody supports it */ +- return; +- + if(!(XvMCRTContext = CreateNewResourceType(XvMCDestroyContextRes, + "XvMCRTContext"))) + return; +@@ -746,8 +739,6 @@ + XvMCAdaptorPtr adaptor = NULL; + int i; + +- if(XvMCScreenKey == NULL) return NULL; +- + if(!(pScreenPriv = XVMC_GET_PRIVATE(pScreen))) + return NULL; + diff --git a/recipes-graphics/xorg-xserver/xserver-xorg_1.9.3.bb b/recipes-graphics/xorg-xserver/xserver-xorg_1.9.3.bb new file mode 100644 index 0000000..f62cad2 --- /dev/null +++ b/recipes-graphics/xorg-xserver/xserver-xorg_1.9.3.bb @@ -0,0 +1,4 @@ +require recipes-graphics/xorg-xserver/xserver-xorg.inc +require xserver-xorg-${PV}.inc + +PE = "1" |