Merge branch 'master' of code.vuplus.com:/opt/repository/openvuplus_3.0
authorschon <schon@dev03-server>
Mon, 22 May 2017 02:18:30 +0000 (12:18 +1000)
committerschon <schon@dev03-server>
Mon, 22 May 2017 02:18:30 +0000 (12:18 +1000)
40 files changed:
meta-bsp/recipes-graphics/directfb/directfb-1.7.7/disable_linux_input_patch.diff [new file with mode: 0644]
meta-bsp/recipes-graphics/directfb/directfb-armv7ahf-vfp-neon_1.7.7.inc
meta-bsp/recipes-kernel/linux/linux-vuplus-3.14.28.inc
meta-bsp/recipes-kernel/linux/linux-vuplus-3.14.28/vusolo4k/vusolo4k_defconfig
meta-bsp/recipes-kernel/linux/linux-vuplus-3.14.28/vuultimo4k/vuultimo4k_defconfig
meta-bsp/recipes-kernel/linux/linux-vuplus-3.14.28/vuuno4k/vuuno4k_defconfig
meta-bsp/recipes-multimedia/kodi/files/xbmc-17.0-vuplus-patch.diff [new file with mode: 0644]
meta-bsp/recipes-multimedia/kodi/kodi-16.x.inc [new file with mode: 0644]
meta-bsp/recipes-multimedia/kodi/kodi-17.x.inc [new file with mode: 0644]
meta-bsp/recipes-multimedia/kodi/kodi-vuduo2.bb
meta-bsp/recipes-multimedia/kodi/kodi-vusolo2.bb
meta-bsp/recipes-multimedia/kodi/kodi-vusolo4k.bb
meta-bsp/recipes-multimedia/kodi/kodi-vusolose.bb
meta-bsp/recipes-multimedia/kodi/kodi-vuultimo4k.bb
meta-bsp/recipes-multimedia/kodi/kodi-vuuno4k.bb
meta-bsp/recipes-multimedia/kodi/kodi.inc [deleted file]
meta-bsp/recipes-multimedia/kodi/kodiegl-vusolo4k.bb [new file with mode: 0644]
meta-bsp/recipes-multimedia/kodi/kodiegl-vuultimo4k.bb [new file with mode: 0644]
meta-bsp/recipes-multimedia/kodi/kodiegl-vuuno4k.bb [new file with mode: 0644]
meta-bsp/recipes-multimedia/kodi/kodiegl.inc [new file with mode: 0644]
meta-bsp/recipes-vuplus/chromium/chromium-browser-vusolo4k.bb
meta-bsp/recipes-vuplus/chromium/chromium-browser-vuultimo4k.bb
meta-bsp/recipes-vuplus/chromium/chromium-browser-vuuno4k.bb
meta-bsp/recipes-vuplus/chromium/chromium-browser.inc
meta-bsp/recipes-vuplus/chromium/enigma2-plugin-extensions-chromium.bb
meta-bsp/recipes-vuplus/vuplus-blindscan-utils/vuplus-blindscan-utils.bb
meta-bsp/recipes-vuplus/vuplus-bluetooth-util/vuplus-bluetooth-util-vuultimo4k.bb
meta-bsp/recipes-vuplus/webkit-hbbtv/enigma2-plugin-extensions-webkithbbtv.bb
meta-bsp/recipes-vuplus/webkit-hbbtv/webkit-hbbtv-browser-vusolo4k.bb
meta-bsp/recipes-vuplus/webkit-hbbtv/webkit-hbbtv-browser-vuultimo4k.bb
meta-bsp/recipes-vuplus/webkit-hbbtv/webkit-hbbtv-browser-vuuno4k.bb
meta-openvuplus/conf/distro/vuplus.conf
meta-openvuplus/recipes-multimedia/gstreamer/gstreamer1.0-plugin-subsink.bb
meta-openvuplus/recipes-support/taglib/taglib_1.11.1.bb [new file with mode: 0644]
meta-openvuplus/recipes-support/taglib/taglib_1.8.bb [deleted file]
meta-openvuplus/recipes-vuplus/bluetoothsetup/enigma2-plugin-systemplugins-bluetoothsetup.bb
meta-openvuplus/recipes-vuplus/enigma2/enigma2.bb
meta-openvuplus/recipes-vuplus/packagegroups/packagegroup-vuplus-enigma2.bb
meta-openvuplus/recipes-vuplus/vuplus-skin/vuplus-skins.bb
meta-openvuplus/recipes-vuplus/witaistt/enigma2-plugin-extensions-witaispeechtotext.bb [new file with mode: 0644]

diff --git a/meta-bsp/recipes-graphics/directfb/directfb-1.7.7/disable_linux_input_patch.diff b/meta-bsp/recipes-graphics/directfb/directfb-1.7.7/disable_linux_input_patch.diff
new file mode 100644 (file)
index 0000000..bd2a8cc
--- /dev/null
@@ -0,0 +1,15 @@
+diff --git a/inputdrivers/linux_input/linux_input.c b/inputdrivers/linux_input/linux_input.c
+index 2d5d8fe..dd419f9 100644
+--- a/inputdrivers/linux_input/linux_input.c
++++ b/inputdrivers/linux_input/linux_input.c
+@@ -1911,8 +1911,10 @@ driver_open_device( CoreInputDevice  *device,
+           goto driver_open_device_error;
+      }
++if (getenv("DISABLE_LINUX_INPUT") == 0) {
+      /* start input thread */
+      data->thread = direct_thread_create( DTT_INPUT, linux_input_EventThread, data, "Linux Input" );
++}
+      /* set private data pointer */
+      *driver_data = data;
index f65f54b..36564f2 100644 (file)
@@ -2,11 +2,12 @@ require directfb-${MACHINE}.inc
 
 GFX_FILE = "directfb_1.7-7_gfxdriver_${MACHINE}_${GFXPR}.tar.gz"
 
-PR .= "-vuplus1_${GFXPR}"
+PR .= "-vuplus2_${GFXPR}"
 
 SRC_URI += " \
        file://vuplus-conf.patch \
        file://vuplus-prevent-VT.patch \
+       file://disable_linux_input_patch.diff \
        http://archive.vuplus.com/download/build_support/vuplus/${GFX_FILE};name=gfxdriver \
 "
 
index d6108f6..147559e 100644 (file)
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
 PE = "1"
 KV = "3.14.28"
 
-INC_PR = "r4"
+INC_PR = "r5"
 SRCREV = ""
 
 MODULE = "linux-3.14.28"
index 8d35b09..bb6f6bd 100644 (file)
@@ -2810,56 +2810,70 @@ CONFIG_USB_STORAGE=y
 # USB port drivers
 #
 CONFIG_USB_SERIAL=m
-# CONFIG_USB_SERIAL_GENERIC is not set
-# CONFIG_USB_SERIAL_SIMPLE is not set
-# CONFIG_USB_SERIAL_AIRCABLE is not set
-# CONFIG_USB_SERIAL_ARK3116 is not set
-# CONFIG_USB_SERIAL_BELKIN is not set
-# CONFIG_USB_SERIAL_CH341 is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-# CONFIG_USB_SERIAL_CP210X is not set
-# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
-# CONFIG_USB_SERIAL_EMPEG is not set
-# CONFIG_USB_SERIAL_FTDI_SIO is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
-# CONFIG_USB_SERIAL_EDGEPORT is not set
-# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
-# CONFIG_USB_SERIAL_F81232 is not set
-# CONFIG_USB_SERIAL_GARMIN is not set
-# CONFIG_USB_SERIAL_IPW is not set
-# CONFIG_USB_SERIAL_IUU is not set
-# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-# CONFIG_USB_SERIAL_KLSI is not set
-# CONFIG_USB_SERIAL_KOBIL_SCT is not set
-# CONFIG_USB_SERIAL_MCT_U232 is not set
-# CONFIG_USB_SERIAL_METRO is not set
-# CONFIG_USB_SERIAL_MOS7720 is not set
-# CONFIG_USB_SERIAL_MOS7840 is not set
-# CONFIG_USB_SERIAL_MXUPORT is not set
-# CONFIG_USB_SERIAL_NAVMAN is not set
-# CONFIG_USB_SERIAL_PL2303 is not set
-# CONFIG_USB_SERIAL_OTI6858 is not set
-# CONFIG_USB_SERIAL_QCAUX is not set
-# CONFIG_USB_SERIAL_QUALCOMM is not set
-# CONFIG_USB_SERIAL_SPCP8X5 is not set
-# CONFIG_USB_SERIAL_SAFE is not set
-# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
-# CONFIG_USB_SERIAL_SYMBOL is not set
-# CONFIG_USB_SERIAL_TI is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-# CONFIG_USB_SERIAL_XIRCOM is not set
-# CONFIG_USB_SERIAL_OPTION is not set
-# CONFIG_USB_SERIAL_OMNINET is not set
-# CONFIG_USB_SERIAL_OPTICON is not set
-# CONFIG_USB_SERIAL_XSENS_MT is not set
-# CONFIG_USB_SERIAL_WISHBONE is not set
-# CONFIG_USB_SERIAL_ZTE is not set
-# CONFIG_USB_SERIAL_SSU100 is not set
-# CONFIG_USB_SERIAL_QT2 is not set
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_ZTE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
index 77d56b4..13e015d 100644 (file)
@@ -2821,56 +2821,70 @@ CONFIG_USB_STORAGE=y
 # USB port drivers
 #
 CONFIG_USB_SERIAL=m
-# CONFIG_USB_SERIAL_GENERIC is not set
-# CONFIG_USB_SERIAL_SIMPLE is not set
-# CONFIG_USB_SERIAL_AIRCABLE is not set
-# CONFIG_USB_SERIAL_ARK3116 is not set
-# CONFIG_USB_SERIAL_BELKIN is not set
-# CONFIG_USB_SERIAL_CH341 is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-# CONFIG_USB_SERIAL_CP210X is not set
-# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
-# CONFIG_USB_SERIAL_EMPEG is not set
-# CONFIG_USB_SERIAL_FTDI_SIO is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
-# CONFIG_USB_SERIAL_EDGEPORT is not set
-# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
-# CONFIG_USB_SERIAL_F81232 is not set
-# CONFIG_USB_SERIAL_GARMIN is not set
-# CONFIG_USB_SERIAL_IPW is not set
-# CONFIG_USB_SERIAL_IUU is not set
-# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-# CONFIG_USB_SERIAL_KLSI is not set
-# CONFIG_USB_SERIAL_KOBIL_SCT is not set
-# CONFIG_USB_SERIAL_MCT_U232 is not set
-# CONFIG_USB_SERIAL_METRO is not set
-# CONFIG_USB_SERIAL_MOS7720 is not set
-# CONFIG_USB_SERIAL_MOS7840 is not set
-# CONFIG_USB_SERIAL_MXUPORT is not set
-# CONFIG_USB_SERIAL_NAVMAN is not set
-# CONFIG_USB_SERIAL_PL2303 is not set
-# CONFIG_USB_SERIAL_OTI6858 is not set
-# CONFIG_USB_SERIAL_QCAUX is not set
-# CONFIG_USB_SERIAL_QUALCOMM is not set
-# CONFIG_USB_SERIAL_SPCP8X5 is not set
-# CONFIG_USB_SERIAL_SAFE is not set
-# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
-# CONFIG_USB_SERIAL_SYMBOL is not set
-# CONFIG_USB_SERIAL_TI is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-# CONFIG_USB_SERIAL_XIRCOM is not set
-# CONFIG_USB_SERIAL_OPTION is not set
-# CONFIG_USB_SERIAL_OMNINET is not set
-# CONFIG_USB_SERIAL_OPTICON is not set
-# CONFIG_USB_SERIAL_XSENS_MT is not set
-# CONFIG_USB_SERIAL_WISHBONE is not set
-# CONFIG_USB_SERIAL_ZTE is not set
-# CONFIG_USB_SERIAL_SSU100 is not set
-# CONFIG_USB_SERIAL_QT2 is not set
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_ZTE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -3260,11 +3274,6 @@ CONFIG_JFFS2_RTIME=y
 # CONFIG_LOGFS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_SQUASHFS is not set
-# CONFIG_SQUASHFS_FILE_CACHE is not set
-# CONFIG_SQUASHFS_FILE_DIRECT is not set
-# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
 # CONFIG_VXFS_FS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_OMFS_FS is not set
index 19eef6c..c7f5c4b 100644 (file)
@@ -2821,56 +2821,70 @@ CONFIG_USB_STORAGE=y
 # USB port drivers
 #
 CONFIG_USB_SERIAL=m
-# CONFIG_USB_SERIAL_GENERIC is not set
-# CONFIG_USB_SERIAL_SIMPLE is not set
-# CONFIG_USB_SERIAL_AIRCABLE is not set
-# CONFIG_USB_SERIAL_ARK3116 is not set
-# CONFIG_USB_SERIAL_BELKIN is not set
-# CONFIG_USB_SERIAL_CH341 is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
-# CONFIG_USB_SERIAL_CP210X is not set
-# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
-# CONFIG_USB_SERIAL_EMPEG is not set
-# CONFIG_USB_SERIAL_FTDI_SIO is not set
-# CONFIG_USB_SERIAL_VISOR is not set
-# CONFIG_USB_SERIAL_IPAQ is not set
-# CONFIG_USB_SERIAL_IR is not set
-# CONFIG_USB_SERIAL_EDGEPORT is not set
-# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
-# CONFIG_USB_SERIAL_F81232 is not set
-# CONFIG_USB_SERIAL_GARMIN is not set
-# CONFIG_USB_SERIAL_IPW is not set
-# CONFIG_USB_SERIAL_IUU is not set
-# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
-# CONFIG_USB_SERIAL_KEYSPAN is not set
-# CONFIG_USB_SERIAL_KLSI is not set
-# CONFIG_USB_SERIAL_KOBIL_SCT is not set
-# CONFIG_USB_SERIAL_MCT_U232 is not set
-# CONFIG_USB_SERIAL_METRO is not set
-# CONFIG_USB_SERIAL_MOS7720 is not set
-# CONFIG_USB_SERIAL_MOS7840 is not set
-# CONFIG_USB_SERIAL_MXUPORT is not set
-# CONFIG_USB_SERIAL_NAVMAN is not set
-# CONFIG_USB_SERIAL_PL2303 is not set
-# CONFIG_USB_SERIAL_OTI6858 is not set
-# CONFIG_USB_SERIAL_QCAUX is not set
-# CONFIG_USB_SERIAL_QUALCOMM is not set
-# CONFIG_USB_SERIAL_SPCP8X5 is not set
-# CONFIG_USB_SERIAL_SAFE is not set
-# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
-# CONFIG_USB_SERIAL_SYMBOL is not set
-# CONFIG_USB_SERIAL_TI is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-# CONFIG_USB_SERIAL_XIRCOM is not set
-# CONFIG_USB_SERIAL_OPTION is not set
-# CONFIG_USB_SERIAL_OMNINET is not set
-# CONFIG_USB_SERIAL_OPTICON is not set
-# CONFIG_USB_SERIAL_XSENS_MT is not set
-# CONFIG_USB_SERIAL_WISHBONE is not set
-# CONFIG_USB_SERIAL_ZTE is not set
-# CONFIG_USB_SERIAL_SSU100 is not set
-# CONFIG_USB_SERIAL_QT2 is not set
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_SIMPLE=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_F81232=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_METRO=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MXUPORT=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SAFE=m
+CONFIG_USB_SERIAL_SAFE_PADDED=y
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_XSENS_MT=m
+CONFIG_USB_SERIAL_WISHBONE=m
+CONFIG_USB_SERIAL_ZTE=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_QT2=m
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -3260,11 +3274,6 @@ CONFIG_JFFS2_RTIME=y
 # CONFIG_LOGFS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_SQUASHFS is not set
-# CONFIG_SQUASHFS_FILE_CACHE is not set
-# CONFIG_SQUASHFS_FILE_DIRECT is not set
-# CONFIG_SQUASHFS_DECOMP_SINGLE is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
 # CONFIG_VXFS_FS is not set
 # CONFIG_MINIX_FS is not set
 # CONFIG_OMFS_FS is not set
diff --git a/meta-bsp/recipes-multimedia/kodi/files/xbmc-17.0-vuplus-patch.diff b/meta-bsp/recipes-multimedia/kodi/files/xbmc-17.0-vuplus-patch.diff
new file mode 100644 (file)
index 0000000..ad055a1
--- /dev/null
@@ -0,0 +1,1174 @@
+diff --git a/.gitignore b/.gitignore
+index c0631de..8392f6b 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -371,6 +371,7 @@ lib/cpluff/stamp-h1
+ # /tools/Linux/
+ /tools/Linux/kodi.sh
++/tools/Linux/kodi.run
+ /tools/Linux/kodi-standalone.sh
+ /tools/Linux/kodi-xsession.desktop
+diff --git a/Makefile.in b/Makefile.in
+index 0d70e9b..a6ee74b 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -237,7 +237,7 @@ INCLUDES=$(sort @INCLUDES@)
+ CLEAN_FILES=@APP_NAME_LC@.bin @APP_NAME_LC@-xrandr lib@APP_NAME_LC@.so
+-DISTCLEAN_FILES=config.h config.log config.status tools/Linux/kodi.sh \
++DISTCLEAN_FILES=config.h config.log config.status tools/Linux/kodi.sh tools/Linux/kodi.run \
+         tools/Linux/kodi-standalone.sh autom4te.cache config.h.in~ \
+         system/libcpluff-@ARCH@.so
+@@ -273,9 +273,12 @@ CHECK_LIBS = xbmc/addons/test/addonsTest.a \
+              xbmc/video/test/videoTest.a \
+              xbmc/threads/test/threadTest.a \
+              xbmc/interfaces/python/test/pythonSwigTest.a \
+-             xbmc/cores/AudioEngine/Sinks/test/AESinkTest.a \
+              xbmc/test/xbmc-test.a
++ifneq (@VUPLUS_COMPILE@,yes)
++CHECK_LIBS += xbmc/cores/AudioEngine/Sinks/test/AESinkTest.a
++endif
++
+ ifeq (@HAVE_SSE4@,1)
+ LIBSSE4+=sse4
+ sse4 : force
+@@ -407,6 +410,10 @@ FFMPEGOBJS = @FFMPEG_LIBDIR@/libavcodec.a \
+ DYNOBJSXBMC+= $(FFMPEGOBJS)
+ LIBS+= @GNUTLS_ALL_LIBS@
++ifeq (@VUPLUS_COMPILE@,yes)
++LIBS+= -lKodiGLESPL -ldvb_base -lnxpl -ldvb_client
++endif
++
+ $(FFMPEGOBJS): dvdpcodecs
+ endif
+@@ -522,6 +529,9 @@ install-scripts:
+       @install -d $(DESTDIR)$(datarootdir)/xsessions
+       @install -m 0644 tools/Linux/kodi-xsession.desktop $(DESTDIR)$(datarootdir)/xsessions/@APP_NAME_LC@.desktop
+       @cd $(DESTDIR)$(datarootdir)/xsessions; [ -L xbmc.desktop ] || [ -f xbmc.desktop ] || ln -s @APP_NAME_LC@.desktop xbmc.desktop
++      @install -d $(DESTDIR)$(libdir)
++      @install -d $(DESTDIR)$(libdir)/@APP_NAME_LC@
++      @install tools/Linux/@APP_NAME_LC@.run $(DESTDIR)$(libdir)/@APP_NAME_LC@/@APP_NAME_LC@.run
+ install-datas: install-scripts
+       @echo "Copying support and legal files..."
+diff --git a/addons/skin.estouchy/xml/Home.xml b/addons/skin.estouchy/xml/Home.xml
+index 971f04b..4d96119 100644
+--- a/addons/skin.estouchy/xml/Home.xml
++++ b/addons/skin.estouchy/xml/Home.xml
+@@ -181,7 +181,7 @@
+                               <content>
+                                       <item>
+                                               <label>13012</label>
+-                                              <onclick>Shutdown</onclick>
++                                              <onclick>XBMC.Quit()</onclick>
+                                               <icon>icon_button_shutdown.png</icon>
+                                       </item>
+                                       <item>
+diff --git a/addons/skin.estuary/xml/Home.xml b/addons/skin.estuary/xml/Home.xml
+index 16187cc..89feb5b 100644
+--- a/addons/skin.estuary/xml/Home.xml
++++ b/addons/skin.estuary/xml/Home.xml
+@@ -915,7 +915,7 @@
+                                       <align>justify</align>
+                                       <include content="IconButton">
+                                               <param name="control_id" value="804" />
+-                                              <param name="onclick" value="ActivateWindow(shutdownmenu)" />
++                                              <param name="onclick" value="XBMC.Quit()" />
+                                               <param name="icon" value="icons/power.png" />
+                                               <param name="label" value="$LOCALIZE[33060]" />
+                                       </include>
+diff --git a/configure.ac b/configure.ac
+index 0609390..f223baf 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -681,6 +681,16 @@ case $use_platform in
+      use_neon=yes
+      use_cpu=cortex-a7
+      ;;
++  vuplus-arm)
++     target_platform=target_vuplus
++     ARCH="arm"
++     use_arch="arm"
++     ;;
++  vuplus-mips)
++     target_platform=target_vuplus
++     ARCH="mips"
++     use_arch="mips"
++     ;;
+ esac
+ if test "$target_platform" = "target_raspberry_pi" ; then
+@@ -696,6 +706,22 @@ if test "$target_platform" = "target_raspberry_pi" ; then
+      CXXFLAGS="$CXXFLAGS"
+ fi
++if test "$target_platform" = "target_vuplus" ; then
++     ffmpeg_target_os=linux
++     use_joystick=no
++     use_gles=yes
++     use_sdl=no
++     use_x11=no
++     use_wayland=no
++     use_wayland=no
++     use_optical_drive=no
++     USE_STATIC_FFMPEG=1
++     AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
++     VUPLUS_COMPILE=yes
++     CFLAGS="$CFLAGS"
++     CXXFLAGS="$CXXFLAGS"
++fi
++
+ if test "$host_vendor" = "apple"; then
+   use_avahi=no
+   use_alsa=no
+@@ -1056,7 +1082,7 @@ int main() {
+   )])
+ AC_LANG_POP([C++])
+-if test "${target_platform}" = "target_linux" || test "${target_platform}" = "target_raspberry_pi" || test "${target_platform}" = "target_android"; then
++if test "${target_platform}" = "target_linux" || test "${target_platform}" = "target_raspberry_pi" || test "${target_platform}" = "target_android" || test "${target_platform}" = "target_vuplus"; then
+   PKG_CHECK_MODULES([UUID], [uuid],, AC_MSG_ERROR(libuuid not found))
+ fi
+@@ -1556,7 +1582,21 @@ if test "${USE_STATIC_FFMPEG}" = "1"; then
+       pkg_cfg_prefix=${SYSROOT}
+   fi
+-  if test "$cross_compiling" != "yes"; then
++  if test "${target_platform}" = "target_vuplus"; then
++    # always build our ffmpeg
++    if test "$use_debug" != "yes"; then
++      FFMPEG_OPTS="-r"
++    fi
++    if test "$use_optimizations" != "yes"; then
++      FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations"
++    fi
++    AC_MSG_NOTICE("FFmpeg installation forced by user - installing our version")
++    CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" NM="$NM" AR="$AR" \
++      AS="$AS" STRIP="$STRIP" CC="$CC" CXX="$CXX" LD="$CCLD" RANLIB="$RANLIB" \
++      ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS} ${PARALLEL_MAKE} --arch=generic
++    export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
++
++  elif test "$cross_compiling" != "yes"; then
+     if test "$use_debug" != "yes"; then
+       FFMPEG_OPTS="-r"
+     fi
+@@ -1589,14 +1629,18 @@ if test "${USE_STATIC_FFMPEG}" = "1"; then
+       if test "$with_ffmpeg" = "yes" || test "$FFMPEG_FOUND" = "false"; then
+         # ffmpeg not found with pkg-config, lets install it
+         AC_MSG_NOTICE("Installing FFmpeg")
+-        CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
++        CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" NM="$NM" AR="$AR" \
++          AS="$AS" STRIP="$STRIP" CC="$CC" CXX="$CXX" LD="$CCLD" RANLIB="$RANLIB" \
++          ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
+         export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
+       fi
+     elif test "$with_ffmpeg" = "force"; then
+       # always build our ffmpeg
+       AC_MSG_NOTICE("FFmpeg installation forced by user - installing our version")
+-      CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
++      CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" NM="$NM" AR="$AR" \
++        AS="$AS" STRIP="$STRIP" CC="$CC" CXX="$CXX" LD="$CCLD" RANLIB="$RANLIB" \
++        ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS}
+       export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
+     elif test "$with_ffmpeg" != "no"; then
+@@ -1609,13 +1653,17 @@ fi
+ if test "$FFMPEG_FOUND" != "true"; then
+   PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
+-    [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
++    [FFMPEG_FOUND="true"],
+     [AC_MSG_ERROR("ffmpeg not found")])
++  FFMPEG_LIBS=$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --libs libavcodec 2>/dev/null)
++  FFMPEG_CFLAGS=$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --cflags libavcodec 2>/dev/null)
++  INCLUDES="$INCLUDES $FFMPEG_CFLAGS"
++  LIBS="$LIBS $FFMPEG_LIBS"
+ fi
+ if test "${USE_STATIC_FFMPEG}" = "1"; then
+   # get the libdir for static linking
+-  FFMPEG_LIBDIR=${pkg_cfg_prefix}$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --static --variable=libdir libavcodec)
++  FFMPEG_LIBDIR=$(PKG_CONFIG_SYSROOT_DIR="" ${PKG_CONFIG} --static --variable=libdir libavcodec)
+   GNUTLS_ALL_LIBS=$(${PKG_CONFIG} --static --libs-only-l --silence-errors gnutls)
+   # check if static libs are available
+@@ -2200,6 +2248,7 @@ OUTPUT_FILES="Makefile \
+     lib/addons/library.kodi.inputstream/Makefile \
+     tools/Linux/kodi.sh \
+     tools/Linux/kodi-standalone.sh \
++    tools/Linux/kodi.run \
+     tools/Linux/kodi-xsession.desktop \
+     tools/EventClients/Makefile \
+     tools/EventClients/Clients/OSXRemote/Makefile \
+@@ -2329,6 +2378,7 @@ AC_SUBST(HAVE_SSE4)
+ AC_SUBST(USE_MMAL)
+ AC_SUBST(USE_X11)
+ AC_SUBST(USE_OPTICAL_DRIVE)
++AC_SUBST(VUPLUS_COMPILE)
+ # pushd and popd are not available in other shells besides bash, so implement
+ # our own pushd/popd functions
+diff --git a/lib/libdvd/Makefile.in b/lib/libdvd/Makefile.in
+index 5a4508b..11cb139 100644
+--- a/lib/libdvd/Makefile.in
++++ b/lib/libdvd/Makefile.in
+@@ -4,6 +4,12 @@ ARCH=@ARCH@
+ CC=@CC@
+ CXX=@CXX@
++ifeq (@VUPLUS_COMPILE@,yes)
++  DVDNAV_A = @abs_top_srcdir@/tools/depends/target/libdvdnav/dvdnav-install/lib/libdvdnav.a
++  DVDREAD_A = @abs_top_srcdir@/tools/depends/target/libdvdread/dvdread-install/lib/libdvdread.a
++  DVDCSS_A = @abs_top_srcdir@/tools/depends/target/libdvdcss/dvdcss-install/lib/libdvdcss.a
++else
++
+ ifeq (@CROSS_COMPILING@,yes)
+   DEPENDS_DIR = $(shell grep "^PREFIX=/" @abs_top_srcdir@/tools/depends/Makefile.include | sed 's/PREFIX=//g')
+   DVDNAV_A = $(DEPENDS_DIR)/lib/libdvdnav.a
+@@ -15,6 +21,8 @@ else
+   DVDCSS_A = @abs_top_srcdir@/tools/depends/target/libdvdcss/dvdcss-install/lib/libdvdcss.a
+ endif
++endif
++
+ SYSDIR = @abs_top_srcdir@/system/players/VideoPlayer
+ SOS = libdvdnav-$(ARCH).so
+diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4
+index d28f263..a51286d 100644
+--- a/m4/xbmc_arch.m4
++++ b/m4/xbmc_arch.m4
+@@ -80,4 +80,14 @@ fi
+ if test "$target_platform" = "target_raspberry_pi" ; then
+   AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
+ fi
++
++case $use_platform in
++  vuplus-arm)
++     AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_VUPLUS")
++     ;;
++  vuplus-mips)
++     AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_VUPLUS -D_MIPSEL")
++     ;;
++esac
++
+ ])
+diff --git a/system/playercorefactory.xml b/system/playercorefactory.xml
+index be6b721..3e50877 100644
+--- a/system/playercorefactory.xml
++++ b/system/playercorefactory.xml
+@@ -8,6 +8,13 @@
+     <player name="VideoPlayer" /> placeholder for MPlayer
+     <player name="PAPlayer" audio="true" />
+     -->
++    <player name="E2Player" type="ExternalPlayer" audio="false" video="true">
++      <filename>xbmc.helper</filename>
++      <args>--url="{1}" --owner="$PPID"</args>
++      <hidexbmc>true</hidexbmc>
++      <hideconsole>true</hideconsole>
++      <warpcursor>none</warpcursor>
++    </player>
+   </players>
+   <rules name="system rules">
+@@ -36,5 +43,7 @@
+     <!-- pvr radio channels should be played by VideoPlayer because they need buffering -->
+     <rule name="radio" filetypes="pvr" filename=".*/radio/.*" player="VideoPlayer" />
++
++    <rule name="dgb" filetypes="*" player="E2Player"/>
+   </rules>
+ </playercorefactory>
+diff --git a/tools/Linux/kodi.run.in b/tools/Linux/kodi.run.in
+new file mode 100644
+index 0000000..f1091ca
+--- /dev/null
++++ b/tools/Linux/kodi.run.in
+@@ -0,0 +1,4 @@
++#!/bin/sh
++
++/usr/bin/kodi > /dev/null 2>&1 &
++
+diff --git a/tools/Linux/kodi.sh.in b/tools/Linux/kodi.sh.in
+index 9fc75dd..66946fe 100644
+--- a/tools/Linux/kodi.sh.in
++++ b/tools/Linux/kodi.sh.in
+@@ -25,7 +25,23 @@ prefix="@prefix@"
+ exec_prefix="@exec_prefix@"
+ datarootdir="@datarootdir@"
+ LIBDIR="@libdir@"
+-CRASHLOG_DIR=${CRASHLOG_DIR:-$HOME}
++
++HDD_MOUNT_POINT="$(grep '/media/hdd' /proc/mounts)"
++if [ "$HDD_MOUNT_POINT" != "" ]; then
++    export HOME="/media/hdd"
++else
++    export HOME="/home/root"
++fi
++ 
++export KODI_TEMP="/tmp/kodi"
++CRASHLOG_DIR=${CRASHLOG_DIR:-$KODI_TEMP}
++
++echo "-----------------+ XBMC ENVIRONMENTS +"
++echo "  + CRASHLOG_DIR    : "$CRASHLOG_DIR
++echo "  + HOME            : "$HOME
++echo "  + HDD_MOUNT_POINT : "$HDD_MOUNT_POINT
++echo ""
++
+ USERDATA_DIR="${HOME}/.${bin_name}"
+@@ -161,14 +177,14 @@ while [ $(( $LOOP )) = "1" ]
+ do
+   LOOP=0
+   "$LIBDIR/${bin_name}/${bin_name}.bin" $SAVED_ARGS
+-  RET=$?
+-  if [ $(( $RET == 65 )) = "1" ]
+-  then # User requested to restart app
+-    LOOP=1
+-  elif [ $(( ($RET >= 131 && $RET <= 136) || $RET == 139 )) = "1" ]
+-  then # Crashed with core dump
+-    print_crash_report
+-  fi
++#  RET=$?
++#  if [ $(( $RET == 65 )) = "1" ]
++#  then # User requested to restart app
++#    LOOP=1
++#  elif [ $(( ($RET >= 131 && $RET <= 136) || $RET == 139 )) = "1" ]
++#  then # Crashed with core dump
++#    print_crash_report
++#  fi
+ done
+ exit $RET
+diff --git a/tools/depends/configure.ac b/tools/depends/configure.ac
+index 3626ea5..0da8d18 100644
+--- a/tools/depends/configure.ac
++++ b/tools/depends/configure.ac
+@@ -186,6 +186,14 @@ case $host in
+     #android builds are always cross
+     cross_compiling="yes"
+   ;;
++  mipsel-*-linux*)
++    use_cpu=$host_cpu
++    use_toolchain="${use_toolchain:-/usr}"
++    platform_cflags="-Os -fPIC -DPIC"
++    platform_ldflags="-Wl,-rpath-link=$prefix/$deps_dir/lib"
++    platform_cxxflags="$platform_cflags"
++    platform_os="linux"
++    ;;
+   arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
+     if test "$use_platform" = "auto"; then
+       if test "x$use_cpu" = "xauto"; then
+diff --git a/tools/depends/native/JsonSchemaBuilder/Makefile b/tools/depends/native/JsonSchemaBuilder/Makefile
+index cf5d20b..0bca981 100644
+--- a/tools/depends/native/JsonSchemaBuilder/Makefile
++++ b/tools/depends/native/JsonSchemaBuilder/Makefile
+@@ -1,3 +1,7 @@
++LD=ld
++CC=gcc
++CXX=g++
++
+ ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+ -include ../../Makefile.include
+@@ -21,6 +25,7 @@ APPBIN=$(PREFIX)/bin/JsonSchemaBuilder
+ all: .installed-$(PLATFORM)
++.PHONY:$(PLATFORM)
+ $(PLATFORM):
+       -rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
+       cd $(PLATFORM); cp -a $(SOURCE)/* .
+diff --git a/tools/depends/target/ffmpeg/autobuild.sh b/tools/depends/target/ffmpeg/autobuild.sh
+index 5c29762..a3e7806 100755
+--- a/tools/depends/target/ffmpeg/autobuild.sh
++++ b/tools/depends/target/ffmpeg/autobuild.sh
+@@ -134,6 +134,20 @@ tar --strip-components=1 -xf $MYDIR/${ARCHIVE}
+ CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \
+ ./configure --prefix=$FFMPEG_PREFIX \
++      --bindir="$FFMPEG_PREFIX/bin" \
++      --libdir="$FFMPEG_PREFIX/lib" \
++      --incdir="$FFMPEG_PREFIX/include" \
++      --pkgconfigdir="$FFMPEG_PREFIX/lib/pkgconfig" \
++      --target-os=linux \
++      --enable-cross-compile \
++      --nm="$NM" \
++      --ar="$AR" \
++      --as="$AS" \
++      --strip="$STRIP" \
++      --cc="$CC" \
++      --cxx="$CXX" \
++      --ld="$CCLD" \
++      --ranlib="$RANLIB" \
+       --extra-version="kodi-${VERSION}" \
+       --disable-devices \
+       --disable-ffplay \
+diff --git a/tools/depends/target/libdvdcss/Makefile b/tools/depends/target/libdvdcss/Makefile
+index 518ce2b..6a66382 100644
+--- a/tools/depends/target/libdvdcss/Makefile
++++ b/tools/depends/target/libdvdcss/Makefile
+@@ -3,7 +3,7 @@ include DVDCSS-VERSION
+ DEPS= DVDCSS-VERSION Makefile
+ ifeq ($(CROSS_COMPILING), yes)
+-  DEPS += ../../Makefile.include
++
+ else
+   ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+   PREFIX := $(ROOT_DIR)/dvdcss-install
+@@ -19,8 +19,7 @@ RETRIEVE_TOOL := curl -Ls --create-dirs --retry 10 --retry-delay 3
+ ARCHIVE_TOOL := tar --strip-components=1 -xf
+ # configuration settings
+-config = --prefix=$(PREFIX) --disable-shared --enable-static --with-pic
+-
++config = --build=$(BUILD_SYS) --host=$(HOST_SYS) --prefix=$(PREFIX) --disable-shared --enable-static --with-pic
+ CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
+ GITREV=$(shell git ls-remote $(BASE_URL) $(VERSION) | awk '{print $$1}')
+diff --git a/tools/depends/target/libdvdnav/Makefile b/tools/depends/target/libdvdnav/Makefile
+index cd44351..1a27e12 100644
+--- a/tools/depends/target/libdvdnav/Makefile
++++ b/tools/depends/target/libdvdnav/Makefile
+@@ -3,11 +3,11 @@ include DVDNAV-VERSION
+ DEPS = DVDNAV-VERSION Makefile
+ # configuration settings
+-config = --prefix=$(PREFIX) --disable-shared --enable-static --with-pic
++config = --build=$(BUILD_SYS) --host=$(HOST_SYS) --prefix=$(PREFIX) --disable-shared --enable-static --with-pic
+ EXTRA_CFLAGS = -D_XBMC -DHAVE_DVDCSS_DVDCSS_H
+ ifeq ($(CROSS_COMPILING), yes)
+-  DEPS += ../../Makefile.include
++
+ else
+   ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+   PREFIX := $(ROOT_DIR)/dvdnav-install
+diff --git a/tools/depends/target/libdvdread/Makefile b/tools/depends/target/libdvdread/Makefile
+index 3652f1b..4ef12ac 100644
+--- a/tools/depends/target/libdvdread/Makefile
++++ b/tools/depends/target/libdvdread/Makefile
+@@ -3,11 +3,11 @@ include DVDREAD-VERSION
+ DEPS = DVDREAD-VERSION Makefile
+ # configuration settings
+-config = --prefix=$(PREFIX) --disable-shared --enable-static --with-pic
++config = --build=$(BUILD_SYS) --host=$(HOST_SYS) --prefix=$(PREFIX) --disable-shared --enable-static --with-pic
+ EXTRA_CFLAGS = -D_XBMC
+ ifeq ($(CROSS_COMPILING), yes)
+-  DEPS += ../../Makefile.include
++
+ else
+   ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+   PREFIX := $(ROOT_DIR)/dvdread-install
+diff --git a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp
+index 2ad960c..7d273ff 100644
+--- a/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp
++++ b/xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAESink.cpp
+@@ -672,8 +672,11 @@ void CActiveAESink::EnumerateSinkList(bool force)
+ {
+   if (!m_sinkInfoList.empty() && !force)
+     return;
+-
++#if defined(TARGET_VUPLUS)
++  unsigned int c_retry = 0;
++#else
+   unsigned int c_retry = 4;
++#endif
+   m_sinkInfoList.clear();
+   CAESinkFactory::EnumerateEx(m_sinkInfoList);
+   while(m_sinkInfoList.empty() && c_retry > 0)
+diff --git a/xbmc/cores/DllLoader/ldt_keeper.h b/xbmc/cores/DllLoader/ldt_keeper.h
+index 8f14576..b0fcf06 100644
+--- a/xbmc/cores/DllLoader/ldt_keeper.h
++++ b/xbmc/cores/DllLoader/ldt_keeper.h
+@@ -32,9 +32,14 @@ typedef struct {
+   int fd;
+ } ldt_fs_t;
++
++#if !defined(__mips__)
+ void      Setup_FS_Segment(void);
+ ldt_fs_t* Setup_LDT_Keeper(void);
+ void      Restore_LDT_Keeper(ldt_fs_t* ldt_fs);
++#endif
++
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/xbmc/cores/VideoPlayer/DVDCodecs/Video/OpenMaxVideo.cpp b/xbmc/cores/VideoPlayer/DVDCodecs/Video/OpenMaxVideo.cpp
+index 3d5744b..011316a 100644
+--- a/xbmc/cores/VideoPlayer/DVDCodecs/Video/OpenMaxVideo.cpp
++++ b/xbmc/cores/VideoPlayer/DVDCodecs/Video/OpenMaxVideo.cpp
+@@ -68,8 +68,10 @@ using namespace KODI::MESSAGING;
+ #define OMX_VC1_DECODER         "OMX.Nvidia.vc1.decode"
+ // EGL extension functions
++#ifndef EGL_EGLEXT_PROTOTYPES
+ static PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHR;
+ static PFNEGLDESTROYIMAGEKHRPROC eglDestroyImageKHR;
++#endif
+ #if defined(EGL_KHR_reusable_sync)
+ static PFNEGLCREATESYNCKHRPROC eglCreateSyncKHR;
+@@ -77,6 +79,7 @@ static PFNEGLDESTROYSYNCKHRPROC eglDestroySyncKHR;
+ static PFNEGLCLIENTWAITSYNCKHRPROC eglClientWaitSyncKHR;
+ #endif
++#ifndef EGL_EGLEXT_PROTOTYPES
+ #define GETEXTENSION(type, ext) \
+ do \
+ { \
+@@ -86,6 +89,7 @@ do \
+         CLog::Log(LOGERROR, "%s::%s - ERROR getting proc addr of " #ext "\n", CLASSNAME, __func__); \
+     } \
+ } while (0);
++#endif
+ #define OMX_INIT_STRUCTURE(a) \
+   memset(&(a), 0, sizeof(a)); \
+@@ -718,10 +722,12 @@ void OpenMaxDeleteTextures(void *userdata)
+   EGLDisplay eglDisplay = eglGetCurrentDisplay();
+   EGLContext eglContext = eglGetCurrentContext();
++#ifndef EGL_EGLEXT_PROTOTYPES
+   if (!eglDestroyImageKHR)
+   {
+     GETEXTENSION(PFNEGLDESTROYIMAGEKHRPROC, eglDestroyImageKHR);
+   }
++#endif
+   DeleteImageInfo *deleteInfo = (DeleteImageInfo*)userdata;
+@@ -784,6 +790,7 @@ OMX_ERRORTYPE COpenMaxVideo::AllocOMXOutputEGLTextures(void)
+ {
+   OMX_ERRORTYPE omx_err;
++#ifndef EGL_EGLEXT_PROTOTYPES
+   if (!eglCreateImageKHR)
+   {
+     GETEXTENSION(PFNEGLCREATEIMAGEKHRPROC,  eglCreateImageKHR);
+@@ -793,6 +800,7 @@ OMX_ERRORTYPE COpenMaxVideo::AllocOMXOutputEGLTextures(void)
+     GETEXTENSION(PFNEGLCLIENTWAITSYNCKHRPROC, eglClientWaitSyncKHR);
+ #endif
+   }
++#endif
+   EGLint attrib = EGL_NONE;
+   OpenMaxVideoBuffer *egl_buffer;
+@@ -1213,7 +1221,9 @@ void OpenMaxVideoBuffer::ReleaseTexture()
+   // add egl resources to deletion info
+   //! @todo delete from constructor!
+   deleteInfo->egl_image = egl_image;
++#if defined(EGL_KHR_reusable_sync)
+   deleteInfo->egl_sync = eglSync;
++#endif
+   deleteInfo->texture_id = texture_id;
+   if ( g_application.IsCurrentThread() )
+diff --git a/xbmc/filesystem/FileCache.h b/xbmc/filesystem/FileCache.h
+index cd3b5c2..082ac33 100644
+--- a/xbmc/filesystem/FileCache.h
++++ b/xbmc/filesystem/FileCache.h
+@@ -24,7 +24,6 @@
+ #include "threads/CriticalSection.h"
+ #include "File.h"
+ #include "threads/Thread.h"
+-#include <atomic>
+ namespace XFILE
+ {
+@@ -78,7 +77,7 @@ namespace XFILE
+     unsigned     m_writeRate;
+     unsigned     m_writeRateActual;
+     int64_t      m_forwardCacheSize;
+-    std::atomic<int64_t> m_fileSize;
++    int64_t      m_fileSize;
+     unsigned int m_flags;
+     CCriticalSection m_sync;
+   };
+diff --git a/xbmc/input/InputManager.cpp b/xbmc/input/InputManager.cpp
+index 80c89f0..3957144 100644
+--- a/xbmc/input/InputManager.cpp
++++ b/xbmc/input/InputManager.cpp
+@@ -511,6 +511,18 @@ bool CInputManager::OnKey(const CKey& key)
+           useKeyboard = true;
+       }
+     }
++#if defined(TARGET_VUPLUS)
++    switch(key.GetVKey()) {
++      case 0x0d:
++      case 0x80:
++      case 0x81:
++      case 0x82:
++      case 0x83:
++        if (iWin == WINDOW_DIALOG_KEYBOARD)
++          useKeyboard = false;
++        break;
++    }
++#endif
+     if (useKeyboard)
+     {
+       // use the virtualkeyboard section of the keymap, and send keyboard-specific or navigation
+diff --git a/xbmc/input/linux/LinuxInputDevices.cpp b/xbmc/input/linux/LinuxInputDevices.cpp
+index 3875138..e3397d2 100644
+--- a/xbmc/input/linux/LinuxInputDevices.cpp
++++ b/xbmc/input/linux/LinuxInputDevices.cpp
+@@ -275,6 +275,27 @@ KeyMap keyMap[] = {
+   { 378               , XBMCK_RIGHT       }, // Green
+   { 381               , XBMCK_UP          }, // Yellow
+   { 366               , XBMCK_DOWN        }, // Blue
++#if defined(TARGET_VUPLUS)
++  { KEY_OK            , XBMCK_RETURN      }, // Ok
++  { KEY_EXIT          , XBMCK_ESCAPE      }, // EXIT
++  { 139               , XBMCK_MENU        }, // Menu
++  { 358               , XBMCK_e           }, // EPG
++  { 370               , XBMCK_l           }, // Subtitle
++  { 377               , XBMCK_z           }, // TV
++  { 385               , XBMCK_j           }, // Radio
++  { 388               , XBMCK_y           }, // Teletext
++  { 392               , XBMCK_o           }, // Audio
++  { 393               , XBMCK_x           }, // Unknown
++  { 398               , XBMCK_F1          }, // Red
++  { 399               , XBMCK_F2          }, // Green
++  { 400               , XBMCK_F3          }, // Yellow
++  { 401               , XBMCK_F4          }, // Blue
++  { 402               , XBMCK_PAGEUP      }, // PageUP
++  { 403               , XBMCK_PAGEDOWN    }, // PageDown
++  { 407               , XBMCK_MEDIA_NEXT_TRACK }, // Next
++  { 412               , XBMCK_MEDIA_PREV_TRACK }, // Prev
++#endif
++
+ };
+ typedef enum
+@@ -416,13 +437,14 @@ unsigned short CLinuxInputDevice::KeyboardReadValue(unsigned char table, unsigne
+   entry.kb_index = index;
+   entry.kb_value = 0;
++#if !defined(TARGET_VUPLUS)
+   if (ioctl(m_vt_fd, KDGKBENT, &entry))
+   {
+     CLog::Log(LOGWARNING, "CLinuxInputDevice::KeyboardReadValue: KDGKBENT (table: %d, index: %d) "
+         "failed!\n", table, index);
+     return 0;
+   }
+-
++#endif
+   return entry.kb_value;
+ }
+@@ -552,6 +574,15 @@ bool CLinuxInputDevice::KeyEvent(const struct input_event& levt, XBMC_Event& dev
+     KeymapEntry entry;
+     entry.code = code;
++
++    int keyMapValue;
++#if defined(TARGET_VUPLUS)
++    if (devt.key.keysym.mod & (XBMCKMOD_SHIFT | XBMCKMOD_CAPS)) keyMapValue = entry.shift;
++    else if (devt.key.keysym.mod & XBMCKMOD_ALT) keyMapValue = entry.alt;
++    else if (devt.key.keysym.mod & XBMCKMOD_META) keyMapValue = entry.altShift;
++    else keyMapValue = entry.base;
++    devt.key.keysym.unicode = devt.key.keysym.sym;
++#else
+     if (GetKeymapEntry(entry))
+     {
+       int keyMapValue;
+@@ -569,6 +600,7 @@ bool CLinuxInputDevice::KeyEvent(const struct input_event& levt, XBMC_Event& dev
+         }
+       }
+     }
++#endif
+   }
+   return true;
+@@ -857,6 +889,12 @@ XBMC_Event CLinuxInputDevice::ReadEvent()
+         break;
+       }
++#if defined(TARGET_VUPLUS)
++      if (access("/tmp/playing.lock", F_OK) == 0) {
++       break;
++      }
++#endif
++
+       //printf("read event readlen = %d device name %s m_fileName %s\n", readlen, m_deviceName, m_fileName.c_str());
+       // sanity check if we realy read the event
+@@ -1194,6 +1232,7 @@ bool CLinuxInputDevices::CheckDevice(const char *device)
+     return false;
+   }
++#if !defined(TARGET_VUPLUS)
+   if (ioctl(fd, EVIOCGRAB, 1) && errno != EINVAL)
+   {
+     close(fd);
+@@ -1201,6 +1240,7 @@ bool CLinuxInputDevices::CheckDevice(const char *device)
+   }
+   ioctl(fd, EVIOCGRAB, 0);
++#endif
+   close(fd);
+@@ -1293,6 +1333,7 @@ bool CLinuxInputDevice::Open()
+     return false;
+   }
++#if !defined(TARGET_VUPLUS)
+   /* grab device */
+   ret = ioctl(fd, EVIOCGRAB, 1);
+   if (ret && errno != EINVAL)
+@@ -1301,6 +1342,7 @@ bool CLinuxInputDevice::Open()
+     close(fd);
+     return false;
+   }
++#endif
+   // Set the socket to non-blocking
+   int opts = 0;
+@@ -1327,7 +1369,7 @@ bool CLinuxInputDevice::Open()
+   m_fd = fd;
+   m_vt_fd = -1;
+-
++#if !defined(TARGET_VUPLUS)
+   if (m_deviceMinKeyCode >= 0 && m_deviceMaxKeyCode >= m_deviceMinKeyCode)
+   {
+     if (m_vt_fd < 0)
+@@ -1339,7 +1381,7 @@ bool CLinuxInputDevice::Open()
+     if (m_vt_fd < 0)
+       CLog::Log(LOGWARNING, "no keymap support (requires /dev/tty0 - CONFIG_VT)");
+   }
+-
++#endif
+   /* check if the device has LEDs */
+   ret = ioctl(fd, EVIOCGBIT(EV_LED, sizeof(ledbit)), ledbit);
+   if (ret < 0)
+@@ -1367,13 +1409,14 @@ bool CLinuxInputDevice::Open()
+   return true;
+ driver_open_device_error:
+-
++#if !defined(TARGET_VUPLUS)
+   ioctl(fd, EVIOCGRAB, 0);
+   if (m_vt_fd >= 0)
+   {
+     close(m_vt_fd);
+     m_vt_fd = -1;
+   }
++#endif
+   close(fd);
+   m_fd = -1;
+@@ -1442,11 +1485,12 @@ bool CLinuxInputDevice::GetKeymapEntry(KeymapEntry& entry)
+  */
+ void CLinuxInputDevice::Close()
+ {
++#if !defined(TARGET_VUPLUS)
+   /* release device */
+   ioctl(m_fd, EVIOCGRAB, 0);
+-
+   if (m_vt_fd >= 0)
+     close(m_vt_fd);
++#endif
+   /* close file */
+   close(m_fd);
+diff --git a/xbmc/platform/xbmc.cpp b/xbmc/platform/xbmc.cpp
+index 34e5ea6..52cb33a 100644
+--- a/xbmc/platform/xbmc.cpp
++++ b/xbmc/platform/xbmc.cpp
+@@ -117,5 +117,9 @@ extern "C" int XBMC_Run(bool renderGUI, CFileItemList &playlist)
+   g_RBP.Deinitialize();
+ #endif
++#if defined(TARGET_VUPLUS)
++  system("xbmc.helper --stop");
++#endif
++
+   return status;
+ }
+diff --git a/xbmc/utils/CPUInfo.cpp b/xbmc/utils/CPUInfo.cpp
+index 5e2ebbd..89aecbd 100644
+--- a/xbmc/utils/CPUInfo.cpp
++++ b/xbmc/utils/CPUInfo.cpp
+@@ -272,8 +272,11 @@ CCPUInfo::CCPUInfo(void)
+     m_fProcTemperature = fopen("/sys/class/hwmon/hwmon0/temp1_input", "r");
+   if (m_fProcTemperature == NULL)   
+     m_fProcTemperature = fopen("/sys/class/thermal/thermal_zone0/temp", "r");  // On Raspberry PIs
+-
++#if defined(TARGET_VUPLUS)
++  m_fCPUFreq = fopen ("/sys/devices/platform/brcmstb/cpu_khz", "r");
++#else
+   m_fCPUFreq = fopen ("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", "r");
++#endif
+   if (!m_fCPUFreq)
+   {
+     m_cpuInfoForFreq = true;
+@@ -325,6 +328,29 @@ CCPUInfo::CCPUInfo(void)
+           StringUtils::Trim(m_cores[nCurrId].m_strModel);
+         }
+       }
++#if defined(TARGET_VUPLUS)
++      else if (strncmp(buffer, "system type", strlen("system type"))==0)
++      {
++        char *needle = strstr(buffer, ":");
++        if (needle && strlen(needle)>3)
++        {
++          needle+=2;
++          m_cpuModel = needle;
++          m_cores[nCurrId].m_strModel = m_cpuModel;
++          StringUtils::Trim(m_cores[nCurrId].m_strModel);
++        }
++      }
++      else if (strncmp(buffer, "cpu model", strlen("cpu model"))==0)
++      {
++        char *needle = strstr(buffer, ":");
++        if (needle && strlen(needle)>3)
++        {
++          needle+=2;
++          m_cores[nCurrId].m_strVendor = needle;
++          StringUtils::Trim(m_cores[nCurrId].m_strVendor);
++        }
++      }
++#endif
+       else if (strncmp(buffer, "BogoMIPS", strlen("BogoMIPS"))==0)
+       {
+         char *needle = strstr(buffer, ":");
+diff --git a/xbmc/utils/posix/PosixInterfaceForCLog.cpp b/xbmc/utils/posix/PosixInterfaceForCLog.cpp
+index a3d4983..0daee19 100644
+--- a/xbmc/utils/posix/PosixInterfaceForCLog.cpp
++++ b/xbmc/utils/posix/PosixInterfaceForCLog.cpp
+@@ -48,11 +48,19 @@ bool CPosixInterfaceForCLog::OpenLogFile(const std::string &logFilename, const s
+ {
+   if (m_file)
+     return false; // file was already opened
++#if defined(TARGET_VUPLUS)
++  if (getenv("SUPPORT_CONSOLE_LOG")) {
++      m_file = (FILEWRAP*) stdout;
++  }
++  else {
++#endif
++    (void)remove(backupOldLogToFilename.c_str()); // if it's failed, try to continue
++    (void)rename(logFilename.c_str(), backupOldLogToFilename.c_str()); // if it's failed, try to continue
++      m_file = (FILEWRAP*)fopen(logFilename.c_str(), "wb");
++#if defined(TARGET_VUPLUS)
++  }
++#endif
+-  (void)remove(backupOldLogToFilename.c_str()); // if it's failed, try to continue
+-  (void)rename(logFilename.c_str(), backupOldLogToFilename.c_str()); // if it's failed, try to continue
+-
+-  m_file = (FILEWRAP*)fopen(logFilename.c_str(), "wb");
+   if (!m_file)
+     return false; // error, can't open log file
+diff --git a/xbmc/windowing/egl/EGLNativeTypeVuplus.cpp b/xbmc/windowing/egl/EGLNativeTypeVuplus.cpp
+new file mode 100644
+index 0000000..84e72af
+--- /dev/null
++++ b/xbmc/windowing/egl/EGLNativeTypeVuplus.cpp
+@@ -0,0 +1,181 @@
++/*
++ *      Copyright (C) 2011-2017 Team XBMC
++ *      http://xbmc.org
++ *
++ *  This Program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2, or (at your option)
++ *  any later version.
++ *
++ *  This Program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with XBMC; see the file COPYING.  If not, see
++ *  <http://www.gnu.org/licenses/>.
++ *
++ */
++
++#if defined(TARGET_VUPLUS)
++
++#include "system.h"
++#include "EGLNativeTypeVuplus.h"
++#include "utils/StringUtils.h"
++#include "utils/log.h"
++#include "guilib/gui3d.h"
++#include "linux/DllBCM.h"
++
++#include <stdio.h>
++#include <malloc.h>
++#include <assert.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++
++#include "KodiGLESPL.h"
++
++using namespace std;
++
++bool CEGLNativeTypeVuplus::CheckCompatibility()
++{
++  return true;
++}
++
++void CEGLNativeTypeVuplus::Initialize()
++{
++}
++
++void CEGLNativeTypeVuplus::Destroy()
++{
++}
++
++bool CEGLNativeTypeVuplus::CreateNativeDisplay()
++{
++  GLES_Native_Init();
++  return GLES_Native_CreateNativeDisplay(&m_nativeDisplay);
++}
++
++bool CEGLNativeTypeVuplus::CreateNativeWindow()
++{
++  m_nativeWindow = GLES_Native_CreateNativeWindow();
++  if (!m_nativeWindow) {
++        return false;
++  }
++  return true;
++}
++
++bool CEGLNativeTypeVuplus::GetNativeDisplay(XBNativeDisplayType **nativeDisplay) const
++{
++  *nativeDisplay = (XBNativeDisplayType*) &m_nativeDisplay;
++  return true;
++}
++
++bool CEGLNativeTypeVuplus::GetNativeWindow(XBNativeDisplayType **nativeWindow) const
++{
++  *nativeWindow = (XBNativeWindowType*) &m_nativeWindow;
++  return true;
++}  
++
++bool CEGLNativeTypeVuplus::DestroyNativeDisplay()
++{
++  GLES_Native_DestroyNativeDisplay();
++  return true;
++}
++
++bool CEGLNativeTypeVuplus::DestroyNativeWindow()
++{
++  GLES_Native_DestroyNativeWindow();
++  return true;
++}
++
++bool CEGLNativeTypeVuplus::GetNativeResolution(RESOLUTION_INFO *res) const
++{
++  *res = m_desktopRes;
++  return true;
++}
++
++bool CEGLNativeTypeVuplus::SetNativeResolution(const RESOLUTION_INFO &res)
++{
++  m_desktopRes = res;
++  return true;
++}
++
++bool CEGLNativeTypeVuplus::ProbeResolutions(std::vector<RESOLUTION_INFO> &resolutions)
++{
++  resolutions.clear();
++
++  m_desktopResAll[0].iScreen      = 0;
++  m_desktopResAll[0].bFullScreen  = true;
++  m_desktopResAll[0].iWidth       = 1280;
++  m_desktopResAll[0].iHeight      = 720;
++  m_desktopResAll[0].iScreenWidth = 1280;
++  m_desktopResAll[0].iScreenHeight= 720;
++  m_desktopResAll[0].dwFlags      =  D3DPRESENTFLAG_PROGRESSIVE;
++  m_desktopResAll[0].fRefreshRate = 50;
++  m_desktopResAll[0].strMode = StringUtils::Format("%dx%d", 1280, 720);
++  m_desktopResAll[0].strMode = StringUtils::Format("%s @ %.2f%s - Full Screen", m_desktopRes.strMode.c_str(), (float)50,m_desktopRes.dwFlags & D3DPRESENTFLAG_INTERLACED ? "i" : "");
++
++  m_desktopResAll[0].iSubtitles   = (int)(0.965 * m_desktopResAll[0].iHeight);
++
++  CLog::Log(LOGDEBUG, "EGL initial desktop resolution %s\n", m_desktopResAll[0].strMode.c_str());
++
++  resolutions.push_back(m_desktopResAll[0]);
++
++  m_desktopResAll[1].iScreen      = 0;
++  m_desktopResAll[1].bFullScreen  = true;
++  m_desktopResAll[1].iWidth       = 1280;
++  m_desktopResAll[1].iHeight      = 720;
++  m_desktopResAll[1].iScreenWidth = 1280;
++  m_desktopResAll[1].iScreenHeight= 720;
++  m_desktopResAll[1].dwFlags      =  D3DPRESENTFLAG_PROGRESSIVE;
++
++  m_desktopResAll[1].dwFlags      |=  D3DPRESENTFLAG_MODE3DSBS;
++  m_desktopResAll[1].fRefreshRate = 50;
++  m_desktopResAll[1].strMode = StringUtils::Format("%dx%d", 1280, 720);
++  m_desktopResAll[1].strMode = StringUtils::Format("%s @ %.2f%s - Full Screen 3DSBS", m_desktopResAll[1].strMode.c_str(), (float)50,m_desktopResAll[1].dwFlags & D3DPRESENTFLAG_INTERLACED ? "i" : "");
++
++  m_desktopResAll[1].iSubtitles   = (int)(0.965 * m_desktopResAll[1].iHeight);
++
++  CLog::Log(LOGDEBUG, "EGL initial desktop resolution %s\n", m_desktopResAll[1].strMode.c_str());
++
++  resolutions.push_back(m_desktopResAll[1]);
++
++  m_desktopResAll[2].iScreen      = 0;
++  m_desktopResAll[2].bFullScreen  = true;
++  m_desktopResAll[2].iWidth       = 1280;
++  m_desktopResAll[2].iHeight      = 720;
++  m_desktopResAll[2].iScreenWidth = 1280;
++  m_desktopResAll[2].iScreenHeight= 720;
++  m_desktopResAll[2].dwFlags      =  D3DPRESENTFLAG_PROGRESSIVE;
++
++  m_desktopResAll[2].dwFlags      |=  D3DPRESENTFLAG_MODE3DTB;
++  m_desktopResAll[2].fRefreshRate = 50;
++  m_desktopResAll[2].strMode = StringUtils::Format("%dx%d", 1280, 720);
++  m_desktopResAll[2].strMode = StringUtils::Format("%s @ %.2f%s - Full Screen 3DTB", m_desktopResAll[2].strMode.c_str(), (float)50,m_desktopResAll[2].dwFlags & D3DPRESENTFLAG_INTERLACED ? "i" : "");
++
++  m_desktopResAll[2].iSubtitles   = (int)(0.965 * m_desktopResAll[2].iHeight);
++
++  CLog::Log(LOGDEBUG, "EGL initial desktop resolution %s\n", m_desktopResAll[2].strMode.c_str());
++
++  resolutions.push_back(m_desktopResAll[2]);
++
++  m_desktopRes = m_desktopResAll[0];
++
++  return true;
++}
++
++bool CEGLNativeTypeVuplus::GetPreferredResolution(RESOLUTION_INFO *res) const
++{
++  *res = m_desktopResAll[0];
++  return true;
++}
++
++bool CEGLNativeTypeVuplus::ShowWindow(bool show)
++{
++  return false;
++}
++
++#endif /*TARGET_VUPLUS*/
++
+diff --git a/xbmc/windowing/egl/EGLNativeTypeVuplus.h b/xbmc/windowing/egl/EGLNativeTypeVuplus.h
+new file mode 100644
+index 0000000..aa65dc8
+--- /dev/null
++++ b/xbmc/windowing/egl/EGLNativeTypeVuplus.h
+@@ -0,0 +1,65 @@
++#pragma once
++
++/*
++ *      Copyright (C) 2011-2017 Team XBMC
++ *      http://xbmc.org
++ *
++ *  This Program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2, or (at your option)
++ *  any later version.
++ *
++ *  This Program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with XBMC; see the file COPYING.  If not, see
++ *  <http://www.gnu.org/licenses/>.
++ *
++ */
++
++#if defined(TARGET_VUPLUS)
++
++#include "EGLNativeType.h"
++
++#include <vector>
++#include <string>
++
++class CEGLNativeTypeVuplus : public CEGLNativeType
++{
++public:
++  CEGLNativeTypeVuplus()
++  {
++        m_nativeWindow = 0;
++        m_nativeDisplay = 0;
++  };
++  virtual ~CEGLNativeTypeVuplus() {};
++  virtual std::string GetNativeName() const { return "vuplus"; };
++  virtual bool  CheckCompatibility();
++  virtual void  Initialize();
++  virtual void  Destroy();
++  virtual int   GetQuirks() { return EGL_QUIRK_NONE; };
++
++  virtual bool  CreateNativeDisplay();
++  virtual bool  CreateNativeWindow();
++  virtual bool  GetNativeDisplay(XBNativeDisplayType **nativeDisplay) const;
++  virtual bool  GetNativeWindow(XBNativeWindowType **nativeWindow) const;
++
++  virtual bool  DestroyNativeWindow();
++  virtual bool  DestroyNativeDisplay();
++
++  virtual bool  GetNativeResolution(RESOLUTION_INFO *res) const;
++  virtual bool  SetNativeResolution(const RESOLUTION_INFO &res);
++  virtual bool  ProbeResolutions(std::vector<RESOLUTION_INFO> &resolutions);
++  virtual bool  GetPreferredResolution(RESOLUTION_INFO *res) const;
++
++  virtual bool  ShowWindow(bool show);
++private:
++  RESOLUTION_INFO m_desktopRes;
++  RESOLUTION_INFO m_desktopResAll[3];
++};
++
++#endif /*TARGET_VUPLUS*/
++
+diff --git a/xbmc/windowing/egl/EGLWrapper.cpp b/xbmc/windowing/egl/EGLWrapper.cpp
+index 30f5757..ca05ae7 100644
+--- a/xbmc/windowing/egl/EGLWrapper.cpp
++++ b/xbmc/windowing/egl/EGLWrapper.cpp
+@@ -37,6 +37,9 @@
+ #if defined(TARGET_LINUX) && defined(HAS_LIBAMCODEC)
+ #include "EGLNativeTypeAmlogic.h"
+ #endif
++#if defined(TARGET_VUPLUS)
++  #include "EGLNativeTypeVuplus.h"
++#endif
+ #include "EGLWrapper.h"
+ #define CheckError() m_result = eglGetError(); if(m_result != EGL_SUCCESS) CLog::Log(LOGERROR, "EGL error in %s: %x",__FUNCTION__, m_result);
+@@ -101,6 +104,8 @@ bool CEGLWrapper::Initialize(const std::string &implementation)
+       (nativeGuess = CreateEGLNativeType<CEGLNativeTypeIMX>(implementation))
+ #elif defined(TARGET_LINUX) && defined(HAS_LIBAMCODEC)
+       (nativeGuess = CreateEGLNativeType<CEGLNativeTypeAmlogic>(implementation))
++#elif defined(TARGET_VUPLUS)
++      (nativeGuess = CreateEGLNativeType<CEGLNativeTypeVuplus>(implementation))
+ #endif
+       )
+   {
+diff --git a/xbmc/windowing/egl/Makefile.in b/xbmc/windowing/egl/Makefile.in
+index 68f7862..7fc6144 100644
+--- a/xbmc/windowing/egl/Makefile.in
++++ b/xbmc/windowing/egl/Makefile.in
+@@ -12,6 +12,9 @@ endif
+ ifeq (@USE_IMXVPU@,1)
+ SRCS+= EGLNativeTypeIMX.cpp
+ endif
++ifeq (@VUPLUS_COMPILE@,yes)
++SRCS+= EGLNativeTypeVuplus.cpp
++endif
+ SRCS+= EGLWrapper.cpp
+ LIB = windowing_egl.a
diff --git a/meta-bsp/recipes-multimedia/kodi/kodi-16.x.inc b/meta-bsp/recipes-multimedia/kodi/kodi-16.x.inc
new file mode 100644 (file)
index 0000000..efd004b
--- /dev/null
@@ -0,0 +1,208 @@
+SUMMARY = "Kodi Media Center"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=930e2a5f63425d8dd72dbd7391c43c46"
+
+DEPENDS = "\
+       libgles \
+       libxslt \
+       libusb1 \
+       libcec \
+       libplist \
+       expat \
+       yajl \
+       gperf-native \
+       fribidi \
+       mpeg2dec \
+       samba \
+       fontconfig \
+       curl \
+       python \
+       libass \
+       libmodplug \
+       libmicrohttpd \
+       wavpack \
+       libmms\
+       cmake-native \
+       libsdl-image \
+       libsdl-mixer \
+       mysql5 \
+       sqlite3 \
+       libmms \
+       faad2 \
+       libcdio \
+       libpcre \
+       boost \
+       lzo \
+       enca \
+       avahi \
+       libsamplerate0 \
+       bzip2 \
+       virtual/libsdl \
+       jasper \
+       zip-native \
+       zlib \
+       libtinyxml \
+       taglib \
+       libbluray \
+       libshairport \
+       librtmp \
+       zlib \
+       libnfs \
+       libxslt \
+       libsquish \
+       libdcadec \
+       libcrossguid \
+"
+
+PROVIDES += "kodi"
+RPROVIDES_${PN} += "kodi"
+
+RDEPENDS_${PN} = "python"
+RDEPENDS_${PN} += "\
+       python-distutils \
+       python-subprocess \
+       python-robotparser \
+       python-mechanize \
+       python-threading \
+       python-shell \
+       python-zlib \
+       python-sqlite3 \
+       python-json \
+       python-xml \
+       python-html \
+       python-netserver \
+       python-misc \
+       python-pygobject \
+       python-pygobject-lib \
+       python-textutils \
+       python-simplejson \
+       python-xmlrpc   \
+       python-pprint \
+       python-difflib \
+       python-email \
+       python-compression \
+       python-compile \
+       python-compiler \
+       python-numbers \
+       nfs-utils-client \
+       libshairport \
+       glibc-gconv-utf-32 \
+       xz \
+       tiff \
+       yajl \
+       libxslt \
+       libupnp \
+       libplist \
+       librtmp \
+       libbluray \
+       libnfs \
+       libtinyxml \
+       alsa-lib \
+       shairplay \
+"
+
+BRANCH = "jarvis_vuplus"
+SRCREV = "528f9f8abfc045b8cf8edea013aaf19fd02dba09"
+
+PV = "16.1.rc2"
+PR = "${BUILD_PR}_${GLPR}_${SRCREV}"
+
+SRC_URI = "\
+       git://code.vuplus.com/git/xbmc.git;protocol=http;branch=${BRANCH};tag=${SRCREV} \
+       http://archive.vuplus.com/download/build_support/kodi/xbmc-support_${MACHINE}_${GLPR}.tar.gz;name=xbmc-support \
+"
+
+inherit autotools-brokensep autotools lib_package pkgconfig gettext python-dir
+
+S = "${WORKDIR}/git"
+
+CACHED_CONFIGUREVARS += " \
+ ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \
+"
+
+EXTRA_OECONF = " \
+       --enable-gles \
+       --enable-libusb \
+       --enable-airplay \
+       --enable-rtmp   \
+       --enable-optimizations \
+       --disable-optical-drive \
+       --disable-ssh \
+       --disable-x11 \
+       --disable-dbus \
+       --disable-pulse \
+       --disable-gtest \
+       --disable-joystick \
+       --disable-alsa \
+       --disable-lirc \
+       --disable-libcec \
+       --disable-texturepacker \
+       --disable-debug \
+"
+
+FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math"
+BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
+
+# for python modules
+export HOST_SYS
+export BUILD_SYS
+export STAGING_LIBDIR
+export STAGING_INCDIR
+export PYTHON_DIR
+
+do_configure() {
+       cp -av ${WORKDIR}/xbmc-support/gles_init.* ${WORKDIR}/git/xbmc/windowing/egl/
+       sh bootstrap
+       sed -i 's/-V -qversion//' configure
+       oe_runconf
+}
+
+do_compile_prepend() {
+       for i in $(find . -name "Makefile") ; do
+               sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' $i
+       done
+
+       for i in $(find . -name "*.mak*" -o     -name "Makefile") ; do
+               sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${libdir}:g' $i
+       done
+}
+
+INSANE_SKIP_${PN} = "rpaths"
+
+# on ARM architectures xbmc will use GLES which will make the regular wrapper fail, so start it directly
+#do_install_append_arm() {
+#      sed -i -e 's:Exec=xbmc:Exec=${libdir}/xbmc/xbmc.bin:g' ${D}${datadir}/applications/xbmc.desktop
+#}
+
+do_install_append(){
+       install -d ${D}${bindir}
+       install -m 0755 ${WORKDIR}/xbmc-support/xbmc.helper ${D}${bindir}
+       install -m 0755 ${WORKDIR}/xbmc-support/libxbmc_base.so ${D}${libdir}
+}
+
+do_package_qa(){
+}
+
+FILES_${PN} = "${libdir}/kodi ${libdir}/xbmc"
+FILES_${PN} += "${bindir}/kodi ${bindir}/xbmc ${bindir}/xbmc.helper"
+FILES_${PN} += "${datadir}/icons ${datadir}/kodi ${datadir}/xbmc"
+FILES_${PN} += "${libdir}/libxbmc_base.so"
+FILES_${PN}-dev = "${includedir}"
+FILES_${PN}-bin = "${bindir}/kodi-standalone ${bindir}/xbmc-standalone ${datadir}/xsessions"
+FILES_${PN}-dbg += "${libdir}/kodi/.debug ${libdir}/kodi/*/.debug ${libdir}/kodi/*/*/.debug ${libdir}/kodi/*/*/*/.debug ${datadir}/applications"
+
+# xbmc uses some kind of dlopen() method for libcec so we need to add it manually
+RRECOMMENDS_${PN}_append = " libcec \
+                             python \
+                             python-lang \
+                             python-re \
+                             python-netclient \
+                             libcurl \
+                             "
+RRECOMMENDS_${PN}_append_libc-glibc = " glibc-charmap-ibm850 glibc-gconv-ibm850"
+
+INSANE_SKIP_${PN} = "already-stripped"
+
+PACKAGE_ARCH := "${MACHINE_ARCH}"
+
diff --git a/meta-bsp/recipes-multimedia/kodi/kodi-17.x.inc b/meta-bsp/recipes-multimedia/kodi/kodi-17.x.inc
new file mode 100644 (file)
index 0000000..025d53b
--- /dev/null
@@ -0,0 +1,239 @@
+SUMMARY = "Kodi Media Center"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=930e2a5f63425d8dd72dbd7391c43c46"
+
+DEFAULT_PREFERENCE = "-1"
+#FILESPATH =. "${FILE_DIRNAME}/kodi-${PV}:"
+PACKAGE_ARCH = "${MACHINE}"
+
+PROVIDES += "kodi"
+RPROVIDES_${PN} += "kodi"
+
+BRANCH = "Krypton"
+PV = "17.0"
+PR = "r0"
+
+SRC_URI = " \
+       https://github.com/xbmc/xbmc/archive/${PV}-Krypton.tar.gz;name=Src \
+       http://archive.vuplus.com/download/build_support/kodi/xbmc-${PV}-Util.tar.gz;name=Util \
+       file://xbmc-${PV}-vuplus-patch.diff \
+       "
+
+SRC_URI[Src.md5sum] = "86ebb2f148090f12beb1e573dfd55e53"
+SRC_URI[Src.sha256sum] = "4bfffa2493973ae15ab1d922632c09a2583908d6140bc4f58ec8f9314e4f6545"    
+
+SRC_URI[Util.md5sum] = "8f1b23f87d8e64c9b59cf49ff23652e0"
+SRC_URI[Util.sha256sum] = "2bc48ecd8ea2886ca13b483066dee16e5390e1a6733adc00b719b7f2d9e810f4"
+
+DEPENDS = " \
+       libgles \
+       cmake-native \
+       curl-native \
+       gperf-native \
+       nasm-native \
+       swig-native \
+       yasm-native \
+       zip-native \
+       avahi \
+       boost \
+       bzip2 \
+       curl \
+       libdcadec \
+       enca \
+       expat \
+       faad2 \
+       ffmpeg \
+       fontconfig \
+       fribidi \
+       giflib \
+       jasper \
+       libass \
+       libcdio \
+       libcec \
+       libmad \
+       libmicrohttpd \
+       libmms \
+       libmodplug \
+       libpcre \
+       libplist \
+       libsamplerate0 \
+       libsdl-image \
+       libsdl-mixer \
+       libsquish \
+       libssh \
+       libtinyxml \
+       libusb1 \
+       libxslt \
+       lzo \
+       mpeg2dec \
+       python \
+       samba \
+       sqlite3 \
+       taglib \
+       virtual/libsdl \
+       wavpack \
+       yajl \
+       zlib \
+       kodiegl \
+       "
+
+RDEPENDS_${PN} = "python"
+RDEPENDS_${PN} += "\
+       python-distutils \
+       python-subprocess \
+       python-robotparser \
+       python-mechanize \
+       python-threading \
+       python-shell \
+       python-zlib \
+       python-sqlite3 \
+       python-json \
+       python-xml \
+       python-html \
+       python-netserver \
+       python-misc \
+       python-pygobject \
+       python-pygobject-lib \
+       python-textutils \
+       python-simplejson \
+       python-xmlrpc   \
+       python-pprint \
+       python-difflib \
+       python-email \
+       python-compression \
+       python-compile \
+       python-compiler \
+       python-numbers \
+       python-pkgutil \
+       nfs-utils-client \
+       libshairport \
+       glibc-gconv-utf-32 \
+       xz \
+       tiff \
+       yajl \
+       libxslt \
+       libupnp \
+       libplist \
+       librtmp \
+       libbluray \
+       libnfs \
+       libtinyxml \
+       alsa-lib \
+       shairplay \
+       kodiegl \
+"
+
+inherit autotools-brokensep gettext pythonnative
+
+ACCEL ?= ""
+ACCEL_x86 = "vaapi vdpau"
+ACCEL_x86-64 = "vaapi vdpau"
+
+PACKAGECONFIG ??= "${ACCEL}"
+PACKAGECONFIG_append += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', ' x11', '', d)}"
+PACKAGECONFIG_append += "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', ' opengl', ' openglesv2', d)}"
+
+PACKAGECONFIG[opengl] = "--enable-gl,--enable-gles,"
+PACKAGECONFIG[openglesv2] = "--enable-gles,--enable-gl"
+PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
+PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
+PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5"
+PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,libxinerama libxmu libxrandr libxtst"
+PACKAGECONFIG[lcms] = "--enable-lcms2,--disable-lcms2,lcms"
+
+EXTRA_OECONF_append_rpi = " --disable-openmax --enable-player=omxplayer --with-platform=raspberry-pi2"
+EXTRA_OECONF_remove_aarch64 = "--with-platform=raspberry-pi2"
+LDFLAGS_append_rpi = " -lvchostif "
+
+S = "${WORKDIR}/xbmc-${PV}-${BRANCH}"
+
+EXTRA_OECONF = " \
+       --disable-debug \
+       --disable-libcap \
+       --disable-ccache \
+       --disable-mid \
+       --enable-libusb \
+       --disable-alsa \
+       --enable-airplay \
+       --disable-optical-drive \
+       --enable-texturepacker=no \
+       --enable-optimizations \
+       --disable-lirc \
+       --disable-dbus \
+       --disable-gtest \
+       --enable-libusb \
+       --disable-ssh \
+       --enable-pulse=no \
+       --disable-libcec \
+       "
+
+FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O3 -ffast-math"
+FULL_OPTIMIZATION_armv7ve = "-fexpensive-optimizations -fomit-frame-pointer -O3 -ffast-math"
+BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
+
+EXTRA_OECONF_append = " LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
+
+# for python modules
+export HOST_SYS
+export BUILD_SYS
+export STAGING_LIBDIR
+export STAGING_INCDIR
+export PYTHON_DIR
+export PARALLEL_MAKE
+
+do_configure() {
+       cp -af ${WORKDIR}/xbmc-${PV}-Util/ffmpeg-3.1.6-Krypton.tar.gz ${S}/tools/depends/target/ffmpeg/
+       cp -af ${WORKDIR}/xbmc-${PV}-Util/crossguid-8f399e8bd4.tar.gz ${S}/tools/depends/target/crossguid/
+       cp -af ${WORKDIR}/xbmc-${PV}-Util/libdvdcss-2f12236bc1c92f73c21e973363f79eb300de603f.tar.gz ${S}/tools/depends/target/libdvdcss/
+       cp -af ${WORKDIR}/xbmc-${PV}-Util/libdvdnav-981488f7f27554b103cca10c1fbeba027396c94a.tar.gz ${S}/tools/depends/target/libdvdnav/
+       cp -af ${WORKDIR}/xbmc-${PV}-Util/libdvdread-17d99db97e7b8f23077b342369d3c22a6250affd.tar.gz ${S}/tools/depends/target/libdvdread/
+
+       ( for i in $(find ${S} -name "configure.*" ) ; do
+               cd $(dirname $i) && gnu-configize --force || true
+       done )
+       make -C tools/depends/native/JsonSchemaBuilder
+       make -C tools/depends/target/crossguid PREFIX=${STAGING_DIR_HOST}${prefix} BASE_URL=http://ftp.vim.org/mediaplayer/xbmc/build-deps/sources
+       BOOTSTRAP_STANDALONE=1 make -f bootstrap.mk JSON_BUILDER="${S}/tools/depends/native/JsonSchemaBuilder/bin/JsonSchemaBuilder"
+       BOOTSTRAP_STANDALONE=1 make -f codegenerator.mk JSON_BUILDER="${S}/tools/depends/native/JsonSchemaBuilder/bin/JsonSchemaBuilder"
+       oe_runconf
+}
+
+INSANE_SKIP_${PN} = "rpaths"
+
+FILES_${PN} = "${libdir}/kodi ${libdir}/xbmc"
+FILES_${PN} += "${bindir}/kodi ${bindir}/xbmc"
+FILES_${PN} += "${datadir}/icons ${datadir}/kodi ${datadir}/xbmc"
+FILES_${PN} += "${bindir}/kodi-standalone ${bindir}/xbmc-standalone ${datadir}/xsessions"
+FILES_${PN}-dev = "${includedir}"
+FILES_${PN}-dbg += "${libdir}/kodi/.debug ${libdir}/kodi/*/.debug ${libdir}/kodi/*/*/.debug ${libdir}/kodi/*/*/*/.debug ${datadir}/applications"
+
+# xbmc uses some kind of dlopen() method for libcec so we need to add it manually
+# OpenGL builds need glxinfo, that's in mesa-demos
+RRECOMMENDS_${PN}_append = " \
+       libcec \
+       python \
+       python-lang \
+       python-re \
+       python-netclient \
+       python-html \
+       python-difflib \
+       python-json \
+       python-zlib \
+       python-shell \
+       python-sqlite3 \
+       python-compression \
+       libcurl \
+       lsb \
+       os-release \
+       ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'xrandr xdpyinfo', '', d)} \
+       "
+
+RRECOMMENDS_${PN}_append_libc-glibc = " \
+       glibc-charmap-ibm850 \
+       glibc-gconv-ibm850 \
+       glibc-gconv-unicode \
+       glibc-gconv-utf-32 \
+       glibc-charmap-utf-8 \
+       glibc-localedata-en-us \
+       "
index 7480235..22a181a 100644 (file)
@@ -1,4 +1,4 @@
-require kodi.inc
+require kodi-16.x.inc
 
 COMPATIBLE_MACHINE = "^(vuduo2)$"
 
index 2caf592..02d0caf 100644 (file)
@@ -1,4 +1,4 @@
-require kodi.inc
+require kodi-16.x.inc
 
 COMPATIBLE_MACHINE = "^(vusolo2)$"
 
index f642370..64491f4 100644 (file)
@@ -1,11 +1,6 @@
-require kodi.inc
+require kodi-17.x.inc
 
 COMPATIBLE_MACHINE = "^(vusolo4k)$"
 
-BUILD_PR = "r0"
-GLPR = "20160331_r0"
+EXTRA_OECONF += " --with-platform=vuplus-arm "
 
-EXTRA_OECONF += " --with-platform=vuplus-arm --with-ffmpeg=force_vuplus_arm "
-
-SRC_URI[xbmc-support.md5sum] = "1ae0c982f8db9625a7f831874f6f0605"
-SRC_URI[xbmc-support.sha256sum] = "1be88ba6d4cbc0a0b1f10c83995132aa9bd5a088cf5b7080e1b0ef90170d96f7"
index 1a0204d..bdbecd9 100644 (file)
@@ -1,4 +1,4 @@
-require kodi.inc
+require kodi-16.x.inc
 
 COMPATIBLE_MACHINE = "^(vusolose)$"
 
index 76c9cf2..584414c 100644 (file)
@@ -1,11 +1,6 @@
-require kodi.inc
+require kodi-17.x.inc
 
 COMPATIBLE_MACHINE = "^(vuultimo4k)$"
 
-BUILD_PR = "r0"
-GLPR = "20161206_r0"
+EXTRA_OECONF += " --with-platform=vuplus-arm "
 
-EXTRA_OECONF += " --with-platform=vuplus-arm --with-ffmpeg=force_vuplus_arm "
-
-SRC_URI[xbmc-support.md5sum] = "765b8c18ca1e452cbb4b387a01cdefa8"
-SRC_URI[xbmc-support.sha256sum] = "e4e469dd6cd21fa9d5fd59a662aa526169ace6ec59854ad0ee416baa66af45ae"
index 4274b0a..84414cf 100644 (file)
@@ -1,11 +1,6 @@
-require kodi.inc
+require kodi-17.x.inc
 
 COMPATIBLE_MACHINE = "^(vuuno4k)$"
 
-BUILD_PR = "r0"
-GLPR = "20161206_r1"
+EXTRA_OECONF += " --with-platform=vuplus-arm "
 
-EXTRA_OECONF += " --with-platform=vuplus-arm --with-ffmpeg=force_vuplus_arm "
-
-SRC_URI[xbmc-support.md5sum] = "b0f62cb425b0f5bc5dc6ebcbe76f0890"
-SRC_URI[xbmc-support.sha256sum] = "b2b91ec85cc7edfef86218906a8743868e372fb5f2736fa1ce066335a23c6bb1"
diff --git a/meta-bsp/recipes-multimedia/kodi/kodi.inc b/meta-bsp/recipes-multimedia/kodi/kodi.inc
deleted file mode 100644 (file)
index efd004b..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-SUMMARY = "Kodi Media Center"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=930e2a5f63425d8dd72dbd7391c43c46"
-
-DEPENDS = "\
-       libgles \
-       libxslt \
-       libusb1 \
-       libcec \
-       libplist \
-       expat \
-       yajl \
-       gperf-native \
-       fribidi \
-       mpeg2dec \
-       samba \
-       fontconfig \
-       curl \
-       python \
-       libass \
-       libmodplug \
-       libmicrohttpd \
-       wavpack \
-       libmms\
-       cmake-native \
-       libsdl-image \
-       libsdl-mixer \
-       mysql5 \
-       sqlite3 \
-       libmms \
-       faad2 \
-       libcdio \
-       libpcre \
-       boost \
-       lzo \
-       enca \
-       avahi \
-       libsamplerate0 \
-       bzip2 \
-       virtual/libsdl \
-       jasper \
-       zip-native \
-       zlib \
-       libtinyxml \
-       taglib \
-       libbluray \
-       libshairport \
-       librtmp \
-       zlib \
-       libnfs \
-       libxslt \
-       libsquish \
-       libdcadec \
-       libcrossguid \
-"
-
-PROVIDES += "kodi"
-RPROVIDES_${PN} += "kodi"
-
-RDEPENDS_${PN} = "python"
-RDEPENDS_${PN} += "\
-       python-distutils \
-       python-subprocess \
-       python-robotparser \
-       python-mechanize \
-       python-threading \
-       python-shell \
-       python-zlib \
-       python-sqlite3 \
-       python-json \
-       python-xml \
-       python-html \
-       python-netserver \
-       python-misc \
-       python-pygobject \
-       python-pygobject-lib \
-       python-textutils \
-       python-simplejson \
-       python-xmlrpc   \
-       python-pprint \
-       python-difflib \
-       python-email \
-       python-compression \
-       python-compile \
-       python-compiler \
-       python-numbers \
-       nfs-utils-client \
-       libshairport \
-       glibc-gconv-utf-32 \
-       xz \
-       tiff \
-       yajl \
-       libxslt \
-       libupnp \
-       libplist \
-       librtmp \
-       libbluray \
-       libnfs \
-       libtinyxml \
-       alsa-lib \
-       shairplay \
-"
-
-BRANCH = "jarvis_vuplus"
-SRCREV = "528f9f8abfc045b8cf8edea013aaf19fd02dba09"
-
-PV = "16.1.rc2"
-PR = "${BUILD_PR}_${GLPR}_${SRCREV}"
-
-SRC_URI = "\
-       git://code.vuplus.com/git/xbmc.git;protocol=http;branch=${BRANCH};tag=${SRCREV} \
-       http://archive.vuplus.com/download/build_support/kodi/xbmc-support_${MACHINE}_${GLPR}.tar.gz;name=xbmc-support \
-"
-
-inherit autotools-brokensep autotools lib_package pkgconfig gettext python-dir
-
-S = "${WORKDIR}/git"
-
-CACHED_CONFIGUREVARS += " \
- ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \
-"
-
-EXTRA_OECONF = " \
-       --enable-gles \
-       --enable-libusb \
-       --enable-airplay \
-       --enable-rtmp   \
-       --enable-optimizations \
-       --disable-optical-drive \
-       --disable-ssh \
-       --disable-x11 \
-       --disable-dbus \
-       --disable-pulse \
-       --disable-gtest \
-       --disable-joystick \
-       --disable-alsa \
-       --disable-lirc \
-       --disable-libcec \
-       --disable-texturepacker \
-       --disable-debug \
-"
-
-FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math"
-BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
-
-# for python modules
-export HOST_SYS
-export BUILD_SYS
-export STAGING_LIBDIR
-export STAGING_INCDIR
-export PYTHON_DIR
-
-do_configure() {
-       cp -av ${WORKDIR}/xbmc-support/gles_init.* ${WORKDIR}/git/xbmc/windowing/egl/
-       sh bootstrap
-       sed -i 's/-V -qversion//' configure
-       oe_runconf
-}
-
-do_compile_prepend() {
-       for i in $(find . -name "Makefile") ; do
-               sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' $i
-       done
-
-       for i in $(find . -name "*.mak*" -o     -name "Makefile") ; do
-               sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${libdir}:g' $i
-       done
-}
-
-INSANE_SKIP_${PN} = "rpaths"
-
-# on ARM architectures xbmc will use GLES which will make the regular wrapper fail, so start it directly
-#do_install_append_arm() {
-#      sed -i -e 's:Exec=xbmc:Exec=${libdir}/xbmc/xbmc.bin:g' ${D}${datadir}/applications/xbmc.desktop
-#}
-
-do_install_append(){
-       install -d ${D}${bindir}
-       install -m 0755 ${WORKDIR}/xbmc-support/xbmc.helper ${D}${bindir}
-       install -m 0755 ${WORKDIR}/xbmc-support/libxbmc_base.so ${D}${libdir}
-}
-
-do_package_qa(){
-}
-
-FILES_${PN} = "${libdir}/kodi ${libdir}/xbmc"
-FILES_${PN} += "${bindir}/kodi ${bindir}/xbmc ${bindir}/xbmc.helper"
-FILES_${PN} += "${datadir}/icons ${datadir}/kodi ${datadir}/xbmc"
-FILES_${PN} += "${libdir}/libxbmc_base.so"
-FILES_${PN}-dev = "${includedir}"
-FILES_${PN}-bin = "${bindir}/kodi-standalone ${bindir}/xbmc-standalone ${datadir}/xsessions"
-FILES_${PN}-dbg += "${libdir}/kodi/.debug ${libdir}/kodi/*/.debug ${libdir}/kodi/*/*/.debug ${libdir}/kodi/*/*/*/.debug ${datadir}/applications"
-
-# xbmc uses some kind of dlopen() method for libcec so we need to add it manually
-RRECOMMENDS_${PN}_append = " libcec \
-                             python \
-                             python-lang \
-                             python-re \
-                             python-netclient \
-                             libcurl \
-                             "
-RRECOMMENDS_${PN}_append_libc-glibc = " glibc-charmap-ibm850 glibc-gconv-ibm850"
-
-INSANE_SKIP_${PN} = "already-stripped"
-
-PACKAGE_ARCH := "${MACHINE_ARCH}"
-
diff --git a/meta-bsp/recipes-multimedia/kodi/kodiegl-vusolo4k.bb b/meta-bsp/recipes-multimedia/kodi/kodiegl-vusolo4k.bb
new file mode 100644 (file)
index 0000000..488d9e5
--- /dev/null
@@ -0,0 +1,12 @@
+require kodiegl.inc
+
+COMPATIBLE_MACHINE = "^(vusolo4k)$"
+
+PV = "1.0"
+PR_append = ".r0"
+
+PKGDATE="20170411p0"
+
+SRC_URI[md5sum] = "0517f06dc09b9c3a9fa63503a8966098"
+SRC_URI[sha256sum] = "a00feeab515fa229823ae47ad45c12c542287aa6aaae610d442182846ce643af"
+
diff --git a/meta-bsp/recipes-multimedia/kodi/kodiegl-vuultimo4k.bb b/meta-bsp/recipes-multimedia/kodi/kodiegl-vuultimo4k.bb
new file mode 100644 (file)
index 0000000..6fd51b5
--- /dev/null
@@ -0,0 +1,12 @@
+require kodiegl.inc
+
+COMPATIBLE_MACHINE = "^(vuultimo4k)$"
+
+PV = "1.0"
+PR_append = ".r0"
+
+PKGDATE="20170411p0"
+
+SRC_URI[md5sum] = "a659349d1d57b1f87ae4a2df981c7cdf"
+SRC_URI[sha256sum] = "42cb2af344eb26c7c1dcbc6539d3b87c85b5506f8bb3731527f8670504671712"
+
diff --git a/meta-bsp/recipes-multimedia/kodi/kodiegl-vuuno4k.bb b/meta-bsp/recipes-multimedia/kodi/kodiegl-vuuno4k.bb
new file mode 100644 (file)
index 0000000..2c91469
--- /dev/null
@@ -0,0 +1,12 @@
+require kodiegl.inc
+
+COMPATIBLE_MACHINE = "^(vuuno4k)$"
+
+PV = "1.0"
+PR_append = ".r0"
+
+PKGDATE="20170411p0"
+
+SRC_URI[md5sum] = "2011c39ee03836da3eb10648d3f5be50"
+SRC_URI[sha256sum] = "4d2926209040d72be1d3a071d4da3a3c1a94b764f93e792ffba9e28c1c1ed3b4"
+
diff --git a/meta-bsp/recipes-multimedia/kodi/kodiegl.inc b/meta-bsp/recipes-multimedia/kodi/kodiegl.inc
new file mode 100644 (file)
index 0000000..e476993
--- /dev/null
@@ -0,0 +1,32 @@
+SECTION = "base"
+LICENSE = "CLOSED"
+require conf/license/license-close.inc
+
+PR = "${PKGDATE}"
+
+PROVIDES += "kodiegl"
+RPROVIDES_${PN} += "kodiegl"
+
+SRC_URI = "http://archive.vuplus.com/download/build_support/kodi/KodiGLESPL_${MACHINE}_${PKGDATE}.tar.gz"
+
+S = "${WORKDIR}/KodiGLESPL_${MACHINE}"
+
+do_install() {
+       install -d ${D}/usr/bin
+       install -m 0755 ${S}/bin/* ${D}/usr/bin
+
+       install -d ${D}/usr/lib
+       install -m 0755 ${S}/lib/*.so ${D}/usr/lib
+
+       install -d ${D}/usr/include
+       install -m 0755 ${S}/include/*.h ${D}/usr/include
+}
+
+do_package_qa() {
+}
+
+FILES_${PN}="${libdir} ${bindir}"
+FILES_${PN}-dev = "${includedir}"
+
+PACKAGE_ARCH = "${MACHINE}"
+
index 023e68b..5f0d6e9 100644 (file)
@@ -1,8 +1,8 @@
-SRCDATE = "20161117_r0"
+SRCDATE = "20170406_r0"
 
 require chromium-browser.inc
 
 COMPATIBLE_MACHINE = "^(vusolo4k)$"
 
-SRC_URI[md5sum] = "4fdbcb2ea2b8590e76533f8bcf7f1d19"
-SRC_URI[sha256sum] = "6b852b1a57201bcd84423e15d36039ffc1eb45c99627f191ed92367c05bb1288"
+SRC_URI[md5sum] = "a244f461ef6f91343949c8174de1cf9f"
+SRC_URI[sha256sum] = "5d3b9f29ae6a2e7cbdddb0f04b1fd771ed5a19ccc121af2a2d01cd9893beb461"
index e7816a7..461801b 100644 (file)
@@ -1,8 +1,8 @@
-SRCDATE = "20161020_r0"
+SRCDATE = "20170406_r0"
 
 require chromium-browser.inc
 
 COMPATIBLE_MACHINE = "^(vuultimo4k)$"
 
-SRC_URI[md5sum] = "c9b3d35f632757deae9aedf6b61b4357"
-SRC_URI[sha256sum] = "784e696914b090748ea3c4b3a183fd22bd77bec5a3c035585797c64adc92cfb2"
+SRC_URI[md5sum] = "af7b8fb03164df129c77c82dc764f47e"
+SRC_URI[sha256sum] = "16092fdc1b2da87be84ffde74c69cd5cccb7f0605cc429fabae2bf3c86a8d658"
index 6bb3e7c..a9baa73 100644 (file)
@@ -1,8 +1,8 @@
-SRCDATE = "20161019_r0"
+SRCDATE = "20170406_r0"
 
 require chromium-browser.inc
 
 COMPATIBLE_MACHINE = "^(vuuno4k)$"
 
-SRC_URI[md5sum] = "19b966e4d5fa48bdaab6b42d7ce33055"
-SRC_URI[sha256sum] = "b01227cf352096a6a1796f0cc8529e2667f41ddbc05a1c8f4675da10765595f3"
+SRC_URI[md5sum] = "6dfd417c905a3edf7e31cdd6b77bb890"
+SRC_URI[sha256sum] = "3b125738d175c094bc081beec75b1000354d504b44285d69866454ebee9a92e7"
index e0ec247..969c085 100644 (file)
@@ -8,6 +8,9 @@ PV = "1.0"
 PR = "${SRCDATE}"
 SRC_URI = "http://code.vuplus.com/download/chromium/chromium-vuplus_${MACHINE}_${SRCDATE}.tar.gz"
 
+# Added to support the OE-Alliance.
+PREFERRED_VERSION_nss = "3.17.3"
+
 DEPENDS_${PN} = "nss"
 RDEPENDS_${PN} = "nspr nss"
 
index 874d52d..d9ce3af 100644 (file)
@@ -5,7 +5,7 @@ LICENSE = "CLOSED"
 require conf/license/license-close.inc
 
 PV = "1.0"
-PR = "20160516_r1"
+PR = "20170324_r0"
 SRC_URI = "http://code.vuplus.com/download/chromium/e2plugin-chromium-vuplus_${PR}.tar.gz"
 
 DEPENDS_${PN} = "chromium-browser"
@@ -24,5 +24,5 @@ RPROVIDES_${PN} += "enigma2-plugin-extensions-chromium"
 
 FILES_${PN} = "/"
 
-SRC_URI[md5sum] = "463adfde95d9c0677adcb89b4bb1b9da"
-SRC_URI[sha256sum] = "efaa40792935e240f2d91b9fe3bf4d28835fadef62e28d2ac1fb260d9ed23903"
+SRC_URI[md5sum] = "525ab918ae8c5e41ffec3e57d748da25"
+SRC_URI[sha256sum] = "d671f1dfeaefd8f3d05a79348e86c7debd40403cc5f9d59780ccb04c7fa655cf"
index a0f7ee5..b96f90e 100755 (executable)
@@ -6,8 +6,8 @@ RDEPENDS_${PN} = "ncurses"
 LICENSE = "CLOSED"
 require conf/license/license-close.inc
 
-PV = "4.2"
-PV_arm = "4.6"
+PV = "4.3"
+PV_arm = "4.7"
 
 PR = "r10"
 PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -89,11 +89,11 @@ do_install_arm() {
        done
 }
 
-SRC_URI[md5sum] = "8e5b2f437b8d3f2b112300ca2e1539d5"
-SRC_URI[sha256sum] = "d9b9fcfcafb8f89ded56c2bdd4c7bc6639bfdd93b8c8b78a23a40f4fa6219c2b"
+SRC_URI[md5sum] = "a8ca2f8ce06d37b7d01b729b1e4e4abb"
+SRC_URI[sha256sum] = "ec9b5dd552e72a0d775a77212350b71f5ea6f3619687c40c2bf97b12c5d7abd9"
 
-SRC_URI[arm.md5sum] = "f61f4096570ff8fe7ed4d46acc7ba6fb"
-SRC_URI[arm.sha256sum] = "1a9e8fd98c8aace692a66e1150db55bad80a5274650d618d3ad91c38ec67dc55"
+SRC_URI[arm.md5sum] = "003d552f3c62f84f00a9bad288e131be"
+SRC_URI[arm.sha256sum] = "27c30a9e332032b525af5a506e1337d5f2e68124035f6907a440b1836e084aa6"
 
 INSANE_SKIP_${PN} = "already-stripped"
 
index 58b8e5f..08aefa7 100644 (file)
@@ -5,9 +5,9 @@ COMPATIBLE_MACHINE = "^(vuultimo4k)$"
 FIRMWARE_PATH="bcm43569"
 FIRMWARE_FILE="BCM43569A2_001.003.004.0060.0109.hcd"
 
-SRCDATE = "20161115"
+SRCDATE = "20170327"
 SRCDATE_PR = "r0"
 
-SRC_URI[md5sum] = "411c213563c690aa46da8f7d45426e2c"
-SRC_URI[sha256sum] = "a871ca49a28302cdb461839497ab9e0a1623f9f9a647e39cc827d26363714110"
+SRC_URI[md5sum] = "3f170652eb09e97377fbbf4d1655f6ae"
+SRC_URI[sha256sum] = "364e1042f0d6e842ec45b984d796ecba8a35595d77ae4cac642b13f90a486d4f"
 
index 09aa1d7..2a1e866 100644 (file)
@@ -5,7 +5,7 @@ LICENSE = "CLOSED"
 require conf/license/license-close.inc
 
 PV = "1.0"
-PR = "20151228.r0"
+PR = "20170105.r0"
 SRC_URI = "http://archive.vuplus.com/download/build_support/webkit-hbbtv-plugin_${PR}.tar.gz"
 
 do_install_append() {
@@ -25,5 +25,5 @@ RPROVIDES_${PN} += "enigma2-plugin-extensions-webkithbbtv"
 FILES_${PN} = "/"
 
 
-SRC_URI[md5sum] = "d0b4dbbb074064ec17c9d76e639ddbc3"
-SRC_URI[sha256sum] = "1aa76e29f7f850fd4744e639c63bd79e3b2b51a7e251f26e39e6cb21d2b48fb9"
+SRC_URI[md5sum] = "8b93c2f013934658daa2162cf58e3b71"
+SRC_URI[sha256sum] = "b6322cbfc06abe19052cfff0ae1f76d00d6a6f185fdc09fd10085823f9203c26"
index f2c792f..867a65d 100644 (file)
@@ -1,9 +1,9 @@
-SRCDATE = "20151228.r0"
+SRCDATE = "20170324.r0"
 
 require webkit-hbbtv-browser.inc
 
 COMPATIBLE_MACHINE = "^(vusolo4k)$"
 
 
-SRC_URI[md5sum] = "507cf22f00847285bb3ce186bedbbdcc"
-SRC_URI[sha256sum] = "648b7c088305e9e806f76230deab85258ab0888249b2c13b6d9d8149fe19d454"
+SRC_URI[md5sum] = "44ef1594ac1ea01344e70602ce4a24ee"
+SRC_URI[sha256sum] = "fbd93d672e25d0e4a341d25b0089f94ee92a010c2102eb415347e6e1f3736f46"
index e57f22e..05e5cca 100644 (file)
@@ -1,9 +1,9 @@
-SRCDATE = "20161018.r0"
+SRCDATE = "20170324.r0"
 
 require webkit-hbbtv-browser.inc
 
 COMPATIBLE_MACHINE = "^(vuultimo4k)$"
 
 
-SRC_URI[md5sum] = "ae069cbbfeafb228f58374a17e9c1ef9"
-SRC_URI[sha256sum] = "3171a57a2c2abc80aaaca9dd52fdaa6fe549008feadb04975dab476fc8674a02"
+SRC_URI[md5sum] = "d310a2beeda59a1f0783dfff74690bea"
+SRC_URI[sha256sum] = "aef08a79f55426ab10268b83a36e4778bd46752791ef9ba31f25a622bf59d4f6"
index c656b4c..917c167 100644 (file)
@@ -1,9 +1,9 @@
-SRCDATE = "20161018.r0"
+SRCDATE = "20170324.r0"
 
 require webkit-hbbtv-browser.inc
 
 COMPATIBLE_MACHINE = "^(vuuno4k)$"
 
 
-SRC_URI[md5sum] = "9eb98848424720f6e6c97a4253230fd5"
-SRC_URI[sha256sum] = "66580fc3e8d5cd8971577fd333c0cdb29169ceccd44b37e27a5ed79660994adf"
+SRC_URI[md5sum] = "6f6e621aae41cfe6c7a1ac07524415a1"
+SRC_URI[sha256sum] = "b7e408dc8996f75b69d32cd8b0f626031764986e1869415e845ab008928ef2a8"
index 26162c1..72b8e83 100644 (file)
@@ -39,7 +39,7 @@ PREFERRED_VERSION_elfutils ?= "0.148"
 
 PREFERRED_VERSION_libmicrohttpd ?= "0.9.34"
 PREFERRED_VERSION_libdvdcss ?= "1.2.10"
-PREFERRED_VERSION_taglib ?= "1.8"
+#PREFERRED_VERSION_taglib ?= "1.8"
 
 PREFERRED_PROVIDER_jpeg = "jpeg"
 PREFERRED_PROVIDER_jpeg-native = "jpeg-native"
index 2d171db..b5ea091 100644 (file)
@@ -5,7 +5,7 @@ DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base"
 LICENSE = "LGPLv2.1"
 LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
 
-SRC_URI = "git://git.code.sf.net/p/openpli/gstsubsink;protocol=git;branch=gst-1.0"
+SRC_URI = "git://github.com/OpenPLi/gst-plugin-subsink.git;protocol=git;branch=master"
 SRCREV = "${AUTOREV}"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openvuplus/recipes-support/taglib/taglib_1.11.1.bb b/meta-openvuplus/recipes-support/taglib/taglib_1.11.1.bb
new file mode 100644 (file)
index 0000000..6eb8265
--- /dev/null
@@ -0,0 +1,39 @@
+SUMMARY = "Library for reading and editing the meta-data of popular audio formats"
+SECTION = "libs/multimedia"
+HOMEPAGE = "http://taglib.github.io/"
+LICENSE = "LGPLv2.1 | MPL-1"
+LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
+                    file://COPYING.MPL;md5=bfe1f75d606912a4111c90743d6c7325 \
+                    file://taglib/audioproperties.h;beginline=1;endline=24;md5=9df2c7399519b7310568a7c55042ecee"
+
+DEPENDS = "zlib"
+
+SRC_URI = "http://taglib.github.io/releases/${BP}.tar.gz"
+SRC_URI[md5sum] = "cee7be0ccfc892fa433d6c837df9522a"
+SRC_URI[sha256sum] = "b6d1a5a610aae6ff39d93de5efd0fdc787aa9e9dc1e7026fa4c961b26563526b"
+
+UPSTREAM_CHECK_URI = "http://github.com/taglib/taglib/releases/"
+
+BINCONFIG = "${bindir}/taglib-config"
+
+inherit cmake pkgconfig binconfig
+
+PACKAGES =+ "${PN}-c"
+FILES_${PN}-c = "${libdir}/libtag_c.so.*"
+
+EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON \
+                 -DCMAKE_DISABLE_FIND_PACKAGE_Boost=TRUE \
+                 -DHAVE_BOOST_BYTESWAP=FALSE \
+                 -DCMAKE_CXX_STANDARD=11 \
+                 -DCMAKE_CXX_STANDARD_REQUIRED=OFF \
+"
+CXXFLAGS += "-std=c++11"
+
+do_configure_prepend () {
+       rm -f ${S}/admin/ltmain.sh
+       rm -f ${S}/admin/libtool.m4.in
+}
+
+# without -fPIC depending packages failed with many error like:
+# | <...>/ld: error: <...>/usr/lib/libtag.a(modfilebase.cpp.o): requires unsupported dynamic reloc R_ARM_THM_MOVW_ABS_NC; recompile with -fPIC
+CXXFLAGS += "-fPIC"
diff --git a/meta-openvuplus/recipes-support/taglib/taglib_1.8.bb b/meta-openvuplus/recipes-support/taglib/taglib_1.8.bb
deleted file mode 100644 (file)
index b032c92..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-DESCRIPTION = "TagLib is a library for reading and editing the meta-data of several popular audio formats"
-SECTION = "libs/multimedia"
-HOMEPAGE = "http://developer.kde.org/~wheeler/taglib.html"
-LICENSE = "LGPLv2.1 | MPL-1"
-LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
-                    file://COPYING.MPL;md5=bfe1f75d606912a4111c90743d6c7325 \
-                    file://taglib/audioproperties.h;beginline=1;endline=24;md5=9df2c7399519b7310568a7c55042ecee"
-
-DEPENDS = "zlib"
-
-PR = "r0"
-# http://developer.kde.org/~wheeler/files/src/taglib-${PV}.tar.gz
-SRC_URI = "https://github.com/downloads/taglib/taglib/taglib-1.8.tar.gz \
-           "
-
-SRC_URI[md5sum] = "dcb8bd1b756f2843e18b1fdf3aaeee15"
-SRC_URI[sha256sum] = "66d33481703c90236a0a9d1c38fd81b584ca7109ded049225f5463dcaffc209a"
-
-S = "${WORKDIR}/taglib-${PV}"
-
-inherit cmake pkgconfig binconfig
-
-PACKAGES =+ "${PN}-c"
-FILES_${PN}-c = "${libdir}/libtag_c.so.*"
-
-do_configure_prepend () {
-       rm -f ${S}/admin/ltmain.sh
-       rm -f ${S}/admin/libtool.m4.in
-}
-
index 3b133ed..09bd9a5 100644 (file)
@@ -5,7 +5,7 @@ LICENSE = "CLOSED"
 DEPENDS = "python-native"
 RDEPENDS_${PN} = "vuplus-bluetooth-util"
 
-SRCDATE="20161128"
+SRCDATE="20170327"
 SRCDATE_PR = "r0"
 PR="${SRCDATE}.${SRCDATE_PR}"
 
@@ -34,5 +34,6 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
 
 INSANE_SKIP_${PN} = "already-stripped"
 
-SRC_URI[md5sum] = "af348a34715e380329b2618103bf3498"
-SRC_URI[sha256sum] = "634e39992eabd6a3146bd8ed59cc85bb019da33019ee2e356ca77ff607321493"
+SRC_URI[md5sum] = "a1d19dd1a8b739b4073f4da07b6c1ccc"
+SRC_URI[sha256sum] = "94ec17b623fc8178b8d6083e516d12b047d698107c19eda39c9b0250a637df46"
+
index ae58f48..868ba24 100644 (file)
@@ -231,7 +231,7 @@ DEPENDS += "${@base_contains("VUPLUS_FEATURES", "uianimation", "libgles libvugle
 RDEPENDS_${PN}_append_vuplus += "${@base_contains("VUPLUS_FEATURES", "uianimation", "libvugles2" , "", d)}"
 
 PN = "enigma2"
-PR = "r150"
+PR = "r152"
 
 inherit gitpkgv pythonnative
 
index 4db0e55..3d3d6ca 100644 (file)
@@ -2,7 +2,7 @@ SUMMARY = "Enigma2 set of packages for Vuplus"
 SECTION = "vuplus/base"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
-PR = "r17"
+PR = "r18"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
 
@@ -78,6 +78,7 @@ RDEPENDS_${PN} += " \
   ${@base_conditional("MACHINE", "vusolo4k", "enigma2-plugin-systemplugins-solo4kmisccontrol", "", d)} \
   ${@base_contains("VUPLUS_FEATURES", "fcc", "enigma2-plugin-systemplugins-fastchannelchange", "", d)} \
   ${@base_contains("VUPLUS_FEATURES", "bluetooth", "enigma2-plugin-systemplugins-bluetoothsetup", "", d)} \
+  ${@base_contains("VUPLUS_FEATURES", "bluetooth", "enigma2-plugin-extensions-witaispeechtotext", "", d)} \
   ${@base_conditional("MACHINE", "vuultimo4k", "enigma2-plugin-systemplugins-ultimo4kmisccontrol", "", d)} \
 "
 
index 6384068..07a3db4 100644 (file)
@@ -3,7 +3,7 @@ LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
 
 PV = "1.0"
-PR = "r4"
+PR = "r5"
 
 RDEPENDS_${PN} = "enigma2"
 
diff --git a/meta-openvuplus/recipes-vuplus/witaistt/enigma2-plugin-extensions-witaispeechtotext.bb b/meta-openvuplus/recipes-vuplus/witaistt/enigma2-plugin-extensions-witaispeechtotext.bb
new file mode 100644 (file)
index 0000000..82f7cc5
--- /dev/null
@@ -0,0 +1,40 @@
+DESCRIPTION = "Vuplus wit.ai speech to text plugin"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
+
+DEPENDS = "python-native"
+RDEPENDS_${PN} = "python-requests enigma2-plugin-systemplugins-bluetoothsetup"
+
+SRCDATE="20170327"
+SRCDATE_PR = "r0"
+PR="${SRCDATE}.${SRCDATE_PR}"
+
+SRC_URI = " \
+    http://archive.vuplus.com/download/build_support/vuplus/enigma2-plugin-witaispeechtotext-${PR}.tar.gz \
+"
+
+S = "${WORKDIR}/enigma2-plugin-witaispeechtotext"
+
+WITAISPEECHTOTEXT_PLUGIN_PATH = "/usr/lib/enigma2/python/Plugins/Extensions/WitAiSpeechToText"
+
+do_compile() {
+       python -O -m compileall ${S}
+}
+
+do_install() {
+       install -d  ${D}${WITAISPEECHTOTEXT_PLUGIN_PATH}
+       cp -rp ${S}/* ${D}${WITAISPEECHTOTEXT_PLUGIN_PATH}
+}
+
+FILES_${PN} = "${WITAISPEECHTOTEXT_PLUGIN_PATH}"
+
+do_populate_sysroot[noexec] = "1"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+INSANE_SKIP_${PN} = "already-stripped"
+
+SRC_URI[md5sum] = "6b1fe4fd6f921a08721e4613b88da485"
+SRC_URI[sha256sum] = "cfb889fc95a3223783d9448abeaa37b5d17144d19c6278c8d9f24851f51dddb9"
+