summaryrefslogtreecommitdiffstats
path: root/meta-raspberrypi
diff options
context:
space:
mode:
Diffstat (limited to 'meta-raspberrypi')
-rw-r--r--meta-raspberrypi/classes/sdcard_image-rpi.bbclass23
-rw-r--r--meta-raspberrypi/conf/layer.conf7
-rw-r--r--meta-raspberrypi/conf/machine/include/rpi-base.inc26
-rw-r--r--meta-raspberrypi/conf/machine/raspberrypi-cm3.conf4
-rw-r--r--meta-raspberrypi/conf/machine/raspberrypi.conf3
-rw-r--r--meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf7
-rw-r--r--meta-raspberrypi/conf/machine/raspberrypi0.conf3
-rw-r--r--meta-raspberrypi/conf/machine/raspberrypi2.conf3
-rw-r--r--meta-raspberrypi/conf/machine/raspberrypi3-64.conf11
-rw-r--r--meta-raspberrypi/conf/machine/raspberrypi3.conf11
-rw-r--r--meta-raspberrypi/docs/extra-build-config.md13
-rw-r--r--meta-raspberrypi/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend17
-rw-r--r--meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb3
-rw-r--r--meta-raspberrypi/recipes-bsp/common/firmware.inc8
-rw-r--r--meta-raspberrypi/recipes-bsp/u-boot/u-boot/0002-rpi_0_w-Add-configs-consistent-with-RpI3.patch41
-rw-r--r--meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend6
-rw-r--r--meta-raspberrypi/recipes-connectivity/bluez5/bluez5/brcm43438.service14
-rw-r--r--meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend35
-rw-r--r--meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch28
-rw-r--r--meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb32
-rw-r--r--meta-raspberrypi/recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend2
-rw-r--r--meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb3
-rw-r--r--meta-raspberrypi/recipes-devtools/pi-blaster/files/0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch32
-rw-r--r--meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb7
-rw-r--r--meta-raspberrypi/recipes-devtools/wiringpi/files/0001-Add-initial-cross-compile-support.patch46
-rw-r--r--meta-raspberrypi/recipes-devtools/wiringpi/wiringpi_git.bb6
-rw-r--r--meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend2
-rw-r--r--meta-raspberrypi/recipes-graphics/kmscube/kmscube_%.bbappend2
-rw-r--r--meta-raspberrypi/recipes-graphics/mesa/mesa-demos_%.bbappend2
-rw-r--r--meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend2
-rw-r--r--meta-raspberrypi/recipes-graphics/piglit/piglit_%.bbappend5
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch)12
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch)511
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch)20
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch)6
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch)6
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch)6
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch)6
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch)6
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch)6
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch)6
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch)6
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch)10
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0013-Implement-triple-buffering-for-wayland.patch)6
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch)19
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0015-EGL-glplatform.h-define-EGL_CAST.patch)6
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch (renamed from meta-raspberrypi/recipes-graphics/userland/userland/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch)10
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch38
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch35
-rw-r--r--meta-raspberrypi/recipes-graphics/userland/userland_git.bb21
-rw-r--r--meta-raspberrypi/recipes-graphics/wayland/wayland_%.bbappend7
-rw-r--r--meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-noglamor.conf6
-rw-r--r--meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend5
-rw-r--r--meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb84
-rw-r--r--meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb96
-rw-r--r--meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend69
-rw-r--r--meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.14.bb9
-rw-r--r--meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc6
-rw-r--r--meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb4
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0002-fix-decoder-flushing.patch23
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch27
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch (renamed from meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch)0
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0001-config-files-path.patch (renamed from meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0001-config-files-path.patch)0
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0003-no-timeout-on-get-state.patch (renamed from meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0003-no-timeout-on-get-state.patch)0
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0004-Properly-handle-drain-requests-while-flushing.patch (renamed from meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0004-Properly-handle-drain-requests-while-flushing.patch)10
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch24
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend4
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.14%.bbappend (renamed from meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.12%.bbappend)3
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend11
-rw-r--r--meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend10
-rw-r--r--meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Fix-build-with-vc4-driver.patch49
-rw-r--r--meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Remove-Makefile.include-which-includes-hardcoded.patch13
-rw-r--r--meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Specify-cc-cxx-and-ld-variables-from-environment.patch42
-rw-r--r--meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch33
-rw-r--r--meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0003-Remove-strip-step-in-Makefile.patch28
-rw-r--r--meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch16
-rw-r--r--meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0005-Don-t-require-internet-connection-during-build.patch31
-rw-r--r--meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0006-Prevent-ffmpeg-configure-compile-race-condition.patch20
-rw-r--r--meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/cross-crompile-ffmpeg.patch12
-rw-r--r--meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/fix-tar-command-with-DIST.patch19
-rw-r--r--meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/use-native-pkg-config.patch13
-rw-r--r--meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb35
82 files changed, 1110 insertions, 739 deletions
diff --git a/meta-raspberrypi/classes/sdcard_image-rpi.bbclass b/meta-raspberrypi/classes/sdcard_image-rpi.bbclass
index e7c34c63f..6244ee55b 100644
--- a/meta-raspberrypi/classes/sdcard_image-rpi.bbclass
+++ b/meta-raspberrypi/classes/sdcard_image-rpi.bbclass
@@ -28,9 +28,6 @@ IMAGE_TYPEDEP_rpi-sdimg = "${SDIMG_ROOTFS_TYPE}"
# Set kernel and boot loader
IMAGE_BOOTLOADER ?= "bcm2835-bootfiles"
-# Set initramfs extension
-KERNEL_INITRAMFS ?= ""
-
# Kernel image name
SDIMG_KERNELIMAGE_raspberrypi ?= "kernel.img"
SDIMG_KERNELIMAGE_raspberrypi2 ?= "kernel7.img"
@@ -49,6 +46,9 @@ IMAGE_ROOTFS_ALIGNMENT = "4096"
SDIMG_ROOTFS_TYPE ?= "ext3"
SDIMG_ROOTFS = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${SDIMG_ROOTFS_TYPE}"
+# For the names of kernel artifacts
+inherit kernel-artifact-names
+
do_image_rpi_sdimg[depends] = " \
parted-native:do_populate_sysroot \
mtools-native:do_populate_sysroot \
@@ -75,6 +75,7 @@ SDIMG = "${IMGDEPLOYDIR}/${IMAGE_NAME}.rootfs.rpi-sdimg"
FATPAYLOAD ?= ""
# SD card vfat partition image name
+SDIMG_VFAT_DEPLOY ?= "${RPI_USE_U_BOOT}"
SDIMG_VFAT = "${IMAGE_NAME}.vfat"
SDIMG_LINK_VFAT = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.vfat"
@@ -135,10 +136,18 @@ IMAGE_CMD_rpi-sdimg () {
fi
if [ "${RPI_USE_U_BOOT}" = "1" ]; then
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/u-boot.bin ::${SDIMG_KERNELIMAGE}
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::${KERNEL_IMAGETYPE}
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/boot.scr ::boot.scr
+ if [ ! -z "${INITRAMFS_IMAGE}" -a "${INITRAMFS_IMAGE_BUNDLE}" = "1" ]; then
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${INITRAMFS_LINK_NAME}.bin ::${KERNEL_IMAGETYPE}
+ else
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} ::${KERNEL_IMAGETYPE}
+ fi
else
- mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::${SDIMG_KERNELIMAGE}
+ if [ ! -z "${INITRAMFS_IMAGE}" -a "${INITRAMFS_IMAGE_BUNDLE}" = "1" ]; then
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${INITRAMFS_LINK_NAME}.bin ::${SDIMG_KERNELIMAGE}
+ else
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE} ::${SDIMG_KERNELIMAGE}
+ fi
fi
if [ -n ${FATPAYLOAD} ] ; then
@@ -153,8 +162,8 @@ IMAGE_CMD_rpi-sdimg () {
echo "${IMAGE_NAME}" > ${WORKDIR}/image-version-info
mcopy -i ${WORKDIR}/boot.img -v ${WORKDIR}/image-version-info ::
- # Deploy vfat partition (for u-boot case only)
- if [ "${RPI_USE_U_BOOT}" = "1" ]; then
+ # Deploy vfat partition
+ if [ "${SDIMG_VFAT_DEPLOY}" = "1" ]; then
cp ${WORKDIR}/boot.img ${IMGDEPLOYDIR}/${SDIMG_VFAT}
ln -sf ${SDIMG_VFAT} ${SDIMG_LINK_VFAT}
fi
diff --git a/meta-raspberrypi/conf/layer.conf b/meta-raspberrypi/conf/layer.conf
index cfc22342f..6e2fdf663 100644
--- a/meta-raspberrypi/conf/layer.conf
+++ b/meta-raspberrypi/conf/layer.conf
@@ -9,7 +9,7 @@ BBFILE_COLLECTIONS += "raspberrypi"
BBFILE_PATTERN_raspberrypi := "^${LAYERDIR}/"
BBFILE_PRIORITY_raspberrypi = "9"
-LAYERSERIES_COMPAT_raspberrypi = "sumo"
+LAYERSERIES_COMPAT_raspberrypi = "sumo thud"
# Additional license directories.
LICENSE_PATH += "${LAYERDIR}/files/custom-licenses"
@@ -23,3 +23,8 @@ BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bbappend' %
for layer in BBFILE_COLLECTIONS.split())}"
BBFILES += "${@' '.join('${LAYERDIR}/dynamic-layers/%s/recipes*/*/*.bb' % layer \
for layer in BBFILE_COLLECTIONS.split())}"
+
+BBFILES_DYNAMIC += " \
+ qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bb \
+ qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bbappend \
+"
diff --git a/meta-raspberrypi/conf/machine/include/rpi-base.inc b/meta-raspberrypi/conf/machine/include/rpi-base.inc
index 539d1bc12..4bbd576b9 100644
--- a/meta-raspberrypi/conf/machine/include/rpi-base.inc
+++ b/meta-raspberrypi/conf/machine/include/rpi-base.inc
@@ -15,7 +15,9 @@ XSERVER = " \
"
RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
+ overlays/at86rf233.dtbo \
overlays/dwc2.dtbo \
+ overlays/gpio-key.dtbo \
overlays/hifiberry-amp.dtbo \
overlays/hifiberry-dac.dtbo \
overlays/hifiberry-dacplus.dtbo \
@@ -24,18 +26,17 @@ RPI_KERNEL_DEVICETREE_OVERLAYS ?= " \
overlays/iqaudio-dac.dtbo \
overlays/iqaudio-dacplus.dtbo \
overlays/lirc-rpi.dtbo \
+ overlays/pi3-disable-bt.dtbo \
+ overlays/pi3-miniuart-bt.dtbo \
overlays/pitft22.dtbo \
overlays/pitft28-resistive.dtbo \
overlays/pitft35-resistive.dtbo \
overlays/pps-gpio.dtbo \
overlays/rpi-ft5406.dtbo \
overlays/rpi-poe.dtbo \
- overlays/w1-gpio.dtbo \
- overlays/w1-gpio-pullup.dtbo \
- overlays/pi3-disable-bt.dtbo \
- overlays/pi3-miniuart-bt.dtbo \
overlays/vc4-kms-v3d.dtbo \
- overlays/at86rf233.dtbo \
+ overlays/w1-gpio-pullup.dtbo \
+ overlays/w1-gpio.dtbo \
"
RPI_KERNEL_DEVICETREE ?= " \
@@ -84,23 +85,18 @@ def make_dtb_boot_files(d):
imgtyp = d.getVar('KERNEL_IMAGETYPE')
def transform(dtb):
+ base = os.path.basename(dtb)
if dtb.endswith('dtb'):
# eg: whatever/bcm2708-rpi-b.dtb has:
- # DEPLOYDIR file: ${KERNEL_IMAGETYPE}-bcm2708-rpi-b.dtb
+ # DEPLOYDIR file: bcm2708-rpi-b.dtb
# destination: bcm2708-rpi-b.dtb
- base = os.path.basename(dtb)
- src = '{}-{}'.format(imgtyp, base)
- dst = base
- return '{};{}'.format(src, dst)
+ return base
elif dtb.endswith('dtbo'):
# overlay dtb:
# eg: overlays/hifiberry-amp.dtbo has:
- # DEPLOYDIR file: ${KERNEL_IMAGETYPE}-hifiberry-amp.dtbo
+ # DEPLOYDIR file: hifiberry-amp.dtbo
# destination: overlays/hifiberry-amp.dtbo
- base = os.path.basename(dtb)
- src = '{}-{}'.format(imgtyp, base)
- dst = dtb
- return '{};{}'.format(src, dtb)
+ return '{};{}'.format(base, dtb)
return ' '.join([transform(dtb) for dtb in alldtbs.split(' ') if dtb])
diff --git a/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf b/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf
index 153d5d5bb..5f6d3b6bf 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi-cm3.conf
@@ -2,5 +2,5 @@
#@NAME: RaspberryPi Compute Module 3 (CM3)
#@DESCRIPTION: Machine configuration for the RaspberryPi Compute Module 3 (CM3)
-MACHINEOVERRIDES = "raspberrypi2:${MACHINE}"
-include conf/machine/raspberrypi2.conf
+MACHINEOVERRIDES = "raspberrypi3:${MACHINE}"
+include conf/machine/raspberrypi3.conf
diff --git a/meta-raspberrypi/conf/machine/raspberrypi.conf b/meta-raspberrypi/conf/machine/raspberrypi.conf
index ddd380161..e94ad867e 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi.conf
@@ -7,7 +7,6 @@ DEFAULTTUNE ?= "arm1176jzfshf"
require conf/machine/include/tune-arm1176jzf-s.inc
include conf/machine/include/rpi-base.inc
-SERIAL_CONSOLE ?= "115200 ttyAMA0"
+SERIAL_CONSOLES ?= "115200;ttyAMA0"
UBOOT_MACHINE = "rpi_config"
-VC4_CMA_SIZE_raspberrypi ?= "cma-64"
diff --git a/meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf b/meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf
index accdf3ce3..2c4f760ea 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi0-wifi.conf
@@ -7,11 +7,10 @@ require conf/machine/include/tune-arm1176jzf-s.inc
include conf/machine/include/rpi-base.inc
MACHINE_EXTRA_RRECOMMENDS += "\
- linux-firmware-bcm43430 \
- linux-firmware-bcm43430a1-hcd \
+ linux-firmware-rpidistro-bcm43430 \
+ bluez-firmware-rpidistro-bcm43430a1-hcd \
"
SDIMG_KERNELIMAGE ?= "kernel.img"
UBOOT_MACHINE ?= "rpi_0_w_defconfig"
-SERIAL_CONSOLE ?= "115200 ttyS0"
-VC4_CMA_SIZE ?= "cma-128"
+SERIAL_CONSOLES ?= "115200;ttyS0"
diff --git a/meta-raspberrypi/conf/machine/raspberrypi0.conf b/meta-raspberrypi/conf/machine/raspberrypi0.conf
index 3bd9e956e..80297b563 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi0.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi0.conf
@@ -5,5 +5,4 @@
MACHINEOVERRIDES = "raspberrypi:${MACHINE}"
include conf/machine/raspberrypi.conf
-SERIAL_CONSOLE ?= "115200 ttyAMA0"
-VC4_CMA_SIZE ?= "cma-128"
+SERIAL_CONSOLES ?= "115200;ttyAMA0"
diff --git a/meta-raspberrypi/conf/machine/raspberrypi2.conf b/meta-raspberrypi/conf/machine/raspberrypi2.conf
index a17289ce9..bd191c3fa 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi2.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi2.conf
@@ -7,7 +7,6 @@ DEFAULTTUNE ?= "cortexa7thf-neon-vfpv4"
require conf/machine/include/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
-SERIAL_CONSOLE ?= "115200 ttyAMA0"
+SERIAL_CONSOLES ?= "115200;ttyAMA0"
UBOOT_MACHINE = "rpi_2_config"
-VC4_CMA_SIZE ?= "cma-256"
diff --git a/meta-raspberrypi/conf/machine/raspberrypi3-64.conf b/meta-raspberrypi/conf/machine/raspberrypi3-64.conf
index fb21b122c..635e4f67f 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi3-64.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi3-64.conf
@@ -5,10 +5,10 @@
MACHINEOVERRIDES = "raspberrypi3:${MACHINE}"
MACHINE_EXTRA_RRECOMMENDS += "\
- linux-firmware-bcm43430 \
- linux-firmware-bcm43455 \
- linux-firmware-bcm43430a1-hcd \
- linux-firmware-bcm4345c0-hcd \
+ linux-firmware-rpidistro-bcm43430 \
+ linux-firmware-rpidistro-bcm43455 \
+ bluez-firmware-rpidistro-bcm43430a1-hcd \
+ bluez-firmware-rpidistro-bcm4345c0-hcd \
"
require conf/machine/include/arm/arch-armv8.inc
@@ -20,8 +20,7 @@ RPI_KERNEL_DEVICETREE = " \
broadcom/bcm2837-rpi-3-b.dtb \
"
-SERIAL_CONSOLE ?= "115200 ttyS0"
-VC4_CMA_SIZE ?= "cma-256"
+SERIAL_CONSOLES ?= "115200;ttyS0"
UBOOT_MACHINE = "rpi_3_config"
MACHINE_FEATURES_append = " vc4graphics"
diff --git a/meta-raspberrypi/conf/machine/raspberrypi3.conf b/meta-raspberrypi/conf/machine/raspberrypi3.conf
index 8b5cce51f..df64cbb7b 100644
--- a/meta-raspberrypi/conf/machine/raspberrypi3.conf
+++ b/meta-raspberrypi/conf/machine/raspberrypi3.conf
@@ -7,13 +7,12 @@ require conf/machine/include/tune-cortexa7.inc
include conf/machine/include/rpi-base.inc
MACHINE_EXTRA_RRECOMMENDS += "\
- linux-firmware-bcm43430 \
- linux-firmware-bcm43455 \
- linux-firmware-bcm43430a1-hcd \
- linux-firmware-bcm4345c0-hcd \
+ linux-firmware-rpidistro-bcm43430 \
+ linux-firmware-rpidistro-bcm43455 \
+ bluez-firmware-rpidistro-bcm43430a1-hcd \
+ bluez-firmware-rpidistro-bcm4345c0-hcd \
"
SDIMG_KERNELIMAGE ?= "kernel7.img"
UBOOT_MACHINE = "rpi_3_32b_config"
-SERIAL_CONSOLE ?= "115200 ttyS0"
-VC4_CMA_SIZE ?= "cma-256"
+SERIAL_CONSOLES ?= "115200;ttyS0"
diff --git a/meta-raspberrypi/docs/extra-build-config.md b/meta-raspberrypi/docs/extra-build-config.md
index 04314aa3d..732c10207 100644
--- a/meta-raspberrypi/docs/extra-build-config.md
+++ b/meta-raspberrypi/docs/extra-build-config.md
@@ -158,17 +158,18 @@ command (eg. bootz) to be used.
To build an initramfs image:
-* Set this 3 kernel variables (in linux-raspberrypi.inc for example)
+* Set this 3 kernel variables (in kernel's do_configure_prepend in linux-raspberrypi.inc after the line kernel_configure_variable LOCALVERSION "\"\""
+)
- kernel_configure_variable BLK_DEV_INITRD y
- kernel_configure_variable INITRAMFS_SOURCE ""
- kernel_configure_variable RD_GZIP y
-* Set the yocto variables (in linux-raspberrypi.inc for example)
- - `INITRAMFS_IMAGE = "<a name for your initramfs image>"`
+* Set the yocto variables (e.g. in local.conf)
+ - `INITRAMFS_IMAGE = "<name for your initramfs image>"`
- `INITRAMFS_IMAGE_BUNDLE = "1"`
-
-* Set the meta-rasberrypi variable (in raspberrypi.conf for example)
- - `KERNEL_INITRAMFS = "-initramfs"`
+ - `BOOT_SPACE = "1073741"`
+ - `INITRAMFS_MAXSIZE = "315400"`
+ - `IMAGE_FSTYPES_pn-${INITRAMFS_IMAGE} = "${INITRAMFS_FSTYPES}"`
## Enable SPI bus
diff --git a/meta-raspberrypi/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend b/meta-raspberrypi/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
new file mode 100644
index 000000000..7d6ab84e4
--- /dev/null
+++ b/meta-raspberrypi/dynamic-layers/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend
@@ -0,0 +1,17 @@
+PACKAGECONFIG_GL_rpi = "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'gl', \
+ bb.utils.contains('DISTRO_FEATURES', 'opengl', 'eglfs gles2 linuxfb', \
+ '', d), d)}"
+#PACKAGECONFIG_GL_rpi = "${@bb.utils.any_distro_features('x11 wayland', '', 'eglfs', d)}"
+PACKAGECONFIG_FONTS_rpi = "fontconfig"
+PACKAGECONFIG_append_rpi = " libinput examples tslib xkb xkbcommon-evdev"
+PACKAGECONFIG_remove_rpi = "tests"
+
+OE_QTBASE_EGLFS_DEVICE_INTEGRATION_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'eglfs_kms', 'eglfs_brcm', d)}"
+
+do_configure_prepend_rpi() {
+ # Add the appropriate EGLFS_DEVICE_INTEGRATION
+ if [ "${@d.getVar('OE_QTBASE_EGLFS_DEVICE_INTEGRATION')}" != "" ]; then
+ echo "EGLFS_DEVICE_INTEGRATION = ${OE_QTBASE_EGLFS_DEVICE_INTEGRATION}" > ${S}/mkspecs/oe-device-extra.pri
+ fi
+}
+RDEPENDS_${PN}_append_rpi = " userland"
diff --git a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
index a85c91630..d92b8e488 100644
--- a/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
+++ b/meta-raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bb
@@ -23,7 +23,6 @@ PITFT28r="${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "1", "0", d)}"
PITFT35r="${@bb.utils.contains("MACHINE_FEATURES", "pitft35r", "1", "0", d)}"
VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
-VC4DTBO_raspberrypi3-64 ?= "vc4-fkms-v3d"
VC4DTBO ?= "vc4-kms-v3d"
inherit deploy nopackages
@@ -159,7 +158,7 @@ do_deploy() {
# VC4 Graphics support
if [ "${VC4GRAPHICS}" = "1" ]; then
echo "# Enable VC4 Graphics" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
- echo "dtoverlay=${VC4DTBO},${VC4_CMA_SIZE}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
+ echo "dtoverlay=${VC4DTBO}" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt
fi
# Waveshare "C" 1024x600 7" Rev2.1 IPS capacitive touch (http://www.waveshare.com/7inch-HDMI-LCD-C.htm)
diff --git a/meta-raspberrypi/recipes-bsp/common/firmware.inc b/meta-raspberrypi/recipes-bsp/common/firmware.inc
index 3baa1f8b1..7be848a67 100644
--- a/meta-raspberrypi/recipes-bsp/common/firmware.inc
+++ b/meta-raspberrypi/recipes-bsp/common/firmware.inc
@@ -1,11 +1,11 @@
-RPIFW_DATE ?= "20180817"
-SRCREV ?= "53ac68e1eb02138f72a5056efed9dac9d3883a3f"
+RPIFW_DATE ?= "20180924"
+SRCREV ?= "5b49caa17e91d0e64024380119ad739bb201c674"
RPIFW_SRC_URI ?= "https://github.com/raspberrypi/firmware/archive/${SRCREV}.tar.gz"
RPIFW_S ?= "${WORKDIR}/firmware-${SRCREV}"
SRC_URI = "${RPIFW_SRC_URI}"
-SRC_URI[md5sum] = "6b3d901decf2fe4fad151e3ebb28cb62"
-SRC_URI[sha256sum] = "3680de3ea9817b10fa8998b0dfa6811e58c96945474f4c782710dcd0a56c8cf0"
+SRC_URI[md5sum] = "51352972a029c6f47bde6d302b69440e"
+SRC_URI[sha256sum] = "d1f9c58957dfe681fff7e1cf1eabb9e0f6fdc99720f1d059fb24a37750573310"
PV = "${RPIFW_DATE}"
diff --git a/meta-raspberrypi/recipes-bsp/u-boot/u-boot/0002-rpi_0_w-Add-configs-consistent-with-RpI3.patch b/meta-raspberrypi/recipes-bsp/u-boot/u-boot/0002-rpi_0_w-Add-configs-consistent-with-RpI3.patch
deleted file mode 100644
index e98fd85ae..000000000
--- a/meta-raspberrypi/recipes-bsp/u-boot/u-boot/0002-rpi_0_w-Add-configs-consistent-with-RpI3.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 5d113dc0130ea2ea9faaa000fba9c737266b9747 Mon Sep 17 00:00:00 2001
-From: Drew Moseley <drew.moseley@northern.tech>
-Date: Fri, 9 Feb 2018 18:10:09 -0500
-Subject: [PATCH] rpi_0_w: Add configs consistent with RpI3
-
-Upstream-Status: Accepted [https://patchwork.ozlabs.org/patch/856572/]
-
-Signed-off-by: Drew Moseley <drew.moseley@northern.tech>
----
- configs/rpi_0_w_defconfig | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/configs/rpi_0_w_defconfig b/configs/rpi_0_w_defconfig
-index 9a6d24b..1248294 100644
---- a/configs/rpi_0_w_defconfig
-+++ b/configs/rpi_0_w_defconfig
-@@ -12,14 +12,21 @@ CONFIG_SYS_PROMPT="U-Boot> "
- CONFIG_CMD_GPIO=y
- CONFIG_CMD_MMC=y
- CONFIG_CMD_USB=y
-+CONFIG_OF_EMBED=y
-+CONFIG_ENV_FAT_INTERFACE="mmc"
-+CONFIG_ENV_FAT_DEVICE_AND_PART="0:1"
-+CONFIG_DM_KEYBOARD=y
- CONFIG_DM_MMC=y
- CONFIG_MMC_SDHCI=y
- CONFIG_MMC_SDHCI_BCM2835=y
- CONFIG_DM_ETH=y
- CONFIG_USB=y
- CONFIG_DM_USB=y
-+CONFIG_USB_DWC2=y
- CONFIG_USB_STORAGE=y
- CONFIG_USB_KEYBOARD=y
-+CONFIG_USB_HOST_ETHER=y
-+CONFIG_USB_ETHER_SMSC95XX=y
- CONFIG_DM_VIDEO=y
- CONFIG_SYS_WHITE_ON_BLACK=y
- CONFIG_CONSOLE_SCROLL_LINES=10
---
-2.7.4
-
diff --git a/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend b/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend
index 7d4a49e23..95015f494 100644
--- a/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend
+++ b/meta-raspberrypi/recipes-bsp/u-boot/u-boot_%.bbappend
@@ -1,7 +1 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/u-boot:"
-
-SRC_URI_append_rpi = " \
- file://0002-rpi_0_w-Add-configs-consistent-with-RpI3.patch \
-"
-
DEPENDS_append_rpi = " rpi-u-boot-scr"
diff --git a/meta-raspberrypi/recipes-connectivity/bluez5/bluez5/brcm43438.service b/meta-raspberrypi/recipes-connectivity/bluez5/bluez5/brcm43438.service
deleted file mode 100644
index a51f6bcbc..000000000
--- a/meta-raspberrypi/recipes-connectivity/bluez5/bluez5/brcm43438.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Broadcom BCM43438 bluetooth HCI
-ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins
-Before=bluetooth.service
-BindsTo=dev-serial1.device
-After=dev-serial1.device
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=/usr/bin/btuart
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend b/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend
index d1b84df43..6651fb8d3 100644
--- a/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend
+++ b/meta-raspberrypi/recipes-connectivity/bluez5/bluez5_%.bbappend
@@ -5,41 +5,12 @@ BCM_BT_SOURCES = " \
file://0002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch \
file://0003-Increase-firmware-load-timeout-to-30s.patch \
file://0004-Move-the-43xx-firmware-into-lib-firmware.patch \
- file://brcm43438.service \
- "
-
-BCM_BT_SERVICE = "brcm43438.service"
-
-enable_bcm_bluetooth() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/${BCM_BT_SERVICE} ${D}${systemd_unitdir}/system
- fi
-}
-
-BCM_BT_RDEPENDS = "\
- udev-rules-rpi \
- pi-bluetooth \
"
-# for raspberrypi3
-SRC_URI_append_raspberrypi3 = " ${BCM_BT_SOURCES}"
-
-do_install_append_raspberrypi3() {
- enable_bcm_bluetooth
-}
-
-SYSTEMD_SERVICE_${PN}_append_raspberrypi3 = " ${BCM_BT_SERVICE}"
+BCM_BT_RDEPENDS = "pi-bluetooth"
-RDEPENDS_${PN}_append_raspberrypi3 = " ${BCM_BT_RDEPENDS}"
-
-# for raspberrypi0-wifi
SRC_URI_append_raspberrypi0-wifi = " ${BCM_BT_SOURCES}"
-
-do_install_append_raspberrypi0-wifi() {
- enable_bcm_bluetooth
-}
-
-SYSTEMD_SERVICE_${PN}_append_raspberrypi0-wifi = " ${BCM_BT_SERVICE}"
+SRC_URI_append_raspberrypi3 = " ${BCM_BT_SOURCES}"
RDEPENDS_${PN}_append_raspberrypi0-wifi = " ${BCM_BT_RDEPENDS}"
+RDEPENDS_${PN}_append_raspberrypi3 = " ${BCM_BT_RDEPENDS}"
diff --git a/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch b/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch
new file mode 100644
index 000000000..45839053c
--- /dev/null
+++ b/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch
@@ -0,0 +1,28 @@
+From af91c96951a11f81f5cea88a0010161592c89310 Mon Sep 17 00:00:00 2001
+From: "Peter A. Bigot" <pab@pabigot.com>
+Date: Wed, 14 Nov 2018 09:19:51 -0600
+Subject: [PATCH] bthelper: correct path for hciconfig under Yocto
+
+Upstream-Status: Inapproprate [OE-specific]
+Signed-off-by: Peter A. Bigot <pab@pabigot.com>
+---
+ usr/bin/bthelper | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/usr/bin/bthelper b/usr/bin/bthelper
+index 255fdeb..4e1a1a4 100755
+--- a/usr/bin/bthelper
++++ b/usr/bin/bthelper
+@@ -10,7 +10,7 @@ fi
+
+ dev="$1"
+ # Need to bring hci up before looking at MAC as it can be all zeros during init
+-/bin/hciconfig "$dev" up
+-/bin/hciconfig "$dev" |grep -q "BD Address: B8:27:EB:" || exit 0
++/usr/bin/hciconfig "$dev" up
++/usr/bin/hciconfig "$dev" |grep -q "BD Address: B8:27:EB:" || exit 0
+ /usr/bin/hcitool -i "$dev" cmd 0x3f 0x1c 0x01 0x02 0x00 0x01 0x01 > /dev/null
+
+--
+2.17.1
+
diff --git a/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb b/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb
index e185f25e2..b2401b93c 100644
--- a/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb
+++ b/meta-raspberrypi/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb
@@ -6,17 +6,41 @@ LIC_FILES_CHKSUM = "\
file://debian/copyright;md5=6af8de3c8ee71f8e91e9b22f84ff2022 \
"
-SRC_URI = "git://github.com/RPi-Distro/pi-bluetooth"
-SRCREV = "2a7477966bb3c69838b224f3ea92cb49a88124d5"
-UPSTREAM_VERSION_UNKNOWN = "1"
+SRC_URI = "\
+ git://github.com/RPi-Distro/pi-bluetooth \
+ file://0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch \
+"
+SRCREV = "2e1a393955910aea67bbf3c921be35a66e8a8fbe"
+PV = "1.1+git${SRCPV}"
S = "${WORKDIR}/git"
+# hciuart.service replaces what was brcm43438.service
+inherit systemd
+SYSTEMD_SERVICE_${PN} = "\
+ hciuart.service \
+ bthelper@.service \
+"
+
inherit allarch
do_install() {
+ install -d ${D}${sysconfdir}/udev/rules.d
+ install -m 0644 ${S}/lib/udev/rules.d/* ${D}${sysconfdir}/udev/rules.d
+
install -d ${D}${bindir}
+ install -m 0755 ${S}/usr/bin/bthelper ${D}${bindir}
install -m 0755 ${S}/usr/bin/btuart ${D}${bindir}
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${S}/debian/pi-bluetooth.bthelper@.service ${D}${systemd_system_unitdir}/bthelper@.service
+ install -m 0644 ${S}/debian/pi-bluetooth.hciuart.service ${D}${systemd_system_unitdir}/hciuart.service
+ fi
}
-FILES_${PN} = "${bindir}"
+FILES_${PN} = "\
+ ${bindir} \
+ ${sysconfdir} \
+ ${systemd_unitdir}/system \
+"
diff --git a/meta-raspberrypi/recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend b/meta-raspberrypi/recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend
new file mode 100644
index 000000000..500d871e4
--- /dev/null
+++ b/meta-raspberrypi/recipes-core/packagegroups/packagegroup-core-tools-testapps.bbappend
@@ -0,0 +1,2 @@
+# mesa-demos needs gles1 and userland driver does not have it, works ok with vc4 graphics driver
+X11GLTOOLS_remove_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'mesa-demos', d)}"
diff --git a/meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb b/meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb
index d91ce0b31..915934697 100644
--- a/meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb
+++ b/meta-raspberrypi/recipes-core/packagegroups/packagegroup-rpi-test.bb
@@ -6,8 +6,7 @@ inherit packagegroup
COMPATIBLE_MACHINE = "^rpi$"
-OMXPLAYER_rpi = "omxplayer"
-OMXPLAYER_rpi_aarch64 = ""
+OMXPLAYER = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'omxplayer', d)}"
RDEPENDS_${PN} = "\
${OMXPLAYER} \
diff --git a/meta-raspberrypi/recipes-devtools/pi-blaster/files/0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch b/meta-raspberrypi/recipes-devtools/pi-blaster/files/0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch
new file mode 100644
index 000000000..b4bc4b289
--- /dev/null
+++ b/meta-raspberrypi/recipes-devtools/pi-blaster/files/0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch
@@ -0,0 +1,32 @@
+From 6a6b705ff5cba960c54bdb4d4bcdaa3b00a854a2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 10:24:24 -0700
+Subject: [PATCH] pi-blaster: Include sys/sysmacros.h for makedev()
+
+In glibc 2.28+ this header is not included indirectly anymore
+
+fixes
+
+ld: pi-blaster.o: in function `mbox_open':
+pi-blaster.c:(.text+0x28): undefined reference to `makedev'
+collect2: error: ld returned 1 exit status
+
+Upstream-Status: Submitted [https://github.com/sarfata/pi-blaster/pull/100]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ pi-blaster.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/pi-blaster.c b/pi-blaster.c
+index 6cfd010..fc4e686 100644
+--- a/pi-blaster.c
++++ b/pi-blaster.c
+@@ -41,6 +41,7 @@ static char VERSION[] = "SNAPSHOT";
+ #include <sys/time.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <fcntl.h>
+ #include <sys/mman.h>
+ #include "mailbox.h"
diff --git a/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb b/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
index 274845985..9cedf5ec8 100644
--- a/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
+++ b/meta-raspberrypi/recipes-devtools/pi-blaster/pi-blaster_git.bb
@@ -2,15 +2,16 @@ DESCRIPTION = "This project enables PWM on the GPIO pins you request of a Raspbe
HOMEPAGE = "https://github.com/sarfata/pi-blaster/"
SECTION = "devel/libs"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://README.md;beginline=225;endline=252;md5=a012868ef5f83b9f257af253d7cb07a3"
+LIC_FILES_CHKSUM = "file://README.md;beginline=244;endline=268;md5=86d10e4bcf4b4014d306dde7c1d2a80d"
SRC_URI = "git://github.com/sarfata/pi-blaster \
file://remove-initscript-lsb-dependency.patch \
-"
+ file://0001-pi-blaster-Include-sys-sysmacros.h-for-makedev.patch \
+ "
S = "${WORKDIR}/git"
-SRCREV = "1035ad7dffb270c40eec1bb3a654171a755fba98"
+SRCREV = "e981aa5d7624c75a4d4afcddcbd235f25e32ffe4"
inherit update-rc.d autotools
diff --git a/meta-raspberrypi/recipes-devtools/wiringpi/files/0001-Add-initial-cross-compile-support.patch b/meta-raspberrypi/recipes-devtools/wiringpi/files/0001-Add-initial-cross-compile-support.patch
index 01e054634..d97bbef0d 100644
--- a/meta-raspberrypi/recipes-devtools/wiringpi/files/0001-Add-initial-cross-compile-support.patch
+++ b/meta-raspberrypi/recipes-devtools/wiringpi/files/0001-Add-initial-cross-compile-support.patch
@@ -1,8 +1,11 @@
-From ca25788e2563bad0d554deb9f4300d1e7d062825 Mon Sep 17 00:00:00 2001
-From: Aurelian Zanoschi <aurelian17@gmail.com>
-Date: Mon, 31 Jul 2017 20:25:15 +0300
+From 9a47fd5da546d148886c8890cd48249ebe826948 Mon Sep 17 00:00:00 2001
+From: Daniel Rank <dwrank@gmail.com>
+Date: Wed, 1 Aug 2018 23:32:00 -0700
Subject: [PATCH] Add initial cross compile support
+Upstream-Status: Pending
+Signed-off-by: Daniel Rank <dwrank@gmail.com>
+
---
devLib/Makefile | 54 +++++++++++++++++++++++++--------------------
examples/Gertboard/Makefile | 22 +++++++++++-------
@@ -11,8 +14,8 @@ Subject: [PATCH] Add initial cross compile support
examples/PiGlow/Makefile | 4 ++--
examples/q2w/Makefile | 4 ++--
gpio/Makefile | 29 ++++++++++++------------
- wiringPi/Makefile | 52 ++++++++++++++++++++++++-------------------
- 8 files changed, 120 insertions(+), 89 deletions(-)
+ wiringPi/Makefile | 46 +++++++++++++++++++++-----------------
+ 8 files changed, 117 insertions(+), 86 deletions(-)
diff --git a/devLib/Makefile b/devLib/Makefile
index cf665d6..040c03a 100644
@@ -248,7 +251,7 @@ index 8f773bf..14aa6e4 100644
###############################################################################
diff --git a/gpio/Makefile b/gpio/Makefile
-index f41a005..22753ee 100644
+index 9ec160d..a294242 100644
--- a/gpio/Makefile
+++ b/gpio/Makefile
@@ -30,13 +30,17 @@ ifneq ($V,1)
@@ -284,8 +287,8 @@ index f41a005..22753ee 100644
- $Q chown root.root $(DESTDIR)$(PREFIX)/bin/gpio
- $Q chmod 4755 $(DESTDIR)$(PREFIX)/bin/gpio
-endif
-- $Q mkdir -p $(DESTDIR)$(PREFIX)/man/man1
-- $Q cp gpio.1 $(DESTDIR)$(PREFIX)/man/man1
+- $Q mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1
+- $Q cp gpio.1 $(DESTDIR)$(PREFIX)/share/man/man1
+ $Q install -d $(BIN_DIR)
+ $Q install -m 4755 -o root -g root gpio $(BIN_DIR)
+ $Q install -d $(DESTDIR)$(PREFIX)/share/man/man1
@@ -299,14 +302,14 @@ index f41a005..22753ee 100644
$Q echo "[UnInstall]"
- $Q rm -f $(DESTDIR)$(PREFIX)/bin/gpio
+ $Q rm -f $(BIN_DIR)/gpio
- $Q rm -f $(DESTDIR)$(PREFIX)/man/man1/gpio.1
+ $Q rm -f $(DESTDIR)$(PREFIX)/share/man/man1/gpio.1
.PHONY: depend
diff --git a/wiringPi/Makefile b/wiringPi/Makefile
-index e1868b9..750d290 100644
+index 287fa58..670a6db 100644
--- a/wiringPi/Makefile
+++ b/wiringPi/Makefile
-@@ -25,21 +25,25 @@ VERSION=$(shell cat ../VERSION)
+@@ -25,22 +25,26 @@ VERSION=$(shell cat ../VERSION)
DESTDIR?=/usr
PREFIX?=/local
@@ -335,11 +338,13 @@ index e1868b9..750d290 100644
+INCLUDE ?= -I.
DEFS = -D_GNU_SOURCE
-CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Wextra -Winline $(INCLUDE) -pipe -fPIC
+-#CFLAGS = $(DEBUG) $(DEFS) -Wformat=2 -Wall -Wextra -Wconversion -Winline $(INCLUDE) -pipe -fPIC
+CFLAGS = $(DEBUG) $(DEFS) $(INCLUDE) -Wformat=2 -Wall -Wextra -Winline -pipe -fPIC
++#CFLAGS = $(DEBUG) $(DEFS) $(INCLUDE) -Wformat=2 -Wall -Wextra -Wconversion -Winline -pipe -fPIC
LIBS = -lm -lpthread -lrt -lcrypt
-@@ -78,17 +82,17 @@ $(STATIC): $(OBJ)
+@@ -75,17 +79,17 @@ static:
$(DYNAMIC): $(OBJ)
$Q echo "[Link (Dynamic)]"
@@ -360,7 +365,7 @@ index e1868b9..750d290 100644
.PHONY: tags
tags: $(SRC)
-@@ -99,22 +103,22 @@ tags: $(SRC)
+@@ -96,13 +100,13 @@ tags: $(SRC)
.PHONY: install
install: $(DYNAMIC)
$Q echo "[Install Headers]"
@@ -378,22 +383,9 @@ index e1868b9..750d290 100644
+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so
+ $Q ln -sf $(DYNAMIC) $(LIB_DIR)/$(BASE_NAME).so.$(DYN_VERS_MAJ)
- .PHONY: install-static
- install-static: $(STATIC)
- $Q echo "[Install Headers]"
-- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/include
-- $Q install -m 0644 $(HEADERS) $(DESTDIR)$(PREFIX)/include
-+ $Q install -m 0755 -d $(INCLUDE_DIR)
-+ $Q install -m 0644 $(HEADERS) $(INCLUDE_DIR)
- $Q echo "[Install Static Lib]"
-- $Q install -m 0755 -d $(DESTDIR)$(PREFIX)/lib
-- $Q install -m 0755 libwiringPi.a $(DESTDIR)$(PREFIX)/lib
-+ $Q install -m 0755 -d $(LIB_DIR)
-+ $Q install -m 0755 $(STATIC) $(LIB_DIR)
-
.PHONY: install-deb
install-deb: $(DYNAMIC)
-@@ -129,9 +133,11 @@ install-deb: $(DYNAMIC)
+@@ -117,9 +121,11 @@ install-deb: $(DYNAMIC)
.PHONY: uninstall
uninstall:
$Q echo "[UnInstall]"
diff --git a/meta-raspberrypi/recipes-devtools/wiringpi/wiringpi_git.bb b/meta-raspberrypi/recipes-devtools/wiringpi/wiringpi_git.bb
index f1b01dbe5..e78c58a29 100644
--- a/meta-raspberrypi/recipes-devtools/wiringpi/wiringpi_git.bb
+++ b/meta-raspberrypi/recipes-devtools/wiringpi/wiringpi_git.bb
@@ -4,8 +4,10 @@ SECTION = "devel/libs"
LICENSE = "LGPLv3+"
LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02"
-# tag 2.44
-SRCREV = "96344ff7125182989f98d3be8d111952a8f74e15"
+DEPENDS += "virtual/crypt"
+
+# tag 2.46
+SRCREV = "8d188fa0e00bb8c6ff6eddd07bf92857e9bd533a"
S = "${WORKDIR}/git"
diff --git a/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend b/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend
index 7692133b8..c152bd973 100644
--- a/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend
+++ b/meta-raspberrypi/recipes-graphics/eglinfo/eglinfo-fb_%.bbappend
@@ -1,2 +1,2 @@
EGLINFO_DEVICE_rpi = "raspberrypi"
-COMPATIBLE_HOST_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'null', '"(.*)"', d)}"
+COMPATIBLE_HOST_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', 'null', '(.*)', d)}"
diff --git a/meta-raspberrypi/recipes-graphics/kmscube/kmscube_%.bbappend b/meta-raspberrypi/recipes-graphics/kmscube/kmscube_%.bbappend
new file mode 100644
index 000000000..9343fb00f
--- /dev/null
+++ b/meta-raspberrypi/recipes-graphics/kmscube/kmscube_%.bbappend
@@ -0,0 +1,2 @@
+# userland driver EGL implementation does not have all needed bits for it so remove it from build
+COMPATIBLE_HOST_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '(.*)', 'null', d)}"
diff --git a/meta-raspberrypi/recipes-graphics/mesa/mesa-demos_%.bbappend b/meta-raspberrypi/recipes-graphics/mesa/mesa-demos_%.bbappend
new file mode 100644
index 000000000..c187ab9c1
--- /dev/null
+++ b/meta-raspberrypi/recipes-graphics/mesa/mesa-demos_%.bbappend
@@ -0,0 +1,2 @@
+# mesa-demos need libgles1 and userland driver does not have it
+COMPATIBLE_HOST_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '(.*)', 'null', d)}"
diff --git a/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend b/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend
index 52fe757a0..8152cc3ea 100644
--- a/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend
+++ b/meta-raspberrypi/recipes-graphics/mesa/mesa_%.bbappend
@@ -3,5 +3,5 @@
# as default. To state out clearly that Raspi needs dri3 and to avoid surprises
# in case oe-core changes this default, we set dri3 explicitly.
PACKAGECONFIG_append_rpi = " gallium ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)}"
-GALLIUMDRIVERS_rpi = "vc4"
+GALLIUMDRIVERS_append_rpi = ",vc4"
DRIDRIVERS_rpi = ""
diff --git a/meta-raspberrypi/recipes-graphics/piglit/piglit_%.bbappend b/meta-raspberrypi/recipes-graphics/piglit/piglit_%.bbappend
new file mode 100644
index 000000000..0503fd0c3
--- /dev/null
+++ b/meta-raspberrypi/recipes-graphics/piglit/piglit_%.bbappend
@@ -0,0 +1,5 @@
+# mesa-demos need libgles1 and userland driver does not have it so remove it from piglit rdeps
+RDEPENDS_${PN}_remove_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', 'mesa-demos', d)}"
+# it needs EGL >= 11 but userland says it provided version 10, remove it from build
+# | -- Requested 'egl >= 11.0' but version of EGL is 10
+COMPATIBLE_HOST_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '(.*)', 'null', d)}"
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch b/meta-raspberrypi/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch
index 933f279af..d6b2abb21 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch
@@ -1,7 +1,7 @@
-From 0a64dc61d3d7db69389157ae757203b4b3afdbfa Mon Sep 17 00:00:00 2001
+From 08d56c1174e27573ae8df2a7b9e6632afd0bfe86 Mon Sep 17 00:00:00 2001
From: Dom Cobley <dc4@broadcom.com>
Date: Tue, 9 Jul 2013 09:26:26 -0400
-Subject: [PATCH 01/16] Allow applications to set next resource handle
+Subject: [PATCH 01/18] Allow applications to set next resource handle
This patch adds provisions in userland to
let apps callers set the next rendereing dispmanx resource.
@@ -9,10 +9,10 @@ It's useful for implementing, say, a buffer carousel.
---
interface/khronos/common/khrn_client_rpc.h | 2 ++
interface/khronos/common/khrn_int_ids.h | 2 ++
- interface/khronos/egl/egl_client.c | 30 +++++++++++++++++++++++++++---
- interface/khronos/egl/egl_client_surface.c | 24 +++++++++++++++++++++++-
+ interface/khronos/egl/egl_client.c | 30 +++++++++++++++++++---
+ interface/khronos/egl/egl_client_surface.c | 24 ++++++++++++++++-
interface/khronos/egl/egl_client_surface.h | 3 ++-
- interface/khronos/egl/egl_int_impl.h | 5 +++--
+ interface/khronos/egl/egl_int_impl.h | 5 ++--
6 files changed, 59 insertions(+), 7 deletions(-)
diff --git a/interface/khronos/common/khrn_client_rpc.h b/interface/khronos/common/khrn_client_rpc.h
@@ -204,5 +204,5 @@ index 8a5734c..51b3580 100644
FN(void, eglIntGetColorData_impl, (EGL_SURFACE_ID_T s, KHRN_IMAGE_FORMAT_T format, uint32_t width, uint32_t height, int32_t stride, uint32_t y_offset, void *data))
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch b/meta-raspberrypi/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch
index 461350407..c41cde779 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch
@@ -1,7 +1,7 @@
-From 5608ec8002be8370e78c9dbb1e07cee4cfb18b58 Mon Sep 17 00:00:00 2001
+From da60a2a34a48e2b324fceae608964814488cc8fb Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Tue, 1 Oct 2013 13:19:20 +0200
-Subject: [PATCH 02/16] wayland: Add support for the Wayland winsys
+Subject: [PATCH 02/18] wayland: Add support for the Wayland winsys
* Adds EGL_WL_bind_wayland_display extension
* Adds wayland-egl library
@@ -16,38 +16,40 @@ a DispmanX display from the clients.
TODO: wl_dispmanx_server_buffer should probably be defined in a
private header that can be included from EGL and vc_* instead of in
vc_vchi_dispmanx.h
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- .gitignore | 1 +
- CMakeLists.txt | 11 +
- README.md | 4 +
- buildme | 10 +-
- .../linux/apps/raspicam/CMakeLists.txt | 2 +-
- interface/khronos/CMakeLists.txt | 53 ++++-
- interface/khronos/common/khrn_client.c | 15 ++
- interface/khronos/common/khrn_client.h | 10 +
- interface/khronos/common/khrn_client_mangle.h | 3 +
- interface/khronos/common/khrn_client_platform.h | 8 +
- interface/khronos/common/khrn_client_unmangle.h | 3 +
- .../common/linux/khrn_client_platform_linux.c | 115 ++++++++--
- interface/khronos/common/linux/khrn_wayland.c | 215 ++++++++++++++++++
- .../common/linux/khrn_wayland.h} | 46 +---
- interface/khronos/egl/egl_client.c | 92 +++++---
- interface/khronos/egl/egl_client_get_proc.c | 11 +
- interface/khronos/egl/egl_client_surface.c | 42 +++-
- interface/khronos/egl/egl_client_surface.h | 38 +++-
- interface/khronos/egl/egl_int_impl.h | 2 +-
- interface/khronos/ext/egl_wayland.c | 246 +++++++++++++++++++++
- interface/khronos/include/EGL/eglext.h | 23 ++
- interface/khronos/wayland-egl/wayland-egl-priv.h | 53 +++++
- interface/khronos/wayland-egl/wayland-egl.c | 59 +++++
- interface/khronos/wayland-egl/wayland-egl.pc.in | 10 +
- interface/vmcs_host/CMakeLists.txt | 21 +-
- interface/vmcs_host/vc_dispmanx.h | 10 +
- interface/vmcs_host/vc_vchi_dispmanx.c | 42 ++++
- interface/vmcs_host/vc_vchi_dispmanx.h | 15 ++
- interface/wayland/dispmanx.xml | 123 +++++++++++
- makefiles/cmake/Wayland.cmake | 72 ++++++
- 30 files changed, 1257 insertions(+), 98 deletions(-)
+ .gitignore | 1 +
+ CMakeLists.txt | 11 +
+ README.md | 4 +
+ buildme | 10 +-
+ .../linux/apps/raspicam/CMakeLists.txt | 2 +-
+ interface/khronos/CMakeLists.txt | 54 +++-
+ interface/khronos/common/khrn_client.c | 15 ++
+ interface/khronos/common/khrn_client.h | 10 +
+ interface/khronos/common/khrn_client_mangle.h | 3 +
+ .../khronos/common/khrn_client_platform.h | 8 +
+ .../khronos/common/khrn_client_unmangle.h | 3 +
+ .../common/linux/khrn_client_platform_linux.c | 115 +++++++-
+ interface/khronos/common/linux/khrn_wayland.c | 215 +++++++++++++++
+ .../common/linux/khrn_wayland.h} | 46 +---
+ interface/khronos/egl/egl_client.c | 92 +++++--
+ interface/khronos/egl/egl_client_get_proc.c | 11 +
+ interface/khronos/egl/egl_client_surface.c | 42 ++-
+ interface/khronos/egl/egl_client_surface.h | 38 ++-
+ interface/khronos/egl/egl_int_impl.h | 2 +-
+ interface/khronos/ext/egl_wayland.c | 246 ++++++++++++++++++
+ interface/khronos/include/EGL/eglext.h | 23 ++
+ .../khronos/wayland-egl/wayland-egl-priv.h | 53 ++++
+ interface/khronos/wayland-egl/wayland-egl.c | 59 +++++
+ .../khronos/wayland-egl/wayland-egl.pc.in | 10 +
+ interface/vmcs_host/CMakeLists.txt | 21 +-
+ interface/vmcs_host/vc_dispmanx.h | 10 +
+ interface/vmcs_host/vc_vchi_dispmanx.c | 42 +++
+ interface/vmcs_host/vc_vchi_dispmanx.h | 15 ++
+ interface/wayland/dispmanx.xml | 123 +++++++++
+ makefiles/cmake/Wayland.cmake | 72 +++++
+ 30 files changed, 1257 insertions(+), 99 deletions(-)
create mode 100644 interface/khronos/common/linux/khrn_wayland.c
copy interface/{vmcs_host/vc_vchi_dispmanx.h => khronos/common/linux/khrn_wayland.h} (56%)
create mode 100644 interface/khronos/ext/egl_wayland.c
@@ -57,20 +59,20 @@ vc_vchi_dispmanx.h
create mode 100644 interface/wayland/dispmanx.xml
create mode 100644 makefiles/cmake/Wayland.cmake
-Index: git/.gitignore
-===================================================================
---- git.orig/.gitignore
-+++ git/.gitignore
+diff --git a/.gitignore b/.gitignore
+index 63570f1..1459436 100644
+--- a/.gitignore
++++ b/.gitignore
@@ -30,3 +30,4 @@ build/
*.pts
*.ppm
*.mkv
+*~
-Index: git/CMakeLists.txt
-===================================================================
---- git.orig/CMakeLists.txt
-+++ git/CMakeLists.txt
-@@ -24,6 +24,17 @@ include(makefiles/cmake/global_settings.
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index cfc8ae5..673a5ad 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -24,6 +24,17 @@ include(makefiles/cmake/global_settings.cmake)
include(makefiles/cmake/arm-linux.cmake)
include(makefiles/cmake/vmcs.cmake)
@@ -88,11 +90,11 @@ Index: git/CMakeLists.txt
enable_language(ASM)
# Global include paths
-Index: git/README.md
-===================================================================
---- git.orig/README.md
-+++ git/README.md
-@@ -6,3 +6,7 @@ Use buildme to build. It requires cmake
+diff --git a/README.md b/README.md
+index 94b93b8..50b90b1 100644
+--- a/README.md
++++ b/README.md
+@@ -6,3 +6,7 @@ Use buildme to build. It requires cmake to be installed and an arm cross compile
https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian
Note that this repository does not contain the source for the edid_parser and vcdbg binaries due to licensing restrictions.
@@ -100,10 +102,10 @@ Index: git/README.md
+To build support for the Wayland winsys in EGL, execute the buildme script like this:
+
+$ BUILD_WAYLAND=1 ./buildme.
-Index: git/buildme
-===================================================================
---- git.orig/buildme
-+++ git/buildme
+diff --git a/buildme b/buildme
+index b8fd440..a780bb6 100755
+--- a/buildme
++++ b/buildme
@@ -8,6 +8,10 @@ fi
BUILDSUBDIR=`echo $BUILDTYPE | tr '[A-Z]' '[a-z]'`;
@@ -130,23 +132,23 @@ Index: git/buildme
make -j `nproc`
if [ "$1" != "" ]; then
-Index: git/host_applications/linux/apps/raspicam/CMakeLists.txt
-===================================================================
---- git.orig/host_applications/linux/apps/raspicam/CMakeLists.txt
-+++ git/host_applications/linux/apps/raspicam/CMakeLists.txt
-@@ -28,7 +28,7 @@ add_executable(raspividyuv ${COMMON_SOU
+diff --git a/host_applications/linux/apps/raspicam/CMakeLists.txt b/host_applications/linux/apps/raspicam/CMakeLists.txt
+index 42636e8..d47ad55 100644
+--- a/host_applications/linux/apps/raspicam/CMakeLists.txt
++++ b/host_applications/linux/apps/raspicam/CMakeLists.txt
+@@ -33,7 +33,7 @@ add_executable(raspividyuv ${COMMON_SOURCES} RaspiVidYUV.c)
set (MMAL_LIBS mmal_core mmal_util mmal_vc_client)
--target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m)
-+target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES})
+-target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m dl)
++target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m dl ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES})
target_link_libraries(raspiyuv ${MMAL_LIBS} vcos bcm_host)
target_link_libraries(raspivid ${MMAL_LIBS} vcos bcm_host)
target_link_libraries(raspividyuv ${MMAL_LIBS} vcos bcm_host)
-Index: git/interface/khronos/CMakeLists.txt
-===================================================================
---- git.orig/interface/khronos/CMakeLists.txt
-+++ git/interface/khronos/CMakeLists.txt
+diff --git a/interface/khronos/CMakeLists.txt b/interface/khronos/CMakeLists.txt
+index 9ad615b..95c0e11 100644
+--- a/interface/khronos/CMakeLists.txt
++++ b/interface/khronos/CMakeLists.txt
@@ -6,6 +6,12 @@
# have quite a few circular dependencies, and so the only way
# to make it work seems to be to have everything static.
@@ -216,7 +218,7 @@ Index: git/interface/khronos/CMakeLists.txt
# TODO do we need EGL_static and GLESv2_static now that khrn_static exists?
add_library(EGL_static STATIC ${EGL_SOURCE})
add_library(GLESv2_static STATIC ${GLES_SOURCE})
-@@ -72,8 +121,7 @@ include_directories (../../host_applicat
+@@ -72,8 +121,7 @@ include_directories (../../host_applications/linux/libs/sm )
set(VCSM_LIBS vcsm)
add_definitions(-DKHRONOS_HAVE_VCSM)
endif()
@@ -226,7 +228,7 @@ Index: git/interface/khronos/CMakeLists.txt
target_link_libraries(GLESv2 EGL khrn_client vcos)
target_link_libraries(WFC EGL)
target_link_libraries(OpenVG EGL)
-@@ -87,7 +135,7 @@ add_library(brcmGLESv2 ${SHARED} ${GLES_
+@@ -87,7 +135,7 @@ add_library(brcmGLESv2 ${SHARED} ${GLES_SOURCE})
add_library(brcmOpenVG ${SHARED} ${VG_SOURCE})
add_library(brcmWFC ${SHARED} ${WFC_SOURCE})
@@ -235,11 +237,11 @@ Index: git/interface/khronos/CMakeLists.txt
target_link_libraries(brcmGLESv2 brcmEGL khrn_client vcos)
target_link_libraries(brcmWFC brcmEGL)
target_link_libraries(brcmOpenVG brcmEGL)
-Index: git/interface/khronos/common/khrn_client.c
-===================================================================
---- git.orig/interface/khronos/common/khrn_client.c
-+++ git/interface/khronos/common/khrn_client.c
-@@ -54,6 +54,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
+diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c
+index ef4babd..d7e798e 100644
+--- a/interface/khronos/common/khrn_client.c
++++ b/interface/khronos/common/khrn_client.c
+@@ -54,6 +54,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "applications/vmcs/khronos/khronos_server.h"
#endif
@@ -250,7 +252,7 @@ Index: git/interface/khronos/common/khrn_client.c
VCOS_LOG_CAT_T khrn_client_log = VCOS_LOG_INIT("khrn_client", VCOS_LOG_WARN);
/*
-@@ -142,6 +146,10 @@ void client_try_unload_server(CLIENT_PRO
+@@ -142,6 +146,10 @@ void client_try_unload_server(CLIENT_PROCESS_STATE_T *process)
bool client_process_state_init(CLIENT_PROCESS_STATE_T *process)
{
if (!process->inited) {
@@ -261,7 +263,7 @@ Index: git/interface/khronos/common/khrn_client.c
if (!khrn_pointer_map_init(&process->contexts, 64))
return false;
-@@ -194,6 +202,13 @@ bool client_process_state_init(CLIENT_PR
+@@ -194,6 +202,13 @@ bool client_process_state_init(CLIENT_PROCESS_STATE_T *process)
}
#endif
@@ -275,10 +277,10 @@ Index: git/interface/khronos/common/khrn_client.c
process->inited = true;
}
-Index: git/interface/khronos/common/khrn_client.h
-===================================================================
---- git.orig/interface/khronos/common/khrn_client.h
-+++ git/interface/khronos/common/khrn_client.h
+diff --git a/interface/khronos/common/khrn_client.h b/interface/khronos/common/khrn_client.h
+index 804039b..615f7b4 100644
+--- a/interface/khronos/common/khrn_client.h
++++ b/interface/khronos/common/khrn_client.h
@@ -310,6 +310,16 @@ struct CLIENT_PROCESS_STATE {
#ifdef RPC_LIBRARY
KHRONOS_SERVER_CONNECTION_T khrn_connection;
@@ -296,11 +298,11 @@ Index: git/interface/khronos/common/khrn_client.h
};
extern bool client_process_state_init(CLIENT_PROCESS_STATE_T *process);
-Index: git/interface/khronos/common/khrn_client_mangle.h
-===================================================================
---- git.orig/interface/khronos/common/khrn_client_mangle.h
-+++ git/interface/khronos/common/khrn_client_mangle.h
-@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
+diff --git a/interface/khronos/common/khrn_client_mangle.h b/interface/khronos/common/khrn_client_mangle.h
+index b3c04f4..b7b21c5 100644
+--- a/interface/khronos/common/khrn_client_mangle.h
++++ b/interface/khronos/common/khrn_client_mangle.h
+@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define eglReleaseGlobalImageBRCM mangled_eglReleaseGlobalImageBRCM
#define eglInitGlobalImageBRCM mangled_eglInitGlobalImageBRCM
#define eglTermGlobalImageBRCM mangled_eglTermGlobalImageBRCM
@@ -310,11 +312,11 @@ Index: git/interface/khronos/common/khrn_client_mangle.h
/* OpenGL ES 1.1 and 2.0 functions */
-Index: git/interface/khronos/common/khrn_client_platform.h
-===================================================================
---- git.orig/interface/khronos/common/khrn_client_platform.h
-+++ git/interface/khronos/common/khrn_client_platform.h
-@@ -48,6 +48,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
+diff --git a/interface/khronos/common/khrn_client_platform.h b/interface/khronos/common/khrn_client_platform.h
+index 1c9da3a..715c67e 100644
+--- a/interface/khronos/common/khrn_client_platform.h
++++ b/interface/khronos/common/khrn_client_platform.h
+@@ -48,6 +48,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "interface/khronos/common/vcos/khrn_client_platform_filler_vcos.h"
#endif
@@ -334,11 +336,11 @@ Index: git/interface/khronos/common/khrn_client_platform.h
+#endif
+
#endif // KHRN_CLIENT_PLATFORM_H
-Index: git/interface/khronos/common/khrn_client_unmangle.h
-===================================================================
---- git.orig/interface/khronos/common/khrn_client_unmangle.h
-+++ git/interface/khronos/common/khrn_client_unmangle.h
-@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
+diff --git a/interface/khronos/common/khrn_client_unmangle.h b/interface/khronos/common/khrn_client_unmangle.h
+index 4f3ce49..84f6ec0 100644
+--- a/interface/khronos/common/khrn_client_unmangle.h
++++ b/interface/khronos/common/khrn_client_unmangle.h
+@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#undef eglReleaseGlobalImageBRCM
#undef eglInitGlobalImageBRCM
#undef eglTermGlobalImageBRCM
@@ -348,11 +350,11 @@ Index: git/interface/khronos/common/khrn_client_unmangle.h
/* OpenGL ES 1.1 and 2.0 functions */
-Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
-===================================================================
---- git.orig/interface/khronos/common/linux/khrn_client_platform_linux.c
-+++ git/interface/khronos/common/linux/khrn_client_platform_linux.c
-@@ -37,6 +37,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
+diff --git a/interface/khronos/common/linux/khrn_client_platform_linux.c b/interface/khronos/common/linux/khrn_client_platform_linux.c
+index 710d20f..50d60a6 100644
+--- a/interface/khronos/common/linux/khrn_client_platform_linux.c
++++ b/interface/khronos/common/linux/khrn_client_platform_linux.c
+@@ -37,6 +37,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "X11/Xlib.h"
#endif
@@ -364,7 +366,7 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
extern VCOS_LOG_CAT_T khrn_client_log;
extern void vc_vchi_khronos_init();
-@@ -464,14 +469,37 @@ EGLDisplay khrn_platform_set_display_id(
+@@ -464,13 +469,36 @@ EGLDisplay khrn_platform_set_display_id(EGLNativeDisplayType display_id)
return EGL_NO_DISPLAY;
}
#else
@@ -392,19 +394,18 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
+#endif
+ return EGL_NO_DISPLAY;
+ }
-+}
+ }
+
+#ifdef BUILD_WAYLAND
+struct wl_display *khrn_platform_get_wl_display()
+{
+ return hacky_display;
- }
- #endif
++}
+#endif
+ #endif
#ifdef WANT_X
- static void dump_hierarchy(Window w, Window thisw, Window look, int level)
-@@ -805,22 +833,81 @@ static EGL_DISPMANX_WINDOW_T *check_defa
+@@ -805,22 +833,81 @@ static EGL_DISPMANX_WINDOW_T *check_default(EGLNativeWindowType win)
void platform_get_dimensions(EGLDisplay dpy, EGLNativeWindowType win,
uint32_t *width, uint32_t *height, uint32_t *swapchain_count)
{
@@ -435,8 +436,8 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
+#ifdef BUILD_WAYLAND
+ }
+#endif
-+}
-+
+ }
+
+#ifdef BUILD_WAYLAND
+static DISPMANX_ELEMENT_HANDLE_T create_dummy_element()
+{
@@ -467,9 +468,9 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
+ vc_dispmanx_display_close(display);
+
+ return element;
- }
++}
+#endif
-
++
uint32_t platform_get_handle(EGLDisplay dpy, EGLNativeWindowType win)
{
- EGL_DISPMANX_WINDOW_T *dwin = check_default(win);
@@ -498,10 +499,11 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
}
#endif
-Index: git/interface/khronos/common/linux/khrn_wayland.c
-===================================================================
+diff --git a/interface/khronos/common/linux/khrn_wayland.c b/interface/khronos/common/linux/khrn_wayland.c
+new file mode 100644
+index 0000000..0e1b9e7
--- /dev/null
-+++ git/interface/khronos/common/linux/khrn_wayland.c
++++ b/interface/khronos/common/linux/khrn_wayland.c
@@ -0,0 +1,215 @@
+/*
+Copyright (c) 2013, Raspberry Pi Foundation
@@ -718,72 +720,74 @@ Index: git/interface/khronos/common/linux/khrn_wayland.c
+
+ return wl_dispmanx_client_buffer;
+}
-Index: git/interface/vmcs_host/vc_vchi_dispmanx.h
-===================================================================
---- git.orig/interface/vmcs_host/vc_vchi_dispmanx.h
-+++ git/interface/vmcs_host/vc_vchi_dispmanx.h
-@@ -66,4 +66,19 @@ typedef struct {
- #define ELEMENT_CHANGE_MASK_RESOURCE (1<<4)
- #define ELEMENT_CHANGE_TRANSFORM (1<<5)
-
-+#ifdef BUILD_WAYLAND
-+/* XXX: This should be in a private header that can be included from EGL and vc_* */
-+#include <wayland-server.h>
-+#include "interface/vmcs_host/wayland-dispmanx-server-protocol.h"
-+struct wl_dispmanx_server_buffer {
-+ struct wl_resource *resource;
-+ struct wl_dispmanx *dispmanx;
-+ enum wl_dispmanx_format format;
-+ DISPMANX_RESOURCE_HANDLE_T handle;
-+ int32_t width;
-+ int32_t height;
-+ int in_use;
-+};
-+#endif
-+
- #endif
-Index: git/interface/khronos/common/linux/khrn_wayland.h
-===================================================================
---- /dev/null
-+++ git/interface/khronos/common/linux/khrn_wayland.h
-@@ -0,0 +1,33 @@
-+/*
+diff --git a/interface/vmcs_host/vc_vchi_dispmanx.h b/interface/khronos/common/linux/khrn_wayland.h
+similarity index 56%
+copy from interface/vmcs_host/vc_vchi_dispmanx.h
+copy to interface/khronos/common/linux/khrn_wayland.h
+index b723b76..b9bf08c 100644
+--- a/interface/vmcs_host/vc_vchi_dispmanx.h
++++ b/interface/khronos/common/linux/khrn_wayland.h
+@@ -1,5 +1,5 @@
+ /*
+-Copyright (c) 2012, Broadcom Europe Ltd
+Copyright (c) 2013, Raspberry Pi Foundation
-+All rights reserved.
-+
-+Redistribution and use in source and binary forms, with or without
-+modification, are permitted provided that the following conditions are met:
-+ * Redistributions of source code must retain the above copyright
-+ notice, this list of conditions and the following disclaimer.
-+ * Redistributions in binary form must reproduce the above copyright
-+ notice, this list of conditions and the following disclaimer in the
-+ documentation and/or other materials provided with the distribution.
-+ * Neither the name of the copyright holder nor the
-+ names of its contributors may be used to endorse or promote products
-+ derived from this software without specific prior written permission.
-+
-+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
-+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+*/
-+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+@@ -25,45 +25,9 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#ifndef VC_VCHI_DISPMANX_H
+-#define VC_VCHI_DISPMANX_H
+#include "interface/khronos/common/khrn_client.h"
-+
+
+-#include "interface/peer/vc_vchi_dispmanx_common.h"
+int init_process_wayland(CLIENT_PROCESS_STATE_T *process);
+int do_wl_roundtrip();
-+
+
+-#define VC_NUM_HOST_RESOURCES 64
+-#define DISPMANX_MSGFIFO_SIZE 1024
+-#define DISPMANX_CLIENT_NAME MAKE_FOURCC("DISP")
+-#define DISPMANX_NOTIFY_NAME MAKE_FOURCC("UPDH")
+-
+-//Or with command to indicate we don't need a response
+-#define DISPMANX_NO_REPLY_MASK (1<<31)
+-
+-typedef struct {
+- char description[32];
+- uint32_t width;
+- uint32_t height;
+- uint32_t aspect_pixwidth;
+- uint32_t aspect_pixheight;
+- uint32_t fieldrate_num;
+- uint32_t fieldrate_denom;
+- uint32_t fields_per_frame;
+- uint32_t transform;
+-} GET_MODES_DATA_T;
+-
+-typedef struct {
+- int32_t response;
+- uint32_t width;
+- uint32_t height;
+- uint32_t transform;
+- uint32_t input_format;
+-} GET_INFO_DATA_T;
+-
+-//Attributes changes flag mask
+-#define ELEMENT_CHANGE_LAYER (1<<0)
+-#define ELEMENT_CHANGE_OPACITY (1<<1)
+-#define ELEMENT_CHANGE_DEST_RECT (1<<2)
+-#define ELEMENT_CHANGE_SRC_RECT (1<<3)
+-#define ELEMENT_CHANGE_MASK_RESOURCE (1<<4)
+-#define ELEMENT_CHANGE_TRANSFORM (1<<5)
+-
+-#endif
+struct wl_dispmanx_client_buffer *allocate_wl_buffer(struct wl_egl_window *window, KHRN_IMAGE_FORMAT_T color);
-Index: git/interface/khronos/egl/egl_client.c
-===================================================================
---- git.orig/interface/khronos/egl/egl_client.c
-+++ git/interface/khronos/egl/egl_client.c
+diff --git a/interface/khronos/egl/egl_client.c b/interface/khronos/egl/egl_client.c
+index b8bb374..03fe67b 100644
+--- a/interface/khronos/egl/egl_client.c
++++ b/interface/khronos/egl/egl_client.c
@@ -153,6 +153,10 @@ by an attribute value"
#include <stdlib.h>
#include <string.h>
@@ -795,7 +799,7 @@ Index: git/interface/khronos/egl/egl_client.c
#include "interface/khronos/egl/egl_client_cr.c"
-@@ -162,17 +166,6 @@ static void egl_current_release(CLIENT_P
+@@ -162,17 +166,6 @@ static void egl_current_release(CLIENT_PROCESS_STATE_T *process, EGL_CURRENT_T *
void egl_gl_flush_callback(bool wait);
void egl_vg_flush_callback(bool wait);
@@ -813,17 +817,17 @@ Index: git/interface/khronos/egl/egl_client.c
/*
TODO: do an RPC call to make sure the Khronos vll is loaded (and that it stays loaded until eglTerminate)
Also affects global image (and possibly others?)
-@@ -451,6 +444,9 @@ EGLAPI const char EGLAPIENTRY * eglQuery
+@@ -450,6 +443,9 @@ EGLAPI const char EGLAPIENTRY * eglQueryString(EGLDisplay dpy, EGLint name)
+ #ifdef EGL_KHR_fence_sync
"EGL_KHR_fence_sync "
#endif
- #endif
++#endif
+#if EGL_WL_bind_wayland_display
+ "EGL_WL_bind_wayland_display "
-+#endif
+ #endif
;
break;
- case EGL_VENDOR:
-@@ -655,8 +651,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateW
+@@ -655,8 +651,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig c
false,
EGL_NO_TEXTURE,
EGL_NO_TEXTURE,
@@ -833,7 +837,7 @@ Index: git/interface/khronos/egl/egl_client.c
if (surface) {
if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
-@@ -901,7 +896,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateP
+@@ -901,7 +896,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig
mipmap_texture,
texture_format,
texture_target,
@@ -842,7 +846,7 @@ Index: git/interface/khronos/egl/egl_client.c
if (surface) {
if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
-@@ -1043,7 +1038,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateP
+@@ -1043,7 +1038,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig c
false,
EGL_NO_TEXTURE,
EGL_NO_TEXTURE,
@@ -851,7 +855,7 @@ Index: git/interface/khronos/egl/egl_client.c
if (surface) {
if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
-@@ -2245,6 +2240,9 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuf
+@@ -2245,6 +2240,9 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
CLIENT_THREAD_STATE_T *thread;
CLIENT_PROCESS_STATE_T *process;
EGLBoolean result;
@@ -861,7 +865,7 @@ Index: git/interface/khronos/egl/egl_client.c
vcos_log_trace("eglSwapBuffers start. dpy=%d. surf=%d.", (int)dpy, (int)surf);
-@@ -2315,18 +2313,58 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuf
+@@ -2315,18 +2313,58 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
vcos_log_trace("eglSwapBuffers server call");
@@ -932,11 +936,11 @@ Index: git/interface/khronos/egl/egl_client.c
RPC_CALL6(eglIntSwapBuffers_impl,
thread,
EGLINTSWAPBUFFERS_ID,
-Index: git/interface/khronos/egl/egl_client_get_proc.c
-===================================================================
---- git.orig/interface/khronos/egl/egl_client_get_proc.c
-+++ git/interface/khronos/egl/egl_client_get_proc.c
-@@ -254,6 +254,17 @@ EGLAPI void EGLAPIENTRY (* eglGetProcAdd
+diff --git a/interface/khronos/egl/egl_client_get_proc.c b/interface/khronos/egl/egl_client_get_proc.c
+index 4cfa9ff..6a715af 100644
+--- a/interface/khronos/egl/egl_client_get_proc.c
++++ b/interface/khronos/egl/egl_client_get_proc.c
+@@ -254,6 +254,17 @@ EGLAPI void EGLAPIENTRY (* eglGetProcAddress(const char *procname))(void)
return (void(*)(void))eglQueryGlobalImageBRCM;
#endif
@@ -954,11 +958,11 @@ Index: git/interface/khronos/egl/egl_client_get_proc.c
return (void(*)(void)) NULL;
}
-Index: git/interface/khronos/egl/egl_client_surface.c
-===================================================================
---- git.orig/interface/khronos/egl/egl_client_surface.c
-+++ git/interface/khronos/egl/egl_client_surface.c
-@@ -46,6 +46,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
+diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c
+index 128325e..42350bf 100644
+--- a/interface/khronos/egl/egl_client_surface.c
++++ b/interface/khronos/egl/egl_client_surface.c
+@@ -46,6 +46,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "interface/khronos/egl/egl_int_impl.h"
#endif
@@ -1032,7 +1036,7 @@ Index: git/interface/khronos/egl/egl_client_surface.c
RPC_CALL15_OUT_CTRL(eglIntCreateSurface_impl,
thread,
EGLINTCREATESURFACE_ID,
-@@ -663,6 +685,18 @@ void egl_surface_free(EGL_SURFACE_T *sur
+@@ -663,6 +685,18 @@ void egl_surface_free(EGL_SURFACE_T *surface)
if( surface->type == WINDOW ) {
vcos_log_trace("egl_surface_free: calling platform_destroy_winhandle...");
platform_destroy_winhandle( surface->win, surface->internal_handle );
@@ -1051,10 +1055,10 @@ Index: git/interface/khronos/egl/egl_client_surface.c
}
/* return value ignored -- read performed to ensure blocking. we want this to
* block so clients can safely destroy the surface's window as soon as the
-Index: git/interface/khronos/egl/egl_client_surface.h
-===================================================================
---- git.orig/interface/khronos/egl/egl_client_surface.h
-+++ git/interface/khronos/egl/egl_client_surface.h
+diff --git a/interface/khronos/egl/egl_client_surface.h b/interface/khronos/egl/egl_client_surface.h
+index b5bf70a..e328b77 100644
+--- a/interface/khronos/egl/egl_client_surface.h
++++ b/interface/khronos/egl/egl_client_surface.h
@@ -288,6 +288,41 @@ typedef struct {
type == PIXMAP
*/
@@ -1097,7 +1101,7 @@ Index: git/interface/khronos/egl/egl_client_surface.h
} EGL_SURFACE_T;
extern bool egl_surface_check_attribs(
-@@ -322,8 +357,7 @@ extern EGL_SURFACE_T *egl_surface_create
+@@ -322,8 +357,7 @@ extern EGL_SURFACE_T *egl_surface_create(
EGLenum texture_format,
EGLenum texture_target,
EGLNativePixmapType pixmap,
@@ -1107,10 +1111,10 @@ Index: git/interface/khronos/egl/egl_client_surface.h
extern EGL_SURFACE_T *egl_surface_from_vg_image(
VGImage vg_handle,
EGLSurface name,
-Index: git/interface/khronos/egl/egl_int_impl.h
-===================================================================
---- git.orig/interface/khronos/egl/egl_int_impl.h
-+++ git/interface/khronos/egl/egl_int_impl.h
+diff --git a/interface/khronos/egl/egl_int_impl.h b/interface/khronos/egl/egl_int_impl.h
+index 51b3580..6863a3b 100644
+--- a/interface/khronos/egl/egl_int_impl.h
++++ b/interface/khronos/egl/egl_int_impl.h
@@ -57,7 +57,7 @@ FN(int, eglIntCreateSurface_impl, (
uint32_t sem,
uint32_t type,
@@ -1120,10 +1124,11 @@ Index: git/interface/khronos/egl/egl_int_impl.h
FN(int, eglIntCreatePbufferFromVGImage_impl, (
VGImage vg_handle,
-Index: git/interface/khronos/ext/egl_wayland.c
-===================================================================
+diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c
+new file mode 100644
+index 0000000..5730743
--- /dev/null
-+++ git/interface/khronos/ext/egl_wayland.c
++++ b/interface/khronos/ext/egl_wayland.c
@@ -0,0 +1,246 @@
+/*
+Copyright (c) 2013, Raspberry Pi Foundation
@@ -1371,11 +1376,11 @@ Index: git/interface/khronos/ext/egl_wayland.c
+
+ return EGL_FALSE;
+}
-Index: git/interface/khronos/include/EGL/eglext.h
-===================================================================
---- git.orig/interface/khronos/include/EGL/eglext.h
-+++ git/interface/khronos/include/EGL/eglext.h
-@@ -191,6 +191,29 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLG
+diff --git a/interface/khronos/include/EGL/eglext.h b/interface/khronos/include/EGL/eglext.h
+index 89a3369..d7e5ba7 100755
+--- a/interface/khronos/include/EGL/eglext.h
++++ b/interface/khronos/include/EGL/eglext.h
+@@ -191,6 +191,29 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EG
#endif
@@ -1405,10 +1410,11 @@ Index: git/interface/khronos/include/EGL/eglext.h
#ifdef __cplusplus
}
#endif
-Index: git/interface/khronos/wayland-egl/wayland-egl-priv.h
-===================================================================
+diff --git a/interface/khronos/wayland-egl/wayland-egl-priv.h b/interface/khronos/wayland-egl/wayland-egl-priv.h
+new file mode 100644
+index 0000000..8e38d36
--- /dev/null
-+++ git/interface/khronos/wayland-egl/wayland-egl-priv.h
++++ b/interface/khronos/wayland-egl/wayland-egl-priv.h
@@ -0,0 +1,53 @@
+/* Copied from Mesa */
+
@@ -1463,10 +1469,11 @@ Index: git/interface/khronos/wayland-egl/wayland-egl-priv.h
+#endif
+
+#endif
-Index: git/interface/khronos/wayland-egl/wayland-egl.c
-===================================================================
+diff --git a/interface/khronos/wayland-egl/wayland-egl.c b/interface/khronos/wayland-egl/wayland-egl.c
+new file mode 100644
+index 0000000..b8f050b
--- /dev/null
-+++ git/interface/khronos/wayland-egl/wayland-egl.c
++++ b/interface/khronos/wayland-egl/wayland-egl.c
@@ -0,0 +1,59 @@
+/* Copied from Mesa */
+
@@ -1527,10 +1534,11 @@ Index: git/interface/khronos/wayland-egl/wayland-egl.c
+ if (height)
+ *height = egl_window->attached_height;
+}
-Index: git/interface/khronos/wayland-egl/wayland-egl.pc.in
-===================================================================
+diff --git a/interface/khronos/wayland-egl/wayland-egl.pc.in b/interface/khronos/wayland-egl/wayland-egl.pc.in
+new file mode 100644
+index 0000000..8bafc15
--- /dev/null
-+++ git/interface/khronos/wayland-egl/wayland-egl.pc.in
++++ b/interface/khronos/wayland-egl/wayland-egl.pc.in
@@ -0,0 +1,10 @@
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=${prefix}
@@ -1542,10 +1550,10 @@ Index: git/interface/khronos/wayland-egl/wayland-egl.pc.in
+Version: @PROJECT_APIVER@
+Libs: -L${libdir} -lwayland-egl
+Cflags: -I${includedir}
-Index: git/interface/vmcs_host/CMakeLists.txt
-===================================================================
---- git.orig/interface/vmcs_host/CMakeLists.txt
-+++ git/interface/vmcs_host/CMakeLists.txt
+diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt
+index fde18da..6718215 100755
+--- a/interface/vmcs_host/CMakeLists.txt
++++ b/interface/vmcs_host/CMakeLists.txt
@@ -9,13 +9,24 @@ add_definitions(-fno-strict-aliasing)
include_directories(${VMCS_TARGET}/vcfiled)
@@ -1576,11 +1584,11 @@ Index: git/interface/vmcs_host/CMakeLists.txt
#add_library(bufman vc_vchi_bufman.c )
# OpenMAX/IL component service
-Index: git/interface/vmcs_host/vc_dispmanx.h
-===================================================================
---- git.orig/interface/vmcs_host/vc_dispmanx.h
-+++ git/interface/vmcs_host/vc_dispmanx.h
-@@ -39,6 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
+diff --git a/interface/vmcs_host/vc_dispmanx.h b/interface/vmcs_host/vc_dispmanx.h
+index 37fdae1..fe3619a 100755
+--- a/interface/vmcs_host/vc_dispmanx.h
++++ b/interface/vmcs_host/vc_dispmanx.h
+@@ -39,6 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifdef __cplusplus
extern "C" {
#endif
@@ -1592,7 +1600,7 @@ Index: git/interface/vmcs_host/vc_dispmanx.h
// Same function as above, to aid migration of code.
VCHPRE_ int VCHPOST_ vc_dispman_init( void );
// Stop the service from being used
-@@ -135,6 +140,11 @@ VCHPRE_ int VCHPOST_ vc_dispmanx_resourc
+@@ -135,6 +140,11 @@ VCHPRE_ int VCHPOST_ vc_dispmanx_resource_set_palette( DISPMANX_RESOURCE_HANDLE_
// Start triggering callbacks synced to vsync
VCHPRE_ int VCHPOST_ vc_dispmanx_vsync_callback( DISPMANX_DISPLAY_HANDLE_T display, DISPMANX_CALLBACK_FUNC_T cb_func, void *cb_arg );
@@ -1604,11 +1612,11 @@ Index: git/interface/vmcs_host/vc_dispmanx.h
#ifdef __cplusplus
}
#endif
-Index: git/interface/vmcs_host/vc_vchi_dispmanx.c
-===================================================================
---- git.orig/interface/vmcs_host/vc_vchi_dispmanx.c
-+++ git/interface/vmcs_host/vc_vchi_dispmanx.c
-@@ -1319,3 +1319,45 @@ static void *dispmanx_notify_func( void
+diff --git a/interface/vmcs_host/vc_vchi_dispmanx.c b/interface/vmcs_host/vc_vchi_dispmanx.c
+index 7a6cdcd..eab146e 100755
+--- a/interface/vmcs_host/vc_vchi_dispmanx.c
++++ b/interface/vmcs_host/vc_vchi_dispmanx.c
+@@ -1319,3 +1319,45 @@ static void *dispmanx_notify_func( void *arg ) {
}
return 0;
}
@@ -1654,10 +1662,35 @@ Index: git/interface/vmcs_host/vc_vchi_dispmanx.c
+ buffer->in_use = in_use;
+}
+#endif
-Index: git/interface/wayland/dispmanx.xml
-===================================================================
+diff --git a/interface/vmcs_host/vc_vchi_dispmanx.h b/interface/vmcs_host/vc_vchi_dispmanx.h
+index b723b76..f0bae30 100644
+--- a/interface/vmcs_host/vc_vchi_dispmanx.h
++++ b/interface/vmcs_host/vc_vchi_dispmanx.h
+@@ -66,4 +66,19 @@ typedef struct {
+ #define ELEMENT_CHANGE_MASK_RESOURCE (1<<4)
+ #define ELEMENT_CHANGE_TRANSFORM (1<<5)
+
++#ifdef BUILD_WAYLAND
++/* XXX: This should be in a private header that can be included from EGL and vc_* */
++#include <wayland-server.h>
++#include "interface/vmcs_host/wayland-dispmanx-server-protocol.h"
++struct wl_dispmanx_server_buffer {
++ struct wl_resource *resource;
++ struct wl_dispmanx *dispmanx;
++ enum wl_dispmanx_format format;
++ DISPMANX_RESOURCE_HANDLE_T handle;
++ int32_t width;
++ int32_t height;
++ int in_use;
++};
++#endif
++
+ #endif
+diff --git a/interface/wayland/dispmanx.xml b/interface/wayland/dispmanx.xml
+new file mode 100644
+index 0000000..c18626d
--- /dev/null
-+++ git/interface/wayland/dispmanx.xml
++++ b/interface/wayland/dispmanx.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="dispmanx">
@@ -1782,10 +1815,11 @@ Index: git/interface/wayland/dispmanx.xml
+ </interface>
+
+</protocol>
-Index: git/makefiles/cmake/Wayland.cmake
-===================================================================
+diff --git a/makefiles/cmake/Wayland.cmake b/makefiles/cmake/Wayland.cmake
+new file mode 100644
+index 0000000..ad90d30
--- /dev/null
-+++ git/makefiles/cmake/Wayland.cmake
++++ b/makefiles/cmake/Wayland.cmake
@@ -0,0 +1,72 @@
+#=============================================================================
+# Copyright (C) 2012-2013 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
@@ -1859,3 +1893,6 @@ Index: git/makefiles/cmake/Wayland.cmake
+ list(APPEND ${_sources} "${_server_header}")
+ set(${_sources} ${${_sources}} PARENT_SCOPE)
+endfunction()
+--
+2.19.1
+
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch b/meta-raspberrypi/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch
index e3a0cf277..d83a9e502 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch
@@ -1,16 +1,16 @@
-From 20ac7c6af4e826b5c536b6a7c8b2d1d266ced81e Mon Sep 17 00:00:00 2001
+From 976cc9355fe18487cd84e313e76f397ab47a4bf8 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Tue, 1 Oct 2013 13:19:20 +0200
-Subject: [PATCH 03/16] wayland: Add Wayland example
+Subject: [PATCH 03/18] wayland: Add Wayland example
---
- .../linux/apps/hello_pi/CMakeLists.txt | 1 +
- .../apps/hello_pi/hello_wayland/CMakeLists.txt | 8 +
- .../apps/hello_pi/hello_wayland/Djenne_128_128.raw | 3 +
- .../linux/apps/hello_pi/hello_wayland/Makefile | 5 +
- .../hello_wayland/cube_texture_and_coords.h | 100 ++++
- .../linux/apps/hello_pi/hello_wayland/triangle.c | 666 +++++++++++++++++++++
- host_applications/linux/apps/hello_pi/rebuild.sh | 3 +-
+ .../linux/apps/hello_pi/CMakeLists.txt | 1 +
+ .../hello_pi/hello_wayland/CMakeLists.txt | 8 +
+ .../hello_pi/hello_wayland/Djenne_128_128.raw | 3 +
+ .../apps/hello_pi/hello_wayland/Makefile | 5 +
+ .../hello_wayland/cube_texture_and_coords.h | 100 +++
+ .../apps/hello_pi/hello_wayland/triangle.c | 666 ++++++++++++++++++
+ .../linux/apps/hello_pi/rebuild.sh | 3 +-
7 files changed, 785 insertions(+), 1 deletion(-)
create mode 100644 host_applications/linux/apps/hello_pi/hello_wayland/CMakeLists.txt
create mode 100644 host_applications/linux/apps/hello_pi/hello_wayland/Djenne_128_128.raw
@@ -862,5 +862,5 @@ index 8225dd5..0be6ce7 100755
-
+make -C hello_wayland
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch b/meta-raspberrypi/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch
index 713fc3e5b..a42aa144f 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch
@@ -1,7 +1,7 @@
-From f17879b691984b5c4950e4b94ebf102c78797ede Mon Sep 17 00:00:00 2001
+From c379bd2dc575256084d9e36fc11a347e20660130 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 10 Aug 2015 02:38:27 -0700
-Subject: [PATCH 04/16] wayland-egl: Add bcm_host to dependencies
+Subject: [PATCH 04/18] wayland-egl: Add bcm_host to dependencies
It uses headers like vcos_platform_types.h but does not
depend on module which should add the required include paths
@@ -24,5 +24,5 @@ index 8bafc15..fd259c9 100644
Libs: -L${libdir} -lwayland-egl
Cflags: -I${includedir}
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch b/meta-raspberrypi/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch
index 8d78333fa..bbaaddad9 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch
@@ -1,7 +1,7 @@
-From 0273b7b9d7a27d8fe7d3ad8680b799f997e75dca Mon Sep 17 00:00:00 2001
+From bd940c32878d401f311215270579ff513c2f3999 Mon Sep 17 00:00:00 2001
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Date: Sat, 24 Jan 2015 22:07:19 +0100
-Subject: [PATCH 05/16] interface: remove faulty assert() to make weston happy
+Subject: [PATCH 05/18] interface: remove faulty assert() to make weston happy
at runtime
This was removed after a discussion on IRC with the weston guys
@@ -25,5 +25,5 @@ index eab146e..29e0dee 100755
}
} else {
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch b/meta-raspberrypi/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch
index 43eb7f0b0..1a5e14f0e 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch
@@ -1,7 +1,7 @@
-From 0d678cd2042551cc4e26ec42fa3aba7c72d033b4 Mon Sep 17 00:00:00 2001
+From 466f28ce302f68ac39be750f4b55285791f43ab1 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:10:47 -0800
-Subject: [PATCH 06/16] zero-out wl buffers in egl_surface_free
+Subject: [PATCH 06/18] zero-out wl buffers in egl_surface_free
origins from buildroot
@@ -29,5 +29,5 @@ index 42350bf..1f923d9 100644
#endif
}
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch b/meta-raspberrypi/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch
index 987740b07..72264e4fd 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch
@@ -1,7 +1,7 @@
-From ec2e00989bf614b259bc9a47b5035f8586e8a214 Mon Sep 17 00:00:00 2001
+From b4a2967513f7d0f5f3caee8cf6cbc7a7a085ebac Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:11:41 -0800
-Subject: [PATCH 07/16] initialize front back wayland buffers
+Subject: [PATCH 07/18] initialize front back wayland buffers
origins from metrological wayland support
@@ -30,5 +30,5 @@ index 1f923d9..9a9582c 100644
}
#endif
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch b/meta-raspberrypi/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch
index 4bf05c129..a100e3953 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch
@@ -1,7 +1,7 @@
-From 59ba66c2ea17f7a57124b9fd6c9bdff4325ff5c9 Mon Sep 17 00:00:00 2001
+From 14c22987dfa9fec02794856cd15b2d64b4b81c32 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:09:18 -0800
-Subject: [PATCH 08/16] Remove RPC_FLUSH
+Subject: [PATCH 08/18] Remove RPC_FLUSH
Origins from buildroot
@@ -23,5 +23,5 @@ index f9b7287..b04ffef 100644
}
#endif
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch b/meta-raspberrypi/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch
index a2c1df5b6..4609455a3 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch
@@ -1,7 +1,7 @@
-From 264d82387ea1e607b2e5c899ff6bd46807c7b185 Mon Sep 17 00:00:00 2001
+From e510be221276d06e630ab93452ecb712d3921790 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 13:12:47 -0800
-Subject: [PATCH 09/16] fix cmake dependency race
+Subject: [PATCH 09/18] fix cmake dependency race
Fixes errors like
@@ -74,5 +74,5 @@ index f0bae30..8c44c58 100644
struct wl_resource *resource;
struct wl_dispmanx *dispmanx;
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch b/meta-raspberrypi/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch
index a6c9a59fb..dd0b95ed4 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch
@@ -1,7 +1,7 @@
-From 7c51c2d37bfadaabbbf205237d932b685b09d34f Mon Sep 17 00:00:00 2001
+From 8e6cde08077eadfe563dc17c19995ebc48e30b97 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 29 Mar 2016 20:38:30 -0700
-Subject: [PATCH 10/16] Fix for framerate with nested composition
+Subject: [PATCH 10/18] Fix for framerate with nested composition
frame rate appears irregular and lower than expected when using nested composition.
@@ -56,5 +56,5 @@ index 03fe67b..13a110c 100644
#ifdef ANDROID
CLIENT_UNLOCK();
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch b/meta-raspberrypi/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch
index 55a5be89a..4bd532080 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch
@@ -1,7 +1,7 @@
-From fb3002f77a175633af31019c513754d2ef5f3ac0 Mon Sep 17 00:00:00 2001
+From 9a97d60262999093d6ce8cb688279506c210d802 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 2 Apr 2016 10:37:24 -0700
-Subject: [PATCH 11/16] build shared library for vchostif
+Subject: [PATCH 11/18] build shared library for vchostif
Fixes #149
@@ -24,5 +24,5 @@ index c415176..d0cca1a 100755
#add_library(bufman vc_vchi_bufman.c )
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch b/meta-raspberrypi/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch
index 28a5fc6d8..9684b4cff 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch
@@ -1,14 +1,14 @@
-From df8b9633a45069bdd1bf256d974636ef11aa39cb Mon Sep 17 00:00:00 2001
+From fedd7668152049c15ed58c7058e5f4a9c1fac7cb Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 2 Apr 2016 10:54:59 -0700
-Subject: [PATCH 12/16] implement buffer wrapping interface for dispmanx
+Subject: [PATCH 12/18] implement buffer wrapping interface for dispmanx
Courtesy: Zan Dobersek
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- interface/khronos/ext/egl_wayland.c | 42 +++++++++++++++++++++++++++++++++++++
- interface/wayland/dispmanx.xml | 10 +++++++++
+ interface/khronos/ext/egl_wayland.c | 42 +++++++++++++++++++++++++++++
+ interface/wayland/dispmanx.xml | 10 +++++++
2 files changed, 52 insertions(+)
diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c
@@ -88,5 +88,5 @@ index c18626d..11ed1ef 100644
</protocol>
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0013-Implement-triple-buffering-for-wayland.patch b/meta-raspberrypi/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch
index ebff3140f..3052168c5 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0013-Implement-triple-buffering-for-wayland.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch
@@ -1,7 +1,7 @@
-From 2e0e331da8556fecd841349cfae294baf0f14485 Mon Sep 17 00:00:00 2001
+From 65f8bca55aead676cd06fc3210aeffef1f2158c6 Mon Sep 17 00:00:00 2001
From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
Date: Thu, 19 Jan 2017 18:56:07 +0000
-Subject: [PATCH 13/16] Implement triple buffering for wayland
+Subject: [PATCH 13/18] Implement triple buffering for wayland
Change from double to triple buffering for wayland.
This enables higher frame rates without tearing artifacts
@@ -86,5 +86,5 @@ index e328b77..58a3184 100644
back_wl_buffer
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch b/meta-raspberrypi/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch
index 025b6bcb9..037d70833 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch
@@ -1,30 +1,35 @@
-From 8d9299d219a2a4f76f8278973584e1a9f7116c78 Mon Sep 17 00:00:00 2001
+From dc1d07d835e1fe70c957a655d6fbb8cde65775af Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 10 May 2017 06:39:34 +0000
-Subject: [PATCH 14/16] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT
+Subject: [PATCH 14/18] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT
weston code uses these defines
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- interface/khronos/include/GLES2/gl2ext.h | 3 +++
- 1 file changed, 3 insertions(+)
+ interface/khronos/include/GLES2/gl2ext.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
diff --git a/interface/khronos/include/GLES2/gl2ext.h b/interface/khronos/include/GLES2/gl2ext.h
-index 4eacf7f..283e3e1 100644
+index 4eacf7f..b1acc9f 100644
--- a/interface/khronos/include/GLES2/gl2ext.h
+++ b/interface/khronos/include/GLES2/gl2ext.h
-@@ -327,6 +327,9 @@ typedef void* GLeglImageOES;
+@@ -327,6 +327,14 @@ typedef void* GLeglImageOES;
#define GL_RGBX_BRCM 0x80EE
#endif
++#ifndef GL_EXT_texture_rg
++#define GL_EXT_texture_rg 1
++#define GL_RED_EXT 0x1903
++#define GL_RG_EXT 0x8227
+#define GL_R8_EXT 0x8229
+#define GL_RG8_EXT 0x822B
++#endif /* GL_EXT_texture_rg */
+
/* GL_EXT_texture_type_2_10_10_10_REV */
#ifndef GL_EXT_texture_type_2_10_10_10_REV
#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0015-EGL-glplatform.h-define-EGL_CAST.patch b/meta-raspberrypi/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch
index 605d0c043..02cecb83e 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0015-EGL-glplatform.h-define-EGL_CAST.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch
@@ -1,7 +1,7 @@
-From a2182e5437a6664cdb0f3330f6cbee873b6f975a Mon Sep 17 00:00:00 2001
+From b5fa294c0d8fcb6dd5bfbfb96a0885dd9f3ae609 Mon Sep 17 00:00:00 2001
From: Andrea Galbusera <gizero@gmail.com>
Date: Fri, 14 Jul 2017 09:52:54 +0200
-Subject: [PATCH 15/16] EGL/glplatform.h: define EGL_CAST
+Subject: [PATCH 15/18] EGL/glplatform.h: define EGL_CAST
C++ / C typecast macros for special EGL handle values: used by libepoxy code
The definition comes from the updated version of this header in mesa.
@@ -28,5 +28,5 @@ index 1f7c930..c39d425 100644
+
#endif /* __eglplatform_h */
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch b/meta-raspberrypi/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch
index d20ec829f..34ad90cd8 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch
@@ -1,7 +1,7 @@
-From 6b4c4d469d435bfcfb464356b6ccc9421c6b8fd5 Mon Sep 17 00:00:00 2001
+From bff03f92c0d8bae113e0c7234c719f8385808b38 Mon Sep 17 00:00:00 2001
From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
Date: Sat, 27 Jan 2018 12:28:31 -0500
-Subject: [PATCH 16/16] Allow multiple wayland compositor state data per
+Subject: [PATCH 16/18] Allow multiple wayland compositor state data per
process
When eglBindWaylandDisplayWL is called store the wl_global
@@ -15,8 +15,8 @@ Signed-off-by: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
interface/khronos/common/khrn_client.c | 2 +-
- interface/khronos/common/khrn_client.h | 11 +++++++-
- interface/khronos/ext/egl_wayland.c | 50 ++++++++++++++++++++++++++++++----
+ interface/khronos/common/khrn_client.h | 11 +++++-
+ interface/khronos/ext/egl_wayland.c | 50 ++++++++++++++++++++++----
3 files changed, 55 insertions(+), 8 deletions(-)
diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c
@@ -141,5 +141,5 @@ index 9ef89cd..abd5ab3 100644
CLIENT_UNLOCK();
--
-2.16.1
+2.19.1
diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch b/meta-raspberrypi/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch
new file mode 100644
index 000000000..546cd588a
--- /dev/null
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch
@@ -0,0 +1,38 @@
+From 8efd81e96bdd3be68063a6fd32be4755225e93b2 Mon Sep 17 00:00:00 2001
+From: Hugo Hromic <hhromic@gmail.com>
+Date: Sun, 13 May 2018 10:49:04 +0100
+Subject: [PATCH 17/18] khronos: backport typedef for
+ EGL_EXT_image_dma_buf_import
+
+The `gstreamer1.0-plugins-base` package version `1.14` uses `EGL_EXT_image_dma_buf_import`, which
+expects the `EGLuint64KHR` typedef that is present in recent versions of Khronos.
+However, the older version included in userland does not provide it.
+
+This patch backports the missing typedef from recent Khronos into userland.
+See: <https://www.khronos.org/registry/EGL/api/EGL/eglext.h>
+
+Submitted to userland in <https://github.com/raspberrypi/userland/pull/467>
+
+Upstream-Status: Submitted
+---
+ interface/khronos/include/EGL/eglext.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/interface/khronos/include/EGL/eglext.h b/interface/khronos/include/EGL/eglext.h
+index d7e5ba7..dcc90ce 100755
+--- a/interface/khronos/include/EGL/eglext.h
++++ b/interface/khronos/include/EGL/eglext.h
+@@ -190,6 +190,10 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSy
+ typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
+ #endif
+
++#ifndef EGL_KHR_uint64_typedef
++#define EGL_KHR_uint64_typedef 1
++typedef khronos_uint64_t EGLuint64KHR;
++#endif /* EGL_KHR_uint64_typedef */
+
+ #ifndef EGL_WL_bind_wayland_display
+ #define EGL_WL_bind_wayland_display 1
+--
+2.19.1
+
diff --git a/meta-raspberrypi/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch b/meta-raspberrypi/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch
new file mode 100644
index 000000000..f4d865e6e
--- /dev/null
+++ b/meta-raspberrypi/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch
@@ -0,0 +1,35 @@
+From 9cfea4761ba68776fd9bfac671b74c7174f99029 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 15 Jul 2018 00:48:38 -0700
+Subject: [PATCH 18/18] Add EGL_IMG_context_priority related defines
+
+These defines are needed for compiling weston 4.x
+taken from Khronos headers
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ interface/khronos/include/EGL/eglext.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/interface/khronos/include/EGL/eglext.h b/interface/khronos/include/EGL/eglext.h
+index dcc90ce..6842bf9 100755
+--- a/interface/khronos/include/EGL/eglext.h
++++ b/interface/khronos/include/EGL/eglext.h
+@@ -93,6 +93,14 @@ typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGL
+ typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
+ #endif
+
++#ifndef EGL_IMG_context_priority
++#define EGL_IMG_context_priority 1
++#define EGL_CONTEXT_PRIORITY_LEVEL_IMG 0x3102
++#define EGL_CONTEXT_PRIORITY_HIGH_IMG 0x3101
++#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102
++#define EGL_CONTEXT_PRIORITY_LOW_IMG 0x3103
++#endif /* EGL_IMG_context_priority */
++
+ #ifndef EGL_KHR_vg_parent_image
+ #define EGL_KHR_vg_parent_image 1
+ #define EGL_VG_PARENT_IMAGE_KHR 0x30BA /* eglCreateImageKHR target */
+--
+2.19.1
+
diff --git a/meta-raspberrypi/recipes-graphics/userland/userland_git.bb b/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
index 7f2dca6b6..e6af4bff8 100644
--- a/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
+++ b/meta-raspberrypi/recipes-graphics/userland/userland_git.bb
@@ -5,20 +5,18 @@ vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG."
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENCE;md5=0448d6488ef8cc380632b1569ee6d196"
-PROVIDES = "virtual/libgles2 \
- virtual/egl"
-
-RPROVIDES_${PN} += "libgles2 egl libegl"
+PROVIDES += "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "", "virtual/libgles2 virtual/egl", d)}"
+RPROVIDES_${PN} += "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "", "libgles2 egl libegl libegl1 libgl1 libglesv2-2", d)}"
COMPATIBLE_MACHINE = "^rpi$"
SRCBRANCH = "master"
SRCFORK = "raspberrypi"
-SRCREV = "11389772c79685442e0ab8aa9be8ad0e32703f68"
+SRCREV = "d574b51a60a075baefe863670466ee24e6c4256e"
# Use the date of the above commit as the package version. Update this when
# SRCREV is changed.
-PV = "20180219"
+PV = "20181120"
SRC_URI = "\
git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \
@@ -38,6 +36,8 @@ SRC_URI = "\
file://0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch \
file://0015-EGL-glplatform.h-define-EGL_CAST.patch \
file://0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch \
+ file://0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch \
+ file://0018-Add-EGL_IMG_context_priority-related-defines.patch \
"
S = "${WORKDIR}/git"
@@ -64,6 +64,14 @@ do_install_append () {
sed -i 's/include "vcos_futex_mutex.h"/include "pthreads\/vcos_futex_mutex.h"/g' ${f}
sed -i 's/include "vcos_platform_types.h"/include "pthreads\/vcos_platform_types.h"/g' ${f}
done
+ if [ "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}" = "1" ]; then
+ rm -rf ${D}${libdir}/libEGL*
+ rm -rf ${D}${libdir}/libGLES*
+ rm -rf ${D}${libdir}/libwayland-*
+ rm -rf ${D}${libdir}/pkgconfig/egl.pc ${D}${libdir}/pkgconfig/glesv2.pc \
+ ${D}${libdir}/pkgconfig/wayland-egl.pc
+ rm -rf ${D}${includedir}/EGL ${D}${includedir}/GLES* ${D}${includedir}/KHR
+ fi
}
# Shared libs from userland package build aren't versioned, so we need
@@ -83,3 +91,4 @@ FILES_${PN}-dbg += "${libdir}/plugins/.debug"
PACKAGE_ARCH = "${MACHINE_ARCH}"
RDEPENDS_${PN} += "bash"
+RDEPENDS_${PN} += "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "libegl1", "", d)}"
diff --git a/meta-raspberrypi/recipes-graphics/wayland/wayland_%.bbappend b/meta-raspberrypi/recipes-graphics/wayland/wayland_%.bbappend
new file mode 100644
index 000000000..e5bbf4aaa
--- /dev/null
+++ b/meta-raspberrypi/recipes-graphics/wayland/wayland_%.bbappend
@@ -0,0 +1,7 @@
+# until fully tested, prefer `libwayland-egl` provided by `userland` instead of `wayland` when not using vc4graphics
+do_install_append_rpi () {
+ if [ "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}" = "0" ]; then
+ rm -f ${D}${libdir}/libwayland-egl*
+ rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc
+ fi
+}
diff --git a/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-noglamor.conf b/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-noglamor.conf
deleted file mode 100644
index 1a562ea03..000000000
--- a/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config/rpi/xorg.conf.d/10-noglamor.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-Section "Device"
- Identifier "modeset"
- Driver "modesetting"
- Option "AccelMethod" "None"
-EndSection
diff --git a/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend b/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend
index 919e95e0d..71e0adcd4 100644
--- a/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend
+++ b/meta-raspberrypi/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend
@@ -3,19 +3,14 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI_append_rpi = " \
file://xorg.conf.d/98-pitft.conf \
file://xorg.conf.d/99-calibration.conf \
- file://xorg.conf.d/10-noglamor.conf \
"
do_install_append_rpi () {
PITFT="${@bb.utils.contains("MACHINE_FEATURES", "pitft", "1", "0", d)}"
- VC4="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
if [ "${PITFT}" = "1" ]; then
install -d ${D}/${sysconfdir}/X11/xorg.conf.d/
install -m 0644 ${WORKDIR}/xorg.conf.d/98-pitft.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
install -m 0644 ${WORKDIR}/xorg.conf.d/99-calibration.conf ${D}/${sysconfdir}/X11/xorg.conf.d/
fi
- if [ "${VC4}" = "1" ]; then
- install -Dm 0644 ${WORKDIR}/xorg.conf.d/10-noglamor.conf ${D}/${sysconfdir}/X11/xorg.conf.d/10-noglamor.conf
- fi
}
FILES_${PN}_rpi += "${sysconfdir}/X11/xorg.conf ${sysconfdir}/X11/xorg.conf.d/*"
diff --git a/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb
new file mode 100644
index 000000000..b16b2c19d
--- /dev/null
+++ b/meta-raspberrypi/recipes-kernel/bluez-firmware-rpidistro/bluez-firmware-rpidistro_git.bb
@@ -0,0 +1,84 @@
+SUMMARY = "Linux kernel Bluetooth firmware files from Raspbian distribution"
+DESCRIPTION = "Updated Bluetooth firmware files for RaspberryPi hardware. \
+RPi-Distro obtains these directly from Cypress; they are not submitted \
+to linux-firmware for general use."
+HOMEPAGE = "https://github.com/RPi-Distro/bluez-firmware"
+SECTION = "kernel"
+
+# Upstream has provided[^1] licensing information in the Debian
+# copyright file. The wording of the Cypress license subsequently
+# changed in linux-firmware.
+#
+# Rather than make assumptions about what's supposed to be what, we'll
+# use the license implied by the source of these files, named to avoid
+# conflicts with linux-firmware.
+#
+# [^1]: https://github.com/RPi-Distro/bluez-firmware/issues/1
+LICENSE = "Firmware-cypress-rpidistro"
+LIC_FILES_CHKSUM = "\
+ file://LICENCE.cypress-rpidistro;md5=852f9d10cbedba1f6c439729bd0617b4 \
+"
+
+# These are not common licenses, set NO_GENERIC_LICENSE for them
+# so that the license files will be copied from fetched source
+NO_GENERIC_LICENSE[Firmware-cypress-rpidistro] = "LICENCE.cypress-rpidistro"
+
+SRC_URI = "git://github.com/RPi-Distro/bluez-firmware"
+SRCREV = "ade2bae1aaaebede09abb8fb546f767a0e4c7804"
+PV = "0.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit allarch
+
+CLEANBROKEN = "1"
+
+do_extract_lic() {
+ # Extract the license from the Debian copyright file
+ sed -e '1,23d' ${S}/debian/copyright > ${S}/LICENCE.cypress-rpidistro
+}
+# Must be before both do_install and do_populate_lic. Putting it before
+# their common ancestor works; other approaches do not.
+addtask extract_lic after do_unpack before do_patch
+
+do_compile() {
+ :
+}
+
+do_install() {
+ install -d ${D}${nonarch_base_libdir}/firmware/brcm
+
+ cp LICENCE.cypress-rpidistro ${D}${nonarch_base_libdir}/firmware
+ install -m 0644 broadcom/BCM434*.hcd ${D}${nonarch_base_libdir}/firmware/brcm/
+}
+
+PACKAGES = "\
+ ${PN}-cypress-license \
+ ${PN}-bcm43430a1-hcd \
+ ${PN}-bcm4345c0-hcd \
+"
+
+LICENSE_${PN}-bcm43430a1-hcd = "Firmware-cypress-rpidistro"
+LICENSE_${PN}-bcm4345c0-hcd = "Firmware-cypress-rpidistro"
+LICENSE_${PN}-cypress-license = "Firmware-cypress-rpidistro"
+
+FILES_${PN}-cypress-license = "\
+ ${nonarch_base_libdir}/firmware/LICENCE.cypress-rpidistro \
+"
+FILES_${PN}-bcm43430a1-hcd = "\
+ ${nonarch_base_libdir}/firmware/brcm/BCM43430A1.hcd \
+"
+FILES_${PN}-bcm4345c0-hcd = "\
+ ${nonarch_base_libdir}/firmware/brcm/BCM4345C0.hcd \
+"
+
+RDEPENDS_${PN}-bcm43430a1-hcd += "${PN}-cypress-license"
+RDEPENDS_${PN}-bcm4345c0-hcd += "${PN}-cypress-license"
+RCONFLICTS_${PN}-bcm43430a1-hcd = "linux-firmware-bcm43430a1-hcd"
+RREPLACES_${PN}-bcm43430a1-hcd = "linux-firmware-bcm43430a1-hcd"
+RCONFLICTS_${PN}-bcm43435c0-hcd = "linux-firmware-bcm4345c0-hcd"
+RREPLACES_${PN}-bcm43435c0-hcd = "linux-firmware-bcm4345c0-hcd"
+
+# Firmware files are generally not run on the CPU, so they can be
+# allarch despite being architecture specific
+INSANE_SKIP = "arch"
diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
new file mode 100644
index 000000000..1f63c329c
--- /dev/null
+++ b/meta-raspberrypi/recipes-kernel/linux-firmware-rpidistro/linux-firmware-rpidistro_git.bb
@@ -0,0 +1,96 @@
+SUMMARY = "Linux kernel firmware files from Raspbian distribution"
+DESCRIPTION = "Updated firmware files for RaspberryPi hardware. \
+RPi-Distro obtains these directly from Cypress; they are not submitted \
+to linux-firmware for general use."
+HOMEPAGE = "https://github.com/RPi-Distro/firmware-nonfree"
+SECTION = "kernel"
+
+# In maintained upstream linux-firmware:
+# * brcmfmac43430-sdio falls under LICENCE.cypress
+# * brcmfmac43455-sdio falls under LICENCE.broadcom_bcm43xx
+#
+# It is likely[^1] that both of these should be under LICENCE.cypress.
+# Further, at this time the text of LICENCE.broadcom_bcm43xx is the same
+# in linux-firmware and RPi-Distro/firmware-nonfree, but this may
+# change.
+#
+# Rather than make assumptions about what's supposed to be what, we'll
+# use the license implied by the source of these files, named to avoid
+# conflicts with linux-firmware.
+#
+# [^1]: https://github.com/RPi-Distro/bluez-firmware/issues/1
+LICENSE = "\
+ Firmware-broadcom_bcm43xx-rpidistro \
+ & WHENCE \
+"
+LIC_FILES_CHKSUM = "\
+ file://LICENCE.broadcom_bcm43xx;md5=3160c14df7228891b868060e1951dfbc \
+ file://WHENCE;md5=a9c2c217f513c20e1d16b384b3e2c12d \
+"
+
+# These are not common licenses, set NO_GENERIC_LICENSE for them
+# so that the license files will be copied from fetched source
+NO_GENERIC_LICENSE[Firmware-broadcom_bcm43xx-rpidistro] = "LICENCE.broadcom_bcm43xx"
+NO_GENERIC_LICENSE[WHENCE] = "WHENCE"
+
+SRC_URI = "git://github.com/RPi-Distro/firmware-nonfree"
+SRCREV = "b518de45ced519e8f7a499f4778100173402ae43"
+PV = "0.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit allarch
+
+CLEANBROKEN = "1"
+
+do_compile() {
+ :
+}
+
+do_install() {
+ install -d ${D}${nonarch_base_libdir}/firmware/brcm
+
+ cp ./LICENCE.broadcom_bcm43xx ${D}${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx-rpidistro
+
+ # Replace outdated linux-firmware files with updated ones from
+ # raspbian firmware-nonfree. Raspbian adds blobs and nvram
+ # definitions that are also necessary so copy those too.
+ for fw in brcmfmac43430-sdio brcmfmac43455-sdio ; do
+ install -m 0644 brcm/${fw}.* ${D}${nonarch_base_libdir}/firmware/brcm/
+ done
+}
+
+PACKAGES = "\
+ ${PN}-broadcom-license \
+ ${PN}-bcm43430 \
+ ${PN}-bcm43455 \
+"
+
+LICENSE_${PN}-bcm43430 = "Firmware-broadcom_bcm43xx-rpidistro"
+LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx-rpidistro"
+LICENSE_${PN}-broadcom-license = "Firmware-broadcom_bcm43xx-rpidistro"
+FILES_${PN}-broadcom-license = "${nonarch_base_libdir}/firmware/LICENCE.broadcom_bcm43xx-rpidistro"
+FILES_${PN}-bcm43430 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43430*"
+FILES_${PN}-bcm43455 = "${nonarch_base_libdir}/firmware/brcm/brcmfmac43455*"
+RDEPENDS_${PN}-bcm43430 += "${PN}-broadcom-license"
+RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license"
+RCONFLICTS_${PN}-bcm43430 = "\
+ linux-firmware-bcm43430 \
+ linux-firmware-raspbian-bcm43430 \
+"
+RREPLACES_${PN}-bcm43430 = "\
+ linux-firmware-bcm43430 \
+ linux-firmware-raspbian-bcm43430 \
+"
+RCONFLICTS_${PN}-bcm43455 = "\
+ linux-firmware-bcm43455 \
+ linux-firmware-raspbian-bcm43455 \
+"
+RREPLACES_${PN}-bcm43455 = "\
+ linux-firmware-bcm43455 \
+ linux-firmware-raspbian-bcm43455 \
+"
+
+# Firmware files are generally not run on the CPU, so they can be
+# allarch despite being architecture specific
+INSANE_SKIP = "arch"
diff --git a/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
deleted file mode 100644
index c0f9e1704..000000000
--- a/meta-raspberrypi/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
+++ /dev/null
@@ -1,69 +0,0 @@
-# Augments upstream linux-firmware with additional and updated images
-# from Raspbian:
-# https://github.com/RPi-Distro/firmware-nonfree
-# https://github.com/RPi-Distro/bluez-firmware
-
-SRC_URI_append_rpi = " \
- git://github.com/RPi-Distro/firmware-nonfree;destsuffix=raspbian-nf;name=raspbian-nf \
- git://github.com/RPi-Distro/bluez-firmware;destsuffix=raspbian-bluez;name=raspbian-bluez \
-"
-
-SRCREV_raspbian-nf = "86e88fbf0345da49555d0ec34c80b4fbae7d0cd3"
-SRCREV_raspbian-bluez = "e28cd7ee8615de33aa7ec2b41d556af61a4a2707"
-SRCREV_FORMAT_rpi = "default+raspbian-nf+raspbian-bluez"
-
-do_install_append_rpi() {
- install -d ${D}${nonarch_base_libdir}/firmware/brcm/
-
- # Replace outdated linux-firmware files with updated ones from
- # raspbian firmware-nonfree. Raspbian adds blobs and nvram
- # definitions that are also necessary so copy those too.
- for fw in brcmfmac43430-sdio brcmfmac43455-sdio ; do
- install -m 0644 ${WORKDIR}/raspbian-nf/brcm/${fw}.* ${D}${nonarch_base_libdir}/firmware/brcm/
- done
-
- # Add missing Cypress Bluetooth files from raspbian bluez-firmware
- for fw in BCM43430A1.hcd BCM4345C0.hcd ; do
- install -m 0644 ${WORKDIR}/raspbian-bluez/broadcom/${fw} ${D}${nonarch_base_libdir}/firmware/brcm/
- done
-}
-
-# NB: Must prepend, else these become empty and their content is left in
-# the roll-up package which precedes them.
-PACKAGES_prepend_rpi = "\
- ${PN}-bcm43430a1-hcd \
- ${PN}-bcm4345c0-hcd \
-"
-
-# ${PN}-bcm43455 package and brcmfmac43455-sdio from linux-firmware
-# is already included in the oe-core recipe, so don't add it to PACKAGES
-# again, the version from raspbian-nf seems a bit newer:
-# $ strings ./1_0.0+gitAUTOINC+d114732723+86e88fbf03+e28cd7ee86-r0/git/brcm/brcmfmac43455-sdio.bin | grep Ver
-# Version: 7.45.18.0 CRC: d7226371 Date: Sun 2015-03-01 07:31:57 PST Ucode Ver: 1026.2 FWID: 01-6a2c8ad4
-# $ strings ./1_0.0+gitAUTOINC+d114732723+86e88fbf03+e28cd7ee86-r0/raspbian-nf/brcm/brcmfmac43455-sdio.bin | grep Ver
-# Version: 7.45.154 (r684107 CY) CRC: b1f79383 Date: Tue 2018-02-27 03:18:17 PST Ucode Ver: 1043.2105 FWID 01-4fbe0b04
-
-# For additional Broadcom
-LICENSE_${PN}-bcm43455 = "Firmware-broadcom_bcm43xx"
-
-FILES_${PN}-bcm43430_append_rpi = " \
- ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt \
-"
-FILES_${PN}-bcm43455 = " \
- ${nonarch_base_libdir}/firmware/brcm/brcmfmac43455-sdio.* \
-"
-
-RDEPENDS_${PN}-bcm43455 += "${PN}-broadcom-license"
-
-LICENSE_${PN}-bcm43430a1-hcd = "Firmware-cypress"
-LICENSE_${PN}-bcm4345c0-hcd = "Firmware-cypress"
-
-FILES_${PN}-bcm43430a1-hcd = " \
- ${nonarch_base_libdir}/firmware/brcm/BCM43430A1.hcd \
-"
-FILES_${PN}-bcm4345c0-hcd = " \
- ${nonarch_base_libdir}/firmware/brcm/BCM4345C0.hcd \
-"
-
-RDEPENDS_${PN}-bcm43430a1-hcd += "${PN}-cypress-license"
-RDEPENDS_${PN}-bcm4345c0-hcd += "${PN}-cypress-license"
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.14.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.14.bb
new file mode 100644
index 000000000..1a990fe0f
--- /dev/null
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi-rt_4.14.bb
@@ -0,0 +1,9 @@
+LINUX_VERSION ?= "4.14.81"
+
+SRCREV = "acf578d07d57480674d5361df9171fe9528765cb"
+SRC_URI = " \
+ git://github.com/raspberrypi/linux.git;branch=rpi-4.14.y-rt \
+ file://0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch \
+ "
+
+require linux-raspberrypi.inc
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
index 03acfb410..01f2425ed 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi.inc
@@ -35,8 +35,6 @@ CMDLINE_append += ' ${@oe.utils.conditional("DISABLE_RPI_BOOT_LOGO", "1", "logo.
CMDLINE_DEBUG ?= ""
CMDLINE_append = " ${CMDLINE_DEBUG}"
-KERNEL_INITRAMFS ?= '${@oe.utils.conditional("INITRAMFS_IMAGE_BUNDLE", "1", "1", "", d)}'
-
KERNEL_MODULE_AUTOLOAD += "${@bb.utils.contains("MACHINE_FEATURES", "pitft28r", "stmpe-ts", "", d)}"
# A LOADADDR is needed when building a uImage format kernel. This value is not
@@ -101,7 +99,7 @@ do_configure_prepend() {
# Localversion
kernel_configure_variable LOCALVERSION "\"\""
- if [ ! -z "${KERNEL_INITRAMFS}" ]; then
+ if [ "${INITRAMFS_IMAGE_BUNDLE}" = "1" ]; then
kernel_configure_variable OVERLAY_FS y
kernel_configure_variable SQUASHFS y
kernel_configure_variable UBIFS_FS y
@@ -109,7 +107,7 @@ do_configure_prepend() {
# Activate the configuration options for VC4
VC4GRAPHICS="${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", "1", "0", d)}"
- if [ ${VC4GRAPHICS} = "1" ]; then
+ if [ "${VC4GRAPHICS}" = "1" ]; then
kernel_configure_variable I2C_BCM2835 y
kernel_configure_variable DRM y
kernel_configure_variable DRM_FBDEV_EMULATION y
diff --git a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb
index 54936fa79..d11b59926 100644
--- a/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb
+++ b/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi_4.14.bb
@@ -1,6 +1,6 @@
-LINUX_VERSION ?= "4.14.68"
+LINUX_VERSION ?= "4.14.79"
-SRCREV = "8c8666ff6c1254d325cfa300d16f9928b3f31fc0"
+SRCREV = "9ca74c53cbda1f104bce3b33850fd3bf33eb3793"
SRC_URI = " \
git://github.com/raspberrypi/linux.git;branch=rpi-4.14.y \
file://0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch \
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0002-fix-decoder-flushing.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0002-fix-decoder-flushing.patch
deleted file mode 100644
index 122ddb397..000000000
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0002-fix-decoder-flushing.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From fc4773f36aa31b4ae0fc97d3aa3f94db0c88f194 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 11 Feb 2016 12:53:20 -0800
-
----
- omx/gstomx.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/omx/gstomx.c b/omx/gstomx.c
-index 0237f3c..45732c3 100644
---- a/omx/gstomx.c
-+++ b/omx/gstomx.c
-@@ -1538,8 +1538,8 @@ gst_omx_port_set_flushing (GstOMXPort * port, GstClockTime timeout,
- last_error = OMX_ErrorNone;
- gst_omx_component_handle_messages (comp);
- while (signalled && last_error == OMX_ErrorNone && !port->flushed
-- && port->buffers
-- && port->buffers->len > g_queue_get_length (&port->pending_buffers)) {
-+ /* && port->buffers
-+ && port->buffers->len > g_queue_get_length (&port->pending_buffers) */) {
- signalled = gst_omx_component_wait_message (comp, timeout);
- if (signalled)
- gst_omx_component_handle_messages (comp);
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch
deleted file mode 100644
index fdfdd1b5a..000000000
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 0d2ad639e6158c8023c157e206ef3ff7abdc089c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com>
-Date: Fri, 4 Dec 2015 18:39:59 +0100
-Subject: [PATCH] Don't abort gst_omx_video_dec_set_format() if there's a
- timeout releasing the buffers taken by the egl_render out port
-
----
- omx/gstomxvideodec.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
-index bad6335..c63b972 100644
---- a/omx/gstomxvideodec.c
-+++ b/omx/gstomxvideodec.c
-@@ -1911,8 +1911,11 @@ gst_omx_video_dec_set_format (GstVideoDecoder * decoder,
- 5 * GST_SECOND) != OMX_ErrorNone)
- return FALSE;
- if (gst_omx_port_wait_buffers_released (out_port,
-- 1 * GST_SECOND) != OMX_ErrorNone)
-+ 1 * GST_SECOND) != OMX_ErrorNone) {
-+#if !(defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL))
- return FALSE;
-+#endif
-+ }
- if (gst_omx_port_deallocate_buffers (self->dec_in_port) != OMX_ErrorNone)
- return FALSE;
- if (gst_omx_video_dec_deallocate_output_buffers (self) != OMX_ErrorNone)
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch
index 85fea67be..85fea67be 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0001-config-files-path.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0001-config-files-path.patch
index 6903c1770..6903c1770 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0001-config-files-path.patch
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0001-config-files-path.patch
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0003-no-timeout-on-get-state.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0003-no-timeout-on-get-state.patch
index 4124bccf8..4124bccf8 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0003-no-timeout-on-get-state.patch
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0003-no-timeout-on-get-state.patch
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0004-Properly-handle-drain-requests-while-flushing.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0004-Properly-handle-drain-requests-while-flushing.patch
index b02072a4a..3c9dd2c88 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.12/0004-Properly-handle-drain-requests-while-flushing.patch
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0004-Properly-handle-drain-requests-while-flushing.patch
@@ -10,11 +10,11 @@ the drain request, leaving the decoder input thread waiting forever.
omx/gstomx.c | 7 +++++++
1 file changed, 7 insertions(+)
-diff --git a/omx/gstomx.c b/omx/gstomx.c
-index 45732c3..784a5d7 100644
---- a/omx/gstomx.c
-+++ b/omx/gstomx.c
-@@ -737,6 +737,13 @@ gst_omx_component_new (GstObject * parent, const gchar * core_name,
+Index: gst-omx-1.14.0/omx/gstomx.c
+===================================================================
+--- gst-omx-1.14.0.orig/omx/gstomx.c
++++ gst-omx-1.14.0/omx/gstomx.c
+@@ -837,6 +837,13 @@ gst_omx_component_new (GstObject * paren
g_mutex_lock (&comp->lock);
gst_omx_component_handle_messages (comp);
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch
new file mode 100644
index 000000000..ed8645e94
--- /dev/null
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx-1.14/0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch
@@ -0,0 +1,24 @@
+From 0d2ad639e6158c8023c157e206ef3ff7abdc089c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Enrique=20Oca=C3=B1a=20Gonz=C3=A1lez?= <eocanha@igalia.com>
+Date: Fri, 4 Dec 2015 18:39:59 +0100
+Subject: [PATCH] Don't abort gst_omx_video_dec_set_format() if there's a
+ timeout releasing the buffers taken by the egl_render out port
+
+---
+ omx/gstomxvideodec.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+Index: gst-omx-1.14.0/omx/gstomxvideodec.c
+===================================================================
+--- gst-omx-1.14.0.orig/omx/gstomxvideodec.c
++++ gst-omx-1.14.0/omx/gstomxvideodec.c
+@@ -2214,7 +2214,9 @@ gst_omx_video_dec_disable (GstOMXVideoDe
+ return FALSE;
+ if (gst_omx_port_wait_buffers_released (out_port,
+ 1 * GST_SECOND) != OMX_ErrorNone)
++#if !(defined (USE_OMX_TARGET_RPI) && defined (HAVE_GST_GL))
+ return FALSE;
++#endif
+ if (gst_omx_video_dec_deallocate_output_buffers (self) != OMX_ErrorNone)
+ return FALSE;
+ if (gst_omx_port_wait_enabled (out_port, 1 * GST_SECOND) != OMX_ErrorNone)
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend
index 67e46de95..f892c66ec 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_%.bbappend
@@ -1,9 +1,9 @@
+DEPENDS_append_rpi = " userland"
GSTREAMER_1_0_OMX_TARGET_rpi = "rpi"
GSTREAMER_1_0_OMX_CORE_NAME_rpi = "${libdir}/libopenmaxil.so"
-
-
# How to make this RPI specific?
EXTRA_OECONF_append_rpi = " CFLAGS="$CFLAGS -I${STAGING_DIR_TARGET}/usr/include/IL -I${STAGING_DIR_TARGET}/usr/include/interface/vcos/pthreads -I${STAGING_DIR_TARGET}/usr/include/interface/vmcs_host/linux""
#examples only build with GL but not GLES, so disable it for RPI
EXTRA_OECONF_append_rpi = " --disable-examples"
+RDEPENDS_${PN}_append_rpi = " userland"
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.12%.bbappend b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.14%.bbappend
index 93381a4e0..cb7986bb3 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.12%.bbappend
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.14%.bbappend
@@ -4,10 +4,9 @@
SRC_URI_append_rpi = " \
file://0001-config-files-path.patch \
file://0001-Don-t-try-to-acquire-buffer-when-src-pad-isn-t-activ.patch \
- file://0002-fix-decoder-flushing.patch \
file://0003-no-timeout-on-get-state.patch \
file://0004-Properly-handle-drain-requests-while-flushing.patch \
file://0005-Don-t-abort-gst_omx_video_dec_set_format-if-there-s-.patch \
"
-FILESEXTRAPATHS_prepend := "${THISDIR}/gstreamer1.0-omx-1.12:"
+FILESEXTRAPATHS_prepend := "${THISDIR}/gstreamer1.0-omx-1.14:"
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
index 7292f90ce..899a2d400 100644
--- a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_%.bbappend
@@ -1,12 +1 @@
-EXTRA_OECONF_append_rpi = " CPPFLAGS='-I${STAGING_INCDIR}/interface/vcos/pthreads \
- -I${STAGING_INCDIR}/interface/vmcs_host/linux'"
-
-# if using bcm driver enable dispmanx not when using VC4 driver
-
-PACKAGECONFIG_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' dispmanx', d)}"
-
-PACKAGECONFIG_GL_rpi = "egl gles2"
-
PACKAGECONFIG_append_rpi = " hls libmms faad"
-
-PACKAGECONFIG[dispmanx] = "--enable-dispmanx,--disable-dispmanx,userland"
diff --git a/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend
new file mode 100644
index 000000000..9e86c008f
--- /dev/null
+++ b/meta-raspberrypi/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_%.bbappend
@@ -0,0 +1,10 @@
+EXTRA_OECONF_append_rpi = " CPPFLAGS='-I${STAGING_INCDIR}/interface/vcos/pthreads \
+ -I${STAGING_INCDIR}/interface/vmcs_host/linux'"
+
+# if using bcm driver enable dispmanx not when using VC4 driver
+
+PACKAGECONFIG_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' dispmanx', d)}"
+
+PACKAGECONFIG_GL_rpi = "egl gles2"
+
+PACKAGECONFIG[dispmanx] = "--enable-dispmanx,--disable-dispmanx,userland"
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Fix-build-with-vc4-driver.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Fix-build-with-vc4-driver.patch
new file mode 100644
index 000000000..37d0724a4
--- /dev/null
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Fix-build-with-vc4-driver.patch
@@ -0,0 +1,49 @@
+From 25302469b6ceb2fa10ac68c07da25c6068ffd218 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 7 Nov 2018 01:16:59 -0800
+Subject: [PATCH] Fix build with vc4 driver
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ SubtitleRenderer.cpp | 7 ++++++-
+ SubtitleRenderer.h | 1 +
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/SubtitleRenderer.cpp b/SubtitleRenderer.cpp
+index 540162f..fcfc708 100644
+--- a/SubtitleRenderer.cpp
++++ b/SubtitleRenderer.cpp
+@@ -36,6 +36,11 @@
+ #include <algorithm>
+
+ #include "bcm_host.h"
++typedef struct {
++ DISPMANX_ELEMENT_HANDLE_T element;
++ int width;
++ int height;
++} EGL_DISPMANX_WINDOW_T;
+
+ class BoxRenderer {
+ VGPath path_;
+@@ -618,4 +623,4 @@ void SubtitleRenderer::set_rect(int x1, int y1, int x2, int y2) BOOST_NOEXCEPT
+ float font_size = height*font_size_;
+ ENFORCE(!FT_Set_Pixel_Sizes(ft_face_, 0, font_size));
+ ENFORCE(!FT_Set_Pixel_Sizes(ft_face_italic_, 0, font_size));
+-}
+\ No newline at end of file
++}
+diff --git a/SubtitleRenderer.h b/SubtitleRenderer.h
+index 3f60798..ebac9a1 100644
+--- a/SubtitleRenderer.h
++++ b/SubtitleRenderer.h
+@@ -26,6 +26,7 @@
+ // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ // DEALINGS IN THE SOFTWARE.
+
++#include <interface/vmcs_host/vc_dispmanx.h>
+ #include <EGL/egl.h>
+ #include <VG/openvg.h>
+ #include <ft2build.h>
+--
+2.19.1
+
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Remove-Makefile.include-which-includes-hardcoded.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Remove-Makefile.include-which-includes-hardcoded.patch
index 151c33cce..0c8843e77 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Remove-Makefile.include-which-includes-hardcoded.patch
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Remove-Makefile.include-which-includes-hardcoded.patch
@@ -1,4 +1,4 @@
-From a2a28fb7c4e8354cc0f90454e9bd151c16a6bf8b Mon Sep 17 00:00:00 2001
+From 19c9bc5fd8f43d3e9117906c3c48a3891357f8bc Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei@gherzan.ro>
Date: Tue, 20 Aug 2013 16:10:51 +0300
Subject: [PATCH] Remove Makefile.include which includes hardcoded
@@ -11,8 +11,15 @@ Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Updated patch to apply to c0dd9502ed2c43c487674939195c69680f3d98b0 revision
+---
+ Makefile | 1 -
+ Makefile.ffmpeg | 1 -
+ Makefile.include | 40 ----------------------------------------
+ 3 files changed, 42 deletions(-)
+ delete mode 100644 Makefile.include
+
diff --git a/Makefile b/Makefile
-index f348465..65f7637 100644
+index 2857e94..76ee9bf 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,3 @@
@@ -21,7 +28,7 @@ index f348465..65f7637 100644
CFLAGS+=-std=c++0x -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DHAVE_LIBSWRESAMPLE_SWRESAMPLE_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST
diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg
-index 083e214..3b31a82 100644
+index ea12aad..749f47f 100644
--- a/Makefile.ffmpeg
+++ b/Makefile.ffmpeg
@@ -1,4 +1,3 @@
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Specify-cc-cxx-and-ld-variables-from-environment.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Specify-cc-cxx-and-ld-variables-from-environment.patch
new file mode 100644
index 000000000..82dfd3e65
--- /dev/null
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0001-Specify-cc-cxx-and-ld-variables-from-environment.patch
@@ -0,0 +1,42 @@
+From 9b4b7f8726171e97f12c587d50e54bab0dc42da5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Sep 2018 22:18:07 -0700
+Subject: [PATCH] Specify --cc, --cxx and --ld variables from environment
+
+This helps in compiling with non-gcc compilers
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.ffmpeg | 22 ++++++++++++++--------
+ 1 file changed, 14 insertions(+), 8 deletions(-)
+
+Index: git/Makefile.ffmpeg
+===================================================================
+--- git.orig/Makefile.ffmpeg
++++ git/Makefile.ffmpeg
+@@ -22,12 +22,15 @@ configure:
+ CFLAGS="$(CFLAGS) ${INCLUDES}" \
+ LDFLAGS="" \
+ ./configure \
++ --ld="${CCLD}" \
++ --cc="${CC}" \
++ --cxx="${CXX}" \
+ --extra-cflags="$(FFMPEG_EXTRA_CFLAGS)" \
+ --extra-ldflags="$(FFMPEG_EXTRA_LDFLAGS)" \
+ --enable-shared \
+ --disable-static \
+ --arch=arm \
+- --cpu=arm1176jzf-s \
++ --cpu=$(CPU) \
+ --target-os=linux \
+ --disable-hwaccels \
+ --enable-parsers \
+@@ -42,7 +45,7 @@ configure:
+ --enable-gpl \
+ --enable-version3 \
+ --enable-protocols \
+- --enable-libsmbclient \
++ --disable-libsmbclient \
+ --enable-libssh \
+ --enable-nonfree \
+ --enable-openssl \
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch
index 203f34b2d..dd1d4f3d7 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch
@@ -1,4 +1,4 @@
-From 1e92da659375eae1622984d4cc0ffd2a7b082fcf Mon Sep 17 00:00:00 2001
+From e46208c4a3e35da461e0e8f662970339eae47fca Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei@gherzan.ro>
Date: Sun, 24 Aug 2014 00:13:13 +0200
Subject: [PATCH] Libraries and headers from ffmpeg are installed in /usr.
@@ -9,6 +9,7 @@ Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Jonathan Liu <net147@gmail.com>
+
---
Makefile | 6 +++---
Makefile.ffmpeg | 2 +-
@@ -18,30 +19,42 @@ Index: git/Makefile
===================================================================
--- git.orig/Makefile
+++ git/Makefile
-@@ -1,9 +1,9 @@
-
+@@ -2,9 +2,9 @@ CFLAGS=-pipe -mfloat-abi=hard -mcpu=arm1
CFLAGS+=-std=c++0x -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DHAVE_LIBSWRESAMPLE_SWRESAMPLE_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST
--LDFLAGS+=-L./ -Lffmpeg_compiled/usr/local/lib/ -lc -lWFC -lGLESv2 -lEGL -lbcm_host -lopenmaxil -lfreetype -lz -lasound
-+LDFLAGS+=-L./ -Lffmpeg_compiled/usr/lib/ -lc -lWFC -lGLESv2 -lEGL -lbcm_host -lopenmaxil -lfreetype -lz -lasound
+ LDFLAGS=-L$(SDKSTAGE)/opt/vc/lib/
+-LDFLAGS+=-L./ -Lffmpeg_compiled/usr/local/lib/ -lc -lbrcmGLESv2 -lbrcmEGL -lbcm_host -lopenmaxil -lfreetype -lz -lasound
++LDFLAGS+=-L./ -Lffmpeg_compiled/usr/lib/ -lc -lbrcmGLESv2 -lbrcmEGL -lbcm_host -lopenmaxil -lfreetype -lz -lasound
--INCLUDES+=-I./ -Ilinux -Iffmpeg_compiled/usr/local/include/ -I /usr/include/dbus-1.0 -I /usr/lib/arm-linux-gnueabihf/dbus-1.0/include
-+INCLUDES+=-I./ -Ilinux -Iffmpeg_compiled/usr/include/ -I=/usr/include/dbus-1.0
+-INCLUDES+=-I./ -Ilinux -Iffmpeg_compiled/usr/local/include/ -I /usr/include/dbus-1.0 -I /usr/lib/arm-linux-gnueabihf/dbus-1.0/include -I/usr/include/freetype2 -isystem$(SDKSTAGE)/opt/vc/include -isystem$(SDKSTAGE)/opt/vc/include/interface/vcos/pthreads
++INCLUDES+=-I./ -Ilinux
DIST ?= omxplayer-dist
-
-@@ -88,5 +88,5 @@ dist: omxplayer.bin omxplayer.1
+ STRIP ?= strip
+@@ -90,7 +90,7 @@ dist: omxplayer.bin omxplayer.1
cp COPYING $(DIST)/usr/share/doc/omxplayer
cp README.md $(DIST)/usr/share/doc/omxplayer/README
cp omxplayer.1 $(DIST)/usr/share/man/man1
- cp -P ffmpeg_compiled/usr/local/lib/*.so* $(DIST)/usr/lib/omxplayer/
+ cp -P ffmpeg_compiled/usr/lib/*.so* $(DIST)/usr/lib/omxplayer/
cd $(DIST); tar -czf ../$(DIST).tgz *
+
+ install:
Index: git/Makefile.ffmpeg
===================================================================
--- git.orig/Makefile.ffmpeg
+++ git/Makefile.ffmpeg
-@@ -254,5 +254,5 @@ checkout:
+@@ -238,7 +238,8 @@ configure:
+ --disable-decoder=xbin \
+ --disable-decoder=idf \
+ --disable-decoder=hevc \
+- --enable-decoder=opus
++ --enable-decoder=opus \
++ --disable-stripping
+
+ .PHONY : clean
+ clean:
+@@ -251,5 +252,5 @@ checkout:
.PHONY : install
install:
cd ffmpeg; make -j9 DESTDIR="$(WORK)/ffmpeg_compiled" install
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0003-Remove-strip-step-in-Makefile.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0003-Remove-strip-step-in-Makefile.patch
index 7f313301e..0b6aafdf4 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0003-Remove-strip-step-in-Makefile.patch
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0003-Remove-strip-step-in-Makefile.patch
@@ -1,4 +1,4 @@
-From b738724c6ca45ee5fecebed01c7ac91c92446123 Mon Sep 17 00:00:00 2001
+From 6975d8a902837dd6c604f7fdd2a2f977285855ed Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei@gherzan.ro>
Date: Sun, 24 Aug 2014 00:18:05 +0200
Subject: [PATCH] Remove strip step in Makefile
@@ -10,30 +10,18 @@ omxplayer was already stripped, this will prevent future debugging!
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+
---
Makefile.ffmpeg | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
+ 1 files changed, 2 insertions(+), 3 deletions(-)
-diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg
-index 9d66a85..00df197 100644
---- a/Makefile.ffmpeg
-+++ b/Makefile.ffmpeg
-@@ -243,7 +243,8 @@ configure:
- --disable-decoder=xbin \
- --disable-decoder=idf \
- --enable-decoder=opus \
-- --cross-prefix=$(HOST)-
-+ --cross-prefix=$(HOST)- \
-+ --disable-stripping
-
- .PHONY : clean
- clean:
-@@ -256,5 +257,3 @@ checkout:
+Index: git/Makefile.ffmpeg
+===================================================================
+--- git.orig/Makefile.ffmpeg
++++ git/Makefile.ffmpeg
+@@ -252,5 +252,3 @@ checkout:
.PHONY : install
install:
cd ffmpeg; make -j9 DESTDIR="$(WORK)/ffmpeg_compiled" install
- $(HOST)-strip ffmpeg_compiled/usr/lib/*.so
-
---
-1.9.3
-
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch
index ea8530def..383cdf7cf 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch
@@ -1,4 +1,4 @@
-From 100982ee1fc1cb571c7453d14f9acd60e67d4765 Mon Sep 17 00:00:00 2001
+From be007b01e7d91f5f83518c0388c16db8dab31d2e Mon Sep 17 00:00:00 2001
From: Andrei Gherzan <andrei.gherzan@windriver.com>
Date: Sun, 25 Jan 2015 11:13:51 +0200
Subject: [PATCH] Add FFMPEG_EXTRA_CFLAGS and FFMPEG_EXTRA_LDFLAGS
@@ -8,16 +8,16 @@ In this way we can inject flags to LD and CC using
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+
---
- Makefile.ffmpeg | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
+ Makefile.ffmpeg | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
Index: git/Makefile.ffmpeg
===================================================================
--- git.orig/Makefile.ffmpeg
+++ git/Makefile.ffmpeg
-@@ -1,6 +1,8 @@
-
+@@ -1,5 +1,7 @@
CFLAGS=-D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_HAVE_SBRK -D_LARGEFILE64_SOURCE -DHAVE_CMAKE_CONFIG -DHAVE_VMCS_CONFIG -D_REENTRANT -DUSE_VCHIQ_ARM -DVCHI_BULK_ALIGN=1 -DVCHI_BULK_GRANULARITY=1 -DEGL_SERVER_DISPMANX -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__VIDEOCORE4__ -DGRAPHICS_X_VG=1 -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DOMX -DOMX_SKIP64BIT
+FFMPEG_EXTRA_CFLAGS?=-mfpu=vfp -mfloat-abi=$(FLOAT) -mno-apcs-stack-check -mstructure-size-boundary=32 -mno-sched-prolog
@@ -25,13 +25,13 @@ Index: git/Makefile.ffmpeg
WORK=$(PWD)
.PHONY : all
-@@ -21,7 +23,8 @@ configure:
+@@ -20,7 +22,8 @@ configure:
CFLAGS="$(CFLAGS) ${INCLUDES}" \
LDFLAGS="" \
./configure \
-- --extra-cflags="-mfpu=vfp -mfloat-abi=$(FLOAT) -mno-apcs-stack-check -mstructure-size-boundary=32 -mno-sched-prolog" \
+- --extra-cflags="-mfpu=vfp -mfloat-abi=hard -mno-apcs-stack-check -mstructure-size-boundary=32 -mno-sched-prolog" \
+ --extra-cflags="$(FFMPEG_EXTRA_CFLAGS)" \
+ --extra-ldflags="$(FFMPEG_EXTRA_LDFLAGS)" \
- --enable-cross-compile \
--enable-shared \
--disable-static \
+ --arch=arm \
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0005-Don-t-require-internet-connection-during-build.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0005-Don-t-require-internet-connection-during-build.patch
index 4f56ad2a5..f6abd7b88 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0005-Don-t-require-internet-connection-during-build.patch
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0005-Don-t-require-internet-connection-during-build.patch
@@ -1,4 +1,4 @@
-From 97cb9405f281f54d4083f3126d441c8b44eafb89 Mon Sep 17 00:00:00 2001
+From 81d1f8bc102b23bdfa63a01f252f3e4c74ae7da9 Mon Sep 17 00:00:00 2001
From: Paul Barker <pbarker@toganlabs.com>
Date: Thu, 7 Sep 2017 19:14:20 +0000
Subject: [PATCH] Don't require internet connection during build
@@ -11,16 +11,17 @@ The following issues break offline builds:
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
Upstream-status: Inappropriate
+
---
Makefile | 6 ++----
Makefile.ffmpeg | 2 +-
2 files changed, 3 insertions(+), 5 deletions(-)
-diff --git a/Makefile b/Makefile
-index 60501b1..6471f0f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -79,14 +79,12 @@ ffmpeg:
+Index: git/Makefile
+===================================================================
+--- git.orig/Makefile
++++ git/Makefile
+@@ -81,17 +81,14 @@ ffmpeg:
make -f Makefile.ffmpeg
make -f Makefile.ffmpeg install
@@ -36,13 +37,14 @@ index 60501b1..6471f0f 100644
- cp omxplayer.1 $(DIST)/usr/share/man/man1
cp -P ffmpeg_compiled/usr/lib/*.so* $(DIST)/usr/lib/omxplayer/
- tar -czf omxplayer-dist.tar.gz $(DIST)
-\ No newline at end of file
-+ tar -czf omxplayer-dist.tar.gz $(DIST)
-diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg
-index 22d495c..8651724 100644
---- a/Makefile.ffmpeg
-+++ b/Makefile.ffmpeg
-@@ -6,7 +6,7 @@ FFMPEG_EXTRA_CFLAGS?=-mfpu=vfp -mfloat-abi=$(FLOAT) -mno-apcs-stack-check -mstru
+
+ install:
+ cp -r $(DIST)/* /
+Index: git/Makefile.ffmpeg
+===================================================================
+--- git.orig/Makefile.ffmpeg
++++ git/Makefile.ffmpeg
+@@ -5,7 +5,7 @@ FFMPEG_EXTRA_CFLAGS?=-mfpu=vfp -mfloat-a
WORK=$(PWD)
.PHONY : all
@@ -51,6 +53,3 @@ index 22d495c..8651724 100644
.PHONY : copy
copy:
---
-2.7.4
-
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0006-Prevent-ffmpeg-configure-compile-race-condition.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0006-Prevent-ffmpeg-configure-compile-race-condition.patch
index 3fac2d1cd..890adde50 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0006-Prevent-ffmpeg-configure-compile-race-condition.patch
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/0006-Prevent-ffmpeg-configure-compile-race-condition.patch
@@ -1,4 +1,4 @@
-From 4a13419e3805b541fc58e57f1f27c4a388609ef5 Mon Sep 17 00:00:00 2001
+From f570b9985ff2d57d21c1e64ed08c43b6d89fd0b1 Mon Sep 17 00:00:00 2001
From: Paul Barker <pbarker@toganlabs.com>
Date: Thu, 7 Sep 2017 20:02:15 +0000
Subject: [PATCH] Prevent ffmpeg configure/compile race condition
@@ -8,15 +8,16 @@ the configure stage is finished before the compile stage starts.
Signed-off-by: Paul Barker <pbarker@toganlabs.com>
Upstream-status: Pending
+
---
Makefile.ffmpeg | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/Makefile.ffmpeg b/Makefile.ffmpeg
-index 8651724..619c49a 100644
---- a/Makefile.ffmpeg
-+++ b/Makefile.ffmpeg
-@@ -6,7 +6,7 @@ FFMPEG_EXTRA_CFLAGS?=-mfpu=vfp -mfloat-abi=$(FLOAT) -mno-apcs-stack-check -mstru
+Index: git/Makefile.ffmpeg
+===================================================================
+--- git.orig/Makefile.ffmpeg
++++ git/Makefile.ffmpeg
+@@ -5,7 +5,7 @@ FFMPEG_EXTRA_CFLAGS?=-mfpu=vfp -mfloat-a
WORK=$(PWD)
.PHONY : all
@@ -25,15 +26,12 @@ index 8651724..619c49a 100644
.PHONY : copy
copy:
-@@ -14,7 +14,7 @@ copy:
+@@ -13,7 +13,7 @@ copy:
$(HOST)-strip *.so*
.PHONY : compile
-compile:
+compile: configure
- +$(MAKE) -C ffmpeg
+ +$(MAKE) -j$(shell nproc) -C ffmpeg
.PHONY : configure
---
-2.7.4
-
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/cross-crompile-ffmpeg.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/cross-crompile-ffmpeg.patch
new file mode 100644
index 000000000..20ed7c7b9
--- /dev/null
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/cross-crompile-ffmpeg.patch
@@ -0,0 +1,12 @@
+Index: git/Makefile.ffmpeg
+===================================================================
+--- git.orig/Makefile.ffmpeg
++++ git/Makefile.ffmpeg
+@@ -22,6 +22,7 @@ configure:
+ CFLAGS="$(CFLAGS) ${INCLUDES}" \
+ LDFLAGS="" \
+ ./configure \
++ --enable-cross-compile \
+ --ld="${CCLD}" \
+ --cc="${CC}" \
+ --cxx="${CXX}" \
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/fix-tar-command-with-DIST.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/fix-tar-command-with-DIST.patch
index ab40e40a2..70859aa49 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/fix-tar-command-with-DIST.patch
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/fix-tar-command-with-DIST.patch
@@ -1,3 +1,8 @@
+From 23a97efde2aef171312000f7859ef4c573ce2ada Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei@gherzan.ro>
+Date: Sun, 19 Jan 2014 20:35:29 +0200
+Subject: [PATCH] omxplayer: Update to remote HEAD
+
Revert the tar command change introduced in:
https://github.com/popcornmix/omxplayer/commit/201c77973155861e60492e45d35467b19b69c1c4
@@ -8,14 +13,20 @@ Upstream-Status: Pending
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Jonathan Liu <net147@gmail.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
Index: git/Makefile
===================================================================
--- git.orig/Makefile
+++ git/Makefile
-@@ -71,4 +71,4 @@ dist: omxplayer.bin
- cp COPYING $(DIST)/usr/share/doc/
- cp README.md $(DIST)/usr/share/doc/README
+@@ -91,7 +91,7 @@ dist: omxplayer.bin omxplayer.1
+ cp README.md $(DIST)/usr/share/doc/omxplayer/README
+ cp omxplayer.1 $(DIST)/usr/share/man/man1
cp -P ffmpeg_compiled/usr/lib/*.so* $(DIST)/usr/lib/omxplayer/
- cd $(DIST); tar -czf ../$(DIST).tgz *
+ tar -czf omxplayer-dist.tar.gz $(DIST)
-\ No newline at end of file
+
+ install:
+ cp -r $(DIST)/* /
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/use-native-pkg-config.patch b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/use-native-pkg-config.patch
index ed8199939..e580470c0 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/use-native-pkg-config.patch
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer/use-native-pkg-config.patch
@@ -1,16 +1,25 @@
+From da6c24a2a87b8cf9692017e32be25d30c0cc7ef4 Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei@gherzan.ro>
+Date: Tue, 10 Feb 2015 00:52:18 +0100
+Subject: [PATCH] omxplayer: Bump SRCREV
+
Force the pkg-config native tool. Strangely ffmpeg prepends cross_prefix
to the default value which obviously is wrong.
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+---
+ Makefile.ffmpeg | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
Index: git/Makefile.ffmpeg
===================================================================
--- git.orig/Makefile.ffmpeg
+++ git/Makefile.ffmpeg
-@@ -245,7 +245,8 @@ configure:
+@@ -242,7 +242,8 @@ configure:
--disable-decoder=idf \
+ --disable-decoder=hevc \
--enable-decoder=opus \
- --cross-prefix=$(HOST)- \
- --disable-stripping
+ --disable-stripping \
+ --pkg-config=pkg-config
diff --git a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
index 1df41a5b1..aad2fed04 100644
--- a/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
+++ b/meta-raspberrypi/recipes-multimedia/omxplayer/omxplayer_git.bb
@@ -7,10 +7,11 @@ SECTION = "console/utils"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "libpcre libav virtual/egl boost freetype dbus openssl libssh libomxil coreutils-native curl-native"
+DEPENDS = "libpcre libav virtual/egl boost freetype dbus openssl libssh libomxil coreutils-native curl-native userland"
+
PR = "r4"
-SRCREV_default = "b8ff59dccd9307f10dad71bec2525a95bd6c603b"
+SRCREV_default = "b4bbef8fac5e8c2ddafa895f98456ba715b39c6b"
# omxplayer builds its own copy of ffmpeg from source instead of using the
# system's ffmpeg library. This isn't ideal but it's ok for now. We do however
@@ -18,12 +19,11 @@ SRCREV_default = "b8ff59dccd9307f10dad71bec2525a95bd6c603b"
# fetching the latest commit on a release branch (which is what the checkout job
# in Makefile.ffmpeg in the omxplayer source tree does).
#
-# This SRCREV corresponds to the v3.1.10 release of ffmpeg.
-SRCREV_ffmpeg = "afa34cb36edca0ff809b7e58474bbce12271ecba"
+# This SRCREV corresponds to the v4.0.3 release of ffmpeg.
+SRCREV_ffmpeg = "fcbd117df3077bad495e99e20f01cf93737bce76"
SRC_URI = "git://github.com/popcornmix/omxplayer.git;protocol=git;branch=master \
- git://source.ffmpeg.org/ffmpeg;branch=release/3.1;protocol=git;depth=1;name=ffmpeg;destsuffix=git/ffmpeg \
- file://0001-Remove-Makefile.include-which-includes-hardcoded.patch \
+ git://github.com/FFmpeg/FFmpeg;branch=release/4.0;protocol=git;depth=1;name=ffmpeg;destsuffix=git/ffmpeg \
file://0002-Libraries-and-headers-from-ffmpeg-are-installed-in-u.patch \
file://0003-Remove-strip-step-in-Makefile.patch \
file://0004-Add-FFMPEG_EXTRA_CFLAGS-and-FFMPEG_EXTRA_LDFLAGS.patch \
@@ -31,12 +31,23 @@ SRC_URI = "git://github.com/popcornmix/omxplayer.git;protocol=git;branch=master
file://use-native-pkg-config.patch \
file://0005-Don-t-require-internet-connection-during-build.patch \
file://0006-Prevent-ffmpeg-configure-compile-race-condition.patch \
+ file://0001-Specify-cc-cxx-and-ld-variables-from-environment.patch \
+ file://cross-crompile-ffmpeg.patch \
"
+
+SRC_URI_append = "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", " file://0001-Fix-build-with-vc4-driver.patch ", "", d)}"
+
S = "${WORKDIR}/git"
-COMPATIBLE_MACHINE ?= "null"
-COMPATIBLE_MACHINE_rpi_aarch64 = "null"
-COMPATIBLE_MACHINE_rpi = "(.*)"
+COMPATIBLE_MACHINE = "^rpi$"
+
+def cpu(d):
+ for arg in (d.getVar('TUNE_CCARGS') or '').split():
+ if arg.startswith('-mcpu='):
+ return arg[6:]
+ return 'generic'
+
+export CPU = "${@cpu(d)}"
inherit autotools-brokensep pkgconfig
@@ -55,11 +66,13 @@ export FFMPEG_EXTRA_CFLAGS = "${TUNE_CCARGS} ${TOOLCHAIN_OPTIONS}"
export FFMPEG_EXTRA_LDFLAGS = "${TUNE_CCARGS} ${TOOLCHAIN_OPTIONS}"
# Needed in top Makefile
+
export LDFLAGS = "-L${S}/ffmpeg_compiled/usr/lib \
-L${STAGING_DIR_HOST}/lib \
-L${STAGING_DIR_HOST}/usr/lib \
"
-export INCLUDES = "-isystem${STAGING_DIR_HOST}/usr/include/interface/vcos/pthreads \
+export INCLUDES = "${@bb.utils.contains("MACHINE_FEATURES", "vc4graphics", " -D__GBM__", "", d)} \
+ -isystem${STAGING_DIR_HOST}/usr/include/interface/vcos/pthreads \
-isystem${STAGING_DIR_HOST}/usr/include/freetype2 \
-isystem${STAGING_DIR_HOST}/usr/include/interface/vmcs_host/linux \
-isystem${STAGING_DIR_HOST}/usr/include/dbus-1.0 \
@@ -90,4 +103,4 @@ FILES_${PN} = "${bindir}/omxplayer* \
FILES_${PN}-dev += "${libdir}/omxplayer/*.so"
-RDEPENDS_${PN} += "bash procps"
+RDEPENDS_${PN} += "bash procps userland"
OpenPOWER on IntegriCloud