meta-intel: BSP updates for gst-ffmpeg LICENSE_FLAGS change, v2
cover meta-intel: BSP updates for gst-ffmpeg LICENSE_FLAGS change, v2
From: Tom Zanussi <[email protected]>
This patchset updates the BSPs that enable video acceleration to make them able to handle the new LICENSE_FLAGS change to gst-ffmpeg.
There's no change to functionality if you add "commercial" to LICENSE_FLAGS_WHITELIST when building; if that's not done you'll simply get an image without video acceleration.
v2: while testing this change, I noticed that emgd-1.10 was missing and that some BSPs still use it, and also took the opportunity to fix a longstanding mistake in where the emgd recipes were located. Finally, my attempts to make things build with the LICENSE_FLAGS change by using RRECOMMENDS as suggested all met with failure, so am keeping the method that works for now.
The following changes since commit 164e0c7418229a38d7c97cd6bb3117a89869f6a4:
meta-cedartrail: Update PVR graphics driver to version 1.0.3 (2012-09-15 14:56:30 -0500)
are available in the git repository at:
git://git.yoctoproject.org/meta-intel-contrib.git tzanussi/va-license-flags-commercial
http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-contrib/log/?h=tzanussi/va-license-flags-commercial
Tom Zanussi (4):
meta-intel: make video acceleration choice dependent on LICENSE_FLAGS
meta-intel: restore emgd 1.10
meta-intel: have fri2 and sys940x prefer emgd-1.10
meta-intel: move emgd-driver-bin_1.14 to xorg-driver/
.../xorg-driver/emgd-driver-bin_1.10.bb | 91 ++++++++++++++++++++++
.../emgd-driver-bin_1.14.bb | 0
meta-cedartrail/README | 15 ++++
meta-cedartrail/conf/machine/cedartrail.conf | 3 +-
meta-chiefriver/README | 15 ++++
meta-chiefriver/conf/machine/chiefriver.conf | 3 +-
meta-crownbay/README | 15 ++++
meta-crownbay/conf/machine/crownbay.conf | 3 +-
meta-fri2/README | 15 ++++
meta-fri2/conf/machine/fri2.conf | 4 +-
meta-sugarbay/README | 15 ++++
meta-sugarbay/conf/machine/sugarbay.conf | 3 +-
meta-sys940x/README | 15 ++++
meta-sys940x/conf/machine/sys940x.conf | 4 +-
14 files changed, 195 insertions(+), 6 deletions(-)
create mode 100644 common/recipes-graphics/xorg-driver/emgd-driver-bin_1.10.bb
rename common/recipes-graphics/{xorg-xserver => xorg-driver}/emgd-driver-bin_1.14.bb (100%)Signature · 1 line
1.7.11.4
PATCH 1/4 meta-intel: make video acceleration choice dependent on LICENSE_FLAGS
From: Tom Zanussi <[email protected]>
The gst-ffmpeg recipe in oe-core had LICENSE_FLAGS added to make it "commercial", so to avoid build errors the BSPs that use it (via the gst-va-intel VA_FEATURE) should only include it if the user has added "commercial" to LICENSE_FLAGS_WHITELIST when building.
This adds a conditional to detect that, along with a NOTE in the README to explain the need for the flag.
--- meta-cedartrail/README | 15 +++++++++++++++ meta-cedartrail/conf/machine/cedartrail.conf | 3 ++- meta-chiefriver/README | 15 +++++++++++++++ meta-chiefriver/conf/machine/chiefriver.conf | 3 ++- meta-crownbay/README | 15 +++++++++++++++ meta-crownbay/conf/machine/crownbay.conf | 3 ++- meta-fri2/README | 15 +++++++++++++++ meta-fri2/conf/machine/fri2.conf | 3 ++- meta-sugarbay/README | 15 +++++++++++++++ meta-sugarbay/conf/machine/sugarbay.conf | 3 ++- meta-sys940x/README | 15 +++++++++++++++ meta-sys940x/conf/machine/sys940x.conf | 3 ++- 12 files changed, 102 insertions(+), 6 deletions(-)
meta-cedartrail/README +15 -0
@@ -88,6 +88,21 @@ At the end of a successful build, you should have a live image that you can boot from a USB flash drive (see instructions on how to do that below, in the section 'Booting the images from /binary'). +NOTE: The 'cedartrail' machine will include support for hardware video +acceleration via gstreamer if and only if the "commercial" string is +added to the the LICENSE_FLAGS_WHITELIST variable in your local.conf. + +For example: + + LICENSE_FLAGS_WHITELIST = "license_cdv-pvr-driver_1.0.3 commercial" + +The reason this is needed is to prevent the image from including +anything that might violate the license terms of the packages used to +implement the the video acceleration feature, such as gst-ffmpeg and +ffmpeg. As always, please consult the licenses included in the +specific packages for details if you use packages that require +particular LICENSE_FLAGS. + As an alternative to downloading the BSP tarball, you can also work directly from the meta-intel git repository. For each BSP in the 'meta-intel' repository, there are multiple branches, one
meta-cedartrail/conf/machine/cedartrail.conf +2 -1
@@ -22,6 +22,7 @@ SYSLINUX_OPTS = "serial 0 115200" SERIAL_CONSOLE = "115200 ttyS0" APPEND += "console=ttyS0,115200 console=tty0" -VA_FEATURES ?= "gst-va-intel va-intel" +VA_FEATURES = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", \ + "commercial", "gst-va-intel va-intel", "", d)}" MACHINE_EXTRA_RRECOMMENDS += "${VA_FEATURES}"
meta-chiefriver/README +15 -0
@@ -60,6 +60,21 @@ At the end of a successful build, you should have a live image that you can boot from a USB flash drive (see instructions on how to do that below, in the section 'Booting the images from /binary'). +NOTE: The 'chiefriver' machine will include support for hardware video +acceleration via gstreamer if and only if the "commercial" string is +added to the the LICENSE_FLAGS_WHITELIST variable in your local.conf. + +For example: + + LICENSE_FLAGS_WHITELIST = "commercial" + +The reason this is needed is to prevent the image from including +anything that might violate the license terms of the packages used to +implement the the video acceleration feature, such as gst-ffmpeg and +ffmpeg. As always, please consult the licenses included in the +specific packages for details if you use packages that require +particular LICENSE_FLAGS. + As an alternative to downloading the BSP tarball, you can also work directly from the meta-intel git repository. For each BSP in the 'meta-intel' repository, there are multiple branches, one
meta-chiefriver/conf/machine/chiefriver.conf +2 -1
@@ -15,6 +15,7 @@ XSERVER ?= "${XSERVER_IA32_BASE} \ ${XSERVER_IA32_I965} \ " -VA_FEATURES ?= "gst-va-intel va-intel" +VA_FEATURES = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", \ + "commercial", "gst-va-intel va-intel", "", d)}" MACHINE_EXTRA_RRECOMMENDS += "${VA_FEATURES} lms"
meta-crownbay/README +15 -0
@@ -92,6 +92,21 @@ At the end of a successful build, you should have a live image that you can boot from a USB flash drive (see instructions on how to do that below, in the section 'Booting the images from /binary'). +NOTE: The 'crownbay' machine will include support for hardware video +acceleration via gstreamer if and only if the "commercial" string is +added to the the LICENSE_FLAGS_WHITELIST variable in your local.conf. + +For example: + + LICENSE_FLAGS_WHITELIST = "license_emgd-driver-bin_1.14 commercial" + +The reason this is needed is to prevent the image from including +anything that might violate the license terms of the packages used to +implement the the video acceleration feature, such as gst-ffmpeg and +ffmpeg. As always, please consult the licenses included in the +specific packages for details if you use packages that require +particular LICENSE_FLAGS. + As an alternative to downloading the BSP tarball, you can also work directly from the meta-intel git repository. For each BSP in the 'meta-intel' repository, there are multiple branches, one
meta-crownbay/conf/machine/crownbay.conf +2 -1
@@ -23,6 +23,7 @@ PREFERRED_VERSION_xf86-input-evdev ?= "2.6.0" APPEND += "video=vesafb vga=0x318" -VA_FEATURES ?= "gst-va-intel va-intel" +VA_FEATURES = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", \ + "commercial", "gst-va-intel va-intel", "va-intel", d)}" MACHINE_EXTRA_RRECOMMENDS += "${VA_FEATURES}"
meta-fri2/README +15 -0
@@ -113,6 +113,21 @@ At the end of a successful build, you should have a live image that you can boot from a USB flash drive (see instructions on how to do that below, in the section 'Booting the images from /binary'). +NOTE: The 'fri2' machine will include support for hardware video +acceleration via gstreamer if and only if the "commercial" string is +added to the the LICENSE_FLAGS_WHITELIST variable in your local.conf. + +For example: + + LICENSE_FLAGS_WHITELIST = "license_emgd-driver-bin_1.10 commercial" + +The reason this is needed is to prevent the image from including +anything that might violate the license terms of the packages used to +implement the the video acceleration feature, such as gst-ffmpeg and +ffmpeg. As always, please consult the licenses included in the +specific packages for details if you use packages that require +particular LICENSE_FLAGS. + As an alternative to downloading the BSP tarball, you can also work directly from the meta-intel git repository. For each BSP in the 'meta-intel' repository, there are multiple branches, one
meta-fri2/conf/machine/fri2.conf +2 -1
@@ -8,7 +8,8 @@ require conf/machine/include/tune-atom.inc require conf/machine/include/ia32-base.inc require conf/machine/include/meta-intel.inc -VA_FEATURES ?= "gst-va-intel va-intel" +VA_FEATURES = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", \ + "commercial", "gst-va-intel va-intel", "va-intel", d)}" MACHINE_FEATURES += "wifi 3g pcbios efi va-impl-mixvideo" MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-iwlwifi-6000g2a-5 ${VA_FEATURES}"
meta-sugarbay/README +15 -0
@@ -71,6 +71,21 @@ At the end of a successful build, you should have a live image that you can boot from a USB flash drive (see instructions on how to do that below, in the section 'Booting the images from /binary'). +NOTE: The 'sugarbay' machine will include support for hardware video +acceleration via gstreamer if and only if the "commercial" string is +added to the the LICENSE_FLAGS_WHITELIST variable in your local.conf. + +For example: + + LICENSE_FLAGS_WHITELIST = "commercial" + +The reason this is needed is to prevent the image from including +anything that might violate the license terms of the packages used to +implement the the video acceleration feature, such as gst-ffmpeg and +ffmpeg. As always, please consult the licenses included in the +specific packages for details if you use packages that require +particular LICENSE_FLAGS. + As an alternative to downloading the BSP tarball, you can also work directly from the meta-intel git repository. For each BSP in the 'meta-intel' repository, there are multiple branches, one
meta-sugarbay/conf/machine/sugarbay.conf +2 -1
@@ -16,6 +16,7 @@ XSERVER ?= "${XSERVER_IA32_BASE} \ ${XSERVER_IA32_I965} \ " -VA_FEATURES ?= "gst-va-intel va-intel" +VA_FEATURES = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", \ + "commercial", "gst-va-intel va-intel", "", d)}" MACHINE_EXTRA_RRECOMMENDS += "${VA_FEATURES}"
meta-sys940x/README +15 -0
@@ -96,6 +96,21 @@ At the end of a successful build, you should have a live image that you can boot from a USB flash drive (see instructions on how to do that below, in the section 'Booting the images from /binary'). +NOTE: The 'sys940x' machine will include support for hardware video +acceleration via gstreamer if and only if the "commercial" string is +added to the the LICENSE_FLAGS_WHITELIST variable in your local.conf. + +For example: + + LICENSE_FLAGS_WHITELIST = "license_emgd-driver-bin_1.10 commercial" + +The reason this is needed is to prevent the image from including +anything that might violate the license terms of the packages used to +implement the the video acceleration feature, such as gst-ffmpeg and +ffmpeg. As always, please consult the licenses included in the +specific packages for details if you use packages that require +particular LICENSE_FLAGS. + As an alternative to downloading the BSP tarball, you can also work directly from the meta-intel git repository. For each BSP in the 'meta-intel' repository, there are multiple branches, one
meta-sys940x/conf/machine/sys940x.conf +2 -1
@@ -25,6 +25,7 @@ PREFERRED_VERSION_xf86-input-evdev ?= "2.6.0" SERIAL_CONSOLE = "115200 ttyS0" APPEND += "console=ttyS0,115200 console=tty0" -VA_FEATURES ?= "gst-va-intel va-intel" +VA_FEATURES = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", \ + "commercial", "gst-va-intel va-intel", "va-intel", d)}" MACHINE_EXTRA_RRECOMMENDS += "${VA_FEATURES}"
Signature · 1 line
1.7.11.4
PATCH 2/4 meta-intel: restore emgd 1.10
From: Tom Zanussi <[email protected]>
The upgrade to emgd 1.14 inadvertantly removed 1.10, which is still used by some BSPs, so restore it for them.
--- .../xorg-driver/emgd-driver-bin_1.10.bb | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 common/recipes-graphics/xorg-driver/emgd-driver-bin_1.10.bb
common/recipes-graphics/xorg-driver/emgd-driver-bin_1.10.bb new file +91 -0
@@ -0,0 +1,91 @@ +SUMMARY = "EMGD 1.10 xserver binaries" +DESCRIPTION = "EMGD 1.10 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.10' and you need to add \ +to LICENSE_FLAGS_WHITELIST += \"License_emgd-driver-bin_1.10\" to your \ +local.conf in order to enable it in a build." +LICENSE = "Intel-binary-only" +LICENSE_FLAGS = "license_${PN}_${PV}" +PR = "r1" + +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" + +DEPENDS = "rpm-native xz-native" + +SRC_URI = "https://edc.intel.com/App_Shared/Downloads/LIN_EMGD_1_10_RC_2209.tgz" + +SRC_URI[md5sum] = "e4a38d9efa0b086ae21b68145c4db4e9" +SRC_URI[sha256sum] = "acea5f0f93a31553553428623c007d7ed0c604cf715fd87dfe075751da4be548" + +# These are closed binaries generated elsewhere so don't check ldflags +INSANE_SKIP_${PN} = "ldflags" + +FILES_${PN} += "${libdir}/dri ${libdir}/gstreamer-0.10 ${libdir}/xorg/modules/drivers" +FILES_${PN}-dbg += "${libdir}/xorg/modules/drivers/.debug ${libdir}/dri/.debug" + +S = "${WORKDIR}/${EMGD_RPM_DIR}" + +do_install () { + # 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 | xz -d | 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 | xz -d | 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/ + + ln -sf libEGL.so.1 ${D}${libdir}/libEGL.so + ln -sf libGLES_CM.so.1 ${D}${libdir}/libGLES_CM.so + ln -sf libGLESv2.so.2 ${D}${libdir}/libGLESv2.so + ln -sf libOpenVG.so.1 ${D}${libdir}/libOpenVG.so + ln -sf libOpenVGU.so.1 ${D}${libdir}/libOpenVGU.so +} + +LEAD_SONAME = "libEGL.so"
Signature · 1 line
1.7.11.4
PATCH 3/4 meta-intel: have fri2 and sys940x prefer emgd-1.10
In reply to [email protected]From: Tom Zanussi <[email protected]>
fri2 and sys940x need to use emgd-1.10 instead of the newer 1.14.
--- meta-fri2/conf/machine/fri2.conf | 1 + meta-sys940x/conf/machine/sys940x.conf | 1 + 2 files changed, 2 insertions(+)
meta-fri2/conf/machine/fri2.conf +1 -0
@@ -25,6 +25,7 @@ XSERVER ?= "${XSERVER_IA32_BASE} \ PREFERRED_VERSION_xserver-xorg ?= "1.9.3" PREFERRED_VERSION_mesa-dri ?= "7.11" PREFERRED_VERSION_xf86-input-evdev ?= "2.6.0" +PREFERRED_VERSION_emgd-driver-bin ?= "1.10" # Syslinux does not know about the 64MHz uart clock and it does not detect the # serial device by number. Use the IO port directly and divide the baud down to
meta-sys940x/conf/machine/sys940x.conf +1 -0
@@ -21,6 +21,7 @@ XSERVER ?= "${XSERVER_IA32_BASE} \ PREFERRED_VERSION_xserver-xorg ?= "1.9.3" PREFERRED_VERSION_mesa-dri ?= "7.11" PREFERRED_VERSION_xf86-input-evdev ?= "2.6.0" +PREFERRED_VERSION_emgd-driver-bin ?= "1.10" SERIAL_CONSOLE = "115200 ttyS0" APPEND += "console=ttyS0,115200 console=tty0"
Signature · 1 line
1.7.11.4
PATCH 4/4 meta-intel: move emgd-driver-bin_1.14 to xorg-driver/
In reply to [email protected]From: Tom Zanussi <[email protected]>
emgd-driver-bin should be in common/recipes-graphics/xorg-driver rather than common/recipes-graphics/xorg-xserver so move it there.
---
.../{xorg-xserver => xorg-driver}/emgd-driver-bin_1.14.bb | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename common/recipes-graphics/{xorg-xserver => xorg-driver}/emgd-driver-bin_1.14.bb (100%)common/recipes-graphics/xorg-driver/emgd-driver-bin_1.14.bb renamed from common/recipes-graphics/xorg-xserver/emgd-driver-bin_1.14.bb +0 -0
Signature · 1 line
1.7.11.4