summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--multimedia/kodi/Makefile329
-rw-r--r--multimedia/kodi/distinfo20
-rw-r--r--multimedia/kodi/files/extra-armv6_hal1463
-rw-r--r--multimedia/kodi/files/extra-patch-sndio542
-rw-r--r--multimedia/kodi/files/patch-Makefile.include.in39
-rw-r--r--multimedia/kodi/files/patch-cmake_modules_FindSSE.cmake11
-rw-r--r--multimedia/kodi/files/patch-configure.ac181
-rw-r--r--multimedia/kodi/files/patch-lib_cpluff_autogen.sh11
-rw-r--r--multimedia/kodi/files/patch-lib_cpluff_configure.ac30
-rw-r--r--multimedia/kodi/files/patch-m4_xbmc__arch.m430
-rw-r--r--multimedia/kodi/files/patch-system_settings_rbp2.xml11
-rw-r--r--multimedia/kodi/files/patch-tools_depends_native_JsonSchemaBuilder_Makefile11
-rw-r--r--multimedia/kodi/files/patch-tools_depends_target_ffmpeg_FFmpeg-3.1.11-Krypton-17.5_libavutil_x86_asm.h11
-rw-r--r--multimedia/kodi/files/patch-tools_depends_target_ffmpeg_Makefile14
-rw-r--r--multimedia/kodi/files/patch-tools_depends_target_ffmpeg_autobuild.sh118
-rw-r--r--multimedia/kodi/files/patch-tools_depends_target_libdvdcss_Makefile23
-rw-r--r--multimedia/kodi/files/patch-tools_depends_target_libdvdnav_Makefile21
-rw-r--r--multimedia/kodi/files/patch-tools_depends_target_libdvdread_Makefile23
-rw-r--r--multimedia/kodi/files/patch-xbmc_LangInfo.cpp13
-rw-r--r--multimedia/kodi/files/patch-xbmc_addons_kodi-addon-dev-kit_include_kodi_libXBMC_addon.h28
-rw-r--r--multimedia/kodi/files/patch-xbmc_cores_VideoPlayer_DVDDemuxSPU.cpp10
-rw-r--r--multimedia/kodi/files/patch-xbmc_cores_VideoPlayer_Process_overrides_linux_ProcessInfoLinux.cpp11
-rw-r--r--multimedia/kodi/files/patch-xbmc_dbwrappers_mysqldataset.cpp14
-rw-r--r--multimedia/kodi/files/patch-xbmc_dbwrappers_mysqldataset.h14
-rw-r--r--multimedia/kodi/files/patch-xbmc_guilib_TextureBundleXBT.h10
-rw-r--r--multimedia/kodi/files/patch-xbmc_guilib_XBTF.h10
-rw-r--r--multimedia/kodi/files/patch-xbmc_interfaces_builtins_WeatherBuiltins.cpp10
-rw-r--r--multimedia/kodi/files/patch-xbmc_linux_PlatformDefs.h10
-rw-r--r--multimedia/kodi/files/patch-xbmc_platform_linux_input_LibInputHandler.cpp11
-rw-r--r--multimedia/kodi/files/patch-xbmc_platform_linux_storage_UDisks2Provider.h11
-rw-r--r--multimedia/kodi/files/patch-xbmc_platform_posix_main.cpp18
-rw-r--r--multimedia/kodi/files/patch-xbmc_settings_AdvancedSettings.cpp11
-rw-r--r--multimedia/kodi/files/patch-xbmc_system.h14
-rw-r--r--multimedia/kodi/files/patch-xbmc_threads_platform_pthreads_ThreadImpl.cpp13
-rw-r--r--multimedia/kodi/files/patch-xbmc_utils_CPUInfo.cpp27
-rw-r--r--multimedia/kodi/files/patch-xbmc_utils_CharsetConverter.cpp11
-rw-r--r--multimedia/kodi/files/patch-xbmc_utils_RssReader.cpp18
-rw-r--r--multimedia/kodi/files/patch-xbmc_windowing_Makefile.in8
-rw-r--r--multimedia/kodi/files/patch-xbmc_windowing_WinEvents.cpp13
-rw-r--r--multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.cpp531
-rw-r--r--multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.h77
-rw-r--r--multimedia/kodi/files/patch-xbmc_windowing_WinEventsX11.cpp10
-rw-r--r--multimedia/kodi/files/patch-xbmc_windowing_WindowingFactory.h21
-rw-r--r--multimedia/kodi/files/patch-xbmc_windowing_egl_EGLNativeTypeAmlogic.cpp15
-rw-r--r--multimedia/kodi/files/patch-xbmc_windowing_es__scancodes.h141
-rw-r--r--multimedia/kodi/files/patch-xbmc_windowing_rpi_WinSystemRpi.cpp26
-rw-r--r--multimedia/kodi/files/pkg-message.in32
-rw-r--r--multimedia/kodi/pkg-plist1701
48 files changed, 591 insertions, 5136 deletions
diff --git a/multimedia/kodi/Makefile b/multimedia/kodi/Makefile
index fd20365381a1..eeb82ae6c30a 100644
--- a/multimedia/kodi/Makefile
+++ b/multimedia/kodi/Makefile
@@ -1,236 +1,245 @@
# $FreeBSD$
PORTNAME= kodi
-DISTVERSION= 17.6
-PORTREVISION= 20
+DISTVERSION= 18.7.1
CATEGORIES= multimedia java
MAINTAINER= ports@FreeBSD.org
COMMENT= Award winning media center application
-LICENSE= GPLv2
+LICENSE= GPLv2+
ONLY_FOR_ARCHS= amd64 armv6 armv7 i386
-BUILD_DEPENDS= enca:converters/enca \
- gawk:lang/gawk \
- gperf:devel/gperf \
- cmake:devel/cmake \
- zip:archivers/zip \
- nasm:devel/nasm \
- swig:devel/swig
+BUILD_DEPENDS= flatbuffers>0:devel/flatbuffers \
+ gperf>0:devel/gperf \
+ rapidjson>0:devel/rapidjson \
+ swig>0:devel/swig
LIB_DEPENDS= libass.so:multimedia/libass \
- libFLAC.so:audio/flac \
+ libavcodec.so:multimedia/ffmpeg \
+ libavfilter.so:multimedia/ffmpeg \
+ libavformat.so:multimedia/ffmpeg \
+ libavutil.so:multimedia/ffmpeg \
libcdio.so:sysutils/libcdio \
libcrossguid.so:devel/libcrossguid \
libcurl.so:ftp/curl \
- libdbus-1.so:devel/dbus \
- libdcadec.so:multimedia/libdcadec \
- libenca.so:converters/enca \
- libexpat.so:textproc/expat2\
- libfontconfig.so:x11-fonts/fontconfig \
+ libexpat.so:textproc/expat2 \
+ libfmt.so:devel/libfmt \
libfreetype.so:print/freetype2 \
libfribidi.so:converters/fribidi \
- libgcrypt.so:security/libgcrypt \
- libgmp.so:math/gmp \
- libgpg-error.so:security/libgpg-error \
- libgnutls.so:security/gnutls \
- libidn.so:dns/libidn \
- libinotify.so:devel/libinotify \
- libjasper.so:graphics/jasper \
- libltdl.so:devel/libltdl \
+ libfstrcmp.so:devel/fstrcmp \
+ libgif.so:graphics/giflib \
liblzo2.so:archivers/lzo2 \
- libmodplug.so:audio/libmodplug \
- libmpeg2.so:multimedia/libmpeg2 \
- libnettle.so:security/nettle \
- libogg.so:audio/libogg \
- libp11-kit.so:security/p11-kit \
libpcre.so:devel/pcre \
libpng.so:graphics/png \
- libsamplerate.so:audio/libsamplerate \
- libsqlite3.so:databases/sqlite3 \
+ libpostproc.so:multimedia/ffmpeg \
+ libswresample.so:multimedia/ffmpeg \
+ libswscale.so:multimedia/ffmpeg \
libtag.so:audio/taglib \
- libtasn1.so:security/libtasn1 \
- libtiff.so:graphics/tiff \
libtinyxml.so:textproc/tinyxml \
- libtspi.so:security/trousers \
- libunistring.so:devel/libunistring \
- libuuid.so:misc/e2fsprogs-libuuid \
- libvorbis.so:audio/libvorbis \
- libxslt.so:textproc/libxslt \
- libyajl.so:devel/yajl
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}
+ libuuid.so:misc/e2fsprogs-libuuid
+RUN_DEPENDS= ${LOCALBASE}/share/fonts/dejavu/DejaVuSans.ttf:x11-fonts/dejavu
-USES= autoreconf:build compiler:c++11-lib gettext gmake gnome iconv \
- jpeg libtool pkgconfig python:2.7 ssl
+USES= autoreconf:build cmake:noninja compiler:c++14-lang gettext gl gmake \
+ gnome iconv jpeg libtool pkgconfig python:2.7 ssl sqlite xorg
-KODI_ARCH_i386= x86
KODI_ARCH_amd64=x86_64
-KODI_ARCH_armv6=armv6
+KODI_ARCH_i386= x86
KODI_ARCH_armv7=armv7
+KODI_ARCH_armv6=armv6
-GNU_CONFIGURE= yes
-USE_JAVA= yes
-USE_GNOME= libxml2
-USE_LDCONFIG= yes
-JAVA_BUILD= jre
NOPRECIOUSMAKEVARS= yes
-CONFIGURE_ENV= OPENSSL_LIBS="-L${OPENSSLLIB}" \
- OPENSSL_CFLAGS="-I${OPENSSLINC}"
-KODI_CODENAME= Krypton
-FFMPEG_VERS= 3.1.11
-LIBDVDCSS_TAGNAME= 2f12236
-LIBDVDNAV_TAGNAME= 981488f
-LIBDVDREAD_TAGNAME= 17d99db
+INSTALLS_ICONS= yes
+USE_LDCONFIG= yes
+USE_JAVA= yes
+JAVA_BUILD= jre
+USE_GNOME= libxml2
+CMAKE_ARGS= -Dlibdvdcss_URL="${DISTDIR}/xbmc-libdvdcss-1.4.2-Leia-Beta-5_GH0.tar.gz" \
+ -Dlibdvdnav_URL="${DISTDIR}/xbmc-libdvdnav-6.0.0-Leia-Alpha-3_GH0.tar.gz" \
+ -Dlibdvdread_URL="${DISTDIR}/xbmc-libdvdread-6.0.0-Leia-Alpha-3_GH0.tar.gz"
+CMAKE_OFF= ENABLE_INTERNAL_CROSSGUID \
+ ENABLE_INTERNAL_FFMPEG
+CONFIGURE_ENV= _CPU_FEATURE="${CPU_FEATURE}"
+
+KODI_CODENAME= Leia
+LIBDVDCSS_VERSION= 1.4.2-${KODI_CODENAME}-Beta-5
+LIBDVDNAV_VERSION= 6.0.0-${KODI_CODENAME}-Alpha-3
+LIBDVDREAD_VERSION= 6.0.0-${KODI_CODENAME}-Alpha-3
USE_GITHUB= yes
GH_TUPLE= xbmc:xbmc:${PORTVERSION}-${KODI_CODENAME} \
- xbmc:FFmpeg:${FFMPEG_VERS}-${KODI_CODENAME}-17.5:ffmpeg/tools/depends/target/ffmpeg \
- xbmc:libdvdcss:${LIBDVDCSS_TAGNAME}:libdvdcss/tools/depends/target/libdvdcss/native \
- xbmc:libdvdnav:${LIBDVDNAV_TAGNAME}:libdvdnav/tools/depends/target/libdvdnav/native \
- xbmc:libdvdread:${LIBDVDREAD_TAGNAME}:libdvdread/tools/depends/target/libdvdread/native
+ xbmc:libdvdcss:${LIBDVDCSS_VERSION}:libdvdcss/tools/depends/target/libdvdcss/native \
+ xbmc:libdvdnav:${LIBDVDNAV_VERSION}:libdvdnav/tools/depends/target/libdvdnav/native \
+ xbmc:libdvdread:${LIBDVDREAD_VERSION}:libdvdread/tools/depends/target/libdvdread/native
PLIST_SUB= ARCH=${KODI_ARCH_${ARCH}}
-OPTIONS_SUB= yes
-OPTIONS_DEFINE= AIRPLAY AIRTUNES AVAHI CEC DOCS \
- LCMS2 LIBBLURAY LIRC MYSQL NFS NONFREE PULSEAUDIO RTMP \
- SFTP SNDIO SMB VAAPI VDPAU WEBSERVER
-OPTIONS_SINGLE= RPI
-OPTIONS_SINGLE_RPI= RPI1 RPI2
-
-OPTIONS_EXCLUDE_armv6= LIRC VAAPI VDPAU
-OPTIONS_EXCLUDE_armv7= LIRC VAAPI VDPAU
-OPTIONS_EXCLUDE_amd64= RPI1 RPI2
-OPTIONS_EXCLUDE_i386= RPI1 RPI2
+OPTIONS_SUB= yes
+# Not implemented: BLUETOOTH CAP
+OPTIONS_DEFINE= AIRPLAY AIRTUNES AVAHI CEC DBUS DOCS DVDCSS LCMS2 \
+ LIBBLURAY LIRC NFS OPTICAL SMB UDEV UPNP VAAPI VDPAU \
+ WEBSERVER XSLT
+OPTIONS_DEFAULT= AIRPLAY AIRTUNES AVAHI CEC DVDCSS LIBBLURAY NFS OPTICAL SMB \
+ UDEV UPNP VAAPI VDPAU WEBSERVER X11 XSLT
+OPTIONS_DEFAULT_amd64= SSE SSE2 SSE3
+OPTIONS_DEFAULT_i386= SSE SSE2 SSE3
+OPTIONS_SINGLE= PLATFORM
+OPTIONS_SINGLE_PLATFORM=GBM RPI WAYLAND X11
+OPTIONS_RADIO= DATABASE
+OPTIONS_RADIO_DATABASE= MARIADB MYSQL
+OPTIONS_GROUP= SOUND FEATURE
+# Broken: ALSA
+OPTIONS_GROUP_SOUND= PULSEAUDIO SNDIO
+OPTIONS_GROUP_FEATURE= SSE SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2
+OPTIONS_EXCLUDE_amd64= RPI
+OPTIONS_EXCLUDE_i386= RPI
+OPTIONS_EXCLUDE_armv7= FEATURE
+OPTIONS_EXCLUDE_armv6= FEATURE
AIRPLAY_DESC= AirPlay support via libplist
AIRTUNES_DESC= AirTunes support via libshairplay
+AVX_DESC= Use AVX optimized routines
+AVX2_DESC= Use AVX2 optimized routines
+BLUETOOTH_DESC= Bluetooth support via bluez
+CAP_DESC= Capability support via libcap
CEC_DESC= CEC adapter support
-NONFREE_DESC= Enable non-free components (rar, ccx, ffmpeg)
-SFTP_DESC= SSH SFTP support via libssh
-RPI1_DESC= build for RPI1-B (cpu=arm1176jzf-s)
-RPI2_DESC= build for RPI2 (cpu=cortex-a7, neon enabled)
-
-OPTIONS_DEFAULT= AIRPLAY AIRTUNES AVAHI CEC LIRC \
- MYSQL NFS RTMP SFTP SMB VAAPI VDPAU WEBSERVER
-OPTIONS_DEFAULT_armv6= RPI1
-OPTIONS_DEFAULT_armv7= RPI1
+DATABASE_DESC= Database
+FEATURE_DESC= X86 CPU feature
+GBM_DESC= GBM support
+MARIADB_DESC= MariaDB database support
+OPTICAL_DESC= Optical disc support
+PLATFORM_DESC= Kodi platform
+RPI_DESC= Raspberry Pi support
+SSE2_DESC= Use SSE2 optimized routines
+SSE3_DESC= Use SSE3 optimized routines
+SSSE3_DESC= Use SSSE3 optimized routines
+SSE4_1_DESC= Use SSE4.1 optimized routines
+SSE4_2_DESC= Use SSE4.2 optimized routines
+UDEV_DESC= Use libudev-devd
+XSLT_DESC= Use libxslt
AIRPLAY_LIB_DEPENDS= libplist.so:devel/libplist
-AIRPLAY_CONFIGURE_ENABLE= airplay
+AIRPLAY_CMAKE_BOOL= ENABLE_PLIST
AIRTUNES_LIB_DEPENDS= libshairplay.so:audio/shairplay
-AIRTUNES_CONFIGURE_ENABLE= airtunes
+AIRTUNES_CMAKE_BOOL= ENABLE_AIRTUNES
AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app
-AVAHI_CONFIGURE_ENABLE= avahi
+AVAHI_CMAKE_BOOL= ENABLE_AVAHI
+
+BLUETOOTH_CMAKE_BOOL= ENABLE_BLUETOOTH
+
+CAP_CMAKE_BOOL= ENABLE_CAP
-CEC_BUILD_DEPENDS= libcec>=3.1.0:multimedia/libcec
CEC_LIB_DEPENDS= libcec.so:multimedia/libcec
-CEC_CONFIGURE_ENABLE= libcec
+CEC_CMAKE_BOOL= ENABLE_CEC
+
+DBUS_LIB_DEPENDS= libdbus-1.so:devel/dbus
+DBUS_CMAKE_BOOL= ENABLE_DBUS
+
+DVDCSS_CMAKE_BOOL= ENABLE_DVDCSS
LCMS2_LIB_DEPENDS= liblcms2.so.2:graphics/lcms2
-LCMS2_CONFIGURE_ENABLE= lcms2
+LCMS2_CMAKE_BOOL= ENABLE_LCMS2
LIBBLURAY_LIB_DEPENDS= libbluray.so:multimedia/libbluray
-LIBBLURAY_CONFIGURE_ENABLE= libbluray
+LIBBLURAY_CMAKE_BOOL= ENABLE_BLURAY
-LIRC_RUN_DEPENDS= lircd:comms/lirc
+LIRC_LIB_DEPENDS= liblirc_client.so:comms/lirc
+LIRC_CMAKE_BOOL= ENABLE_LIRCCLIENT
-MYSQL_USES= mysql
-MYSQL_CONFIGURE_ENABLE= mysql
-
-NFS_LIB_DEPENDS= libnfs.so:net/libnfs
-NFS_CONFIGURE_ENABLE= nfs
+MARIADB_USES= mysql:104m
+MARIADB_CMAKE_BOOL= ENABLE_MARIADBCLIENT
+MARIADB_CMAKE_ON= -DMARIADBCLIENT_INCLUDE_DIR="${LOCALBASE}/include"
-NONFREE_CONFIGURE_ENABLE= non-free
-NONFREE_VARS= NO_CDROM="Restricted binary distribution" \
- NO_PACKAGE="Restricted binary distribution"
+MYSQL_USES= mysql
+MYSQL_CMAKE_BOOL= ENABLE_MYSQLCLIENT
-PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
-PULSEAUDIO_CONFIGURE_ENABLE= pulse
+NFS_LIB_DEPENDS= libnfs.so:net/libnfs
+NFS_CMAKE_BOOL= ENABLE_NFS
-RPI1_CONFIGURE_ON= --with-platform=raspberry-pi
-RPI2_CONFIGURE_ON= --with-platform=raspberry-pi2
+OPTICAL_CMAKE_BOOL= ENABLE_OPTICAL
-RTMP_LIB_DEPENDS= librtmp.so:multimedia/librtmp
-RTMP_CONFIGURE_ENABLE= rtmp
+SMB_USES= samba:lib
+SMB_CMAKE_BOOL= ENABLE_SMBCLIENT
-SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio
-SNDIO_CONFIGURE_ENABLE= sndio
-SNDIO_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-sndio
+UDEV_LIB_DEPENDS= libudev.so:devel/libudev-devd
+UDEV_CMAKE_BOOL= ENABLE_UDEV
-SMB_USES= samba:lib
-SMB_CONFIGURE_ENABLE= samba
+UPNP_CMAKE_BOOL= ENABLE_UPNP
VAAPI_LIB_DEPENDS= libva.so:multimedia/libva
-VAAPI_CONFIGURE_ENABLE= vaapi
+VAAPI_CMAKE_BOOL= ENABLE_VAAPI
VDPAU_LIB_DEPENDS= libvdpau.so:multimedia/libvdpau
-VDPAU_CONFIGURE_ENABLE= vdpau
+VDPAU_CMAKE_BOOL= ENABLE_VDPAU
WEBSERVER_LIB_DEPENDS= libmicrohttpd.so:www/libmicrohttpd
-WEBSERVER_CONFIGURE_ENABLE= webserver
+WEBSERVER_CMAKE_BOOL= ENABLE_MICROHTTPD
-SFTP_BUILD_DEPENDS= ${LOCALBASE}/lib/libssh.so:security/libssh
-SFTP_RUN_DEPENDS= ${LOCALBASE}/lib/libssh.so:security/libssh
-SFTP_CONFIGURE_ENABLE= ssh
+XSLT_LIB_DEPENDS= libxslt.so:textproc/libxslt
+XSLT_CMAKE_BOOL= ENABLE_XSLT
-CONFIGURE_ARGS+= --disable-debug --enable-gl --disable-gles \
- --disable-openmax --disable-tegra \
- --disable-profiling --enable-x11 --disable-alsa \
- --enable-dbus --enable-upnp --disable-mid \
- --disable-mdnsembedded --enable-libxslt \
- --disable-texturepacker --disable-libusb \
- --disable-libbluetooth --disable-libcap \
- --disable-gtest --disable-libav-compat
+ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
+ALSA_CMAKE_BOOL= ENABLE_ALSA
-.include <bsd.port.options.mk>
+PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
+PULSEAUDIO_CMAKE_BOOL= ENABLE_PULSEAUDIO
-.if ${ARCH} != armv6 && ${ARCH} != armv7
-BUILD_DEPENDS+= gtk-update-icon-cache:x11-toolkits/gtk20
-LIB_DEPENDS+= libdrm.so:graphics/libdrm
-RUN_DEPENDS+= glxinfo:graphics/mesa-demos \
- xdpyinfo:x11/xdpyinfo
-USES+= gl sdl xorg
-USE_XORG= x11 xcb xext xmu xrandr xt xtst
-USE_GL= egl gl glu glew
-USE_SDL= image sdl2
-INSTALLS_ICONS= yes
-PLIST_SUB+= ARM="@comment "
-PLIST_SUB+= X86=""
-.else
-# armv6 || armv7 (rpi1 and rpi2 only)
-EXTRA_PATCHES+= ${FILESDIR}/extra-armv6_hal
-CONFIGURE_ARGS+= --enable-player=omxplayer
-LIB_DEPENDS+= libEGL.so:misc/raspberrypi-userland \
- libhal.so:sysutils/hal \
- libtiff.so:graphics/tiff
-PLIST_SUB+= ARM=""
-PLIST_SUB+= X86="@comment "
-SUB_FILES= pkg-message
-.endif
+SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio
+SNDIO_CMAKE_BOOL= ENABLE_SNDIO
+
+SSE_VARS= CPU_FEATURE+=SSE
+SSE2_VARS= CPU_FEATURE+=SSE2
+SSE3_VARS= CPU_FEATURE+=SSE3
+SSSE3_VARS= CPU_FEATURE+=SSSE3
+SSE4_1_VARS= CPU_FEATURE+=SSE4.1
+SSE4_2_VARS= CPU_FEATURE+=SSE4.2
+AVX_VARS= CPU_FEATURE+=AVX
+AVX2_VARS= CPU_FEATURE+=AVX2
+
+GBM_USE= GL=egl,gbm,glu
+GBM_CFLAGS= -I${LOCALBASE}/include/libepoll-shim
+GBM_LDFLAGS= -L${LOCALBASE}/lib -lepoll-shim
+GBM_BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto
+GBM_LIB_DEPENDS= libepoll-shim.so:devel/libepoll-shim \
+ libdrm.so:graphics/libdrm \
+ libxkbcommon.so:x11/libxkbcommon \
+ libinput.so:x11/libinput
+GBM_CMAKE_ON= -DCORE_PLATFORM_NAME:STRING="gbm" \
+ -DGBM_RENDER_SYSTEM:STRING="gl"
+
+RPI_LIB_DEPENDS= libbrcmGLESv2.so:misc/raspberrypi-userland \
+ libbrcmEGL.so:misc/raspberrypi-userland \
+ libxkbcommon.so:x11/libxkbcommon \
+ libinput.so:x11/libinput
+RPI_CMAKE_ON= -DCORE_PLATFORM_NAME:STRING="rbpi"
+
+WAYLAND_USE= GL=egl,glu
+WAYLAND_BUILD_DEPENDS= evdev-proto>0:devel/evdev-proto \
+ wayland-protocols>0:graphics/wayland-protocols
+WAYLAND_LIB_DEPENDS= libdrm.so:graphics/libdrm \
+ libxkbcommon.so:x11/libxkbcommon \
+ libwayland-client++.so:graphics/waylandpp
+WAYLAND_CMAKE_ON= -DCORE_PLATFORM_NAME:STRING="wayland" \
+ -DWAYLAND_RENDER_SYSTEM:STRING="gl"
+
+X11_USE= XORG=x11,xext,xrandr GL=egl,gl,glu
+X11_LIB_DEPENDS= libdrm.so:graphics/libdrm
+X11_CMAKE_ON= -DCORE_PLATFORM_NAME:STRING="x11"
-post-patch:
- ${REINPLACE_CMD} 's;make;gmake;' \
- ${WRKSRC}/bootstrap \
- ${WRKSRC}/codegenerator.mk \
- ${WRKSRC}/xbmc/Makefile.in
- ${RM} ${WRKSRC}/system/settings/rbp2.xml.orig
+.include <bsd.port.options.mk>
-pre-configure:
- cd ${WRKSRC} && ${SH} ./bootstrap
+post-patch:
+ ${REINPLACE_CMD} 's|/usr/share|${LOCALBASE}/share|' \
+ ${WRKSRC}/xbmc/platform/linux/input/LibInputSettings.cpp
post-install:
${INSTALL_MAN} ${WRKSRC}/docs/manpages/kodi.bin.1 ${STAGEDIR}${MAN1PREFIX}/man/man1
- (cd ${STAGEDIR}${MAN1PREFIX}/man/man1 && ${LN} -sf kodi.bin.1.gz kodi.1.gz)
- ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/kodi/kodi.bin
- ${FIND} ${STAGEDIR}${PREFIX}/lib/kodi -name '*.so' -or -name '*.xbs' -or -name '*.vis' \
- | ${XARGS} ${STRIP_CMD}
-.if ${ARCH} != armv6 && ${ARCH} != armv7
- ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/kodi/kodi-xrandr
-.endif
+ cd ${STAGEDIR}${MAN1PREFIX}/man/man1 && ${LN} -s kodi.bin.1.gz kodi.1.gz
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/TexturePacker
+ ${FIND} ${STAGEDIR}${PREFIX}/lib/kodi -type f -name '*.so' -print0 | ${XARGS} -0 ${STRIP_CMD}
+ ${RM} -rf ${STAGEDIR}${PREFIX}/lib/firewalld
.include <bsd.port.mk>
diff --git a/multimedia/kodi/distinfo b/multimedia/kodi/distinfo
index e69b5c10c7b0..830a12335c37 100644
--- a/multimedia/kodi/distinfo
+++ b/multimedia/kodi/distinfo
@@ -1,11 +1,9 @@
-TIMESTAMP = 1511187422
-SHA256 (xbmc-xbmc-17.6-17.6-Krypton_GH0.tar.gz) = c8312fe92e5bab1cdac1da93d60baed88fa1574146c50c44e3c86d01671c2b1d
-SIZE (xbmc-xbmc-17.6-17.6-Krypton_GH0.tar.gz) = 58275293
-SHA256 (xbmc-FFmpeg-3.1.11-Krypton-17.5_GH0.tar.gz) = 7df8bce40765b39de5766ca9d08b5b9ac1f498c65c805c989461b907cee6b7c0
-SIZE (xbmc-FFmpeg-3.1.11-Krypton-17.5_GH0.tar.gz) = 11188798
-SHA256 (xbmc-libdvdcss-2f12236_GH0.tar.gz) = 7affd787569960bcca6a7a83dfbe807b461653ee9793c59551dabb88e640b3f4
-SIZE (xbmc-libdvdcss-2f12236_GH0.tar.gz) = 95311
-SHA256 (xbmc-libdvdnav-981488f_GH0.tar.gz) = b59d75536336893ef0e32a6660770b2250e0369d52ff02319d41def621fb42db
-SIZE (xbmc-libdvdnav-981488f_GH0.tar.gz) = 130513
-SHA256 (xbmc-libdvdread-17d99db_GH0.tar.gz) = 7b9e1861a9974ffb1542ab541d4e89a3239f6a65214a66d5cd10d216a2e7f575
-SIZE (xbmc-libdvdread-17d99db_GH0.tar.gz) = 124192
+TIMESTAMP = 1591045842
+SHA256 (xbmc-xbmc-18.7.1-18.7.1-Leia_GH0.tar.gz) = 5cfec391bcd168bbd4f9d38a6c8ec93e42e040cf82cf6ebf23db5e86753816fb
+SIZE (xbmc-xbmc-18.7.1-18.7.1-Leia_GH0.tar.gz) = 51052174
+SHA256 (xbmc-libdvdcss-1.4.2-Leia-Beta-5_GH0.tar.gz) = 38816f8373e243bc5950449b4f3b18938c4e1c59348e3411e23f31db4072e40d
+SIZE (xbmc-libdvdcss-1.4.2-Leia-Beta-5_GH0.tar.gz) = 101068
+SHA256 (xbmc-libdvdnav-6.0.0-Leia-Alpha-3_GH0.tar.gz) = 071e414e61b795f2ff9015b21a85fc009dde967f27780d23092643916538a57a
+SIZE (xbmc-libdvdnav-6.0.0-Leia-Alpha-3_GH0.tar.gz) = 137942
+SHA256 (xbmc-libdvdread-6.0.0-Leia-Alpha-3_GH0.tar.gz) = a30b6aa0aad0f2c505bc77948af2d5531a80b6e68112addb4c123fca24d5d3bf
+SIZE (xbmc-libdvdread-6.0.0-Leia-Alpha-3_GH0.tar.gz) = 130649
diff --git a/multimedia/kodi/files/extra-armv6_hal b/multimedia/kodi/files/extra-armv6_hal
deleted file mode 100644
index b65dbf109129..000000000000
--- a/multimedia/kodi/files/extra-armv6_hal
+++ /dev/null
@@ -1,1463 +0,0 @@
---- addons/resource.language.en_gb/resources/strings.po.orig 2016-11-12 UTC
-+++ addons/resource.language.en_gb/resources/strings.po
-@@ -5652,17 +5652,17 @@ msgctxt "#13020"
- msgid "Is another session active, perhaps over ssh?"
- msgstr ""
-
--#: xbmc/storage/MediaManager.cpp
-+#: xbmc/linux/HALManager.cpp
- msgctxt "#13021"
- msgid "Mounted removable storage device"
- msgstr ""
-
--#: xbmc/storage/MediaManager.cpp
-+#: xbmc/linux/HALManager.cpp
- msgctxt "#13022"
- msgid "Unsafe storage device removal"
- msgstr ""
-
--#: xbmc/storage/MediaManager.cpp
-+#: xbmc/linux/HALManager.cpp
- msgctxt "#13023"
- msgid "Successfully removed storage device"
- msgstr ""
---- configure.ac.orig 2016-04-24 UTC
-+++ configure.ac
-@@ -175,6 +175,9 @@ dbus_disabled="== DBUS support disabled.
- x11_enabled="== X11 enabled. =="
- x11_disabled="== X11 disabled. =="
- pulse_not_found="== Could not find libpulse. PulseAudio support disabled. =="
-+hal_not_found="== Could not find hal. HAL support disabled. =="
-+halstorage_not_found="== Could not find hal-storage. HAL support disabled. =="
-+hal_disabled="== HAL support disabled. =="
- pulse_disabled="== PulseAudio support disabled. =="
- avahi_not_found="== Could not find libavahi-common or libavahi-client. Avahi support disabled. =="
- avahi_disabled="== Avahi support disabled. =="
-@@ -358,6 +361,12 @@ AC_ARG_ENABLE([mid],
- [use_mid=$enableval],
- [use_mid=no])
-
-+AC_ARG_ENABLE([hal],
-+ [AS_HELP_STRING([--disable-hal],
-+ [disable HAL support (default is enabled if hal and hal-storage is found)])],
-+ [use_hal=$enableval],
-+ [use_hal=yes])
-+
- AC_ARG_ENABLE([avahi],
- [AS_HELP_STRING([--disable-avahi],
- [disable Avahi support (default is enabled if libavahi-common and libavahi-client is found)])],
-@@ -1249,6 +1258,26 @@ else
- USE_PULSE=0
- fi
-
-+# HAL
-+if test "$host_vendor" = "apple" ; then
-+ use_hal="no"
-+ AC_MSG_RESULT($hal_disabled)
-+else
-+ if test "$use_hal" = "yes"; then
-+ PKG_CHECK_MODULES([HAL], [hal],
-+ [INCLUDES="$INCLUDES $HAL_CFLAGS"; LIBS="$LIBS $HAL_LIBS"],
-+ use_hal=no;AC_MSG_RESULT($hal_not_found))
-+ PKG_CHECK_MODULES([HAL_STORAGE], [hal-storage],
-+ [INCLUDES="$INCLUDES $HAL_STORAGE_CFLAGS"; LIBS="$LIBS $HAL_STORAGE_LIBS"],
-+ use_hal=no;AC_MSG_RESULT($halstorage_not_found))
-+ else
-+ AC_MSG_RESULT($hal_disabled)
-+ fi
-+ if test "$use_hal" = "yes"; then
-+ AC_DEFINE([HAS_HAL], [1], [Define to 1 if you have HAL installed])
-+ fi
-+fi
-+
- # avahi
- if test "$use_avahi" = "yes"; then
- AC_CHECK_LIB([avahi-common], [main],,
-@@ -1984,6 +2013,12 @@ else
- final_message="$final_message\n PulseAudio:\tNo"
- fi
-
-+if test "$use_hal" = "yes"; then
-+ final_message="$final_message\n HAL Support:\tYes"
-+else
-+ final_message="$final_message\n HAL Support:\tNo"
-+fi
-+
- # Google Test Framework
- if test "$configure_gtest" = "yes"; then
- AC_MSG_NOTICE($gtest_enabled)
---- xbmc/Application.cpp.orig 2016-09-03 UTC
-+++ xbmc/Application.cpp
-@@ -194,6 +194,10 @@
- #include <cdio/logging.h>
- #endif
-
-+#ifdef HAS_HAL
-+#include "linux/HALManager.h"
-+#endif
-+
- #include "storage/MediaManager.h"
- #include "utils/JobManager.h"
- #include "utils/SaveFileStateJob.h"
---- xbmc/linux/HALManager.cpp.orig 2016-09-06 UTC
-+++ xbmc/linux/HALManager.cpp
-@@ -0,0 +1,759 @@
-+/*
-+ * Copyright (C) 2005-2013 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/>.
-+ *
-+ */
-+
-+#include "system.h"
-+#ifdef HAS_HAL
-+#include "HALManager.h"
-+#include "interfaces/builtins/Builtins.h"
-+#include <libhal-storage.h>
-+#include "threads/SingleLock.h"
-+#include "utils/URIUtils.h"
-+#include "guilib/LocalizeStrings.h"
-+#include "powermanagement/PowerManager.h"
-+#include "settings/AdvancedSettings.h"
-+#include "dialogs/GUIDialogKaiToast.h"
-+
-+#ifdef HAS_SDL_JOYSTICK
-+#include <SDL/SDL.h>
-+#include <SDL/SDL_version.h>
-+#include "input/SDLJoystick.h"
-+#endif
-+
-+bool CHALManager::NewMessage;
-+DBusError CHALManager::m_Error;
-+CCriticalSection CHALManager::m_lock;
-+
-+/* A Removed device, It isn't possible to make a LibHalVolume from a removed device therefor
-+ we catch the UUID from the udi on the removal */
-+void CHALManager::DeviceRemoved(LibHalContext *ctx, const char *udi)
-+{
-+ NewMessage = true;
-+ CLog::Log(LOGDEBUG, "HAL: Device (%s) Removed", udi);
-+ g_HalManager.RemoveDevice(udi);
-+}
-+
-+void CHALManager::DeviceNewCapability(LibHalContext *ctx, const char *udi, const char *capability)
-+{
-+ NewMessage = true;
-+ CLog::Log(LOGDEBUG, "HAL: Device (%s) gained capability %s", udi, capability);
-+ g_HalManager.UpdateDevice(udi);
-+}
-+
-+void CHALManager::DeviceLostCapability(LibHalContext *ctx, const char *udi, const char *capability)
-+{
-+ NewMessage = true;
-+ CLog::Log(LOGDEBUG, "HAL: Device (%s) lost capability %s", udi, capability);
-+ g_HalManager.UpdateDevice(udi);
-+}
-+
-+/* HAL Property modified callback. If a device is mounted. This is called. */
-+void CHALManager::DevicePropertyModified(LibHalContext *ctx, const char *udi, const char *key, dbus_bool_t is_removed, dbus_bool_t is_added)
-+{
-+ NewMessage = true;
-+ CLog::Log(LOGDEBUG, "HAL: Device (%s) Property %s modified", udi, key);
-+ g_HalManager.UpdateDevice(udi);
-+}
-+
-+void CHALManager::DeviceCondition(LibHalContext *ctx, const char *udi, const char *condition_name, const char *condition_details)
-+{
-+ NewMessage = true;
-+ CLog::Log(LOGDEBUG, "HAL: Device (%s) Condition %s | %s", udi, condition_name, condition_details);
-+ if (!strcmp(condition_name, "ButtonPressed") && !strcmp(condition_details, "power"))
-+ CBuiltins::GetInstance().Execute("XBMC.ShutDown()");
-+ else
-+ g_HalManager.UpdateDevice(udi);
-+}
-+
-+/* HAL Device added. This is before mount. And here is the place to mount the volume in the future */
-+void CHALManager::DeviceAdded(LibHalContext *ctx, const char *udi)
-+{
-+ NewMessage = true;
-+ CLog::Log(LOGDEBUG, "HAL: Device (%s) Added", udi);
-+ g_HalManager.AddDevice(udi);
-+}
-+
-+CHALManager g_HalManager;
-+
-+/* Iterate through all devices currently on the computer. Needed mostly at startup */
-+void CHALManager::GenerateGDL()
-+{
-+ if (m_Context == NULL)
-+ return;
-+
-+ char **GDL;
-+ int i = 0;
-+ CLog::Log(LOGDEBUG, "HAL: Clearing old global device list, if any");
-+ m_Volumes.clear();
-+
-+ CLog::Log(LOGNOTICE, "HAL: Generating global device list");
-+ GDL = libhal_get_all_devices(g_HalManager.m_Context, &i, &m_Error);
-+
-+ for (i = 0; GDL[i]; i++)
-+ {
-+ AddDevice(GDL[i]);
-+ }
-+ CLog::Log(LOGINFO, "HAL: Generated global device list, found %i", i);
-+
-+ libhal_free_string_array(GDL);
-+}
-+
-+// Return all volumes that currently are available (Mostly needed at startup, the rest of the volumes comes as events.)
-+std::vector<CStorageDevice> CHALManager::GetVolumeDevices()
-+{
-+ CSingleLock lock(m_lock);
-+ return m_Volumes;
-+}
-+
-+CHALManager::CHALManager()
-+{
-+ m_Notifications = false;
-+ m_Context = NULL;
-+ m_DBusSystemConnection = NULL;
-+#if defined(HAS_SDL_JOYSTICK)
-+ const SDL_version *sdl_version = SDL_Linked_Version();
-+ m_bMultipleJoysticksSupport = (sdl_version->major >= 1 && sdl_version->minor >= 3)?true:false;
-+#endif
-+}
-+
-+void CHALManager::Stop()
-+{
-+ if (g_advancedSettings.m_handleMounting)
-+ { // Unmount all media XBMC have mounted
-+ for (unsigned int i = 0; i < m_Volumes.size(); i++)
-+ {
-+ if (m_Volumes[i].MountedByXBMC && m_Volumes[i].Mounted)
-+ {
-+ CLog::Log(LOGNOTICE, "HAL: Unmounts %s", m_Volumes[i].FriendlyName.c_str());
-+ UnMount(m_Volumes[i]);
-+ }
-+ }
-+ }
-+
-+ m_Volumes.clear();
-+
-+ if (m_Context != NULL)
-+ libhal_ctx_shutdown(m_Context, NULL);
-+ if (m_Context != NULL)
-+ libhal_ctx_free(m_Context);
-+
-+ if (m_DBusSystemConnection != NULL)
-+ {
-+ dbus_connection_unref(m_DBusSystemConnection);
-+ m_DBusSystemConnection = NULL;
-+ }
-+ dbus_error_free(&m_Error); // Needed?
-+}
-+
-+// Initialize
-+void CHALManager::Initialize()
-+{
-+ m_Notifications = false;
-+ CLog::Log(LOGINFO, "HAL: Starting initializing");
-+ g_HalManager.m_Context = g_HalManager.InitializeHal();
-+ if (g_HalManager.m_Context == NULL)
-+ {
-+ CLog::Log(LOGERROR, "HAL: no Hal context");
-+ return;
-+ }
-+
-+ GenerateGDL();
-+
-+ CLog::Log(LOGINFO, "HAL: Successfully initialized");
-+ m_Notifications = true;
-+}
-+
-+// Initialize basic DBus connection
-+bool CHALManager::InitializeDBus()
-+{
-+ if (m_DBusSystemConnection != NULL)
-+ return true;
-+
-+ dbus_error_init (&m_Error);
-+ if (m_DBusSystemConnection == NULL && !(m_DBusSystemConnection = dbus_bus_get (DBUS_BUS_SYSTEM, &m_Error)))
-+ {
-+ CLog::Log(LOGERROR, "DBus: Could not get system bus: %s", m_Error.message);
-+ dbus_error_free (&m_Error);
-+ }
-+
-+ if (m_DBusSystemConnection != NULL)
-+ return true;
-+ else
-+ return false;
-+}
-+
-+// Initialize basic HAL connection
-+LibHalContext *CHALManager::InitializeHal()
-+{
-+ LibHalContext *ctx;
-+ char **devices;
-+ int nr;
-+
-+ if (!InitializeDBus())
-+ return NULL;
-+
-+ if (!(ctx = libhal_ctx_new()))
-+ {
-+ CLog::Log(LOGERROR, "HAL: failed to create a HAL context!");
-+ return NULL;
-+ }
-+
-+ if (!libhal_ctx_set_dbus_connection(ctx, m_DBusSystemConnection))
-+ CLog::Log(LOGERROR, "HAL: Failed to connect with dbus");
-+
-+ libhal_ctx_set_device_added(ctx, DeviceAdded);
-+ libhal_ctx_set_device_removed(ctx, DeviceRemoved);
-+ libhal_ctx_set_device_new_capability(ctx, DeviceNewCapability);
-+ libhal_ctx_set_device_lost_capability(ctx, DeviceLostCapability);
-+ libhal_ctx_set_device_property_modified(ctx, DevicePropertyModified);
-+ libhal_ctx_set_device_condition(ctx, DeviceCondition);
-+
-+ if (!libhal_device_property_watch_all(ctx, &m_Error))
-+ {
-+ CLog::Log(LOGERROR, "HAL: Failed to set property watch %s", m_Error.message);
-+ dbus_error_free(&m_Error);
-+ libhal_ctx_free(ctx);
-+ return NULL;
-+ }
-+
-+ if (!libhal_ctx_init(ctx, &m_Error))
-+ {
-+ CLog::Log(LOGERROR, "HAL: Failed to initialize hal context: %s", m_Error.message);
-+ dbus_error_free(&m_Error);
-+ libhal_ctx_free(ctx);
-+ return NULL;
-+ }
-+
-+ /*
-+ * Do something to ping the HAL daemon - the above functions will
-+ * succeed even if hald is not running, so long as DBUS is. But we
-+ * want to exit silently if hald is not running, to behave on
-+ * pre-2.6 systems.
-+ */
-+ if (!(devices = libhal_get_all_devices(ctx, &nr, &m_Error)))
-+ {
-+ CLog::Log(LOGERROR, "HAL: seems that Hal daemon is not running: %s", m_Error.message);
-+ dbus_error_free(&m_Error);
-+
-+ libhal_ctx_shutdown(ctx, NULL);
-+ libhal_ctx_free(ctx);
-+ return NULL;
-+ }
-+
-+ libhal_free_string_array(devices);
-+
-+ return ctx;
-+}
-+
-+// Helper function. creates a CStorageDevice from a HAL udi
-+bool CHALManager::DeviceFromVolumeUdi(const char *udi, CStorageDevice *device)
-+{
-+ if (g_HalManager.m_Context == NULL)
-+ return false;
-+
-+ LibHalVolume *tempVolume;
-+ LibHalDrive *tempDrive;
-+ bool Created = false;
-+
-+ tempVolume = libhal_volume_from_udi(g_HalManager.m_Context, udi);
-+ if (tempVolume)
-+ {
-+ const char *DriveUdi = libhal_volume_get_storage_device_udi(tempVolume);
-+ tempDrive = libhal_drive_from_udi(g_HalManager.m_Context, DriveUdi);
-+
-+ if (tempDrive)
-+ {
-+ char * FriendlyName = libhal_device_get_property_string(g_HalManager.m_Context, udi, "info.product", NULL);
-+ device->FriendlyName = FriendlyName;
-+ libhal_free_string(FriendlyName);
-+ char *block = libhal_device_get_property_string(g_HalManager.m_Context, udi, "block.device", NULL);
-+ device->DevID = block;
-+ libhal_free_string(block);
-+
-+ device->HotPlugged = (bool)libhal_drive_is_hotpluggable(tempDrive);
-+ device->Type = libhal_drive_get_type(tempDrive);
-+ device->Mounted = (bool)libhal_volume_is_mounted(tempVolume);
-+ if (libhal_volume_get_mount_point(tempVolume) != NULL)
-+ device->MountPoint = libhal_volume_get_mount_point(tempVolume);
-+ if (device->Mounted)
-+ URIUtils::AddSlashAtEnd(device->MountPoint);
-+ if (libhal_volume_get_label(tempVolume) != NULL)
-+ device->Label = libhal_volume_get_label(tempVolume);
-+ if (libhal_volume_get_uuid(tempVolume) != NULL)
-+ device->UUID = libhal_volume_get_uuid(tempVolume);
-+ if (libhal_volume_get_fstype(tempVolume) != NULL)
-+ device->FileSystem = libhal_volume_get_fstype(tempVolume);
-+ device->HalIgnore = libhal_device_get_property_bool(g_HalManager.m_Context, udi, "volume.ignore", NULL);
-+ ApproveDevice(device);
-+
-+ libhal_drive_free(tempDrive);
-+ Created = true;
-+ }
-+ else
-+ CLog::Log(LOGERROR, "HAL: Couldn't create a Drive even if we had a volume - %s", udi);
-+
-+ libhal_volume_free(tempVolume);
-+ }
-+
-+ return Created;
-+}
-+
-+// Called from ProcessSlow to trigger the callbacks from DBus
-+bool CHALManager::Update()
-+{
-+ CSingleLock lock(m_lock);
-+ if (m_Context == NULL)
-+ return false;
-+
-+ if (!dbus_connection_read_write_dispatch(m_DBusSystemConnection, 0)) // We choose 0 that means we won't wait for a message
-+ {
-+ CLog::Log(LOGERROR, "DBus: System - read/write dispatch");
-+ return false;
-+ }
-+ if (NewMessage)
-+ {
-+ NewMessage = false;
-+ return true;
-+ }
-+ else
-+ return false;
-+}
-+
-+/* libhal-storage type to readable form */
-+const char *CHALManager::StorageTypeToString(int DeviceType)
-+{
-+ switch (DeviceType)
-+ {
-+ case 0: return "removable disk";
-+ case 1: return "disk";
-+ case 2: return "cdrom";
-+ case 3: return "floppy";
-+ case 4: return "tape";
-+ case 5: return "compact flash";
-+ case 6: return "memory stick";
-+ case 7: return "smart media";
-+ case 8: return "sd mmc";
-+ case 9: return "camera";
-+ case 10: return "audio player";
-+ case 11: return "zip";
-+ case 12: return "jaz";
-+ case 13: return "flashkey";
-+ case 14: return "magneto-optical";
-+ default: return NULL;
-+ }
-+}
-+
-+/* Readable libhal-storage type to int type */
-+int CHALManager::StorageTypeFromString(const char *DeviceString)
-+{
-+ if (strcmp(DeviceString, "removable disk") == 0) return 0;
-+ else if (strcmp(DeviceString, "disk") == 0) return 1;
-+ else if (strcmp(DeviceString, "cdrom") == 0) return 2;
-+ else if (strcmp(DeviceString, "floppy") == 0) return 3;
-+ else if (strcmp(DeviceString, "tape") == 0) return 4;
-+ else if (strcmp(DeviceString, "compact flash") == 0) return 5;
-+ else if (strcmp(DeviceString, "memory stick") == 0) return 6;
-+ else if (strcmp(DeviceString, "smart media") == 0) return 7;
-+ else if (strcmp(DeviceString, "sd mmc") == 0) return 8;
-+ else if (strcmp(DeviceString, "camera") == 0) return 9;
-+ else if (strcmp(DeviceString, "audio player") == 0) return 10;
-+ else if (strcmp(DeviceString, "zip") == 0) return 11;
-+ else if (strcmp(DeviceString, "jaz") == 0) return 12;
-+ else if (strcmp(DeviceString, "flashkey") == 0) return 13;
-+ else if (strcmp(DeviceString, "magneto-optical") == 0) return 14;
-+ return -1;
-+}
-+
-+void CHALManager::UpdateDevice(const char *udi)
-+{
-+ CSingleLock lock(m_lock);
-+ char *category;
-+ category = libhal_device_get_property_string(m_Context, udi, "info.category", NULL);
-+ if (category == NULL)
-+ return;
-+
-+ if (strcmp(category, "volume") == 0)
-+ {
-+ CStorageDevice dev(udi);
-+ if (!DeviceFromVolumeUdi(udi, &dev))
-+ return;
-+ for (unsigned int i = 0; i < m_Volumes.size(); i++)
-+ {
-+ if (strcmp(m_Volumes[i].UDI.c_str(), udi) == 0)
-+ {
-+ CLog::Log(LOGDEBUG, "HAL: Update - %s | %s", CHALManager::StorageTypeToString(dev.Type), dev.toString().c_str());
-+ if (g_advancedSettings.m_handleMounting) // If the device was mounted by XBMC before it's still mounted by XBMC.
-+ dev.MountedByXBMC = m_Volumes[i].MountedByXBMC;
-+ if (!dev.Mounted && m_Volumes[i].Mounted)
-+ CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Info, g_localizeStrings.Get(13023), dev.FriendlyName.c_str(), TOAST_DISPLAY_TIME, false);
-+ m_Volumes[i] = dev;
-+
-+ break;
-+ }
-+ }
-+ }
-+
-+ libhal_free_string(category);
-+}
-+void CHALManager::HandleNewVolume(CStorageDevice *dev)
-+{
-+ if (g_advancedSettings.m_handleMounting)
-+ {
-+/* Here it can be checked if the device isn't mounted and then mount */
-+//TODO Have mountpoints be other than in /media/*
-+ if (!dev->Mounted && (dev->HotPlugged || dev->Type == 2) && dev->Approved)
-+ {
-+ char **capability;
-+ capability =libhal_device_get_property_strlist (m_Context, dev->UDI.c_str(), "info.capabilities", NULL);
-+
-+ bool Mountable = false;
-+ if (dev->Type == 2 && (strcmp(capability[0], "volume.disc") == 0 && strcmp(capability[1], "volume") == 0)) // CD/DVD
-+ Mountable = true;
-+ else if ((strcmp(capability[0], "block") == 0 && strcmp(capability[1], "volume") == 0)) // HDD
-+ Mountable = true;
-+
-+ if (Mountable)
-+ {
-+ CLog::Log(LOGNOTICE, "HAL: Trying to mount %s", dev->FriendlyName.c_str());
-+ std::string MountPoint;
-+ std::string TestPath;
-+ if (dev->Label.size() > 0)
-+ {
-+ MountPoint = dev->Label.c_str();
-+ TestPath = StringUtils::Format("/media/%s", MountPoint.c_str());
-+ struct stat St;
-+ if (stat("/media", &St) != 0)
-+ return; //If /media doesn't exist something is wrong.
-+ while(stat (TestPath.c_str(), &St) == 0 && S_ISDIR (St.st_mode))
-+ {
-+ CLog::Log(LOGDEBUG, "HAL: Proposed Mountpoint already existed");
-+ MountPoint.append("_");
-+ TestPath = StringUtils::Format("/media/%s", MountPoint.c_str());
-+ }
-+ }
-+ else
-+ {
-+ MountPoint = StorageTypeToString(dev->Type);
-+ TestPath = StringUtils::Format("/media/%s", MountPoint.c_str());
-+ int Nbr = 0;
-+ struct stat St;
-+ if (stat("/media", &St) != 0)
-+ return; //If /media doesn't exist something is wrong.
-+ while(stat (TestPath.c_str(), &St) == 0 && S_ISDIR (St.st_mode))
-+ {
-+ CLog::Log(LOGDEBUG, "HAL: Proposed Mountpoint already existed");
-+ Nbr++;
-+ MountPoint = StringUtils::Format("%s%i", StorageTypeToString(dev->Type), Nbr);
-+ TestPath = StringUtils::Format("/media/%s", MountPoint.c_str());
-+ }
-+ }
-+ if (Mount(dev, MountPoint))
-+ {
-+ CLog::Log(LOGINFO, "HAL: mounted %s on %s", dev->FriendlyName.c_str(), dev->MountPoint.c_str());
-+ if (m_Notifications)
-+ CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Info, g_localizeStrings.Get(13021), dev->FriendlyName.c_str(), TOAST_DISPLAY_TIME, false);
-+ }
-+ }
-+ libhal_free_string_array(capability);
-+ }
-+ }
-+}
-+
-+/* Parse newly found device and add it to our remembered devices */
-+void CHALManager::AddDevice(const char *udi)
-+{
-+ CSingleLock lock(m_lock);
-+ char *category;
-+ category = libhal_device_get_property_string(m_Context, udi, "info.category", NULL);
-+ if (category == NULL)
-+ return;
-+
-+ if (strcmp(category, "volume") == 0)
-+ {
-+ CStorageDevice dev(udi);
-+ if (DeviceFromVolumeUdi(udi, &dev))
-+ {
-+ CLog::Log(LOGDEBUG, "HAL: Added - %s | %s", CHALManager::StorageTypeToString(dev.Type), dev.toString().c_str());
-+ HandleNewVolume(&dev);
-+ m_Volumes.push_back(dev);
-+ }
-+ }
-+#if defined(HAS_SDL_JOYSTICK)
-+ // Scan input devices
-+ else if (strcmp(category, "input") == 0)
-+ {
-+ DBusError dbusError;
-+ dbus_error_init(&dbusError);
-+
-+ char **capability;
-+ capability =libhal_device_get_property_strlist (m_Context, udi, "info.capabilities", &dbusError);
-+ for(char **ptr = capability; *ptr != NULL;ptr++)
-+ {
-+ // Reload joysticks
-+ if(strcmp(*ptr, "input.joystick") == 0)
-+ {
-+ CLog::Log(LOGINFO, "HAL: Joystick plugged in");
-+ CHALDevice dev = CHALDevice(udi);
-+ dev.FriendlyName = libhal_device_get_property_string(m_Context, udi, "info.product", &m_Error);
-+ m_Joysticks.push_back(dev);
-+
-+ if(m_Joysticks.size() < 2 || m_bMultipleJoysticksSupport)
-+ {
-+ // Restart SDL joystick subsystem
-+ if (!g_Joystick.Reinitialize())
-+ break;
-+
-+ if (m_Notifications)
-+ CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Info, g_localizeStrings.Get(13024), dev.FriendlyName.c_str(), TOAST_DISPLAY_TIME, false);
-+ }
-+ }
-+ }
-+ libhal_free_string_array(capability);
-+ }
-+#endif
-+/*
-+ else if (strcmp(category, "camera") == 0)
-+ { // PTP-Devices }
-+ else if (strcmp(category, "bluetooth_hci") == 0)
-+ { // Bluetooth-Devices }
-+ else if (strcmp(category, "portable audio player") == 0)
-+ { // MTP-Devices }
-+ else if (strcmp(category, "alsa") == 0)
-+ { //Alsa Devices }
-+*/
-+
-+ libhal_free_string(category);
-+}
-+
-+/* Here we should iterate through our remembered devices if any of them are removed */
-+bool CHALManager::RemoveDevice(const char *udi)
-+{
-+ CSingleLock lock(m_lock);
-+ for (unsigned int i = 0; i < m_Volumes.size(); i++)
-+ {
-+ if (strcmp(m_Volumes[i].UDI.c_str(), udi) == 0)
-+ {
-+ CLog::Log(LOGNOTICE, "HAL: Removed - %s | %s", CHALManager::StorageTypeToString(m_Volumes[i].Type), m_Volumes[i].toString().c_str());
-+
-+ if (m_Volumes[i].Mounted)
-+ {
-+ if (g_advancedSettings.m_handleMounting)
-+ UnMount(m_Volumes[i]);
-+ if (m_Notifications)
-+ CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Warning, g_localizeStrings.Get(13022), m_Volumes[i].FriendlyName.c_str());
-+ CLog::Log(LOGNOTICE, "HAL: Unsafe drive removal");
-+ }
-+ m_Volumes.erase(m_Volumes.begin() + i);
-+ return true;
-+ }
-+ }
-+#if defined(HAS_SDL_JOYSTICK)
-+ for(uint i = 0; i < m_Joysticks.size(); i++)
-+ {
-+ if (strcmp(m_Joysticks[i].UDI.c_str(), udi) == 0)
-+ {
-+ if(m_Joysticks.size() < 3 || m_bMultipleJoysticksSupport)
-+ {
-+ // Restart SDL joystick subsystem
-+ if (!g_Joystick.Reinitialize())
-+ return false;
-+
-+ if (m_Notifications)
-+ CGUIDialogKaiToast::QueueNotification(CGUIDialogKaiToast::Warning, g_localizeStrings.Get(13025), m_Joysticks[i].FriendlyName.c_str(), TOAST_DISPLAY_TIME, false);
-+ }
-+ m_Joysticks.erase(m_Joysticks.begin() + i);
-+ return true;
-+ }
-+ }
-+#endif
-+ return false;
-+}
-+
-+bool CHALManager::ApproveDevice(CStorageDevice *device)
-+{
-+ bool approve = true;
-+ //This is only because it's easier to read...
-+ const char *fs = device->FileSystem.c_str();
-+
-+ if ( strcmp(fs, "vfat") == 0 || strcmp(fs, "ext2") == 0
-+ || strcmp(fs, "ext3") == 0 || strcmp(fs, "reiserfs") == 0
-+ || strcmp(fs, "ntfs") == 0 || strcmp(fs, "ntfs-3g") == 0
-+ || strcmp(fs, "udf") == 0 || strcmp(fs, "iso9660") == 0
-+ || strcmp(fs, "xfs") == 0 || strcmp(fs, "hfsplus") == 0
-+ || strcmp(fs, "ext4") == 0 || strcmp(fs, "ufs") == 0)
-+ approve = true;
-+ else
-+ approve = false;
-+
-+ // Ignore some mountpoints, unless a weird setup these should never contain anything usefull for an enduser.
-+ if (strcmp(device->MountPoint.c_str(), "/") == 0 || strcmp(device->MountPoint.c_str(), "/boot/") == 0 || strcmp(device->MountPoint.c_str(), "/mnt/") == 0 || strcmp(device->MountPoint.c_str(), "/home/") == 0)
-+ approve = false;
-+
-+ if (device->HalIgnore)
-+ approve = false;
-+
-+ device->Approved = approve;
-+ return approve;
-+}
-+
-+bool CHALManager::Eject(const std::string& path)
-+{
-+ for (unsigned int i = 0; i < m_Volumes.size(); i++)
-+ {
-+ if (m_Volumes[i].MountPoint == path)
-+ return m_Volumes[i].HotPlugged ? UnMount(m_Volumes[i]) : false;
-+ }
-+
-+ return false;
-+}
-+
-+bool CHALManager::UnMount(CStorageDevice volume)
-+{
-+ CLog::Log(LOGNOTICE, "HAL: UnMounting %s (%s)", volume.UDI.c_str(), volume.toString().c_str());
-+ DBusMessage* msg;
-+ DBusMessageIter args;
-+ DBusError error;
-+ dbus_error_init (&error);
-+ DBusConnection *connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
-+ if (connection)
-+ {
-+ msg = dbus_message_new_method_call("org.freedesktop.Hal", volume.UDI.c_str(), "org.freedesktop.Hal.Device.Volume", "Unmount");
-+ dbus_message_iter_init_append(msg, &args);
-+ DBusMessageIter sub;
-+ dbus_message_iter_open_container(&args, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING_AS_STRING, &sub);
-+ const char *s = "lazy";
-+ dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &s);
-+ dbus_message_iter_close_container(&args, &sub);
-+
-+ if (msg == NULL)
-+ CLog::Log(LOGERROR, "DBus: Create UnMount Message failed");
-+ else
-+ {
-+ DBusMessage *reply;
-+ reply = dbus_connection_send_with_reply_and_block(connection, msg, -1, &error); //The reply timout might be bad to have as -1
-+ if (dbus_error_is_set(&error))
-+ {
-+ CLog::Log(LOGERROR, "DBus: %s - %s", error.name, error.message);
-+ dbus_error_free(&error);
-+ return false;
-+ }
-+ // Need to create a reader for the Message
-+ dbus_message_unref (reply);
-+ dbus_message_unref(msg);
-+ msg = NULL;
-+ }
-+
-+ volume.MountPoint = "";
-+ volume.Mounted = false;
-+ dbus_connection_unref(connection);
-+ connection = NULL;
-+ return true;
-+ }
-+ else
-+ {
-+ CLog::Log(LOGERROR, "DBus: Failed to connect to Systembus");
-+ dbus_error_free(&error);
-+ return false;
-+ }
-+}
-+
-+bool CHALManager::Mount(CStorageDevice *volume, const std::string &mountpath)
-+{
-+ CLog::Log(LOGNOTICE, "HAL: Mounting %s (%s) at %s with umask=%u", volume->UDI.c_str(), volume->toString().c_str(), mountpath.c_str(), umask (0));
-+ DBusMessage* msg;
-+ DBusMessageIter args;
-+ DBusError error;
-+ dbus_error_init (&error);
-+ DBusConnection *connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
-+ const char *s;
-+ if (connection)
-+ {
-+ msg = dbus_message_new_method_call("org.freedesktop.Hal", volume->UDI.c_str(), "org.freedesktop.Hal.Device.Volume", "Mount");
-+ dbus_message_iter_init_append(msg, &args);
-+ s = mountpath.c_str();
-+ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &s))
-+ CLog::Log(LOGERROR, "DBus: Failed to append arguments");
-+ s = ""; //FileSystem
-+ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &s))
-+ CLog::Log(LOGERROR, "DBus: Failed to append arguments");
-+ DBusMessageIter sub;
-+ dbus_message_iter_open_container(&args, DBUS_TYPE_ARRAY, DBUS_TYPE_STRING_AS_STRING, &sub);
-+
-+ std::string temporaryString;
-+
-+#if defined(__linux__)
-+ if (volume->FileSystem == "vfat")
-+ {
-+ int mask = umask (0);
-+ temporaryString = StringUtils::Format("umask=%#o", mask);
-+ s = temporaryString.c_str();
-+ dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &s);
-+ temporaryString = StringUtils::Format("uid=%u", getuid());
-+ s = temporaryString.c_str();
-+ dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &s);
-+ s = "shortname=mixed";
-+ dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &s);
-+ s = "utf8";
-+ dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &s);
-+ // 'sync' option will slow down transfer speed significantly for FAT filesystems. We prefer 'flush' instead.
-+ s = "flush";
-+ dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &s);
-+ }
-+ else
-+ {
-+ s = "sync";
-+ dbus_message_iter_append_basic(&sub, DBUS_TYPE_STRING, &s);
-+ }
-+#endif
-+
-+ dbus_message_iter_close_container(&args, &sub);
-+
-+ if (msg == NULL)
-+ CLog::Log(LOGERROR, "DBus: Create Mount Message failed");
-+ else
-+ {
-+ DBusMessage *reply;
-+ reply = dbus_connection_send_with_reply_and_block(connection, msg, -1, &error); //The reply timout might be bad to have as -1
-+ if (dbus_error_is_set(&error))
-+ {
-+ CLog::Log(LOGERROR, "DBus: %s - %s", error.name, error.message);
-+ dbus_error_free(&error);
-+ return false;
-+ }
-+ // Need to create a reader for the Message
-+ dbus_message_unref (reply);
-+ dbus_message_unref(msg);
-+ msg = NULL;
-+ }
-+
-+ volume->Mounted = true;
-+ volume->MountedByXBMC = true;
-+ volume->MountPoint = mountpath;
-+ dbus_connection_unref(connection);
-+ connection = NULL;
-+ return true;
-+ }
-+ else
-+ {
-+ CLog::Log(LOGERROR, "DBus: Failed to connect to Systembus");
-+ dbus_error_free(&error);
-+ return false;
-+ }
-+}
-+#endif // HAS_HAL
---- xbmc/linux/HALManager.h.orig 2016-09-03 UTC
-+++ xbmc/linux/HALManager.h
-@@ -0,0 +1,166 @@
-+#ifdef HAS_HAL
-+#ifndef HALMANAGER_H
-+#define HALMANAGER_H
-+
-+/*
-+ * Copyright (C) 2005-2013 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/>.
-+ *
-+ */
-+
-+#include "system.h"
-+#include <string.h>
-+#include <stdio.h>
-+#include <dbus/dbus.h>
-+#include <libhal.h>
-+#include <vector>
-+
-+#define BYTE char
-+#include "utils/log.h"
-+#include "threads/CriticalSection.h"
-+#include "utils/StringUtils.h"
-+#include "utils/URIUtils.h"
-+#include "MediaSource.h"
-+
-+class CHALDevice
-+{
-+public:
-+ std::string UDI;
-+ std::string FriendlyName;
-+ CHALDevice(const char *udi) { UDI = udi; }
-+};
-+
-+class CStorageDevice : public CHALDevice
-+{
-+public:
-+ CStorageDevice(const char *udi) : CHALDevice(udi) { HotPlugged = false; Mounted = false; Approved = false; MountedByXBMC = false; }
-+ bool MountedByXBMC;
-+ bool Mounted;
-+ bool Approved;
-+ bool HotPlugged;
-+ bool HalIgnore;
-+ std::string MountPoint;
-+ std::string Label;
-+ std::string UUID;
-+ std::string DevID;
-+ int Type;
-+ std::string FileSystem;
-+
-+ std::string toString()
-+ { // Not the prettiest but it's better than having to reproduce it elsewere in the code...
-+ std::string rtn, tmp1, tmp2, tmp3, tmp4;
-+ if (UUID.size() > 0)
-+ tmp1 = StringUtils::Format("UUID %s | ", UUID.c_str());
-+ if (FileSystem.size() > 0)
-+ tmp2 = StringUtils::Format("FileSystem %s | ", FileSystem.c_str());
-+ if (MountPoint.size() > 0)
-+ tmp3 = StringUtils::Format("Mounted on %s | ", MountPoint.c_str());
-+ if (HotPlugged)
-+ tmp4 = StringUtils::Format("HotPlugged YES | ");
-+ else
-+ tmp4 = StringUtils::Format("HotPlugged NO | ");
-+
-+ if (Approved)
-+ rtn = StringUtils::Format("%s%s%s%sType %i |Approved YES ", tmp1.c_str(), tmp2.c_str(), tmp3.c_str(), tmp4.c_str(), Type);
-+ else
-+ rtn = StringUtils::Format("%s%s%s%sType %i |Approved NO ", tmp1.c_str(), tmp2.c_str(), tmp3.c_str(), tmp4.c_str(), Type);
-+
-+ return rtn;
-+ }
-+ void toMediaSource(CMediaSource *share)
-+ {
-+ share->strPath = MountPoint;
-+ if (Label.size() > 0)
-+ share->strName = Label;
-+ else
-+ {
-+ share->strName = MountPoint;
-+ URIUtils::RemoveSlashAtEnd(share->strName);
-+ share->strName = URIUtils::GetFileName(share->strName);
-+ }
-+
-+ share->m_ignore = true;
-+ if (HotPlugged)
-+ share->m_iDriveType = CMediaSource::SOURCE_TYPE_REMOVABLE;
-+ else if(strcmp(FileSystem.c_str(), "iso9660") == 0 || strcmp(FileSystem.c_str(), "udf") == 0)
-+ share->m_iDriveType = CMediaSource::SOURCE_TYPE_DVD;
-+ else
-+ share->m_iDriveType = CMediaSource::SOURCE_TYPE_LOCAL;
-+ }
-+
-+};
-+
-+
-+class CHALManager
-+{
-+public:
-+ static const char *StorageTypeToString(int DeviceType);
-+ static int StorageTypeFromString(const char *DeviceString);
-+ bool Update();
-+
-+ void Initialize();
-+ CHALManager();
-+ void Stop();
-+ std::vector<CStorageDevice> GetVolumeDevices();
-+ bool Eject(const std::string &path);
-+protected:
-+ DBusConnection *m_DBusSystemConnection;
-+ LibHalContext *m_Context;
-+ static DBusError m_Error;
-+ static bool NewMessage;
-+
-+
-+ void UpdateDevice(const char *udi);
-+ void AddDevice(const char *udi);
-+ bool RemoveDevice(const char *udi);
-+
-+private:
-+ bool m_Notifications;
-+ LibHalContext *InitializeHal();
-+ bool InitializeDBus();
-+ void GenerateGDL();
-+
-+ bool UnMount(CStorageDevice volume);
-+ bool Mount(CStorageDevice *volume, const std::string& mountpath);
-+ void HandleNewVolume(CStorageDevice *dev);
-+ static bool ApproveDevice(CStorageDevice *device);
-+
-+ static bool DeviceFromVolumeUdi(const char *udi, CStorageDevice *device);
-+ static CCriticalSection m_lock;
-+
-+#if defined(HAS_SDL_JOYSTICK)
-+ bool m_bMultipleJoysticksSupport;
-+#endif
-+
-+ //Callbacks HAL
-+ static void DeviceRemoved(LibHalContext *ctx, const char *udi);
-+ static void DeviceNewCapability(LibHalContext *ctx, const char *udi, const char *capability);
-+ static void DeviceLostCapability(LibHalContext *ctx, const char *udi, const char *capability);
-+ static void DevicePropertyModified(LibHalContext *ctx, const char *udi, const char *key, dbus_bool_t is_removed, dbus_bool_t is_added);
-+ static void DeviceCondition(LibHalContext *ctx, const char *udi, const char *condition_name, const char *condition_details);
-+ static void DeviceAdded(LibHalContext *ctx, const char *udi);
-+
-+ //Remembered Devices
-+ std::vector<CStorageDevice> m_Volumes;
-+#if defined(HAS_SDL_JOYSTICK)
-+ std::vector<CHALDevice> m_Joysticks;
-+#endif
-+};
-+
-+extern CHALManager g_HalManager;
-+#endif
-+#endif // HAS_HAL
---- xbmc/linux/Makefile.in.orig 2016-09-03 UTC
-+++ xbmc/linux/Makefile.in
-@@ -4,6 +4,7 @@ SRCS = ConvUtils.cpp
- SRCS += DBusUtil.cpp
- SRCS += DBusMessage.cpp
- SRCS += DBusReserve.cpp
-+SRCS += HALManager.cpp
- SRCS += FDEventMonitor.cpp
- SRCS += LinuxResourceCounter.cpp
- SRCS += LinuxTimezone.cpp
---- xbmc/powermanagement/linux/HALPowerSyscall.cpp.orig 2016-09-03 UTC
-+++ xbmc/powermanagement/linux/HALPowerSyscall.cpp
-@@ -0,0 +1,159 @@
-+/*
-+ * Copyright (C) 2005-2013 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/>.
-+ *
-+ */
-+
-+#include "system.h"
-+#include "HALPowerSyscall.h"
-+#include "utils/log.h"
-+
-+#ifdef HAS_HAL
-+#include <dbus/dbus.h>
-+#include <stdlib.h>
-+
-+CHALPowerSyscall::CHALPowerSyscall()
-+{
-+ m_CanPowerdown = true;
-+ m_CanSuspend = QueryCapability("power_management.can_suspend");
-+ m_CanHibernate = QueryCapability("power_management.can_hibernate");
-+ m_CanReboot = true;
-+}
-+
-+bool CHALPowerSyscall::Powerdown()
-+{
-+ return doPowerCall("Shutdown");
-+}
-+bool CHALPowerSyscall::Suspend()
-+{
-+ CPowerSyscallWithoutEvents::Suspend();
-+ return doPowerCall("Suspend");
-+}
-+bool CHALPowerSyscall::Hibernate()
-+{
-+ CPowerSyscallWithoutEvents::Hibernate();
-+ return doPowerCall("Hibernate");
-+}
-+bool CHALPowerSyscall::Reboot()
-+{
-+ return doPowerCall("Reboot");
-+}
-+
-+bool CHALPowerSyscall::CanPowerdown()
-+{
-+ return m_CanPowerdown;
-+}
-+bool CHALPowerSyscall::CanSuspend()
-+{
-+ return m_CanSuspend;
-+}
-+bool CHALPowerSyscall::CanHibernate()
-+{
-+ return m_CanHibernate;
-+}
-+bool CHALPowerSyscall::CanReboot()
-+{
-+ return m_CanReboot;
-+}
-+
-+int CHALPowerSyscall::BatteryLevel()
-+{
-+ return 0;
-+}
-+
-+bool CHALPowerSyscall::doPowerCall(const char *powerstate)
-+{
-+ DBusMessage* msg;
-+ DBusMessageIter args;
-+ DBusError error;
-+ dbus_error_init (&error);
-+ DBusConnection *connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
-+ dbus_int32_t int32 = 0;
-+ if (connection)
-+ {
-+ bool result = false;
-+ msg = dbus_message_new_method_call("org.freedesktop.Hal", "/org/freedesktop/Hal/devices/computer", "org.freedesktop.Hal.Device.SystemPowerManagement", powerstate);
-+
-+ if (msg && strcmp(powerstate, "Suspend") == 0)
-+ {
-+ dbus_message_iter_init_append(msg, &args);
-+ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &int32))
-+ CLog::Log(LOGERROR, "DBus: Failed to append arguments");
-+ }
-+ if (msg == NULL)
-+ CLog::Log(LOGERROR, "DBus: Create PowerManagement Message failed");
-+ else
-+ {
-+ result = dbus_connection_send(connection, msg, NULL);
-+ // Need to create a reader for the Message
-+ dbus_message_unref(msg);
-+ msg = NULL;
-+ }
-+
-+ dbus_connection_unref(connection);
-+ connection = NULL;
-+ return result;
-+ }
-+ return false;
-+}
-+
-+bool CHALPowerSyscall::QueryCapability(const char *capability)
-+{
-+ DBusMessage* msg;
-+ DBusMessageIter args;
-+ DBusError error;
-+ dbus_error_init (&error);
-+ DBusConnection *connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
-+ if (connection)
-+ {
-+ msg = dbus_message_new_method_call("org.freedesktop.Hal", "/org/freedesktop/Hal/devices/computer", "org.freedesktop.Hal.Device", "GetProperty");
-+
-+ dbus_message_iter_init_append(msg, &args);
-+ if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &capability))
-+ return false;
-+
-+ if (msg == NULL)
-+ return false;
-+
-+ DBusMessage *reply;
-+ reply = dbus_connection_send_with_reply_and_block(connection, msg, -1, &error);
-+ if (reply == NULL)
-+ {
-+ if (dbus_error_is_set(&error))
-+ dbus_error_free(&error);
-+
-+ dbus_message_unref(msg);
-+ return false;
-+ }
-+
-+ dbus_bool_t b = false;
-+ dbus_message_get_args(reply, &error, DBUS_TYPE_BOOLEAN, &b);
-+
-+ if (dbus_error_is_set(&error))
-+ dbus_error_free(&error);
-+
-+ dbus_message_unref(reply);
-+ dbus_message_unref(msg);
-+ msg = NULL;
-+ return b;
-+ }
-+
-+ if (dbus_error_is_set(&error))
-+ dbus_error_free(&error);
-+ return false;
-+}
-+#endif
---- xbmc/powermanagement/linux/HALPowerSyscall.h.orig 2016-09-03 UTC
-+++ xbmc/powermanagement/linux/HALPowerSyscall.h
-@@ -0,0 +1,50 @@
-+/*
-+ * Copyright (C) 2005-2013 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/>.
-+ *
-+ */
-+#pragma once
-+#include "powermanagement/IPowerSyscall.h"
-+#include "system.h"
-+#ifdef HAS_HAL
-+
-+class CHALPowerSyscall : public CPowerSyscallWithoutEvents
-+{
-+public:
-+ CHALPowerSyscall();
-+
-+ virtual bool Powerdown();
-+ virtual bool Suspend();
-+ virtual bool Hibernate();
-+ virtual bool Reboot();
-+
-+ virtual bool CanPowerdown();
-+ virtual bool CanSuspend();
-+ virtual bool CanHibernate();
-+ virtual bool CanReboot();
-+ virtual int BatteryLevel();
-+
-+private:
-+ bool QueryCapability(const char *capability);
-+ bool doPowerCall(const char *powerstate);
-+
-+ bool m_CanPowerdown;
-+ bool m_CanSuspend;
-+ bool m_CanHibernate;
-+ bool m_CanReboot;
-+};
-+#endif
---- xbmc/powermanagement/linux/Makefile.orig 2016-09-03 UTC
-+++ xbmc/powermanagement/linux/Makefile
-@@ -1,5 +1,6 @@
- SRCS=ConsoleDeviceKitPowerSyscall.cpp \
- ConsoleUPowerSyscall.cpp \
-+ HALPowerSyscall.cpp \
- UPowerSyscall.cpp \
- LogindUPowerSyscall.cpp
-
---- xbmc/powermanagement/PowerManager.cpp.orig 2016-04-24 UTC
-+++ xbmc/powermanagement/PowerManager.cpp
-@@ -50,6 +50,9 @@
- #include "linux/ConsoleDeviceKitPowerSyscall.h"
- #include "linux/LogindUPowerSyscall.h"
- #include "linux/UPowerSyscall.h"
-+#if defined(HAS_HAL)
-+#include "linux/HALPowerSyscall.h"
-+#endif // HAS_HAL
- #endif // HAS_DBUS
- #elif defined(TARGET_WINDOWS)
- #include "powermanagement/windows/Win32PowerSyscall.h"
-@@ -74,7 +77,9 @@ void CPowerManager::Initialize()
- {
- SAFE_DELETE(m_instance);
-
--#if defined(TARGET_DARWIN)
-+#if defined(TARGET_RASPBERRY_PI)
-+ m_instance = new CHALPowerSyscall();
-+#elif defined(TARGET_DARWIN)
- m_instance = new CCocoaPowerSyscall();
- #elif defined(TARGET_ANDROID)
- m_instance = new CAndroidPowerSyscall();
---- xbmc/storage/linux/HALProvider.cpp.orig 2016-09-03 UTC
-+++ xbmc/storage/linux/HALProvider.cpp
-@@ -0,0 +1,94 @@
-+/*
-+ * Copyright (C) 2005-2013 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/>.
-+ *
-+ */
-+#include "HALProvider.h"
-+#ifdef HAS_HAL
-+#include "HALManager.h"
-+#include "utils/log.h"
-+#include "PosixMountProvider.h"
-+
-+CHALProvider::CHALProvider()
-+{
-+ m_removableLength = 0;
-+}
-+
-+void CHALProvider::Initialize()
-+{
-+ CLog::Log(LOGDEBUG, "Selected HAL as storage provider");
-+ g_HalManager.Initialize();
-+ PumpDriveChangeEvents(NULL);
-+}
-+
-+void CHALProvider::Stop()
-+{
-+ g_HalManager.Stop();
-+}
-+
-+void CHALProvider::GetLocalDrives(VECSOURCES &localDrives)
-+{
-+ std::vector<CStorageDevice> devices = g_HalManager.GetVolumeDevices();
-+
-+ for (size_t i = 0; i < devices.size(); i++)
-+ {
-+ if (devices[i].Mounted && devices[i].Approved && !devices[i].HotPlugged)
-+ {
-+ CMediaSource share;
-+ devices[i].toMediaSource(&share);
-+ localDrives.push_back(share);
-+ }
-+ }
-+}
-+
-+void CHALProvider::GetRemovableDrives(VECSOURCES &removableDrives)
-+{
-+ std::vector<CStorageDevice> devices = g_HalManager.GetVolumeDevices();
-+
-+ for (size_t i = 0; i < devices.size(); i++)
-+ {
-+ if (devices[i].Mounted && devices[i].Approved && devices[i].HotPlugged)
-+ {
-+ CMediaSource share;
-+ devices[i].toMediaSource(&share);
-+ removableDrives.push_back(share);
-+ }
-+ }
-+}
-+
-+bool CHALProvider::Eject(const std::string& mountpath)
-+{
-+ return g_HalManager.Eject(mountpath);
-+}
-+
-+std::vector<std::string> CHALProvider::GetDiskUsage()
-+{
-+ CPosixMountProvider legacy;
-+ return legacy.GetDiskUsage();
-+}
-+
-+// TODO Use HALs events for this instead.
-+bool CHALProvider::PumpDriveChangeEvents(IStorageEventsCallback *callback)
-+{
-+//Pump HalManager dry of events
-+ bool changed = false;
-+ while (g_HalManager.Update())
-+ changed = true;
-+
-+ return changed;
-+}
-+#endif
---- xbmc/storage/linux/HALProvider.h.orig 2016-09-03 UTC
-+++ xbmc/storage/linux/HALProvider.h
-@@ -0,0 +1,44 @@
-+#pragma once
-+/*
-+ * Copyright (C) 2005-2013 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/>.
-+ *
-+ */
-+#include "storage/IStorageProvider.h"
-+#ifdef HAS_HAL
-+
-+class CHALProvider : public IStorageProvider
-+{
-+public:
-+ CHALProvider();
-+ virtual ~CHALProvider() { }
-+
-+ virtual void Initialize();
-+ virtual void Stop();
-+
-+ virtual void GetLocalDrives(VECSOURCES &localDrives);
-+ virtual void GetRemovableDrives(VECSOURCES &removableDrives);
-+
-+ virtual bool Eject(const std::string& mountpath);
-+
-+ virtual std::vector<std::string> GetDiskUsage();
-+
-+ virtual bool PumpDriveChangeEvents(IStorageEventsCallback *callback);
-+private:
-+ unsigned int m_removableLength;
-+};
-+#endif
---- xbmc/storage/linux/LinuxStorageProvider.h.orig 2016-04-24 UTC
-+++ xbmc/storage/linux/LinuxStorageProvider.h
-@@ -19,6 +19,7 @@
- *
- */
- #include "storage/IStorageProvider.h"
-+#include "HALProvider.h"
- #include "DeviceKitDisksProvider.h"
- #include "UDevProvider.h"
- #include "UDisksProvider.h"
-@@ -37,6 +38,10 @@ public:
- else if (CDeviceKitDisksProvider::HasDeviceKitDisks())
- m_instance = new CDeviceKitDisksProvider();
- #endif
-+#ifdef HAS_HAL
-+ if (m_instance == NULL)
-+ m_instance = new CHALProvider();
-+#endif
- #ifdef HAVE_LIBUDEV
- if (m_instance == NULL)
- m_instance = new CUDevProvider();
---- xbmc/storage/linux/Makefile.orig 2016-09-03 UTC
-+++ xbmc/storage/linux/Makefile
-@@ -1,5 +1,6 @@
- SRCS = DeviceKitDisksProvider.cpp
- SRCS += UDisksProvider.cpp
-+SRCS += HALProvider.cpp
- SRCS += UDevProvider.cpp
-
- LIB = storage_linux.a
diff --git a/multimedia/kodi/files/extra-patch-sndio b/multimedia/kodi/files/extra-patch-sndio
deleted file mode 100644
index 2c6909509b75..000000000000
--- a/multimedia/kodi/files/extra-patch-sndio
+++ /dev/null
@@ -1,542 +0,0 @@
-diff --git configure.ac configure.ac
-index 47eb1d9e33..c61564bb0e 100644
---- configure.ac
-+++ configure.ac
-@@ -315,6 +315,12 @@ AC_ARG_ENABLE([pulse],
- [use_pulse=$enableval],
- [use_pulse=auto])
-
-+AC_ARG_ENABLE([sndio],
-+ [AS_HELP_STRING([--enable-sndio],
-+ [enable sndio support (default is auto)])],
-+ [use_sndio=$enableval],
-+ [use_sndio=auto])
-+
- AC_ARG_ENABLE([ssh],
- [AS_HELP_STRING([--disable-ssh],
- [disable SSH SFTP support (default is enabled)])],
-@@ -1210,6 +1216,22 @@ else
- USE_PULSE=0
- fi
-
-+# sndio
-+if test "x$use_sndio" != "xno"; then
-+ USE_SNDIO=0
-+ AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
-+ if test "x$HAVE_SNDIO" = "xyes"; then
-+ AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no", [])
-+ if test "x$HAVE_SNDIO" = "xyes"; then
-+ LIBS="$LIBS -lsndio"
-+ USE_SNDIO=1
-+ AC_DEFINE([HAVE_SNDIO],[1],[sndio enabled])
-+ fi
-+ fi
-+else
-+ USE_SNDIO=0
-+fi
-+
- # avahi
- if test "$use_avahi" = "yes"; then
- AC_CHECK_LIB([avahi-common], [main],,
-@@ -1924,6 +1946,12 @@ else
- final_message="$final_message\n PulseAudio:\tNo"
- fi
-
-+if test "$use_sndio" = "yes"; then
-+ final_message="$final_message\n Sndio Support:\tYes"
-+else
-+ final_message="$final_message\n Sndio Support:\tNo"
-+fi
-+
- # Google Test Framework
- if test "$configure_gtest" = "yes"; then
- AC_MSG_NOTICE($gtest_enabled)
-@@ -2247,6 +2275,8 @@ AC_SUBST(USE_AIRPLAY)
- AC_SUBST(USE_OPENMAX)
- AC_SUBST(USE_PULSE)
- AC_SUBST(HAVE_LIBPULSE)
-+AC_SUBST(USE_SNDIO)
-+AC_SUBST(HAVE_SNDIO)
- AC_SUBST(USE_ALSA)
- AC_SUBST(USE_TEXTUREPACKER)
- AC_SUBST(TEXTUREPACKER)
-diff --git xbmc/cores/AudioEngine/AESinkFactory.cpp xbmc/cores/AudioEngine/AESinkFactory.cpp
-index d7b05cdbfe..617b5dba83 100644
---- xbmc/cores/AudioEngine/AESinkFactory.cpp
-+++ xbmc/cores/AudioEngine/AESinkFactory.cpp
-@@ -36,6 +36,9 @@
- #if defined(HAS_ALSA)
- #include "Sinks/AESinkALSA.h"
- #endif
-+ #if defined(HAS_SNDIO)
-+ #include "Sinks/AESinkSNDIO.h"
-+ #endif
- #if defined(TARGET_FREEBSD)
- #include "Sinks/AESinkOSS.h"
- #endif
-@@ -77,6 +80,9 @@
- #if defined(HAS_ALSA)
- driver == "ALSA" ||
- #endif
-+ #if defined(HAS_SNDIO)
-+ driver == "SNDIO" ||
-+ #endif
- #if defined(TARGET_FREEBSD)
- driver == "OSS" ||
- #endif
-@@ -116,11 +122,15 @@ IAESink *CAESinkFactory::TrySink(std::string &driver, std::string &device, AEAud
- sink = new CAESinkDARWINIOS();
- #elif defined(TARGET_DARWIN_OSX)
- sink = new CAESinkDARWINOSX();
--#elif defined(TARGET_LINUX) || defined(TARGET_FREEBSD)
-+#elif defined(TARGET_LINUX) || defined(TARGET_FREEBSD) || defined(TARGET_OPENBSD)
- #if defined(HAS_PULSEAUDIO)
- if (driver == "PULSE")
- sink = new CAESinkPULSE();
- #endif
-+ #if defined(HAS_SNDIO)
-+ if (driver == "SNDIO")
-+ sink = new CAESinkSNDIO();
-+ #endif
- #if defined(HAS_ALSA)
- if (driver == "ALSA")
- sink = new CAESinkALSA();
-@@ -236,6 +246,10 @@ void CAESinkFactory::EnumerateEx(AESinkInfoList &list, bool force)
- if (envSink == "PULSE")
- CAESinkPULSE::EnumerateDevicesEx(info.m_deviceInfoList, force);
- #endif
-+ #if defined(HAS_SNDIO)
-+ if (envSink == "SNDIO")
-+ CAESinkSNDIO::EnumerateDevicesEx(info.m_deviceInfoList, force);
-+ #endif
- #if defined(HAS_ALSA)
- if (envSink == "ALSA")
- CAESinkALSA::EnumerateDevicesEx(info.m_deviceInfoList, force);
-@@ -264,6 +278,17 @@ void CAESinkFactory::EnumerateEx(AESinkInfoList &list, bool force)
- }
- #endif
-
-+ #if defined(HAS_SNDIO)
-+ info.m_deviceInfoList.clear();
-+ info.m_sinkName = "SNDIO";
-+ CAESinkSNDIO::EnumerateDevicesEx(info.m_deviceInfoList, force);
-+ if(!info.m_deviceInfoList.empty())
-+ {
-+ list.push_back(info);
-+ return;
-+ }
-+ #endif
-+
- #if defined(HAS_ALSA)
- info.m_deviceInfoList.clear();
- info.m_sinkName = "ALSA";
-diff --git xbmc/cores/AudioEngine/Makefile.in xbmc/cores/AudioEngine/Makefile.in
-index 7aab111f81..788786e2d1 100644
---- xbmc/cores/AudioEngine/Makefile.in
-+++ xbmc/cores/AudioEngine/Makefile.in
-@@ -55,6 +55,9 @@ SRCS += Sinks/AESinkOSS.cpp
- ifeq (@USE_PULSE@,1)
- SRCS += Sinks/AESinkPULSE.cpp
- endif
-+ifeq (@USE_SNDIO@,1)
-+SRCS += Sinks/AESinkSNDIO.cpp
-+endif
- endif
-
- SRCS += DSPAddons/ActiveAEDSP.cpp
-diff --git xbmc/cores/AudioEngine/Sinks/AESinkSNDIO.cpp xbmc/cores/AudioEngine/Sinks/AESinkSNDIO.cpp
-new file mode 100644
-index 0000000000..879b9a90a3
---- /dev/null
-+++ xbmc/cores/AudioEngine/Sinks/AESinkSNDIO.cpp
-@@ -0,0 +1,313 @@
-+/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*- */
-+/*
-+ * Copyright (C) 2010-2013 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/>.
-+ *
-+ */
-+
-+#include "system.h"
-+#ifdef HAS_SNDIO
-+#include "AESinkSNDIO.h"
-+#include "cores/AudioEngine/Utils/AEUtil.h"
-+#include "utils/log.h"
-+
-+#include <sys/param.h>
-+
-+#ifndef nitems
-+#define nitems(x) (sizeof((x))/sizeof((x)[0]))
-+#endif
-+
-+static enum AEChannel channelMap[] =
-+{
-+ AE_CH_FL,
-+ AE_CH_FR,
-+ AE_CH_BL,
-+ AE_CH_BR,
-+ AE_CH_FC,
-+ AE_CH_LFE,
-+ AE_CH_SL,
-+ AE_CH_SR,
-+};
-+
-+struct sndio_formats
-+{
-+ AEDataFormat fmt;
-+ unsigned int bits;
-+ unsigned int bps;
-+ unsigned int sig;
-+ unsigned int le;
-+ unsigned int msb;
-+};
-+
-+static struct sndio_formats formats[] =
-+{
-+ { AE_FMT_S32LE, 32, 4, 1, 1, 1 },
-+ { AE_FMT_S32BE, 32, 4, 1, 0, 1 },
-+
-+ { AE_FMT_S24LE4, 24, 4, 1, 1, 0 },
-+ { AE_FMT_S24BE4, 24, 4, 1, 0, 0 },
-+ { AE_FMT_S24LE4, 24, 4, 1, 1, 1 },
-+ { AE_FMT_S24BE4, 24, 4, 1, 0, 1 },
-+
-+ { AE_FMT_S24LE3, 24, 3, 1, 1, 0 },
-+ { AE_FMT_S24BE3, 24, 3, 1, 0, 0 },
-+ { AE_FMT_S24LE3, 24, 3, 1, 1, 1 },
-+ { AE_FMT_S24BE3, 24, 3, 1, 0, 1 },
-+
-+ { AE_FMT_S16LE, 16, 2, 1, 1, 1 },
-+ { AE_FMT_S16LE, 16, 2, 1, 1, 0 },
-+ { AE_FMT_S16BE, 16, 2, 1, 0, 1 },
-+ { AE_FMT_S16BE, 16, 2, 1, 0, 0 },
-+
-+ { AE_FMT_U8, 8, 1, 0, 0, 0 },
-+ { AE_FMT_U8, 8, 1, 0, 0, 1 },
-+ { AE_FMT_U8, 8, 1, 0, 1, 0 },
-+ { AE_FMT_U8, 8, 1, 0, 1, 1 },
-+};
-+
-+static AEDataFormat lookupDataFormat(int bits, int bps, int sig, int le, int msb)
-+{
-+ for (size_t i = 0; i < nitems(formats); i++)
-+ {
-+ if (bits == formats[i].bits &&
-+ bps == formats[i].bps &&
-+ sig == formats[i].sig &&
-+ le == formats[i].le &&
-+ msb == formats[i].msb)
-+ {
-+ return formats[i].fmt;
-+ }
-+ }
-+ return AE_FMT_INVALID;
-+}
-+
-+void CAESinkSNDIO::AudioFormatToPar(AEAudioFormat& format)
-+{
-+ sio_initpar(&par);
-+
-+ par.rate = format.m_sampleRate;
-+ par.xrun = SIO_IGNORE;
-+ par.pchan = format.m_channelLayout.Count();
-+
-+ for (size_t i = 0; i < nitems(formats); i++)
-+ {
-+ if (formats[i].fmt == format.m_dataFormat)
-+ {
-+ par.bits = formats[i].bits;
-+ par.sig = formats[i].sig;
-+ par.le = formats[i].le;
-+ par.msb = formats[i].msb;
-+ par.bps = formats[i].bps;
-+ return;
-+ }
-+ }
-+
-+ /* Default to AE_FMT_S16LE */
-+ par.bits = 16;
-+ par.bps = SIO_BPS(16);
-+ par.sig = 1;
-+ par.le = 1;
-+ par.msb = 0;
-+}
-+
-+bool CAESinkSNDIO::ParToAudioFormat(AEAudioFormat& format)
-+{
-+ AEDataFormat dataFormat = lookupDataFormat(par.bits, par.bps, par.sig, par.le, par.msb);
-+ if (dataFormat == AE_FMT_INVALID)
-+ {
-+ CLog::Log(LOGERROR, "CAESinkSNDIO::ParToAudioFormat - invalid data format");
-+ return false;
-+ }
-+
-+ if (par.pchan > nitems(channelMap))
-+ {
-+ CLog::Log(LOGERROR, "CAESinkSNDIO::ParToAudioFormat - too many channels: %d", par.pchan);
-+ return false;
-+ }
-+
-+ CAEChannelInfo info;
-+ for (unsigned int i = 0; i < par.pchan; i++)
-+ info += channelMap[i];
-+ format.m_channelLayout = info;
-+ format.m_dataFormat = dataFormat;
-+ format.m_sampleRate = par.rate;
-+ format.m_frameSize = par.bps * par.pchan;
-+ format.m_frames = par.bufsz / format.m_frameSize;
-+
-+ return true;
-+}
-+
-+CAESinkSNDIO::CAESinkSNDIO()
-+{
-+ m_hdl = nullptr;
-+}
-+
-+CAESinkSNDIO::~CAESinkSNDIO()
-+{
-+ Deinitialize();
-+}
-+
-+bool CAESinkSNDIO::Initialize(AEAudioFormat &format, std::string &device)
-+{
-+ if ((m_hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0)) == nullptr)
-+ {
-+ CLog::Log(LOGERROR, "CAESinkSNDIO::Initialize - Failed to open device");
-+ return false;
-+ }
-+
-+ AudioFormatToPar(format);
-+ if (!sio_setpar(m_hdl, &par) ||
-+ !sio_getpar(m_hdl, &par) ||
-+ !ParToAudioFormat(format))
-+ {
-+ CLog::Log(LOGERROR, "CAESinkSNDIO::Initialize - could not negotiate parameters");
-+ return false;
-+ }
-+
-+ played = written = 0;
-+
-+ sio_onmove(m_hdl, CAESinkSNDIO::OnmoveCb, this);
-+
-+ if (!sio_start(m_hdl))
-+ {
-+ CLog::Log(LOGERROR, "CAESinkSNDIO::Initialize - sio_start failed");
-+ return false;
-+ }
-+
-+ return true;
-+}
-+
-+void CAESinkSNDIO::Deinitialize()
-+{
-+ if (m_hdl != nullptr)
-+ {
-+ sio_close(m_hdl);
-+ m_hdl = nullptr;
-+ }
-+}
-+
-+void CAESinkSNDIO::Stop()
-+{
-+ if (!m_hdl)
-+ return;
-+
-+ if (!sio_stop(m_hdl))
-+ CLog::Log(LOGERROR, "CAESinkSNDIO::Stop - Failed");
-+
-+ written = played = 0;
-+}
-+
-+void CAESinkSNDIO::OnmoveCb(void *arg, int delta) {
-+ CAESinkSNDIO* self = static_cast<CAESinkSNDIO*>(arg);
-+ self->played += delta;
-+}
-+
-+void CAESinkSNDIO::GetDelay(AEDelayStatus& status)
-+{
-+ unsigned int frameSize = par.bps * par.pchan;
-+ double delay = 1.0 * ((written / frameSize) - played) / par.rate;
-+ status.SetDelay(delay);
-+}
-+
-+unsigned int CAESinkSNDIO::AddPackets(uint8_t **data, unsigned int frames, unsigned int offset)
-+{
-+ if (!m_hdl)
-+ return INT_MAX;
-+
-+ unsigned int frameSize = par.bps * par.pchan;
-+ size_t size = frames * frameSize;
-+ void *buffer = data[0] + offset * frameSize;
-+ size_t wrote = sio_write(m_hdl, buffer, size);
-+ written += wrote;
-+ return wrote / frameSize;
-+}
-+
-+void CAESinkSNDIO::Drain()
-+{
-+ if(!m_hdl)
-+ return;
-+
-+ if (!sio_stop(m_hdl) || !sio_start(m_hdl))
-+ CLog::Log(LOGERROR, "CAESinkSNDIO::Drain - failed");
-+
-+ written = played = 0;
-+}
-+
-+void CAESinkSNDIO::EnumerateDevicesEx(AEDeviceInfoList &list, bool force)
-+{
-+ struct sio_hdl *hdl;
-+ struct sio_cap cap;
-+
-+ if ((hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0)) == nullptr)
-+ {
-+ CLog::Log(LOGERROR, "CAESinkSNDIO::EnumerateDevicesEx - sio_open");
-+ return;
-+ }
-+
-+ if (!sio_getcap(hdl, &cap))
-+ {
-+ CLog::Log(LOGERROR, "CAESinkSNDIO::EnumerateDevicesEx - sio_getcap");
-+ return;
-+ }
-+
-+ sio_close(hdl);
-+ hdl = nullptr;
-+
-+ for (unsigned int i = 0; i < cap.nconf; i++)
-+ {
-+ CAEDeviceInfo info;
-+ sio_cap::sio_conf conf = cap.confs[i];
-+
-+ info.m_deviceName = SIO_DEVANY;
-+ info.m_displayName = "sndio";
-+ info.m_displayNameExtra = "#" + std::to_string(i);
-+ info.m_deviceType = AE_DEVTYPE_PCM;
-+
-+ unsigned int maxchan = 0;
-+ for (unsigned int j = 0; j < SIO_NCHAN; j++)
-+ {
-+ if (conf.pchan & (1 << j))
-+ maxchan = MAX(maxchan, cap.pchan[j]);
-+ }
-+
-+ maxchan = MIN(maxchan, nitems(channelMap));
-+ for (unsigned int j = 0; j < maxchan; j++)
-+ info.m_channels += channelMap[j];
-+
-+ for (unsigned int j = 0; j < SIO_NRATE; j++)
-+ {
-+ if (conf.rate & (1 << j))
-+ {
-+ info.m_sampleRates.push_back(cap.rate[j]);
-+ }
-+ }
-+
-+ for (unsigned int j = 0; j < SIO_NENC; j++)
-+ {
-+ if (conf.enc & (1 << j))
-+ {
-+ AEDataFormat format = lookupDataFormat(cap.enc[j].bits, cap.enc[j].bps, cap.enc[j].sig, cap.enc[j].le, cap.enc[j].msb);
-+ if (format != AE_FMT_INVALID)
-+ info.m_dataFormats.push_back(format);
-+ }
-+ }
-+
-+ list.push_back(info);
-+ }
-+}
-+
-+#endif
-diff --git xbmc/cores/AudioEngine/Sinks/AESinkSNDIO.h xbmc/cores/AudioEngine/Sinks/AESinkSNDIO.h
-new file mode 100644
-index 0000000000..55719cd305
---- /dev/null
-+++ xbmc/cores/AudioEngine/Sinks/AESinkSNDIO.h
-@@ -0,0 +1,57 @@
-+/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*- */
-+#pragma once
-+/*
-+ * Copyright (C) 2010-2013 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/>.
-+ *
-+ */
-+
-+#include "cores/AudioEngine/Interfaces/AESink.h"
-+#include "cores/AudioEngine/Utils/AEDeviceInfo.h"
-+#include <stdint.h>
-+#include <sndio.h>
-+
-+#include "threads/CriticalSection.h"
-+
-+class CAESinkSNDIO : public IAESink
-+{
-+public:
-+ virtual const char *GetName() { return "sndio"; }
-+
-+ CAESinkSNDIO();
-+ virtual ~CAESinkSNDIO();
-+
-+ virtual bool Initialize(AEAudioFormat &format, std::string &device);
-+ virtual void Deinitialize();
-+
-+ virtual void Stop();
-+ virtual void GetDelay(AEDelayStatus& status);
-+ virtual double GetCacheTotal() { return 0.0; }
-+ virtual unsigned int AddPackets(uint8_t **data, unsigned int frames, unsigned int offset);
-+ virtual void Drain();
-+ static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false);
-+private:
-+ void AudioFormatToPar(AEAudioFormat& format);
-+ bool ParToAudioFormat(AEAudioFormat& format);
-+ static void OnmoveCb(void *arg, int delta);
-+
-+ struct sio_hdl *m_hdl;
-+ struct sio_par par;
-+ ssize_t played;
-+ ssize_t written;
-+};
-+
-diff --git xbmc/system.h xbmc/system.h
-index d426ade093..ed01ab53fd 100644
---- xbmc/system.h
-+++ xbmc/system.h
-@@ -172,6 +172,9 @@
- #ifdef HAVE_LIBPULSE
- #define HAS_PULSEAUDIO
- #endif
-+#ifdef HAVE_SNDIO
-+#define HAS_SNDIO
-+#endif
- #ifdef HAVE_ALSA
- #define HAS_ALSA
- #endif
diff --git a/multimedia/kodi/files/patch-Makefile.include.in b/multimedia/kodi/files/patch-Makefile.include.in
deleted file mode 100644
index c49356b2422f..000000000000
--- a/multimedia/kodi/files/patch-Makefile.include.in
+++ /dev/null
@@ -1,39 +0,0 @@
---- Makefile.include.in.orig 2017-11-14 16:55:01 UTC
-+++ Makefile.include.in
-@@ -47,7 +47,8 @@ INCLUDES+=-I@abs_top_srcdir@/addons/library.kodi.adsp
- INCLUDES+=-I@abs_top_srcdir@/addons/library.kodi.audioengine
- INCLUDES+=-I@abs_top_srcdir@/addons/library.xbmc.pvr
- INCLUDES+=-I@abs_top_srcdir@/addons/library.xbmc.codec
--INCLUDES+=$(sort @INCLUDES@)
-+#INCLUDES+=$(sort @INCLUDES@)
-+INCLUDES+=@INCLUDES@
- INCLUDES+=-I@abs_top_srcdir@/xbmc/linux
- INCLUDES+=-I@abs_top_srcdir@/xbmc/cores/VideoPlayer
- DEFINES+= \
-@@ -95,22 +96,22 @@ GEN_DEPS=\
-
- %.o: %.cpp
- @rm -f $@
-- $(SILENT_CPP) $(CXX) -MF $*.d -MD -c $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(CPPFLAGS) $< -o $@ \
-+ $(SILENT_CPP) $(CXX) -MF $*.d -MD -c $(DEFINES) $(INCLUDES) $(CXXFLAGS) $(CPPFLAGS) $< -o $@ \
- && $(GEN_DEPS)
-
- %.o: %.cc
- @rm -f $@
-- $(SILENT_CPP) $(CXX) -MF $*.d -MD -c $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(CPPFLAGS) $< -o $@ \
-+ $(SILENT_CPP) $(CXX) -MF $*.d -MD -c $(DEFINES) $(INCLUDES) $(CXXFLAGS) $(CPPFLAGS) $< -o $@ \
- && $(GEN_DEPS)
-
- %.o: %.c
- @rm -f $@
-- $(SILENT_CC) $(CC) -MF $*.d -MD -c $(CFLAGS) $(DEFINES) $(INCLUDES) $(CPPFLAGS) $< -o $@ \
-+ $(SILENT_CC) $(CC) -MF $*.d -MD -c $(DEFINES) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $< -o $@ \
- && $(GEN_DEPS)
-
- %.o: %.C
- @rm -f $@
-- $(SILENT_CPP) $(CXX) -MF $*.d -MD -c $(CFLAGS) $(DEFINES) $(INCLUDES) $(CPPFLAGS) $< -o $@ \
-+ $(SILENT_CPP) $(CXX) -MF $*.d -MD -c $(DEFINES) $(INCLUDES) $(CFLAGS) $(CPPFLAGS) $< -o $@ \
- && $(GEN_DEPS)
-
- %.o: %.S
diff --git a/multimedia/kodi/files/patch-cmake_modules_FindSSE.cmake b/multimedia/kodi/files/patch-cmake_modules_FindSSE.cmake
new file mode 100644
index 000000000000..bb0c067b28be
--- /dev/null
+++ b/multimedia/kodi/files/patch-cmake_modules_FindSSE.cmake
@@ -0,0 +1,11 @@
+--- cmake/modules/FindSSE.cmake.orig 2020-05-19 20:46:12 UTC
++++ cmake/modules/FindSSE.cmake
+@@ -42,7 +42,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ endif()
+ elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+ if(CPU MATCHES "amd64" OR CPU MATCHES "i.86")
+- exec_program(cat ARGS "/var/run/dmesg.boot | grep Features" OUTPUT_VARIABLE CPUINFO)
++ exec_program(echo ARGS "$_CPU_FEATURE" OUTPUT_VARIABLE CPUINFO)
+
+ string(REGEX REPLACE "^.*(SSE).*$" "\\1" _SSE_THERE ${CPUINFO})
+ string(COMPARE EQUAL "SSE" "${_SSE_THERE}" _SSE_TRUE)
diff --git a/multimedia/kodi/files/patch-configure.ac b/multimedia/kodi/files/patch-configure.ac
deleted file mode 100644
index 209b9378b939..000000000000
--- a/multimedia/kodi/files/patch-configure.ac
+++ /dev/null
@@ -1,181 +0,0 @@
---- configure.ac.orig 2017-11-14 16:55:01 UTC
-+++ configure.ac
-@@ -564,13 +564,37 @@ case $host in
- CORE_SYSTEM_NAME=linux
- ARCH="x86-freebsd"
- MAKE="gmake"
-+ USE_STATIC_FFMPEG=1
- ;;
- amd64-*-freebsd*)
- target_platform=target_linux
- CORE_SYSTEM_NAME=linux
- ARCH="x86_64-freebsd"
- MAKE="gmake"
-+ USE_STATIC_FFMPEG=1
- ;;
-+ armv6-*-freebsd*)
-+ target_platform=target_linux
-+ ARCH="armv6-freebsd"
-+ MAKE="gmake"
-+ USE_STATIC_FFMPEG=1
-+ use_arch="arm"
-+ use_neon=no
-+ use_gles=yes
-+ use_gl=no
-+ use_x11=no
-+ ;;
-+ armv7-*-freebsd*)
-+ target_platform=target_linux
-+ ARCH="armv7-freebsd"
-+ MAKE="gmake"
-+ USE_STATIC_FFMPEG=1
-+ use_arch="arm"
-+ use_neon=no
-+ use_gles=yes
-+ use_gl=no
-+ use_x11=no
-+ ;;
- arm-apple-darwin*)
- CORE_SYSTEM_NAME=ios
- use_neon=yes
-@@ -688,7 +712,7 @@ if test "$target_platform" = "target_raspberry_pi" ; t
- use_hardcoded_tables="yes"
- use_openmax=no
- CORE_SYSTEM_NAME=rbpi
-- ARCH="arm"
-+ ARCH="armv6-freebsd"
- AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer])
- USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"])
- USE_MMAL=1; AC_DEFINE([HAS_MMAL],[1],["Define to 1 if MMAL libs is enabled"])
-@@ -759,10 +783,16 @@ fi
- # platform specific flags
- if echo "$ARCH" | grep -q "freebsd" ; then
- LOCALBASE="${LOCALBASE:-/usr/local}"
-- CFLAGS="$CFLAGS -I$LOCALBASE/include"
-- CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include"
-- CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include"
-+ CFLAGS="$CFLAGS -idirafter$LOCALBASE/include"
-+ CXXFLAGS="$CXXFLAGS -idirafter$LOCALBASE/include"
-+ CPPFLAGS="$CPPFLAGS -idirafter$LOCALBASE/include"
- LDFLAGS="$LDFLAGS -L$LOCALBASE/lib"
-+ CC_FOR_BUILD="$CC"
-+ CXX_FOR_BUILD="$CXX"
-+ CFLAGS_FOR_BUILD="$CFLAGS"
-+ CXXFLAGS_FOR_BUILD="$CXXFLAGS"
-+ LDFLAGS_FOR_BUILD="$LDFLAGS"
-+ FFMPEG_OPTS="--cc=$CC --cxx=$CXX"
- fi
- if test "$host_vendor" = "apple" ; then
- # standard application paths
-@@ -802,8 +832,16 @@ if test "$host_vendor" = "apple" ; then
- LIBS="$LIBS -framework CoreFoundation"
- fi
- elif test "$target_platform" = "target_raspberry_pi"; then
-- ARCH="arm"
-+ CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include/interface/vcos/pthreads/ -I$LOCALBASE/include/interface/vcos -I$LOCALBASE/include/interface/ -I$LOCALBASE/include/interface/vmcs_host/linux"
-+ ARCH="$(uname -p)-freebsd"
- use_arch="arm"
-+ FFMPEG_OPTS="--cc=$CC --cxx=$CXX --disable-fast-unaligned --disable-vfp --disable-xlib --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape"
-+ if test "$use_platform" = "raspberry-pi2"; then
-+ CFLAGS="$CFLAGS -march=armv7a -mtune=cortex-a7 -mfpu=neon"
-+ CXXFLAGS="$CXXFLAGS -march=armv7a -mtune=cortex-a7 -mfpu=neon"
-+ FFMPEG_OPTS="${FFMPEG_OPTS} --enable-neon"
-+ fi
-+
- elif test "$use_arch" = "arm"; then
- CFLAGS="$CFLAGS -mno-apcs-stack-check"
- CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check"
-@@ -921,6 +959,7 @@ AC_LANG_POP([C++])
-
- # Check inotify availability
- AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
-+AC_CHECK_LIB([inotify], [main],,)
-
- # Python
- if test -z "$PYTHON_NOVERSIONCHECK"; then
-@@ -1169,12 +1208,13 @@ AS_CASE([x$use_libbluray],
- )
-
- #Check to see if libs are needed for functions that are often built-in to libc
--AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library)))
-+AC_CHECK_LIB([iconv],[libiconv_open],,AC_MSG_ERROR($missing_library))
- AC_SEARCH_LIBS([dlopen],dl)
- AC_SEARCH_LIBS([clock_gettime],rt)
- AC_SEARCH_LIBS([dn_expand], resolv)
- AC_SEARCH_LIBS([_dn_expand], resolv)
- AC_SEARCH_LIBS([__dn_expand],resolv)
-+AC_SEARCH_LIBS([__atomic_load_8], [atomic])
-
- # platform dependent libraries
- if test "$host_vendor" = "apple" ; then
-@@ -1558,7 +1598,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; then
-
- if test "$cross_compiling" != "yes"; then
- if test "$use_debug" != "yes"; then
-- FFMPEG_OPTS="-r"
-+ FFMPEG_OPTS="${FFMPEG_OPTS} -r"
- fi
- if test "$use_optimizations" != "yes"; then
- FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations"
-@@ -1569,7 +1609,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; then
- SAVE_LIBS="$LIBS"
- # check for system installed ffmpeg. We require minimum versions.
- PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
-- [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
-+ [INCLUDES="$FFMPEG_CFLAGS $INCLUDES"; LIBS="$FFMPEG_LIBS $LIBS"; FFMPEG_FOUND="true"],
- [FFMPEG_FOUND="false"])
-
- if test "${USE_STATIC_FFMPEG}" = "1" && test "$FFMPEG_FOUND" = "true"; then
-@@ -1596,7 +1636,11 @@ if test "${USE_STATIC_FFMPEG}" = "1"; then
- 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}
-+ if test "$use_arch" = "arm"; then
-+ ASFLAGS="-no-integrated-as" CC="$CC" CPP="$CPP" CXX="$CXX" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS} || exit 1
-+ else
-+ CC="$CC" CPP="$CPP" CXX="$CXX" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS} || exit 1
-+ fi
- export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH"
-
- elif test "$with_ffmpeg" != "no"; then
-@@ -1609,7 +1653,7 @@ fi
-
- if test "$FFMPEG_FOUND" != "true"; then
- PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
-- [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"],
-+ [INCLUDES="$FFMPEG_CFLAGS $INCLUDES"; LIBS="$FFMPEG_LIBS $LIBS"; FFMPEG_FOUND="true"],
- [AC_MSG_ERROR("ffmpeg not found")])
- fi
-
-@@ -1633,9 +1677,9 @@ fi
- echo "Checking for SWIG installation"
- AC_PATH_PROG(SWIG_EXE, swig, "none")
- if test "$SWIG_EXE" = "none"; then
-- AC_PATH_PROG(SWIG20_EXE, swig2.0, "none")
-- if test "$SWIG20_EXE" != "none" ; then
-- SWIG_EXE=$SWIG20_EXE
-+ AC_PATH_PROG(SWIG30_EXE, swig3.0, "none")
-+ if test "$SWIG30_EXE" != "none" ; then
-+ SWIG_EXE=$SWIG30_EXE
- fi
- fi
- if test "$SWIG_EXE" = "none"; then
-@@ -1928,7 +1972,7 @@ if test "x$use_texturepacker" != "xno"; then
- AC_PATH_PROG([TEXTUREPACKER], [TexturePacker], ["none"],
- [$PATH$PATH_SEPARATOR${abs_top_srcdir}/tools/depends/native/TexturePacker/bin])
- if test "$TEXTUREPACKER" = "none"; then
-- make -C ${abs_top_srcdir}/tools/depends/native/TexturePacker
-+ $MAKE -C ${abs_top_srcdir}/tools/depends/native/TexturePacker
- TEXTUREPACKER="${abs_top_srcdir}/tools/depends/native/TexturePacker/bin/TexturePacker"
- fi
- if test -x "$TEXTUREPACKER"; then
-@@ -2147,6 +2191,8 @@ if test "$host_vendor" = "apple" ; then
- LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libpostproc -lpostproc"
- LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
- fi
-+
-+LIBS=$(echo "$LIBS" | tr "\n" " ")
-
- OUTPUT_FILES="Makefile \
- Makefile.include \
diff --git a/multimedia/kodi/files/patch-lib_cpluff_autogen.sh b/multimedia/kodi/files/patch-lib_cpluff_autogen.sh
deleted file mode 100644
index 433058077288..000000000000
--- a/multimedia/kodi/files/patch-lib_cpluff_autogen.sh
+++ /dev/null
@@ -1,11 +0,0 @@
---- lib/cpluff/autogen.sh.orig 2016-02-20 15:21:19 UTC
-+++ lib/cpluff/autogen.sh
-@@ -15,7 +15,7 @@ fi
-
- # Generate files in top level directory
- cd "$basedir"
--autopoint
-+#autopoint
- rm -f ABOUT-NLS
- test -d auxliary || mkdir auxliary
- libtoolize --automake -f
diff --git a/multimedia/kodi/files/patch-lib_cpluff_configure.ac b/multimedia/kodi/files/patch-lib_cpluff_configure.ac
deleted file mode 100644
index 05cf5813a027..000000000000
--- a/multimedia/kodi/files/patch-lib_cpluff_configure.ac
+++ /dev/null
@@ -1,30 +0,0 @@
---- lib/cpluff/configure.ac.orig 2016-02-20 15:21:19 UTC
-+++ lib/cpluff/configure.ac
-@@ -109,12 +109,12 @@ if test "$enable_threads" != no; then
- AC_LINK_IFELSE(
- [AC_LANG_SOURCE([#include <pthread.h>
-
--int main(int argc, char **argv) {
-+[int main(int argc, char **argv) {
- pthread_mutex_t mutex;
-
- pthread_mutex_init(&mutex, NULL);
- return 0;
--}
-+}]
- ])], [AC_MSG_RESULT([yes])
- cp_threads=Posix], AC_MSG_RESULT([no]))
- fi
-@@ -126,10 +126,10 @@ cp_threads=Posix], AC_MSG_RESULT([no]))
- AC_LINK_IFELSE(
- [AC_LANG_SOURCE([#include <windows.h>
-
--int main(int argc, char **argv) {
-+[int main(int argc, char **argv) {
- CreateMutex(NULL, FALSE, NULL);
- return 0;
--}
-+}]
- ])], [AC_MSG_RESULT([yes])
- cp_threads=Windows], AC_MSG_RESULT([no]))
- fi
diff --git a/multimedia/kodi/files/patch-m4_xbmc__arch.m4 b/multimedia/kodi/files/patch-m4_xbmc__arch.m4
deleted file mode 100644
index 8fa3c2a539f6..000000000000
--- a/multimedia/kodi/files/patch-m4_xbmc__arch.m4
+++ /dev/null
@@ -1,30 +0,0 @@
---- m4/xbmc_arch.m4.orig 2017-11-14 16:55:01 UTC
-+++ m4/xbmc_arch.m4
-@@ -14,6 +14,9 @@ case $build in
- amd64-*-freebsd*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
- ;;
-+ armv*-*-freebsd*)
-+ AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
-+ ;;
- *86*-apple-darwin*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
- ;;
-@@ -45,6 +48,9 @@ case $host in
- amd64-*-freebsd*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
- ;;
-+ armv*-*-freebsd*)
-+ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX")
-+ ;;
- arm-apple-darwin*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_IOS -D_LINUX")
- ;;
-@@ -78,6 +84,6 @@ if test "$target_platform" = "target_android" ; then
- fi
-
- if test "$target_platform" = "target_raspberry_pi" ; then
-- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
-+ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
- fi
- ])
diff --git a/multimedia/kodi/files/patch-system_settings_rbp2.xml b/multimedia/kodi/files/patch-system_settings_rbp2.xml
deleted file mode 100644
index 8a26211b7978..000000000000
--- a/multimedia/kodi/files/patch-system_settings_rbp2.xml
+++ /dev/null
@@ -1,11 +0,0 @@
---- system/settings/rbp2.xml.orig 2017-11-14 16:55:01 UTC
-+++ system/settings/rbp2.xml
-@@ -4,7 +4,7 @@
- <category id="videoplayer">
- <group id="3">
- <setting id="videoplayer.useomxplayer">
-- <default>false</default>
-+ <default>true</default>
- </setting>
- </group>
- </category>
diff --git a/multimedia/kodi/files/patch-tools_depends_native_JsonSchemaBuilder_Makefile b/multimedia/kodi/files/patch-tools_depends_native_JsonSchemaBuilder_Makefile
deleted file mode 100644
index f49f1ad50b85..000000000000
--- a/multimedia/kodi/files/patch-tools_depends_native_JsonSchemaBuilder_Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/depends/native/JsonSchemaBuilder/Makefile.orig 2017-04-13 17:25:58 UTC
-+++ tools/depends/native/JsonSchemaBuilder/Makefile
-@@ -25,7 +25,7 @@ $(PLATFORM):
- -rm -rf $(PLATFORM)/*; mkdir -p $(PLATFORM)
- cd $(PLATFORM); cp -a $(SOURCE)/* .
- cd $(PLATFORM); ./autogen.sh
-- cd $(PLATFORM); $(CONFIGURE)
-+ cd $(PLATFORM); env CXX=${CXX} $(CONFIGURE)
-
-
- $(APP): $(PLATFORM)
diff --git a/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_FFmpeg-3.1.11-Krypton-17.5_libavutil_x86_asm.h b/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_FFmpeg-3.1.11-Krypton-17.5_libavutil_x86_asm.h
deleted file mode 100644
index 3245e3075413..000000000000
--- a/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_FFmpeg-3.1.11-Krypton-17.5_libavutil_x86_asm.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/depends/target/ffmpeg/FFmpeg-3.1.11-Krypton-17.5/libavutil/x86/asm.h.orig 2017-10-02 15:21:13 UTC
-+++ tools/depends/target/ffmpeg/FFmpeg-3.1.11-Krypton-17.5/libavutil/x86/asm.h
-@@ -72,7 +72,7 @@ typedef int32_t x86_reg;
- typedef int x86_reg;
- #endif
-
--#define HAVE_7REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE && HAVE_EBP_AVAILABLE))
-+#define HAVE_7REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE && HAVE_EBP_AVAILABLE && !defined(__clang__)))
- #define HAVE_6REGS (ARCH_X86_64 || (HAVE_EBX_AVAILABLE || HAVE_EBP_AVAILABLE))
-
- #if ARCH_X86_64 && defined(PIC)
diff --git a/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_Makefile b/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_Makefile
deleted file mode 100644
index 50f41f9675db..000000000000
--- a/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
---- tools/depends/target/ffmpeg/Makefile.orig 2017-11-14 16:55:01 UTC
-+++ tools/depends/target/ffmpeg/Makefile
-@@ -24,6 +24,11 @@ ffmpg_config += --enable-encoder=png --enable-encoder=
- ifeq ($(CROSS_COMPILING), yes)
- ffmpg_config += --arch=$(CPU) --enable-cross-compile
- endif
-+ifeq ($(OS), freebsd)
-+ ffmpg_config += --target-os=$(OS) --cpu=$(CPU)
-+ ffmpg_config += --enable-vdpau --enable-vaapi --enable-gnutls
-+ ffmpg_config += --enable-libvorbis --enable-muxer=ogg --enable-encoder=libvorbis
-+endif
- ifeq ($(OS), linux)
- ffmpg_config += --target-os=$(OS) --cpu=$(CPU)
- ffmpg_config += --enable-vdpau --enable-vaapi --enable-pic
diff --git a/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_autobuild.sh b/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_autobuild.sh
deleted file mode 100644
index 730ff89dff86..000000000000
--- a/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_autobuild.sh
+++ /dev/null
@@ -1,118 +0,0 @@
---- tools/depends/target/ffmpeg/autobuild.sh.orig 2017-11-14 16:55:01 UTC
-+++ tools/depends/target/ffmpeg/autobuild.sh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- #
- # Copyright (C) 2005-2013 Team XBMC
- # http://xbmc.org
-@@ -27,7 +27,8 @@ BASE_URL=$(grep "BASE_URL=" FFMPEG-VERSION | sed 's/BA
- VERSION=$(grep "VERSION=" FFMPEG-VERSION | sed 's/VERSION=//g')
- ARCHIVE=ffmpeg-$(echo "${VERSION}" | sed 's/\//-/g').tar.gz
-
--function usage {
-+usage()
-+{
- echo "usage $(basename $0)
- [-p | --prefix] ... ffmepg install prefix
- [-d | --download] ... no build, download tarfile only
-@@ -87,6 +88,46 @@ do
- FLAGS="$FLAGS --extra-cxxflags=\"${1#*=}\""
- shift
- ;;
-+ --cc=*)
-+ FLAGS="$FLAGS --cc=${1#*=}"
-+ shift
-+ ;;
-+ --cxx=*)
-+ FLAGS="$FLAGS --cxx=${1#*=}"
-+ shift
-+ ;;
-+ --disable-xlib)
-+ FLAGS="$FLAGS --disable-xlib"
-+ shift
-+ ;;
-+ --disable-libxcb)
-+ FLAGS="$FLAGS --disable-libxcb"
-+ shift
-+ ;;
-+ --disable-libxcb-shm)
-+ FLAGS="$FLAGS --disable-libxcb-shm"
-+ shift
-+ ;;
-+ --disable-libxcb-xfixes)
-+ FLAGS="$FLAGS --disable-libxcb-xfixes"
-+ shift
-+ ;;
-+ --disable-libxcb-shape)
-+ FLAGS="$FLAGS --disable-libxcb-shape"
-+ shift
-+ ;;
-+ --disable-fast-unaligned)
-+ FLAGS="$FLAGS --disable-fast-unaligned"
-+ shift
-+ ;;
-+ --disable-vfp)
-+ FLAGS="$FLAGS --disable-vfp"
-+ shift
-+ ;;
-+ --enable-neon)
-+ FLAGS="$FLAGS --enable-neon --cpu=armv7-a"
-+ shift
-+ ;;
- -j)
- BUILDTHREADS=$2
- shift 2
-@@ -105,7 +146,7 @@ do
- esac
- done
-
--BUILDTHREADS=${BUILDTHREADS:-$(grep -c "^processor" /proc/cpuinfo)}
-+BUILDTHREADS=${BUILDTHREADS:-$(sysctl -n hw.ncpu)}
- [ ${BUILDTHREADS} -eq 0 ] && BUILDTHREADS=1
-
- [ -z ${VERSION} ] && exit 3
-@@ -115,12 +156,12 @@ then
- [ "$VERSION" == "$CURVER" ] && exit 0
- fi
-
--[ -f ${ARCHIVE} ] ||
-- curl -Ls --create-dirs -f -o ${ARCHIVE} ${BASE_URL}/${VERSION}.tar.gz ||
-- { echo "error fetching ${BASE_URL}/${VERSION}.tar.gz" ; exit 3; }
-+#[ -f ${ARCHIVE} ] ||
-+# curl -Ls --create-dirs -f -o ${ARCHIVE} ${BASE_URL}/${VERSION}.tar.gz ||
-+# { echo "error fetching ${BASE_URL}/${VERSION}.tar.gz" ; exit 3; }
- [ $downloadonly ] && exit 0
-
--[ -d ffmpeg-${VERSION} ] && rm -rf ffmpeg-${VERSION} && rm .ffmpeg-installed >/dev/null 2>&1
-+#[ -d ffmpeg-${VERSION} ] && rm -rf ffmpeg-${VERSION} && rm .ffmpeg-installed >/dev/null 2>&1
- if [ -d ${FFMPEG_PREFIX} ]
- then
- [ -w ${FFMPEG_PREFIX} ] || SUDO="sudo"
-@@ -128,9 +169,9 @@ else
- [ -w $(dirname ${FFMPEG_PREFIX}) ] || SUDO="sudo"
- fi
-
--mkdir -p "ffmpeg-${VERSION}"
--cd "ffmpeg-${VERSION}" || exit 2
--tar --strip-components=1 -xf $MYDIR/${ARCHIVE}
-+#mkdir -p "ffmpeg-${VERSION}"
-+cd "FFmpeg-${VERSION}" || exit 2
-+#tar --strip-components=1 -xf $MYDIR/${ARCHIVE}
-
- CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" \
- ./configure --prefix=$FFMPEG_PREFIX \
-@@ -167,11 +208,11 @@ CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAG
- --disable-mipsdspr2 \
- ${FLAGS}
-
--make -j ${BUILDTHREADS}
-+gmake -j ${BUILDTHREADS}
- if [ $? -eq 0 ]
- then
- [ ${SUDO} ] && echo "Root privileges are required to install to ${FFMPEG_PREFIX}"
-- ${SUDO} make install && echo "$VERSION" > $MYDIR/.ffmpeg-installed
-+ ${SUDO} gmake install && echo "$VERSION" > $MYDIR/.ffmpeg-installed
- else
- echo "ERROR: Building ffmpeg failed"
- exit 1
diff --git a/multimedia/kodi/files/patch-tools_depends_target_libdvdcss_Makefile b/multimedia/kodi/files/patch-tools_depends_target_libdvdcss_Makefile
deleted file mode 100644
index cfc9e828853a..000000000000
--- a/multimedia/kodi/files/patch-tools_depends_target_libdvdcss_Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
---- tools/depends/target/libdvdcss/Makefile.orig 2016-11-12 UTC
-+++ tools/depends/target/libdvdcss/Makefile
-@@ -33,14 +33,14 @@ endif
-
- all: .installed-$(PLATFORM)
-
--download: $(TARBALLS_LOCATION)/$(ARCHIVE)
-+#download: $(TARBALLS_LOCATION)/$(ARCHIVE)
-
--$(TARBALLS_LOCATION)/$(ARCHIVE):
-- cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) -o $(TARBALLS_LOCATION)/$(ARCHIVE) $(BASE_URL)/archive/$(VERSION).tar.gz
-+#$(TARBALLS_LOCATION)/$(ARCHIVE):
-+# cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) -o $(TARBALLS_LOCATION)/$(ARCHIVE) $(BASE_URL)/archive/$(VERSION).tar.gz
-
--$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-- rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-- cd $(PLATFORM); $(ARCHIVE_TOOL) $(TARBALLS_LOCATION)/$(ARCHIVE)
-+$(PLATFORM): $(DEPS)
-+# rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-+# cd $(PLATFORM); $(ARCHIVE_TOOL) $(TARBALLS_LOCATION)/$(ARCHIVE)
- cd $(PLATFORM); $(AUTORECONF) -vif && ac_cv_path_GIT= ./configure $(config)
-
- $(PLATFORM)/.libs/$(LIBNAME).a: $(PLATFORM)
diff --git a/multimedia/kodi/files/patch-tools_depends_target_libdvdnav_Makefile b/multimedia/kodi/files/patch-tools_depends_target_libdvdnav_Makefile
deleted file mode 100644
index 9b30468a332c..000000000000
--- a/multimedia/kodi/files/patch-tools_depends_target_libdvdnav_Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
---- tools/depends/target/libdvdnav/Makefile.orig 2016-11-12 UTC
-+++ tools/depends/target/libdvdnav/Makefile
-@@ -44,14 +44,14 @@ CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
- all: .installed-$(PLATFORM)
-
--download: $(TARBALLS_LOCATION)/$(ARCHIVE)
-+#download: $(TARBALLS_LOCATION)/$(ARCHIVE)
-
- $(TARBALLS_LOCATION)/$(ARCHIVE):
- cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) -o $(TARBALLS_LOCATION)/$(ARCHIVE) $(BASE_URL)/archive/$(VERSION).tar.gz
-
--$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-- rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-- cd $(PLATFORM); $(ARCHIVE_TOOL) $(TARBALLS_LOCATION)/$(ARCHIVE)
-+$(PLATFORM): $(DEPS)
-+# rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-+# cd $(PLATFORM); $(ARCHIVE_TOOL) $(TARBALLS_LOCATION)/$(ARCHIVE)
- cd $(PLATFORM); $(AUTORECONF) -vif && $(PKGCONFIGPATH) CFLAGS="$(CFLAGS) $(EXTRA_CFLAGS)" ac_cv_path_GIT= ./configure $(config)
-
- $(PLATFORM)/.libs/$(LIBNAME).a: $(PLATFORM)
diff --git a/multimedia/kodi/files/patch-tools_depends_target_libdvdread_Makefile b/multimedia/kodi/files/patch-tools_depends_target_libdvdread_Makefile
deleted file mode 100644
index 1bcd3a3db425..000000000000
--- a/multimedia/kodi/files/patch-tools_depends_target_libdvdread_Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
---- tools/depends/target/libdvdread/Makefile.orig 2016-11-12 UTC
-+++ tools/depends/target/libdvdread/Makefile
-@@ -47,14 +47,14 @@ CLEAN_FILES=$(ARCHIVE) $(PLATFORM)
-
- all: .installed-$(PLATFORM)
-
--download: $(TARBALLS_LOCATION)/$(ARCHIVE)
-+#download: $(TARBALLS_LOCATION)/$(ARCHIVE)
-
--$(TARBALLS_LOCATION)/$(ARCHIVE):
-- cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) -o $(TARBALLS_LOCATION)/$(ARCHIVE) $(BASE_URL)/archive/$(VERSION).tar.gz
-+#$(TARBALLS_LOCATION)/$(ARCHIVE):
-+# cd $(TARBALLS_LOCATION); $(RETRIEVE_TOOL) -o $(TARBALLS_LOCATION)/$(ARCHIVE) $(BASE_URL)/archive/$(VERSION).tar.gz
-
--$(PLATFORM): $(TARBALLS_LOCATION)/$(ARCHIVE) $(DEPS)
-- rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-- cd $(PLATFORM); $(ARCHIVE_TOOL) $(TARBALLS_LOCATION)/$(ARCHIVE)
-+$(PLATFORM): $(DEPS)
-+# rm -rf $(PLATFORM); mkdir -p $(PLATFORM)
-+# cd $(PLATFORM); $(ARCHIVE_TOOL) $(TARBALLS_LOCATION)/$(ARCHIVE)
- cd $(PLATFORM); $(AUTORECONF) -vif && $(PKGCONFIGPATH) CFLAGS="$(CFLAGS) $(EXTRA_CFLAGS)" ac_cv_path_GIT= ./configure $(config)
-
- $(PLATFORM)/.libs/$(LIBNAME).a: $(PLATFORM)
diff --git a/multimedia/kodi/files/patch-xbmc_LangInfo.cpp b/multimedia/kodi/files/patch-xbmc_LangInfo.cpp
deleted file mode 100644
index a8f019f0ec57..000000000000
--- a/multimedia/kodi/files/patch-xbmc_LangInfo.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
---- xbmc/LangInfo.cpp.orig 2017-11-14 16:55:01 UTC
-+++ xbmc/LangInfo.cpp
-@@ -284,8 +284,8 @@ void CLangInfo::CRegion::SetGlobalLocale()
- // decimal separator is changed depending of the current language
- // (ie. "," in French or Dutch instead of "."). This breaks atof() and
- // others similar functions.
--#if defined(TARGET_FREEBSD) || defined(TARGET_DARWIN_OSX) || defined(__UCLIBC__)
-- // on FreeBSD, darwin and uClibc-based systems libstdc++ is compiled with
-+#if defined(TARGET_DARWIN_OSX) || defined(__UCLIBC__)
-+ // on darwin and uClibc-based systems libstdc++ is compiled with
- // "generic" locale support
- if (setlocale(LC_COLLATE, strLocale.c_str()) == NULL
- || setlocale(LC_CTYPE, strLocale.c_str()) == NULL)
diff --git a/multimedia/kodi/files/patch-xbmc_addons_kodi-addon-dev-kit_include_kodi_libXBMC_addon.h b/multimedia/kodi/files/patch-xbmc_addons_kodi-addon-dev-kit_include_kodi_libXBMC_addon.h
deleted file mode 100644
index c0f36bf71202..000000000000
--- a/multimedia/kodi/files/patch-xbmc_addons_kodi-addon-dev-kit_include_kodi_libXBMC_addon.h
+++ /dev/null
@@ -1,28 +0,0 @@
---- xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h.orig 2017-11-14 17:55:01.000000000 +0100
-+++ xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h 2018-04-27 14:28:13.572553000 +0200
-@@ -26,6 +26,7 @@
- #include <stdio.h>
- #include <stdint.h>
- #include <stdarg.h>
-+#include <sys/param.h>
-
- #if defined(BUILD_KODI_ADDON)
- #include "IFileTypes.h"
-@@ -66,6 +67,17 @@
- #define ADDON_HELPER_ARCH "x86-osx"
- #endif
- #define ADDON_HELPER_EXT ".dylib"
-+#elif defined(__FreeBSD__) // freebsd
-+#if defined(__x86_64__)
-+#define ADDON_HELPER_ARCH "x86_64-freebsd"
-+#elif defined(__ARMEL__)
-+#define ADDON_HELPER_ARCH "arm"
-+#elif defined(__aarch64__)
-+#define ADDON_HELPER_ARCH "aarch64"
-+#else
-+#define ADDON_HELPER_ARCH "i486-freebsd"
-+#endif
-+#define ADDON_HELPER_EXT ".so"
- #else // linux
- #if defined(__x86_64__)
- #define ADDON_HELPER_ARCH "x86_64-linux"
diff --git a/multimedia/kodi/files/patch-xbmc_cores_VideoPlayer_DVDDemuxSPU.cpp b/multimedia/kodi/files/patch-xbmc_cores_VideoPlayer_DVDDemuxSPU.cpp
deleted file mode 100644
index 740adc1eeabe..000000000000
--- a/multimedia/kodi/files/patch-xbmc_cores_VideoPlayer_DVDDemuxSPU.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- xbmc/cores/VideoPlayer/DVDDemuxSPU.cpp.orig 2017-11-14 16:55:01 UTC
-+++ xbmc/cores/VideoPlayer/DVDDemuxSPU.cpp
-@@ -18,6 +18,7 @@
- *
- */
-
-+#include <stdlib.h>
- #include "DVDDemuxSPU.h"
- #include "DVDClock.h"
- #include "DVDCodecs/Overlay/DVDOverlaySpu.h"
diff --git a/multimedia/kodi/files/patch-xbmc_cores_VideoPlayer_Process_overrides_linux_ProcessInfoLinux.cpp b/multimedia/kodi/files/patch-xbmc_cores_VideoPlayer_Process_overrides_linux_ProcessInfoLinux.cpp
deleted file mode 100644
index f4fce80e84e0..000000000000
--- a/multimedia/kodi/files/patch-xbmc_cores_VideoPlayer_Process_overrides_linux_ProcessInfoLinux.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- xbmc/cores/VideoPlayer/Process/overrides/linux/ProcessInfoLinux.cpp.orig 2017-11-14 16:55:01 UTC
-+++ xbmc/cores/VideoPlayer/Process/overrides/linux/ProcessInfoLinux.cpp
-@@ -22,7 +22,7 @@
- #include "threads/SingleLock.h"
-
- // Override for platform ports
--#if defined(TARGET_LINUX)
-+#if defined(TARGET_LINUX) || defined(TARGET_FREEBSD)
-
- CProcessInfo* CProcessInfo::CreateInstance()
- {
diff --git a/multimedia/kodi/files/patch-xbmc_dbwrappers_mysqldataset.cpp b/multimedia/kodi/files/patch-xbmc_dbwrappers_mysqldataset.cpp
new file mode 100644
index 000000000000..bd5849194ba1
--- /dev/null
+++ b/multimedia/kodi/files/patch-xbmc_dbwrappers_mysqldataset.cpp
@@ -0,0 +1,14 @@
+--- xbmc/dbwrappers/mysqldataset.cpp.orig 2020-05-19 23:10:06 UTC
++++ xbmc/dbwrappers/mysqldataset.cpp
+@@ -17,10 +17,8 @@
+ #include "utils/StringUtils.h"
+
+ #include "mysqldataset.h"
+-#ifdef HAS_MYSQL
++#if defined(HAS_MYSQL) || defined(HAS_MARIADB)
+ #include "mysql/errmsg.h"
+-#elif defined(HAS_MARIADB)
+-#include <mariadb/errmsg.h>
+ #endif
+
+ #ifdef TARGET_POSIX
diff --git a/multimedia/kodi/files/patch-xbmc_dbwrappers_mysqldataset.h b/multimedia/kodi/files/patch-xbmc_dbwrappers_mysqldataset.h
new file mode 100644
index 000000000000..8138f5c9d26e
--- /dev/null
+++ b/multimedia/kodi/files/patch-xbmc_dbwrappers_mysqldataset.h
@@ -0,0 +1,14 @@
+--- xbmc/dbwrappers/mysqldataset.h.orig 2020-05-19 23:04:15 UTC
++++ xbmc/dbwrappers/mysqldataset.h
+@@ -10,10 +10,8 @@
+
+ #include <stdio.h>
+ #include "dataset.h"
+-#ifdef HAS_MYSQL
++#if defined(HAS_MYSQL) || defined(HAS_MARIADB)
+ #include "mysql/mysql.h"
+-#elif defined(HAS_MARIADB)
+-#include <mariadb/mysql.h>
+ #endif
+
+ namespace dbiplus {
diff --git a/multimedia/kodi/files/patch-xbmc_guilib_TextureBundleXBT.h b/multimedia/kodi/files/patch-xbmc_guilib_TextureBundleXBT.h
deleted file mode 100644
index 0c3f2af2905f..000000000000
--- a/multimedia/kodi/files/patch-xbmc_guilib_TextureBundleXBT.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- xbmc/guilib/TextureBundleXBT.h.orig 2017-11-14 16:55:01 UTC
-+++ xbmc/guilib/TextureBundleXBT.h
-@@ -24,6 +24,7 @@
- #include <memory>
- #include <string>
- #include <vector>
-+#include <ctime>
-
- class CBaseTexture;
- class CXBTFReader;
diff --git a/multimedia/kodi/files/patch-xbmc_guilib_XBTF.h b/multimedia/kodi/files/patch-xbmc_guilib_XBTF.h
deleted file mode 100644
index 4280d59082f4..000000000000
--- a/multimedia/kodi/files/patch-xbmc_guilib_XBTF.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- xbmc/guilib/XBTF.h.orig 2016-02-20 15:21:19 UTC
-+++ xbmc/guilib/XBTF.h
-@@ -22,6 +22,7 @@
- #include <map>
- #include <string>
- #include <vector>
-+#include <ctime>
-
- #include <stdint.h>
-
diff --git a/multimedia/kodi/files/patch-xbmc_interfaces_builtins_WeatherBuiltins.cpp b/multimedia/kodi/files/patch-xbmc_interfaces_builtins_WeatherBuiltins.cpp
deleted file mode 100644
index 0e8b77d399c6..000000000000
--- a/multimedia/kodi/files/patch-xbmc_interfaces_builtins_WeatherBuiltins.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- xbmc/interfaces/builtins/WeatherBuiltins.cpp.orig 2016-02-20 15:21:19 UTC
-+++ xbmc/interfaces/builtins/WeatherBuiltins.cpp
-@@ -18,6 +18,7 @@
- *
- */
-
-+#include <stdlib.h>
- #include "WeatherBuiltins.h"
-
- #include "guilib/GUIWindowManager.h"
diff --git a/multimedia/kodi/files/patch-xbmc_linux_PlatformDefs.h b/multimedia/kodi/files/patch-xbmc_linux_PlatformDefs.h
deleted file mode 100644
index 92342ebb57d8..000000000000
--- a/multimedia/kodi/files/patch-xbmc_linux_PlatformDefs.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- xbmc/linux/PlatformDefs.h.orig 2017-03-04 19:20:36 UTC
-+++ xbmc/linux/PlatformDefs.h
-@@ -52,6 +52,7 @@
- #endif
- #elif defined(TARGET_FREEBSD)
- #include <stdio.h>
-+#include <stdlib.h>
- #include <sys/sysctl.h>
- #include <sys/types.h>
- #else
diff --git a/multimedia/kodi/files/patch-xbmc_platform_linux_input_LibInputHandler.cpp b/multimedia/kodi/files/patch-xbmc_platform_linux_input_LibInputHandler.cpp
new file mode 100644
index 000000000000..90c9f59cbf86
--- /dev/null
+++ b/multimedia/kodi/files/patch-xbmc_platform_linux_input_LibInputHandler.cpp
@@ -0,0 +1,11 @@
+--- xbmc/platform/linux/input/LibInputHandler.cpp.orig 2020-05-19 20:44:08 UTC
++++ xbmc/platform/linux/input/LibInputHandler.cpp
+@@ -115,7 +115,7 @@ void CLibInputHandler::Start()
+
+ void CLibInputHandler::Process()
+ {
+- int epollFd = epoll_create1(0);
++ int epollFd = epoll_create1(EPOLL_CLOEXEC);
+ if (epollFd < 0)
+ {
+ CLog::Log(LOGERROR, "CLibInputHandler::%s - failed to create epoll file descriptor: %s", __FUNCTION__, strerror(-errno));
diff --git a/multimedia/kodi/files/patch-xbmc_platform_linux_storage_UDisks2Provider.h b/multimedia/kodi/files/patch-xbmc_platform_linux_storage_UDisks2Provider.h
new file mode 100644
index 000000000000..b7cddf6e9e73
--- /dev/null
+++ b/multimedia/kodi/files/patch-xbmc_platform_linux_storage_UDisks2Provider.h
@@ -0,0 +1,11 @@
+--- xbmc/platform/linux/storage/UDisks2Provider.h.orig 2020-07-16 09:15:42 UTC
++++ xbmc/platform/linux/storage/UDisks2Provider.h
+@@ -40,7 +40,7 @@ class CUDisks2Provider : public IStorageProvider
+ std::string m_label;
+ std::string m_device;
+ bool m_isSystem = false;
+- u_int64_t m_size = 0;
++ uint64_t m_size = 0;
+
+ explicit Block(const char *object);
+ ~Block() = default;
diff --git a/multimedia/kodi/files/patch-xbmc_platform_posix_main.cpp b/multimedia/kodi/files/patch-xbmc_platform_posix_main.cpp
deleted file mode 100644
index 2af4ba594c37..000000000000
--- a/multimedia/kodi/files/patch-xbmc_platform_posix_main.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
---- xbmc/platform/posix/main.cpp.orig 2016-02-20 15:21:19 UTC
-+++ xbmc/platform/posix/main.cpp
-@@ -28,6 +28,7 @@
- #ifdef TARGET_POSIX
- #include <sys/resource.h>
- #include <signal.h>
-+#include <locale.h>
- #endif
- #if defined(TARGET_DARWIN_OSX)
- #include "Util.h"
-@@ -35,7 +36,6 @@
- #ifdef HAS_SDL
- #include <SDL/SDL.h>
- #endif
--#include <locale.h>
- #endif
- #ifdef HAS_LIRC
- #include "input/linux/LIRC.h"
diff --git a/multimedia/kodi/files/patch-xbmc_settings_AdvancedSettings.cpp b/multimedia/kodi/files/patch-xbmc_settings_AdvancedSettings.cpp
deleted file mode 100644
index 4527ec00c647..000000000000
--- a/multimedia/kodi/files/patch-xbmc_settings_AdvancedSettings.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- xbmc/settings/AdvancedSettings.cpp.orig 2017-11-14 16:55:01 UTC
-+++ xbmc/settings/AdvancedSettings.cpp
-@@ -190,7 +190,7 @@ void CAdvancedSettings::Initialize()
- m_videoCleanDateTimeRegExp = "(.*[^ _\\,\\.\\(\\)\\[\\]\\-])[ _\\.\\(\\)\\[\\]\\-]+(19[0-9][0-9]|20[0-9][0-9])([ _\\,\\.\\(\\)\\[\\]\\-]|[^0-9]$)?";
-
- m_videoCleanStringRegExps.clear();
-- m_videoCleanStringRegExps.push_back("[ _\\,\\.\\(\\)\\[\\]\\-](ac3|dts|custom|dc|remastered|divx|divx5|dsr|dsrip|dutch|dvd|dvd5|dvd9|dvdrip|dvdscr|dvdscreener|screener|dvdivx|cam|fragment|fs|hdtv|hdrip|hdtvrip|internal|limited|multisubs|ntsc|ogg|ogm|pal|pdtv|proper|repack|rerip|retail|r3|r5|bd5|se|svcd|swedish|german|read.nfo|nfofix|unrated|extended|ws|telesync|ts|telecine|tc|brrip|bdrip|480p|480i|576p|576i|720p|720i|1080p|1080i|3d|hrhd|hrhdtv|hddvd|bluray|x264|h264|xvid|xvidvd|xxx|www.www|cd[1-9]|\\[.*\\])([ _\\,\\.\\(\\)\\[\\]\\-]|$)");
-+ m_videoCleanStringRegExps.push_back("[ _\\,\\.\\(\\)\\[\\]\\-](ac3|dts|custom|dc|remastered|divx|divx5|dsr|dsrip|dutch|dvd|dvd5|dvd9|dvdrip|dvdscr|dvdscreener|screener|dvdivx|cam|fragment|fs|hdtv|hdrip|hdtvrip|internal|limited|multisubs|ntsc|ogg|ogm|pal|pdtv|proper|repack|rerip|retail|r3|r5|bd5|se|svcd|swedish|french|multi|german|read.nfo|nfofix|unrated|extended|ws|telesync|ts|telecine|tc|brrip|bdrip|480p|480i|576p|576i|720p|720i|1080p|1080i|3d|hrhd|hrhdtv|hddvd|bluray|x264|h264|xvid|xvidvd|xxx|www.www|cd[1-9]|\\[.*\\])([ _\\,\\.\\(\\)\\[\\]\\-]|$)");
- m_videoCleanStringRegExps.push_back("(\\[.*\\])");
-
- // this vector will be inserted at the end to
diff --git a/multimedia/kodi/files/patch-xbmc_system.h b/multimedia/kodi/files/patch-xbmc_system.h
deleted file mode 100644
index b2229e6b54b3..000000000000
--- a/multimedia/kodi/files/patch-xbmc_system.h
+++ /dev/null
@@ -1,14 +0,0 @@
---- xbmc/system.h.orig 2017-11-14 16:55:01 UTC
-+++ xbmc/system.h
-@@ -143,7 +143,11 @@
- #endif
- #else
- #ifndef HAVE_X11
-+#if defined(TARGET_LINUX)
- #define HAS_LINUX_EVENTS
-+#elif defined(TARGET_FREEBSD)
-+#define HAS_FREEBSD_EVENTS
-+#endif
- #endif
- #endif
- #define HAS_LINUX_NETWORK
diff --git a/multimedia/kodi/files/patch-xbmc_threads_platform_pthreads_ThreadImpl.cpp b/multimedia/kodi/files/patch-xbmc_threads_platform_pthreads_ThreadImpl.cpp
deleted file mode 100644
index 423dd13d92ea..000000000000
--- a/multimedia/kodi/files/patch-xbmc_threads_platform_pthreads_ThreadImpl.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
---- xbmc/threads/platform/pthreads/ThreadImpl.cpp.orig 2017-11-14 16:55:01 UTC
-+++ xbmc/threads/platform/pthreads/ThreadImpl.cpp
-@@ -33,9 +33,8 @@
- #include <sys/param.h>
- #if __FreeBSD_version < 900031
- #include <sys/thr.h>
--#else
--#include <pthread_np.h>
- #endif
-+#include <pthread_np.h>
- #endif
-
- #include <signal.h>
diff --git a/multimedia/kodi/files/patch-xbmc_utils_CPUInfo.cpp b/multimedia/kodi/files/patch-xbmc_utils_CPUInfo.cpp
deleted file mode 100644
index b196dfde2d22..000000000000
--- a/multimedia/kodi/files/patch-xbmc_utils_CPUInfo.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
---- xbmc/utils/CPUInfo.cpp.orig 2017-11-14 16:55:01 UTC
-+++ xbmc/utils/CPUInfo.cpp
-@@ -604,6 +604,14 @@ bool CCPUInfo::getTemperature(CTemperature& temperatur
- #if defined(TARGET_DARWIN_OSX)
- value = SMCGetTemperature(SMC_KEY_CPU_TEMP);
- scale = 'c';
-+#elif defined(TARGET_RASPBERRY_PI)
-+ size_t len;
-+ len = sizeof(value);
-+ if (sysctlbyname("dev.cpu.0.temperature", &value, &len, NULL, 0) != 0)
-+ return false;
-+ /* temperature is in kelvin * 10 */
-+ value = (value - 2732) / 10;
-+ scale = 'c';
- #else
- int ret = 0;
- FILE *p = NULL;
-@@ -955,6 +963,9 @@ bool CCPUInfo::HasNeon()
- has_neon = (CAndroidFeatures::HasNeon()) ? 1 : 0;
-
- #elif defined(TARGET_DARWIN_IOS)
-+ has_neon = 1;
-+
-+#elif defined(__FreeBSD__) && defined(__ARM_NEON__)
- has_neon = 1;
-
- #elif defined(TARGET_LINUX) && defined(__ARM_NEON__)
diff --git a/multimedia/kodi/files/patch-xbmc_utils_CharsetConverter.cpp b/multimedia/kodi/files/patch-xbmc_utils_CharsetConverter.cpp
deleted file mode 100644
index 2cb64b444ad9..000000000000
--- a/multimedia/kodi/files/patch-xbmc_utils_CharsetConverter.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
---- xbmc/utils/CharsetConverter.cpp.orig 2017-11-14 16:55:01 UTC
-+++ xbmc/utils/CharsetConverter.cpp
-@@ -75,7 +75,7 @@
- #define UTF16_CHARSET "UTF-16" ENDIAN_SUFFIX
- #define UTF32_CHARSET "UTF-32" ENDIAN_SUFFIX
- #define UTF8_SOURCE "UTF-8"
-- #define WCHAR_CHARSET "WCHAR_T"
-+ #define WCHAR_CHARSET UTF32_CHARSET
- #if __STDC_ISO_10646__
- #ifdef SIZEOF_WCHAR_T
- #if SIZEOF_WCHAR_T == 4
diff --git a/multimedia/kodi/files/patch-xbmc_utils_RssReader.cpp b/multimedia/kodi/files/patch-xbmc_utils_RssReader.cpp
deleted file mode 100644
index 44c8ce8c0460..000000000000
--- a/multimedia/kodi/files/patch-xbmc_utils_RssReader.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-Fix bogus pointer comparisons.
-
---- xbmc/utils/RssReader.cpp.orig 2017-11-14 16:55:01 UTC
-+++ xbmc/utils/RssReader.cpp
-@@ -269,11 +269,11 @@ void CRssReader::GetNewsItems(TiXmlElement* channelXml
- if (m_tagSet.empty())
- AddTag("title");
-
-- while (itemNode > 0)
-+ while (itemNode)
- {
- TiXmlNode* childNode = itemNode->FirstChild();
- mTagElements.clear();
-- while (childNode > 0)
-+ while (childNode)
- {
- std::string strName = childNode->ValueStr();
-
diff --git a/multimedia/kodi/files/patch-xbmc_windowing_Makefile.in b/multimedia/kodi/files/patch-xbmc_windowing_Makefile.in
deleted file mode 100644
index 0020bfcc4e5c..000000000000
--- a/multimedia/kodi/files/patch-xbmc_windowing_Makefile.in
+++ /dev/null
@@ -1,8 +0,0 @@
---- xbmc/windowing/Makefile.in.orig 2016-10-08 UTC
-+++ xbmc/windowing/Makefile.in
-@@ -1,4 +1,5 @@
- SRCS=WinEventsSDL.cpp \
-+ WinEventsFreeBSD.cpp \
- WinEventsLinux.cpp \
- WinEventsX11.cpp \
- WinSystem.cpp \
diff --git a/multimedia/kodi/files/patch-xbmc_windowing_WinEvents.cpp b/multimedia/kodi/files/patch-xbmc_windowing_WinEvents.cpp
deleted file mode 100644
index 575ad3671df0..000000000000
--- a/multimedia/kodi/files/patch-xbmc_windowing_WinEvents.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
---- xbmc/windowing/WinEvents.cpp.orig 2015-08-16 16:37:32 UTC
-+++ xbmc/windowing/WinEvents.cpp
-@@ -38,6 +38,10 @@
- #include "android/WinEventsAndroid.h"
- #define WinEventsType CWinEventsAndroid
-
-+#elif defined(TARGET_FREEBSD) && defined(TARGET_RASPBERRY_PI)
-+#include "WinEventsFreeBSD.h"
-+#define WinEventsType CWinEventsFreeBSD
-+
- #elif (defined(TARGET_FREEBSD) || defined(TARGET_LINUX)) && defined(HAS_SDL_WIN_EVENTS)
- #include "WinEventsSDL.h"
- #define WinEventsType CWinEventsSDL
diff --git a/multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.cpp b/multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.cpp
deleted file mode 100644
index 89ab7334b579..000000000000
--- a/multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.cpp
+++ /dev/null
@@ -1,531 +0,0 @@
---- xbmc/windowing/WinEventsFreeBSD.cpp.orig 2016-03-02 09:32:08 UTC
-+++ xbmc/windowing/WinEventsFreeBSD.cpp
-@@ -0,0 +1,528 @@
-+/*
-+ * Portions copied from:
-+ * xbmc/input/linux/LinuxInputDevices.cpp
-+ * https://github.com/gonzoua/quake3/blob/master/code/es/es_input.c
-+ *
-+ * 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/>.
-+ */
-+
-+#include "system.h"
-+
-+#ifdef HAS_FREEBSD_EVENTS
-+
-+#include "WinEventsFreeBSD.h"
-+#include "WinEvents.h"
-+#include "XBMC_events.h"
-+#include "guilib/GraphicContext.h"
-+#include "input/XBMC_keysym.h"
-+#include "Application.h"
-+#include "input/MouseStat.h"
-+#include "utils/log.h"
-+
-+#include "es_scancodes.h"
-+
-+struct termios kbd_orig_tty;
-+int orig_kbd_mode;
-+int kbd_fd = -1;
-+
-+typedef struct {
-+ unsigned short Key;
-+ XBMCKey xbmcKey;
-+} KeyMap;
-+
-+static const
-+KeyMap keyMap[] = {
-+ { SCANCODE_ESCAPE , XBMCK_ESCAPE },
-+ { SCANCODE_1 , XBMCK_1 },
-+ { SCANCODE_2 , XBMCK_2 },
-+ { SCANCODE_3 , XBMCK_3 },
-+ { SCANCODE_4 , XBMCK_4 },
-+ { SCANCODE_5 , XBMCK_5 },
-+ { SCANCODE_6 , XBMCK_6 },
-+ { SCANCODE_7 , XBMCK_7 },
-+ { SCANCODE_8 , XBMCK_8 },
-+ { SCANCODE_9 , XBMCK_9 },
-+ { SCANCODE_0 , XBMCK_0 },
-+ { SCANCODE_MINUS , XBMCK_MINUS },
-+ { SCANCODE_EQUAL , XBMCK_EQUALS },
-+ { SCANCODE_BACKSPACE , XBMCK_BACKSPACE },
-+ { SCANCODE_TAB , XBMCK_TAB },
-+ { SCANCODE_Q , XBMCK_q },
-+ { SCANCODE_W , XBMCK_w },
-+ { SCANCODE_E , XBMCK_e },
-+ { SCANCODE_R , XBMCK_r },
-+ { SCANCODE_T , XBMCK_t },
-+ { SCANCODE_Y , XBMCK_y },
-+ { SCANCODE_U , XBMCK_u },
-+ { SCANCODE_I , XBMCK_i },
-+ { SCANCODE_O , XBMCK_o },
-+ { SCANCODE_P , XBMCK_p },
-+ { SCANCODE_BRACKET_LEFT , XBMCK_LEFTBRACKET },
-+ { SCANCODE_BRACKET_RIGHT , XBMCK_RIGHTBRACKET},
-+ { SCANCODE_ENTER , XBMCK_RETURN },
-+ { SCANCODE_LEFTCONTROL , XBMCK_LCTRL },
-+ { SCANCODE_A , XBMCK_a },
-+ { SCANCODE_S , XBMCK_s },
-+ { SCANCODE_D , XBMCK_d },
-+ { SCANCODE_F , XBMCK_f },
-+ { SCANCODE_G , XBMCK_g },
-+ { SCANCODE_H , XBMCK_h },
-+ { SCANCODE_J , XBMCK_j },
-+ { SCANCODE_K , XBMCK_k },
-+ { SCANCODE_L , XBMCK_l },
-+ { SCANCODE_SEMICOLON , XBMCK_SEMICOLON },
-+ { SCANCODE_APOSTROPHE , XBMCK_QUOTE },
-+ { SCANCODE_GRAVE , XBMCK_BACKQUOTE },
-+ { SCANCODE_LEFTSHIFT , XBMCK_LSHIFT },
-+ { SCANCODE_BACKSLASH , XBMCK_BACKSLASH },
-+ { SCANCODE_Z , XBMCK_z },
-+ { SCANCODE_X , XBMCK_x },
-+ { SCANCODE_C , XBMCK_c },
-+ { SCANCODE_V , XBMCK_v },
-+ { SCANCODE_B , XBMCK_b },
-+ { SCANCODE_N , XBMCK_n },
-+ { SCANCODE_M , XBMCK_m },
-+ { SCANCODE_COMMA , XBMCK_COMMA },
-+ { SCANCODE_PERIOD , XBMCK_PERIOD },
-+ { SCANCODE_SLASH , XBMCK_SLASH },
-+ { SCANCODE_RIGHTSHIFT , XBMCK_RSHIFT },
-+ { SCANCODE_KEYPADMULTIPLY , XBMCK_KP_MULTIPLY },
-+ { SCANCODE_LEFTALT , XBMCK_LALT },
-+ { SCANCODE_SPACE , XBMCK_SPACE },
-+ { SCANCODE_CAPSLOCK , XBMCK_CAPSLOCK },
-+ { SCANCODE_F1 , XBMCK_F1 },
-+ { SCANCODE_F2 , XBMCK_F2 },
-+ { SCANCODE_F3 , XBMCK_F3 },
-+ { SCANCODE_F4 , XBMCK_F4 },
-+ { SCANCODE_F5 , XBMCK_F5 },
-+ { SCANCODE_F6 , XBMCK_F6 },
-+ { SCANCODE_F7 , XBMCK_F7 },
-+ { SCANCODE_F8 , XBMCK_F8 },
-+ { SCANCODE_F9 , XBMCK_F9 },
-+ { SCANCODE_F10 , XBMCK_F10 },
-+ { SCANCODE_NUMLOCK , XBMCK_NUMLOCK },
-+ { SCANCODE_SCROLLLOCK , XBMCK_SCROLLOCK },
-+ { SCANCODE_KEYPAD7 , XBMCK_KP7 },
-+ { SCANCODE_KEYPAD8 , XBMCK_KP8 },
-+ { SCANCODE_KEYPAD9 , XBMCK_KP9 },
-+ { SCANCODE_KEYPADMINUS , XBMCK_KP_MINUS },
-+ { SCANCODE_KEYPAD4 , XBMCK_KP4 },
-+ { SCANCODE_KEYPAD5 , XBMCK_KP5 },
-+ { SCANCODE_KEYPAD6 , XBMCK_KP6 },
-+ { SCANCODE_KEYPADPLUS , XBMCK_KP_PLUS },
-+ { SCANCODE_KEYPAD1 , XBMCK_KP1 },
-+ { SCANCODE_KEYPAD2 , XBMCK_KP2 },
-+ { SCANCODE_KEYPAD3 , XBMCK_KP3 },
-+ { SCANCODE_KEYPAD0 , XBMCK_KP0 },
-+ { SCANCODE_KEYPADPERIOD , XBMCK_KP_PERIOD },
-+ { SCANCODE_BACKSLASH , XBMCK_BACKSLASH },
-+ { SCANCODE_F11 , XBMCK_F11 },
-+ { SCANCODE_F12 , XBMCK_F12 },
-+ { SCANCODE_KEYPADENTER , XBMCK_KP_ENTER },
-+ { SCANCODE_RIGHTCONTROL , XBMCK_RCTRL },
-+ { SCANCODE_KEYPADDIVIDE , XBMCK_KP_DIVIDE },
-+ { SCANCODE_PRINTSCREEN , XBMCK_PRINT },
-+ { SCANCODE_RIGHTALT , XBMCK_MODE },
-+ { SCANCODE_HOME , XBMCK_HOME },
-+ { SCANCODE_CURSORBLOCKUP , XBMCK_UP },
-+ { SCANCODE_PAGEUP , XBMCK_PAGEUP },
-+ { SCANCODE_CURSORBLOCKLEFT , XBMCK_LEFT },
-+ { SCANCODE_CURSORBLOCKRIGHT , XBMCK_RIGHT },
-+ { SCANCODE_END , XBMCK_END },
-+ { SCANCODE_CURSORBLOCKDOWN , XBMCK_DOWN },
-+ { SCANCODE_PAGEDOWN , XBMCK_PAGEDOWN },
-+ { SCANCODE_INSERT , XBMCK_INSERT },
-+ { SCANCODE_PRINTSCREEN , XBMCK_PRINT },
-+ { SCANCODE_BACKSPACE , XBMCK_BACKSPACE },
-+};
-+
-+/*
-+ * Translates a FreeBSD input keycode into an XBMC keycode.
-+ */
-+XBMCKey CWinEventsFreeBSD::TranslateKey(unsigned short code)
-+{
-+ for (size_t index = 0; index < sizeof(keyMap) / sizeof(KeyMap); index++) {
-+ if (code == keyMap[index].Key)
-+ return keyMap[index].xbmcKey;
-+ }
-+
-+ return XBMCK_UNKNOWN;
-+}
-+
-+XBMCMod CWinEventsFreeBSD::UpdateModifiers(XBMCKey key, XBMC_EventType xbmcKey)
-+{
-+ XBMCMod modifier = XBMCKMOD_NONE;
-+
-+ switch (key) {
-+ case XBMCK_LSHIFT: modifier = XBMCKMOD_LSHIFT; break;
-+ case XBMCK_RSHIFT: modifier = XBMCKMOD_RSHIFT; break;
-+ case XBMCK_LCTRL: modifier = XBMCKMOD_LCTRL; break;
-+ case XBMCK_RCTRL: modifier = XBMCKMOD_RCTRL; break;
-+ case XBMCK_LALT: modifier = XBMCKMOD_LALT; break;
-+ case XBMCK_RALT: modifier = XBMCKMOD_RALT; break;
-+ case XBMCK_LMETA: modifier = XBMCKMOD_LMETA; break;
-+ case XBMCK_RMETA: modifier = XBMCKMOD_RMETA; break;
-+ default: break;
-+ }
-+
-+ if (xbmcKey == XBMC_KEYDOWN) {
-+ m_keyMods |= modifier;
-+ } else {
-+ m_keyMods &= ~modifier;
-+ }
-+
-+ if (xbmcKey == XBMC_KEYDOWN) {
-+ modifier = XBMCKMOD_NONE;
-+ switch (key) {
-+ case XBMCK_NUMLOCK: modifier = XBMCKMOD_NUM; break;
-+ case XBMCK_CAPSLOCK: modifier = XBMCKMOD_CAPS; break;
-+ default: break;
-+ }
-+
-+ if (m_keyMods & modifier) {
-+ m_keyMods &= ~modifier;
-+ } else {
-+ m_keyMods |= modifier;
-+ }
-+ }
-+
-+ return (XBMCMod) m_keyMods;
-+}
-+
-+bool CWinEventsFreeBSD::MessagePump()
-+{
-+ bool ret = false;
-+
-+ if (mouse_fd < 0)
-+ init_mouse();
-+
-+ if (kbd_fd < 0)
-+ init_kbd();
-+
-+ while (has_kbd_event()) {
-+ process_kbd_events();
-+ ret = true;
-+ break;
-+ }
-+
-+ while (has_mouse_event()) {
-+ process_mouse_events();
-+ ret = true;
-+ break;
-+ }
-+
-+ return ret;
-+}
-+
-+size_t CWinEventsFreeBSD::GetQueueSize()
-+{
-+ return 0;
-+}
-+
-+void CWinEventsFreeBSD::init_kbd()
-+{
-+ struct sigaction sa = {{0}};
-+ struct termios kbdtty;
-+
-+ kbd_fd = fileno(stdin);
-+ if (kbd_fd < 0)
-+ return;
-+
-+ if (ioctl(kbd_fd, KDGKBMODE, &orig_kbd_mode)) {
-+ CLog::Log(LOGDEBUG, "ioctl(KDGKBMODE)");
-+ goto out;
-+ }
-+
-+ if (ioctl(kbd_fd, KDSKBMODE, K_CODE)) {
-+ CLog::Log(LOGDEBUG, "ioctl(KDSKBMODE)");
-+ goto out;
-+ }
-+
-+ if (tcgetattr(kbd_fd, &kbdtty)) {
-+ CLog::Log(LOGDEBUG, "tcgetattr");
-+ goto out;
-+ }
-+
-+ sa.sa_handler = restore_signal;
-+ sa.sa_flags = SA_RESTART | SA_RESETHAND;
-+ sigemptyset(&sa.sa_mask);
-+
-+ sigaction(SIGABRT, &sa, NULL);
-+ sigaction(SIGBUS, &sa, NULL);
-+ sigaction(SIGFPE, &sa, NULL);
-+ sigaction(SIGILL, &sa, NULL);
-+ sigaction(SIGQUIT, &sa, NULL);
-+ sigaction(SIGSEGV, &sa, NULL);
-+
-+ kbd_orig_tty = kbdtty;
-+
-+ kbdtty.c_iflag = IGNPAR | IGNBRK;
-+ /* kbdtty.c_oflag = 0; */
-+ kbdtty.c_cflag = CREAD | CS8;
-+ kbdtty.c_lflag = 0;
-+ kbdtty.c_cc[VTIME] = 0;
-+ kbdtty.c_cc[VMIN] = 1;
-+ cfsetispeed(&kbdtty, 9600);
-+ cfsetospeed(&kbdtty, 9600);
-+ if (tcsetattr(kbd_fd, TCSANOW, &kbdtty) < 0) {
-+ CLog::Log(LOGDEBUG, "tcsetattr");
-+ }
-+ return;
-+
-+out:
-+ kbd_fd = -1;
-+}
-+
-+void CWinEventsFreeBSD::restore_signal(int sig)
-+{
-+ close_kbd();
-+ kill(getpid(), sig);
-+}
-+
-+void CWinEventsFreeBSD::close_kbd()
-+{
-+ if (kbd_fd < 0)
-+ return;
-+
-+ if (tcsetattr(kbd_fd, TCSANOW, &kbd_orig_tty) < 0)
-+ CLog::Log(LOGDEBUG, "tcsetattr");
-+
-+ if (ioctl(kbd_fd, KDSKBMODE, orig_kbd_mode))
-+ CLog::Log(LOGDEBUG, "ioctl(KDSKBMODE)");
-+
-+ kbd_fd = -1;
-+}
-+
-+int CWinEventsFreeBSD::has_kbd_event(void)
-+{
-+ struct timeval tv;
-+ fd_set fds;
-+
-+ if (kbd_fd < 0)
-+ return(0);
-+
-+ tv.tv_sec = 0;
-+ tv.tv_usec = 0;
-+
-+ FD_ZERO(&fds);
-+ FD_SET(kbd_fd, &fds);
-+
-+ select(FD_SETSIZE, &fds, NULL, NULL, &tv);
-+
-+ return FD_ISSET(kbd_fd, &fds);
-+}
-+
-+void CWinEventsFreeBSD::process_kbd_events(void)
-+{
-+ uint8_t code[4];
-+ int bytes;
-+ XBMCKey key;
-+
-+ if (kbd_fd < 0)
-+ return;
-+
-+ bytes = read(kbd_fd, code, sizeof(code));
-+ for (int i = 0; i < bytes; i++) {
-+ key = TranslateKey(code[i] & 0x7f);
-+ if (code[i] & 0x80) {
-+ XBMC_Event newEvent;
-+ newEvent.type = XBMC_KEYUP;
-+ newEvent.key.keysym.scancode = code[i];
-+ newEvent.key.keysym.unicode = 0;
-+ newEvent.key.keysym.sym = key;
-+ newEvent.key.keysym.mod = UpdateModifiers(key, XBMC_KEYUP);
-+ newEvent.key.state = XBMC_RELEASED;
-+ newEvent.key.type = XBMC_KEYUP;
-+ newEvent.key.which = 0;
-+ g_application.OnEvent(newEvent);
-+ } else {
-+ XBMC_Event newEvent;
-+ newEvent.type = XBMC_KEYDOWN;
-+ newEvent.key.keysym.scancode = code[i];
-+ newEvent.key.keysym.unicode = 0;
-+ newEvent.key.keysym.sym = key;
-+ newEvent.key.keysym.mod = UpdateModifiers(key, XBMC_KEYDOWN);
-+ newEvent.key.state = XBMC_PRESSED;
-+ newEvent.key.type = XBMC_KEYDOWN;
-+ newEvent.key.which = 0;
-+ g_application.OnEvent(newEvent);
-+ }
-+ }
-+}
-+
-+void CWinEventsFreeBSD::init_mouse()
-+{
-+ mouse_fd = open("/dev/sysmouse", O_RDONLY);
-+ if (mouse_fd < 0) {
-+ CLog::Log(LOGDEBUG, "open /dev/sysmouse failed");
-+ return;
-+ }
-+
-+ int level = 1;
-+ if (ioctl(mouse_fd, MOUSE_SETLEVEL, &level)) {
-+ close(mouse_fd);
-+ CLog::Log(LOGDEBUG, "ioctl MOUSE_SETLEVEL failed");
-+ return;
-+ }
-+}
-+
-+int CWinEventsFreeBSD::has_mouse_event(void)
-+{
-+ struct timeval tv;
-+ fd_set fds;
-+
-+ if (mouse_fd < 0)
-+ return 0;
-+
-+ tv.tv_sec = 0;
-+ tv.tv_usec = 0;
-+ FD_ZERO(&fds);
-+ FD_SET(mouse_fd, &fds);
-+ select(mouse_fd+1, &fds, NULL, NULL, &tv);
-+
-+ return FD_ISSET(mouse_fd, &fds);
-+}
-+
-+void CWinEventsFreeBSD::send_mouse_event(int button, int pressed)
-+{
-+ uint8_t b;
-+ switch (button) {
-+ case 0:
-+ b = XBMC_BUTTON_RIGHT;
-+ break;
-+ case 1:
-+ b = XBMC_BUTTON_RIGHT;
-+ break;
-+ case 2:
-+ b = XBMC_BUTTON_LEFT;
-+ break;
-+ default:
-+ b = 0xff;
-+ }
-+
-+ if (b != 0xff) {
-+ if (pressed == 1) {
-+ XBMC_Event newEvent;
-+ newEvent.type = XBMC_MOUSEBUTTONDOWN;
-+ newEvent.button.button = b;
-+ newEvent.button.state = XBMC_PRESSED;
-+ newEvent.button.type = XBMC_MOUSEBUTTONDOWN;
-+ newEvent.button.x = m_mouseX;
-+ newEvent.button.y = m_mouseY;
-+ g_application.OnEvent(newEvent);
-+ } else {
-+ XBMC_Event newEvent;
-+ newEvent.type = XBMC_MOUSEBUTTONUP;
-+ newEvent.button.button = b;
-+ newEvent.button.state = XBMC_RELEASED;
-+ newEvent.button.type = XBMC_MOUSEBUTTONUP;
-+ newEvent.button.x = m_mouseX;
-+ newEvent.button.y = m_mouseY;
-+ g_application.OnEvent(newEvent);
-+ }
-+ }
-+}
-+
-+void CWinEventsFreeBSD::process_mouse_events(void)
-+{
-+ int8_t packet[MOUSE_SYS_PACKETSIZE];
-+ uint8_t status, changed;
-+ int16_t relx, rely;
-+
-+ if (mouse_fd < 0)
-+ return;
-+
-+ if (read(mouse_fd, packet, sizeof(packet)) < sizeof(packet))
-+ return;
-+
-+ /* handle button click */
-+ status = packet[0] & MOUSE_SYS_STDBUTTONS;
-+ changed = status ^ mouse_buttons;
-+ if (changed) {
-+ for (int i = 0; i < 3; i++)
-+ if (changed & (1<<i))
-+ send_mouse_event(i, ((status & (1<<i)) == 0));
-+ }
-+
-+ /* XBMC_BUTTON_WHEELUP */
-+ if (packet[5] != 0) {
-+ XBMC_Event newEvent;
-+ newEvent.type = XBMC_MOUSEBUTTONDOWN;
-+ newEvent.button.button = XBMC_BUTTON_WHEELUP;
-+ newEvent.button.state = XBMC_PRESSED;
-+ newEvent.button.x = m_mouseX;
-+ newEvent.button.y = m_mouseY;
-+ g_application.OnEvent(newEvent);
-+
-+ newEvent.type = XBMC_MOUSEBUTTONUP;
-+ newEvent.button.state = XBMC_RELEASED;
-+ g_application.OnEvent(newEvent);
-+ }
-+ /* XBMC_BUTTON_WHEELDOWN */
-+ if (packet[6] != 0) {
-+ XBMC_Event newEvent;
-+ newEvent.type = XBMC_MOUSEBUTTONDOWN;
-+ newEvent.button.button = XBMC_BUTTON_WHEELDOWN;
-+ newEvent.button.state = XBMC_PRESSED;
-+ newEvent.button.x = m_mouseX;
-+ newEvent.button.y = m_mouseY;
-+ g_application.OnEvent(newEvent);
-+
-+ newEvent.type = XBMC_MOUSEBUTTONUP;
-+ newEvent.button.state = XBMC_RELEASED;
-+ g_application.OnEvent(newEvent);
-+ }
-+
-+ mouse_buttons = status;
-+
-+ relx = packet[1] + packet[3];
-+ rely = -(packet[2] + packet[4]);
-+
-+ m_mouseX += relx;
-+ m_mouseY += rely;
-+
-+ // limit the mouse to the screen width
-+ m_mouseX = std::min(g_graphicsContext.GetWidth(), m_mouseX);
-+ m_mouseX = std::max(0, m_mouseX);
-+
-+ // limit the mouse to the screen height
-+ m_mouseY = std::min(g_graphicsContext.GetHeight(), m_mouseY);
-+ m_mouseY = std::max(0, m_mouseY);
-+
-+ XBMC_Event newEvent;
-+ newEvent.type = XBMC_MOUSEMOTION;
-+ newEvent.motion.type = XBMC_MOUSEMOTION;
-+ newEvent.motion.xrel = relx;
-+ newEvent.motion.yrel = rely;
-+ newEvent.motion.x = m_mouseX;
-+ newEvent.motion.y = m_mouseY;
-+ newEvent.motion.state = 0;
-+ newEvent.motion.which = 0;
-+ g_application.OnEvent(newEvent);
-+}
-+
-+void CWinEventsFreeBSD::close_mouse()
-+{
-+ close(mouse_fd);
-+ mouse_fd = -1;
-+}
-+
-+CWinEventsFreeBSD::~CWinEventsFreeBSD()
-+{
-+ close_kbd();
-+ close_mouse();
-+}
-+
-+#endif
diff --git a/multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.h b/multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.h
deleted file mode 100644
index f22ba31964e8..000000000000
--- a/multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.h
+++ /dev/null
@@ -1,77 +0,0 @@
---- xbmc/windowing/WinEventsFreeBSD.h.orig 2016-03-02 09:32:08 UTC
-+++ xbmc/windowing/WinEventsFreeBSD.h
-@@ -0,0 +1,74 @@
-+/*
-+ * Copyright (C) 2005-2013 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/>.
-+ *
-+ */
-+
-+#ifndef WINDOW_EVENTS_FREEBSD_H
-+#define WINDOW_EVENTS_FREEBSD_H
-+
-+#pragma once
-+#include "windowing/WinEvents.h"
-+
-+#include <unistd.h>
-+#include <termios.h>
-+#include <stdio.h>
-+#include <sys/select.h>
-+#include <sys/mouse.h>
-+#include <fcntl.h>
-+#include <unistd.h>
-+
-+#include <termios.h>
-+#include <sys/kbio.h>
-+
-+#include <signal.h>
-+
-+class CWinEventsFreeBSD : public IWinEvents
-+{
-+public:
-+
-+ bool MessagePump();
-+ size_t GetQueueSize();
-+ ~CWinEventsFreeBSD();
-+
-+private:
-+
-+ int m_keyMods = 0;
-+
-+ int mouse_fd = -1;
-+ uint8_t mouse_buttons = MOUSE_SYS_STDBUTTONS;
-+ int m_mouseX = 0;
-+ int m_mouseY = 0;
-+
-+ void init_kbd();
-+ int has_kbd_event(void);
-+ void process_kbd_events(void);
-+ static void close_kbd();
-+ static void restore_signal(int sig);
-+ XBMCKey TranslateKey(unsigned short);
-+ XBMCMod UpdateModifiers(XBMCKey, XBMC_EventType);
-+
-+ void init_mouse();
-+ int has_mouse_event(void);
-+ void send_mouse_event(int, int);
-+ void process_mouse_events(void);
-+ void close_mouse();
-+
-+ void Shutdown();
-+};
-+
-+#endif
diff --git a/multimedia/kodi/files/patch-xbmc_windowing_WinEventsX11.cpp b/multimedia/kodi/files/patch-xbmc_windowing_WinEventsX11.cpp
deleted file mode 100644
index 4a9ad3b303e7..000000000000
--- a/multimedia/kodi/files/patch-xbmc_windowing_WinEventsX11.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- xbmc/windowing/WinEventsX11.cpp.orig 2016-02-20 15:21:19 UTC
-+++ xbmc/windowing/WinEventsX11.cpp
-@@ -23,6 +23,7 @@
-
- #ifdef HAS_X11_WIN_EVENTS
-
-+#include <locale.h>
- #include "WinEvents.h"
- #include "WinEventsX11.h"
- #include "Application.h"
diff --git a/multimedia/kodi/files/patch-xbmc_windowing_WindowingFactory.h b/multimedia/kodi/files/patch-xbmc_windowing_WindowingFactory.h
deleted file mode 100644
index c8c252dd903a..000000000000
--- a/multimedia/kodi/files/patch-xbmc_windowing_WindowingFactory.h
+++ /dev/null
@@ -1,21 +0,0 @@
---- xbmc/windowing/WindowingFactory.h.orig 2015-11-12 02:33:50 UTC
-+++ xbmc/windowing/WindowingFactory.h
-@@ -38,11 +38,14 @@
- #elif defined(TARGET_LINUX) && defined(HAS_GLES) && defined(HAS_EGL) && !defined(HAVE_X11)
- #include "egl/WinSystemEGL.h"
-
--#elif defined(TARGET_FREEBSD) && defined(HAS_GL) && defined(HAVE_X11)
--#include "X11/WinSystemX11GL.h"
-+#elif defined(TARGET_FREEBSD) && defined(HAVE_X11) && defined(HAS_GL)
-+#include "X11/WinSystemX11GLContext.h"
-
--#elif defined(TARGET_FREEBSD) && defined(HAS_GLES) && defined(HAS_EGL)
--#include "egl/WinSystemGLES.h"
-+#elif defined(TARGET_FREEBSD) && defined(HAVE_X11) && defined(HAS_GLES)
-+#include "X11/WinSystemX11GLESContext.h"
-+
-+#elif defined(TARGET_FREEBSD) && defined(TARGET_RASPBERRY_PI)
-+#include "egl/WinSystemEGL.h"
-
- #elif defined(TARGET_DARWIN_OSX)
- #include "osx/WinSystemOSXGL.h"
diff --git a/multimedia/kodi/files/patch-xbmc_windowing_egl_EGLNativeTypeAmlogic.cpp b/multimedia/kodi/files/patch-xbmc_windowing_egl_EGLNativeTypeAmlogic.cpp
deleted file mode 100644
index a6134357dec1..000000000000
--- a/multimedia/kodi/files/patch-xbmc_windowing_egl_EGLNativeTypeAmlogic.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
---- xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp.orig 2017-11-14 16:55:01 UTC
-+++ xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp
-@@ -17,6 +17,7 @@
- * <http://www.gnu.org/licenses/>.
- *
- */
-+#if defined(__linux__)
-
- #include "EGLNativeTypeAmlogic.h"
- #include "guilib/GraphicContext.h"
-@@ -259,3 +260,4 @@ void CEGLNativeTypeAmlogic::SetFramebufferResolution(i
- close(fd0);
- }
- }
-+#endif
diff --git a/multimedia/kodi/files/patch-xbmc_windowing_es__scancodes.h b/multimedia/kodi/files/patch-xbmc_windowing_es__scancodes.h
deleted file mode 100644
index d38d898f72d1..000000000000
--- a/multimedia/kodi/files/patch-xbmc_windowing_es__scancodes.h
+++ /dev/null
@@ -1,141 +0,0 @@
---- xbmc/windowing/es_scancodes.h.orig 2015-12-01 17:53:48 UTC
-+++ xbmc/windowing/es_scancodes.h
-@@ -0,0 +1,138 @@
-+/* Scancodes for the Linux framebuffer console
-+ - Taken with thanks from SVGAlib 1.4.0
-+
-+ Then taken from SDL nd modified to BSD scancodes
-+*/
-+
-+#define SCANCODE_ESCAPE 1
-+
-+#define SCANCODE_1 2
-+#define SCANCODE_2 3
-+#define SCANCODE_3 4
-+#define SCANCODE_4 5
-+#define SCANCODE_5 6
-+#define SCANCODE_6 7
-+#define SCANCODE_7 8
-+#define SCANCODE_8 9
-+#define SCANCODE_9 10
-+#define SCANCODE_0 11
-+
-+#define SCANCODE_MINUS 12
-+#define SCANCODE_EQUAL 13
-+
-+#define SCANCODE_BACKSPACE 14
-+#define SCANCODE_TAB 15
-+
-+#define SCANCODE_Q 16
-+#define SCANCODE_W 17
-+#define SCANCODE_E 18
-+#define SCANCODE_R 19
-+#define SCANCODE_T 20
-+#define SCANCODE_Y 21
-+#define SCANCODE_U 22
-+#define SCANCODE_I 23
-+#define SCANCODE_O 24
-+#define SCANCODE_P 25
-+#define SCANCODE_BRACKET_LEFT 26
-+#define SCANCODE_BRACKET_RIGHT 27
-+
-+#define SCANCODE_ENTER 28
-+
-+#define SCANCODE_LEFTCONTROL 29
-+
-+#define SCANCODE_A 30
-+#define SCANCODE_S 31
-+#define SCANCODE_D 32
-+#define SCANCODE_F 33
-+#define SCANCODE_G 34
-+#define SCANCODE_H 35
-+#define SCANCODE_J 36
-+#define SCANCODE_K 37
-+#define SCANCODE_L 38
-+#define SCANCODE_SEMICOLON 39
-+#define SCANCODE_APOSTROPHE 40
-+#define SCANCODE_GRAVE 41
-+
-+#define SCANCODE_LEFTSHIFT 42
-+#define SCANCODE_BACKSLASH 43
-+
-+#define SCANCODE_Z 44
-+#define SCANCODE_X 45
-+#define SCANCODE_C 46
-+#define SCANCODE_V 47
-+#define SCANCODE_B 48
-+#define SCANCODE_N 49
-+#define SCANCODE_M 50
-+#define SCANCODE_COMMA 51
-+#define SCANCODE_PERIOD 52
-+#define SCANCODE_SLASH 53
-+
-+#define SCANCODE_RIGHTSHIFT 54
-+#define SCANCODE_KEYPADMULTIPLY 55
-+
-+#define SCANCODE_LEFTALT 56
-+#define SCANCODE_SPACE 57
-+#define SCANCODE_CAPSLOCK 58
-+
-+#define SCANCODE_F1 59
-+#define SCANCODE_F2 60
-+#define SCANCODE_F3 61
-+#define SCANCODE_F4 62
-+#define SCANCODE_F5 63
-+#define SCANCODE_F6 64
-+#define SCANCODE_F7 65
-+#define SCANCODE_F8 66
-+#define SCANCODE_F9 67
-+#define SCANCODE_F10 68
-+
-+#define SCANCODE_NUMLOCK 69
-+#define SCANCODE_SCROLLLOCK 70
-+
-+#define SCANCODE_KEYPAD7 71
-+#define SCANCODE_CURSORUPLEFT 71
-+#define SCANCODE_KEYPAD8 72
-+#define SCANCODE_CURSORUP 72
-+#define SCANCODE_KEYPAD9 73
-+#define SCANCODE_CURSORUPRIGHT 73
-+#define SCANCODE_KEYPADMINUS 74
-+#define SCANCODE_KEYPAD4 75
-+#define SCANCODE_CURSORLEFT 75
-+#define SCANCODE_KEYPAD5 76
-+#define SCANCODE_KEYPAD6 77
-+#define SCANCODE_CURSORRIGHT 77
-+#define SCANCODE_KEYPADPLUS 78
-+#define SCANCODE_KEYPAD1 79
-+#define SCANCODE_CURSORDOWNLEFT 79
-+#define SCANCODE_KEYPAD2 80
-+#define SCANCODE_CURSORDOWN 80
-+#define SCANCODE_KEYPAD3 81
-+#define SCANCODE_CURSORDOWNRIGHT 81
-+#define SCANCODE_KEYPAD0 82
-+#define SCANCODE_KEYPADPERIOD 83
-+
-+#define SCANCODE_LESS 86
-+
-+#define SCANCODE_F11 87
-+#define SCANCODE_F12 88
-+
-+#define SCANCODE_KEYPADENTER 89
-+#define SCANCODE_RIGHTCONTROL 90
-+#define SCANCODE_KEYPADDIVIDE 91
-+#define SCANCODE_PRINTSCREEN 92
-+#define SCANCODE_RIGHTALT 93
-+#define SCANCODE_BREAK 104
-+
-+#define SCANCODE_HOME 94
-+#define SCANCODE_CURSORBLOCKUP 95
-+#define SCANCODE_PAGEUP 96
-+#define SCANCODE_CURSORBLOCKLEFT 97
-+#define SCANCODE_CURSORBLOCKRIGHT 98
-+#define SCANCODE_END 99
-+#define SCANCODE_CURSORBLOCKDOWN 100
-+#define SCANCODE_PAGEDOWN 101
-+#define SCANCODE_INSERT 102
-+#define SCANCODE_REMOVE 103
-+
-+#define SCANCODE_LEFTWIN 105
-+#define SCANCODE_RIGHTWIN 106
-+
diff --git a/multimedia/kodi/files/patch-xbmc_windowing_rpi_WinSystemRpi.cpp b/multimedia/kodi/files/patch-xbmc_windowing_rpi_WinSystemRpi.cpp
new file mode 100644
index 000000000000..6580c84f0ff0
--- /dev/null
+++ b/multimedia/kodi/files/patch-xbmc_windowing_rpi_WinSystemRpi.cpp
@@ -0,0 +1,26 @@
+--- xbmc/windowing/rpi/WinSystemRpi.cpp.orig 2020-05-19 20:47:38 UTC
++++ xbmc/windowing/rpi/WinSystemRpi.cpp
+@@ -49,13 +49,21 @@ CWinSystemRpi::CWinSystemRpi() :
+ if (getenv("KODI_AE_SINK"))
+ envSink = getenv("KODI_AE_SINK");
+
+- if (StringUtils::EqualsNoCase(envSink, "PULSE"))
++ if (StringUtils::EqualsNoCase(envSink, "ALSA"))
+ {
++ OPTIONALS::ALSARegister();
++ }
++ else if (StringUtils::EqualsNoCase(envSink, "PULSE"))
++ {
+ OPTIONALS::PulseAudioRegister();
+ }
++ else if (StringUtils::EqualsNoCase(envSink, "SNDIO"))
++ {
++ OPTIONALS::SndioRegister();
++ }
+ else
+ {
+- OPTIONALS::ALSARegister();
++ OPTIONALS::OSSRegister();
+ }
+
+ CLinuxPowerSyscall::Register();
diff --git a/multimedia/kodi/files/pkg-message.in b/multimedia/kodi/files/pkg-message.in
deleted file mode 100644
index 18f28183f199..000000000000
--- a/multimedia/kodi/files/pkg-message.in
+++ /dev/null
@@ -1,32 +0,0 @@
-[
-{ type: install
- message: <<EOM
-gpu_mem should be set to 128M on a Pi1 and 256M on a Pi2,
-the file to modify is /boot/msdos/config.txt
-
-To enable the automount feature, make sure your user is allowed to mount
-removable devices, dbus and hald are running and these lines are present in
-.kodi/userdata/advancedsettings.xml
-
-<?xml version="1.0" encoding="UTF-8"?>
-<advancedsettings>
- <handlemounting>true</handlemounting>
-</advancedsettings>
-
-For a better user experience put the following settings in /etc/rc.conf:
-powerd_enable="YES"
-
-moused_enable="YES"
-moused_type="auto"
-moused_port="/dev/ums0" # Set to your mouse port.
-moused_flags="-F 25" # Limit report rate to 25 reports/sec, you can bump it
- # to 40 on a Pi2
-
-To run kodi:
-kodi ; sysctl dev.fb.0.resync=1
-
-Keyboard is in QWERTY, the layout can be changed in kodi:
-System -> Settings -> Appearance -> International -> Keyboard layouts
-EOM
-}
-]
diff --git a/multimedia/kodi/pkg-plist b/multimedia/kodi/pkg-plist
index 0424dfb3c0f5..17baec42ce3e 100644
--- a/multimedia/kodi/pkg-plist
+++ b/multimedia/kodi/pkg-plist
@@ -1,80 +1,82 @@
+bin/TexturePacker
bin/kodi
bin/kodi-standalone
-bin/xbmc
-bin/xbmc-standalone
include/kodi/AEChannelData.h
-include/kodi/DVDDemuxPacket.h
+include/kodi/ActionIDs.h
+include/kodi/AddonBase.h
+include/kodi/DemuxCrypto.h
+include/kodi/DemuxPacket.h
+include/kodi/Filesystem.h
+include/kodi/General.h
include/kodi/IFileTypes.h
-include/kodi/kodi_adsp_dll.h
-include/kodi/kodi_adsp_types.h
-include/kodi/kodi_audiodec_dll.h
-include/kodi/kodi_audiodec_types.h
-include/kodi/kodi_audioengine_types.h
-include/kodi/kodi_inputstream_dll.h
-include/kodi/kodi_inputstream_types.h
-include/kodi/kodi_peripheral_callbacks.h
-include/kodi/kodi_peripheral_dll.h
-include/kodi/kodi_peripheral_types.h
-include/kodi/kodi_peripheral_utils.hpp
+include/kodi/Network.h
+include/kodi/StreamCodec.h
+include/kodi/StreamCrypto.h
+include/kodi/TimingConstants.h
+include/kodi/XBMC_vkeys.h
+include/kodi/addon-instance/AudioDecoder.h
+include/kodi/addon-instance/AudioEncoder.h
+include/kodi/addon-instance/ImageDecoder.h
+include/kodi/addon-instance/Inputstream.h
+include/kodi/addon-instance/Peripheral.h
+include/kodi/addon-instance/PeripheralUtils.h
+include/kodi/addon-instance/Screensaver.h
+include/kodi/addon-instance/VFS.h
+include/kodi/addon-instance/VideoCodec.h
+include/kodi/addon-instance/Visualization.h
+include/kodi/gui/General.h
+include/kodi/gui/ListItem.h
+include/kodi/gui/Window.h
+include/kodi/gui/controls/Button.h
+include/kodi/gui/controls/Edit.h
+include/kodi/gui/controls/FadeLabel.h
+include/kodi/gui/controls/Image.h
+include/kodi/gui/controls/Label.h
+include/kodi/gui/controls/Progress.h
+include/kodi/gui/controls/RadioButton.h
+include/kodi/gui/controls/Rendering.h
+include/kodi/gui/controls/SettingsSlider.h
+include/kodi/gui/controls/Slider.h
+include/kodi/gui/controls/Spin.h
+include/kodi/gui/controls/TextBox.h
+include/kodi/gui/definitions.h
+include/kodi/gui/dialogs/ContextMenu.h
+include/kodi/gui/dialogs/ExtendedProgress.h
+include/kodi/gui/dialogs/FileBrowser.h
+include/kodi/gui/dialogs/Keyboard.h
+include/kodi/gui/dialogs/Numeric.h
+include/kodi/gui/dialogs/OK.h
+include/kodi/gui/dialogs/Progress.h
+include/kodi/gui/dialogs/Select.h
+include/kodi/gui/dialogs/TextViewer.h
+include/kodi/gui/dialogs/YesNo.h
+include/kodi/kodi_game_dll.h
+include/kodi/kodi_game_types.h
include/kodi/kodi_vfs_types.h
-include/kodi/kodi_vfs_utils.hpp
-include/kodi/libKODI_adsp.h
-include/kodi/libKODI_audioengine.h
+include/kodi/libKODI_game.h
include/kodi/libKODI_guilib.h
-include/kodi/libKODI_inputstream.h
-include/kodi/libKODI_peripheral.h
include/kodi/libXBMC_addon.h
-include/kodi/libXBMC_codec.h
include/kodi/libXBMC_pvr.h
-include/kodi/xbmc_addon_cpp_dll.h
+include/kodi/platform/android/System.h
+include/kodi/tools/DllHelper.h
+include/kodi/versions.h
include/kodi/xbmc_addon_dll.h
include/kodi/xbmc_addon_types.h
-include/kodi/xbmc_audioenc_dll.h
-include/kodi/xbmc_audioenc_types.h
-include/kodi/xbmc_codec_types.h
include/kodi/xbmc_epg_types.h
include/kodi/xbmc_pvr_dll.h
include/kodi/xbmc_pvr_types.h
-include/kodi/xbmc_scr_dll.h
-include/kodi/xbmc_scr_types.h
-include/kodi/xbmc_vis_dll.h
-include/kodi/xbmc_vis_types.h
-include/xbmc
-lib/kodi/AddOptions.cmake
-lib/kodi/AddonHelpers.cmake
-lib/kodi/ArchSetup.cmake
-lib/kodi/CMakeHelpers.cmake
-lib/kodi/CheckCommits.cmake
-lib/kodi/CheckTargetPlatform.cmake
-lib/kodi/GenerateVersionedFiles.cmake
-lib/kodi/GeneratorSetup.cmake
-lib/kodi/HandleDepends.cmake
-lib/kodi/KodiConfig.cmake
-lib/kodi/Macros.cmake
-lib/kodi/PrepareEnv.cmake
-lib/kodi/ProjectMacros.cmake
-lib/kodi/Uninstall.cmake
-lib/kodi/addons/library.kodi.adsp/libKODI_adsp-%%ARCH%%-freebsd.so
-lib/kodi/addons/library.kodi.audioengine/libKODI_audioengine-%%ARCH%%-freebsd.so
-lib/kodi/addons/library.kodi.guilib/libKODI_guilib-%%ARCH%%-freebsd.so
-lib/kodi/addons/library.kodi.inputstream/libKODI_inputstream-%%ARCH%%-freebsd.so
-lib/kodi/addons/library.kodi.peripheral/libKODI_peripheral-%%ARCH%%-freebsd.so
-lib/kodi/addons/library.xbmc.addon/libXBMC_addon-%%ARCH%%-freebsd.so
-lib/kodi/addons/library.xbmc.codec/libXBMC_codec-%%ARCH%%-freebsd.so
-lib/kodi/addons/library.xbmc.pvr/libXBMC_pvr-%%ARCH%%-freebsd.so
-lib/kodi/kodi.bin
-%%X86%%lib/kodi/kodi-xrandr
-lib/kodi/system/libcpluff-%%ARCH%%-freebsd.so
-lib/kodi/system/libexif-%%ARCH%%-freebsd.so
-lib/kodi/system/players/VideoPlayer/libdvdcss-%%ARCH%%-freebsd.so
+%%GBM%%lib/kodi/kodi-gbm
+%%RPI%%lib/kodi/kodi-rbpi
+%%WAYLAND%%lib/kodi/kodi-wayland
+%%X11%%lib/kodi/kodi-x11
+%%X11%%lib/kodi/kodi-xrandr
+%%SSE4_1%%lib/kodi/system/libsse4-%%ARCH%%-freebsd.so
lib/kodi/system/players/VideoPlayer/libdvdnav-%%ARCH%%-freebsd.so
-lib/xbmc
man/man1/kodi.1.gz
man/man1/kodi.bin.1.gz
share/applications/kodi.desktop
-%%PORTDOCS%%%%DOCSDIR%%/LICENSE.GPL
-%%PORTDOCS%%%%DOCSDIR%%/README.linux
-%%PORTDOCS%%%%DOCSDIR%%/copying.txt
+%%PORTDOCS%%%%DOCSDIR%%/LICENSE.md
+%%PORTDOCS%%%%DOCSDIR%%/README.Linux.md
%%PORTDOCS%%%%DOCSDIR%%/version.txt
share/icons/hicolor/128x128/apps/kodi.png
share/icons/hicolor/16x16/apps/kodi.png
@@ -84,28 +86,44 @@ share/icons/hicolor/256x256/apps/kodi.png
share/icons/hicolor/32x32/apps/kodi.png
share/icons/hicolor/48x48/apps/kodi.png
share/icons/hicolor/64x64/apps/kodi.png
-%%DATADIR%%/addons/audioencoder.xbmc.builtin.aac/addon.xml
-%%DATADIR%%/addons/audioencoder.xbmc.builtin.aac/icon.png
-%%DATADIR%%/addons/audioencoder.xbmc.builtin.aac/resources/language/English/strings.po
-%%DATADIR%%/addons/audioencoder.xbmc.builtin.aac/resources/settings.xml
-%%DATADIR%%/addons/audioencoder.xbmc.builtin.wma/addon.xml
-%%DATADIR%%/addons/audioencoder.xbmc.builtin.wma/icon.png
-%%DATADIR%%/addons/audioencoder.xbmc.builtin.wma/resources/language/English/strings.po
-%%DATADIR%%/addons/audioencoder.xbmc.builtin.wma/resources/settings.xml
+%%DATADIR%%/addons/audioencoder.kodi.builtin.aac/addon.xml
+%%DATADIR%%/addons/audioencoder.kodi.builtin.aac/icon.png
+%%DATADIR%%/addons/audioencoder.kodi.builtin.aac/resources/language/English/strings.po
+%%DATADIR%%/addons/audioencoder.kodi.builtin.aac/resources/settings.xml
+%%DATADIR%%/addons/audioencoder.kodi.builtin.wma/addon.xml
+%%DATADIR%%/addons/audioencoder.kodi.builtin.wma/icon.png
+%%DATADIR%%/addons/audioencoder.kodi.builtin.wma/resources/language/English/strings.po
+%%DATADIR%%/addons/audioencoder.kodi.builtin.wma/resources/settings.xml
%%DATADIR%%/addons/game.controller.default/addon.xml
-%%DATADIR%%/addons/game.controller.default/icon.png
+%%DATADIR%%/addons/game.controller.default/resources/icon.png
%%DATADIR%%/addons/game.controller.default/resources/language/resource.language.en_gb/strings.po
%%DATADIR%%/addons/game.controller.default/resources/layout.png
%%DATADIR%%/addons/game.controller.default/resources/layout.xml
-%%DATADIR%%/addons/kodi.adsp/addon.xml
-%%DATADIR%%/addons/kodi.audiodecoder/addon.xml
-%%DATADIR%%/addons/kodi.game/addon.xml
-%%DATADIR%%/addons/kodi.game/controller.xsd
-%%DATADIR%%/addons/kodi.guilib/addon.xml
-%%DATADIR%%/addons/kodi.guilib/addon.xml.in
-%%DATADIR%%/addons/kodi.inputstream/addon.xml
-%%DATADIR%%/addons/kodi.peripheral/addon.xml
+%%DATADIR%%/addons/game.controller.snes/addon.xml
+%%DATADIR%%/addons/game.controller.snes/resources/icon.png
+%%DATADIR%%/addons/game.controller.snes/resources/language/resource.language.en_gb/strings.po
+%%DATADIR%%/addons/game.controller.snes/resources/layout.png
+%%DATADIR%%/addons/game.controller.snes/resources/layout.xml
+%%DATADIR%%/addons/game.controller.snes/resources/mask.png
+%%DATADIR%%/addons/kodi.binary.global.audioengine/addon.xml
+%%DATADIR%%/addons/kodi.binary.global.filesystem/addon.xml
+%%DATADIR%%/addons/kodi.binary.global.general/addon.xml
+%%DATADIR%%/addons/kodi.binary.global.gui/addon.xml
+%%DATADIR%%/addons/kodi.binary.global.main/addon.xml
+%%DATADIR%%/addons/kodi.binary.global.network/addon.xml
+%%DATADIR%%/addons/kodi.binary.instance.audiodecoder/addon.xml
+%%DATADIR%%/addons/kodi.binary.instance.audioencoder/addon.xml
+%%DATADIR%%/addons/kodi.binary.instance.game/addon.xml
+%%DATADIR%%/addons/kodi.binary.instance.imagedecoder/addon.xml
+%%DATADIR%%/addons/kodi.binary.instance.inputstream/addon.xml
+%%DATADIR%%/addons/kodi.binary.instance.peripheral/addon.xml
+%%DATADIR%%/addons/kodi.binary.instance.pvr/addon.xml
+%%DATADIR%%/addons/kodi.binary.instance.screensaver/addon.xml
+%%DATADIR%%/addons/kodi.binary.instance.vfs/addon.xml
+%%DATADIR%%/addons/kodi.binary.instance.videocodec/addon.xml
+%%DATADIR%%/addons/kodi.binary.instance.visualization/addon.xml
%%DATADIR%%/addons/kodi.resource/addon.xml
+%%DATADIR%%/addons/kodi.resource/games.xsd
%%DATADIR%%/addons/kodi.resource/icon.png
%%DATADIR%%/addons/kodi.resource/images.xsd
%%DATADIR%%/addons/kodi.resource/language.xsd
@@ -253,138 +271,124 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/metadata.themoviedb.org/addon.xml
%%DATADIR%%/addons/metadata.themoviedb.org/changelog.txt
%%DATADIR%%/addons/metadata.themoviedb.org/icon.png
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Afrikaans/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Albanian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Amharic/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Basque/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Belarusian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Bulgarian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Burmese/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Catalan/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Chinese (Simple)/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Chinese (Traditional)/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Croatian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Czech/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Danish/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Dutch/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/English (New Zealand)/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/English (US)/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/English/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Estonian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Finnish/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/French (Canada)/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/French/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Galician/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/German/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Greek/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Hebrew/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Hindi (Devanagiri)/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Hungarian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Icelandic/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Indonesian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Italian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Japanese/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Korean/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Lithuanian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Macedonian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Malay/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Malayalam/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Norwegian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Polish/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Portuguese (Brazil)/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Portuguese/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Romanian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Russian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Slovak/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Slovenian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Spanish (Argentina)/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Spanish (Mexico)/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Spanish/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Swedish/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Tamil (India)/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Thai/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Turkish/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Ukrainian/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Uzbek/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Vietnamese/strings.po
-%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Welsh/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.af_za/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.am_et/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.be_by/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.bg_bg/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.ca_es/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.cs_cz/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.cy_gb/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.da_dk/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.de_de/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.el_gr/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.en_gb/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.en_nz/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.en_us/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.es_ar/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.es_es/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.es_mx/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.et_ee/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.eu_es/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.fi_fi/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.fr_ca/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.fr_fr/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.gl_es/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.he_il/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.hi_in/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.hr_hr/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.hu_hu/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.id_id/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.is_is/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.it_it/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.ja_jp/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.ko_kr/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.lt_lt/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.mk_mk/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.ml_in/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.ms_my/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.my_mm/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.nb_no/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.nl_nl/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.pl_pl/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.pt_br/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.pt_pt/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.ro_ro/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.ru_ru/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.sk_sk/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.sl_si/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.sq_al/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.sv_se/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.ta_in/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.th_th/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.tr_tr/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.uk_ua/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.uz_uz/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.vi_vn/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.zh_cn/strings.po
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/resource.language.zh_tw/strings.po
%%DATADIR%%/addons/metadata.themoviedb.org/resources/settings.xml
%%DATADIR%%/addons/metadata.themoviedb.org/tmdb.xml
-%%DATADIR%%/addons/metadata.tvdb.com/addon.xml
-%%DATADIR%%/addons/metadata.tvdb.com/changelog.txt
-%%DATADIR%%/addons/metadata.tvdb.com/icon.png
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Afrikaans/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Albanian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Amharic/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Arabic/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Armenian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Azerbaijani/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Basque/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Belarusian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Bosnian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Bulgarian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Burmese/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Catalan/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Chinese (Simple)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Chinese (Traditional)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Croatian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Czech/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Danish/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Dutch/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/English (Australia)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/English (New Zealand)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/English (US)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/English/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Esperanto/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Estonian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Faroese/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Finnish/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/French (Canada)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/French/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Galician/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Georgian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/German/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Greek/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Hebrew/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Hindi (Devanagiri)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Hungarian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Icelandic/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Indonesian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Italian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Japanese/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Korean/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Latvian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Lithuanian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Macedonian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Malay/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Malayalam/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Maltese/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Mongolian (Mongolia)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Norwegian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Persian (Iran)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Persian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Polish/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Portuguese (Brazil)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Portuguese/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Romanian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Russian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Serbian (Cyrillic)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Serbian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Slovak/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Slovenian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Spanish (Argentina)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Spanish (Mexico)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Spanish/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Swedish/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Tamil (India)/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Thai/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Turkish/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Ukrainian/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Uzbek/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Vietnamese/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Welsh/strings.po
-%%DATADIR%%/addons/metadata.tvdb.com/resources/settings.xml
-%%DATADIR%%/addons/metadata.tvdb.com/tvdb.xml
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/LICENSE.TXT
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/addon.xml
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/changelog.txt
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/icon.png
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Afrikaans/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Albanian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Amharic/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Basque/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Belarusian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Bulgarian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Burmese/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Catalan/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Chinese (Simple)/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Chinese (Traditional)/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Croatian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Czech/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Danish/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Dutch/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/English (New Zealand)/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/English (US)/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/English/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Estonian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Finnish/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/French (Canada)/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/French/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Galician/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/German/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Greek/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Hebrew/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Hindi (Devanagiri)/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Hungarian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Icelandic/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Indonesian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Italian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Japanese/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Korean/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Lithuanian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Macedonian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Malay/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Malayalam/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Norwegian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Polish/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Portuguese (Brazil)/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Portuguese/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Romanian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Russian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Slovak/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Slovenian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Spanish (Argentina)/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Spanish (Mexico)/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Spanish/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Swedish/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Tamil (India)/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Thai/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Turkish/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Ukrainian/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Uzbek/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Vietnamese/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/language/Welsh/strings.po
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/resources/settings.xml
+%%DATADIR%%/addons/metadata.tvshows.themoviedb.org/tmdb.xml
%%DATADIR%%/addons/repository.xbmc.org/addon.xml
%%DATADIR%%/addons/repository.xbmc.org/icon.png
%%DATADIR%%/addons/resource.images.weathericons.default/License.txt
@@ -519,13 +523,16 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/resource.language.zh_tw/strings.po
%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/settings.xml
%%DATADIR%%/addons/script.module.pil/addon.xml
+%%DATADIR%%/addons/script.module.pil/icon.png
+%%DATADIR%%/addons/script.module.pycryptodome/addon.xml
+%%DATADIR%%/addons/script.module.pycryptodome/icon.png
%%DATADIR%%/addons/service.xbmc.versioncheck/LICENSE.txt
%%DATADIR%%/addons/service.xbmc.versioncheck/README.md
%%DATADIR%%/addons/service.xbmc.versioncheck/addon.xml
%%DATADIR%%/addons/service.xbmc.versioncheck/changelog.txt
%%DATADIR%%/addons/service.xbmc.versioncheck/icon.png
%%DATADIR%%/addons/service.xbmc.versioncheck/lib/__init__.py
-%%DATADIR%%/addons/service.xbmc.versioncheck/lib/aptdeamonhandler.py
+%%DATADIR%%/addons/service.xbmc.versioncheck/lib/aptdaemonhandler.py
%%DATADIR%%/addons/service.xbmc.versioncheck/lib/common.py
%%DATADIR%%/addons/service.xbmc.versioncheck/lib/jsoninterface.py
%%DATADIR%%/addons/service.xbmc.versioncheck/lib/shellhandlerapt.py
@@ -610,7 +617,7 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/skin.estouchy/LICENSE.txt
%%DATADIR%%/addons/skin.estouchy/addon.xml
%%DATADIR%%/addons/skin.estouchy/background/primary.jpg
-%%DATADIR%%/addons/skin.estouchy/background/secondary.jpg
+%%DATADIR%%/addons/skin.estouchy/background/secondary1.png
%%DATADIR%%/addons/skin.estouchy/background/tv.jpg
%%DATADIR%%/addons/skin.estouchy/changelog.txt
%%DATADIR%%/addons/skin.estouchy/colors/defaults.xml
@@ -690,424 +697,7 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/skin.estouchy/language/resource.language.vi_vn/strings.po
%%DATADIR%%/addons/skin.estouchy/language/resource.language.zh_cn/strings.po
%%DATADIR%%/addons/skin.estouchy/language/resource.language.zh_tw/strings.po
-%%DATADIR%%/addons/skin.estouchy/media/DefaultActor.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddSource.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddon.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonAlbumInfo.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonArtistInfo.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonAudioDSP.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonAudioDecoder.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonAudioEncoder.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonContextItem.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonGame.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonHelper.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonImages.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonInfoLibrary.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonInfoProvider.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonInputstream.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonLanguage.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonLibrary.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonLookAndFeel.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonLyrics.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonMovieInfo.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonMusic.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonMusicVideoInfo.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonNone.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonPVRClient.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonPeripheral.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonPicture.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonProgram.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonRepository.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonScreensaver.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonService.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonSkin.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonSubtitles.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonTvInfo.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonUISounds.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonVideo.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonVisualization.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonWeather.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonWebSkin.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonsInstalled.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonsRecentlyUpdated.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonsRepo.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonsSearch.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonsUpdates.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAddonsZip.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAlbumCover.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultArtist.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultAudio.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultCDDA.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultCountry.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultDVDEmpty.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultDVDFull.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultDVDRom.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultDirector.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultFile.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultFolder.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultFolderBack.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultGameAddons.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultGenre.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultHardDisk.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultIconError.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultIconInfo.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultIconWarning.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultInProgressShows.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMovieTitle.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMovies.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicAlbums.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicArtists.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicCompilations.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicGenres.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicPlaylist.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicPlaylists.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicRecentlyAdded.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicRecentlyPlayed.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicRoles.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicSearch.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicSongs.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicTop100.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicTop100Albums.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicTop100Songs.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicVideoTitle.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicVideos.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultMusicYears.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultNetwork.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultPicture.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultPlaylist.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultProgram.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultRecentlyAddedEpisodes.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultRecentlyAddedMovies.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultRecentlyAddedMusicVideos.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultRemovableDisk.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultScript.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultSets.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultStudios.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultTVShowTitle.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultTVShows.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultTags.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultUser.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultVCD.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultVideo.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultVideoCover.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultVideoDeleted.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultVideoPlaylist.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultVideoPlaylists.png
-%%DATADIR%%/addons/skin.estouchy/media/DefaultYear.png
-%%DATADIR%%/addons/skin.estouchy/media/Makefile
-%%DATADIR%%/addons/skin.estouchy/media/Makefile.in
-%%DATADIR%%/addons/skin.estouchy/media/OverlayWatched.png
-%%DATADIR%%/addons/skin.estouchy/media/OverlayWatching.png
-%%DATADIR%%/addons/skin.estouchy/media/arrow_down.png
-%%DATADIR%%/addons/skin.estouchy/media/arrow_left.png
-%%DATADIR%%/addons/skin.estouchy/media/arrow_right.png
-%%DATADIR%%/addons/skin.estouchy/media/arrow_up.png
-%%DATADIR%%/addons/skin.estouchy/media/back.png
-%%DATADIR%%/addons/skin.estouchy/media/black.png
-%%DATADIR%%/addons/skin.estouchy/media/blank.png
-%%DATADIR%%/addons/skin.estouchy/media/busy.png
-%%DATADIR%%/addons/skin.estouchy/media/button_nofocus.png
-%%DATADIR%%/addons/skin.estouchy/media/calibrate_aspect.png
-%%DATADIR%%/addons/skin.estouchy/media/calibrate_bottom.png
-%%DATADIR%%/addons/skin.estouchy/media/calibrate_subtitles.png
-%%DATADIR%%/addons/skin.estouchy/media/calibrate_top.png
-%%DATADIR%%/addons/skin.estouchy/media/dialog_back.png
-%%DATADIR%%/addons/skin.estouchy/media/dialog_header.png
-%%DATADIR%%/addons/skin.estouchy/media/dialogbutton-focus.png
-%%DATADIR%%/addons/skin.estouchy/media/dialogbutton-nofocus.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/0.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/112.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/128.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/144.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/16.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/160.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/176.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/192.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/208.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/224.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/240.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/256.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/32.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/48.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/64.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/80.png
-%%DATADIR%%/addons/skin.estouchy/media/epg/96.png
-%%DATADIR%%/addons/skin.estouchy/media/epg_marker.png
-%%DATADIR%%/addons/skin.estouchy/media/epg_record.png
-%%DATADIR%%/addons/skin.estouchy/media/epg_schedule.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/aspectratio/1.33.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/aspectratio/1.37.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/aspectratio/1.66.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/aspectratio/1.78.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/aspectratio/1.85.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/aspectratio/2.20.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/aspectratio/2.35.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/aspectratio/2.40.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/aspectratio/2.55.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/aspectratio/%%PYTHON_VER%%6.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/0.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/1.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/10.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/2.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/3.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/4.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/5.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/6.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/7.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/8.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/aac.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/ac3.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/aif.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/aifc.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/aiff.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/alac.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/ape.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/avc.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/cdda.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/dca.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/dolbydigital.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/dts.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/dtshd_hra.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/dtshd_ma.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/dtsma.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/eac3.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/flac.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/mp1.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/mp2.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/mp3.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/ogg.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/opus.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/pcm.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/pcm_bluray.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/pcm_s16le.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/pcm_s24le.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/truehd.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/vorbis.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/wav.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/wavpack.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/wma.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/wmapro.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/audio/wmav2.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/blank.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/resolution/1080.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/resolution/480.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/resolution/540.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/resolution/576.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/resolution/720.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/source/Set.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/1080.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/3D.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/480.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/4K.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/540.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/576.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/720.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/avc1.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/bluray.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/divx.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/dvd.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/flv.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/h262.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/h264.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/hddvd.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/hdmv.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/hev1.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/hevc.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/hvc1.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/mpeg1video.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/mpeg2video.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/tv.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/vc-1.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/vhs.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/vp8.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/vp9.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/wmv.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/wmv3.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/wvc1.png
-%%DATADIR%%/addons/skin.estouchy/media/flagging/video/xvid.png
-%%DATADIR%%/addons/skin.estouchy/media/grey.png
-%%DATADIR%%/addons/skin.estouchy/media/header.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_breadcrumb_addons.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_breadcrumb_music.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_breadcrumb_pictures.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_breadcrumb_settings.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_breadcrumb_tv.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_breadcrumb_video.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_breadcrumb_weather.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_button_back.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_button_city.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_button_favourites.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_button_filemanager.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_button_filter.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_button_filtered.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_button_logoff.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_button_refresh.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_button_settings.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_button_shutdown.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_button_view.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_dialog_close.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_keyboard_arrowkey.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_keyboard_backspace.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_keyboard_enter.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_keyboard_shift.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_menu_addons.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_menu_favourites.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_menu_livetv.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_menu_movies.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_menu_music.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_menu_pictures.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_menu_radio.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_menu_tvshows.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_menu_videos.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_menu_weather.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_settings_addons.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_settings_interface.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_settings_livetv.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_settings_media.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_settings_player.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_settings_profiles.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_settings_services.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_settings_system.png
-%%DATADIR%%/addons/skin.estouchy/media/icon_settings_systeminfo.png
-%%DATADIR%%/addons/skin.estouchy/media/kodi_logo.png
-%%DATADIR%%/addons/skin.estouchy/media/list_focus.png
-%%DATADIR%%/addons/skin.estouchy/media/osd_forward.png
-%%DATADIR%%/addons/skin.estouchy/media/osd_next.png
-%%DATADIR%%/addons/skin.estouchy/media/osd_pause.png
-%%DATADIR%%/addons/skin.estouchy/media/osd_play.png
-%%DATADIR%%/addons/skin.estouchy/media/osd_previous.png
-%%DATADIR%%/addons/skin.estouchy/media/osd_record.png
-%%DATADIR%%/addons/skin.estouchy/media/osd_rewind.png
-%%DATADIR%%/addons/skin.estouchy/media/osd_stop.png
-%%DATADIR%%/addons/skin.estouchy/media/osd_volume.png
-%%DATADIR%%/addons/skin.estouchy/media/panel.png
-%%DATADIR%%/addons/skin.estouchy/media/panel_shadow.png
-%%DATADIR%%/addons/skin.estouchy/media/pointer_focus.png
-%%DATADIR%%/addons/skin.estouchy/media/radiobutton_off.png
-%%DATADIR%%/addons/skin.estouchy/media/radiobutton_on.png
-%%DATADIR%%/addons/skin.estouchy/media/rating/0.png
-%%DATADIR%%/addons/skin.estouchy/media/rating/1.png
-%%DATADIR%%/addons/skin.estouchy/media/rating/10.png
-%%DATADIR%%/addons/skin.estouchy/media/rating/2.png
-%%DATADIR%%/addons/skin.estouchy/media/rating/3.png
-%%DATADIR%%/addons/skin.estouchy/media/rating/4.png
-%%DATADIR%%/addons/skin.estouchy/media/rating/5.png
-%%DATADIR%%/addons/skin.estouchy/media/rating/6.png
-%%DATADIR%%/addons/skin.estouchy/media/rating/7.png
-%%DATADIR%%/addons/skin.estouchy/media/rating/8.png
-%%DATADIR%%/addons/skin.estouchy/media/rating/9.png
-%%DATADIR%%/addons/skin.estouchy/media/roundbutton-focus.png
-%%DATADIR%%/addons/skin.estouchy/media/separator.png
-%%DATADIR%%/addons/skin.estouchy/media/side_panel.png
-%%DATADIR%%/addons/skin.estouchy/media/slider.png
-%%DATADIR%%/addons/skin.estouchy/media/slider_focus.png
-%%DATADIR%%/addons/skin.estouchy/media/slider_nofocus.png
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/-.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/ar.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/bg.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/bs.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/ca.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/cs.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/da.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/de.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/el.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/en.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/es.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/et.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/fa.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/fi.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/fo.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/fr.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/gl.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/he.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/hi.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/hr.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/hu.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/hy.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/id.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/is.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/it.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/ja.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/kk.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/ko.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/lb.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/lt.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/lv.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/mk.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/ms.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/nl.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/no.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/pb.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/pl.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/pt.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/ro.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/ru.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/sk.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/sl.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/sq.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/sr.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/sv.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/tr.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/uk.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/vi.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/flags/zh.gif
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/rating/rating0.png
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/rating/rating1.png
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/rating/rating2.png
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/rating/rating3.png
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/rating/rating4.png
-%%DATADIR%%/addons/skin.estouchy/media/subtitles/rating/rating5.png
-%%DATADIR%%/addons/skin.estouchy/media/thumb_focus.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/0.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/1.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/10.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/11.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/12.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/13.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/14.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/15.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/16.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/17.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/18.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/19.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/2.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/20.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/21.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/22.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/23.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/24.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/25.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/26.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/27.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/28.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/29.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/3.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/30.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/31.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/32.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/33.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/34.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/35.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/36.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/37.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/38.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/39.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/4.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/40.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/41.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/42.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/43.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/44.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/45.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/46.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/47.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/5.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/6.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/7.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/8.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/9.png
-%%DATADIR%%/addons/skin.estouchy/media/weather/na.png
-%%DATADIR%%/addons/skin.estouchy/media/white.png
+%%DATADIR%%/addons/skin.estouchy/media/Textures.xbt
%%DATADIR%%/addons/skin.estouchy/resources/fanart.jpg
%%DATADIR%%/addons/skin.estouchy/resources/icon.png
%%DATADIR%%/addons/skin.estouchy/resources/screenshot-01.jpg
@@ -1128,7 +718,6 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/skin.estouchy/xml/Defaults.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogAddonInfo.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogAddonSettings.xml
-%%DATADIR%%/addons/skin.estouchy/xml/DialogAudioDSPManager.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogBusy.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogButtonMenu.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogConfirm.xml
@@ -1141,10 +730,10 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/skin.estouchy/xml/DialogMusicInfo.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogNotification.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogNumeric.xml
+%%DATADIR%%/addons/skin.estouchy/xml/DialogPVRChannelGuide.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogPVRChannelManager.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogPVRChannelsOSD.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogPVRGroupManager.xml
-%%DATADIR%%/addons/skin.estouchy/xml/DialogPVRGuideOSD.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogPVRGuideSearch.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogPVRInfo.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogPVRRadioRDSInfo.xml
@@ -1153,6 +742,7 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/skin.estouchy/xml/DialogSeekBar.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogSelect.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogSettings.xml
+%%DATADIR%%/addons/skin.estouchy/xml/DialogSlider.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogSubtitles.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogTextViewer.xml
%%DATADIR%%/addons/skin.estouchy/xml/DialogVideoInfo.xml
@@ -1161,6 +751,7 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/skin.estouchy/xml/FileBrowser.xml
%%DATADIR%%/addons/skin.estouchy/xml/FileManager.xml
%%DATADIR%%/addons/skin.estouchy/xml/Font.xml
+%%DATADIR%%/addons/skin.estouchy/xml/GameOSD.xml
%%DATADIR%%/addons/skin.estouchy/xml/Home.xml
%%DATADIR%%/addons/skin.estouchy/xml/Includes.xml
%%DATADIR%%/addons/skin.estouchy/xml/IncludesCodecFlagging.xml
@@ -1169,6 +760,7 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/skin.estouchy/xml/LoginScreen.xml
%%DATADIR%%/addons/skin.estouchy/xml/MusicOSD.xml
%%DATADIR%%/addons/skin.estouchy/xml/MusicVisualisation.xml
+%%DATADIR%%/addons/skin.estouchy/xml/MyGames.xml
%%DATADIR%%/addons/skin.estouchy/xml/MyMusicNav.xml
%%DATADIR%%/addons/skin.estouchy/xml/MyMusicPlaylistEditor.xml
%%DATADIR%%/addons/skin.estouchy/xml/MyPVRChannels.xml
@@ -1233,6 +825,8 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/skin.estuary/fonts/NotoSans-Bold.ttf
%%DATADIR%%/addons/skin.estuary/fonts/NotoSans-Regular.ttf
%%DATADIR%%/addons/skin.estuary/fonts/Roboto-Thin.ttf
+%%DATADIR%%/addons/skin.estuary/fonts/heebo_licence.txt
+%%DATADIR%%/addons/skin.estuary/fonts/mardoto_license.txt
%%DATADIR%%/addons/skin.estuary/fonts/noto_license.txt
%%DATADIR%%/addons/skin.estuary/fonts/roboto_license.txt
%%DATADIR%%/addons/skin.estuary/language/resource.language.af_za/strings.po
@@ -1309,653 +903,9 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/skin.estuary/language/resource.language.vi_vn/strings.po
%%DATADIR%%/addons/skin.estuary/language/resource.language.zh_cn/strings.po
%%DATADIR%%/addons/skin.estuary/language/resource.language.zh_tw/strings.po
-%%DATADIR%%/addons/skin.estuary/media/DefaultActor.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultActorSolid.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddSource.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddon.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonAlbumInfo.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonArtistInfo.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonAudioDSP.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonAudioDecoder.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonAudioEncoder.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonContextItem.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonGame.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonHelper.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonImages.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonInfoLibrary.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonInfoProvider.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonInputstream.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonLanguage.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonLibrary.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonLookAndFeel.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonLyrics.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonMovieInfo.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonMusic.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonMusicVideoInfo.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonNone.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonPVRClient.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonPeripheral.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonPicture.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonProgram.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonRepository.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonScreensaver.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonService.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonSkin.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonSubtitles.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonTvInfo.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonUISounds.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonVideo.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonVisualization.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonWeather.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonWebSkin.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonsInstalled.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonsRecentlyUpdated.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonsRepo.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonsSearch.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonsUpdates.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAddonsZip.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAlbumCover.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultArtist.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAudio.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultAudioDSP.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultBackBanner.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultCDDA.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultCountry.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultDVDEmpty.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultDVDFull.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultDVDRom.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultDirector.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultFavourites.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultFile.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultFolder.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultFolderBack.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultFolderBackPoster.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultFolderBackSquare.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultFolderSquare.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultGameAddons.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultGames.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultGenre.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultHardDisk.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultIconError.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultIconInfo.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultIconWarning.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultInProgressShows.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMovieTitle.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMovies.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicAlbums.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicArtists.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicCompilations.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicGenres.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicPlaylists.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicRecentlyAdded.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicRecentlyPlayed.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicRoles.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicSearch.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicSongs.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicTop100.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicTop100Albums.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicTop100Songs.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicVideoTitle.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicVideos.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultMusicYears.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultNetwork.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultNoPreview.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultPicture.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultPlaylist.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultProgram.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultRecentlyAddedEpisodes.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultRecentlyAddedMovies.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultRecentlyAddedMusicVideos.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultRemovableDisk.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultScript.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultSets.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultStudios.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultTVShowTitle.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultTVShows.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultTags.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultUser.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultVCD.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultVideo.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultVideoCover.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultVideoDeleted.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultVideoPlaylists.png
-%%DATADIR%%/addons/skin.estuary/media/DefaultYear.png
-%%DATADIR%%/addons/skin.estuary/media/Makefile
-%%DATADIR%%/addons/skin.estuary/media/Makefile.in
-%%DATADIR%%/addons/skin.estuary/media/OverlayHD.png
-%%DATADIR%%/addons/skin.estuary/media/OverlayLocked.png
-%%DATADIR%%/addons/skin.estuary/media/OverlayRAR.png
-%%DATADIR%%/addons/skin.estuary/media/OverlayUnwatched.png
-%%DATADIR%%/addons/skin.estuary/media/OverlayWatched.png
-%%DATADIR%%/addons/skin.estuary/media/OverlayZIP.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/button-alt-nofo.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/button-fo.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/button-nofo.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/dialogbutton-fo.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/dialogbutton-nofo.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/radio-button-off.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/radio-button-on.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/roundbutton-fo.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/slider-back.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/slider-nib.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/spinctrl/arrow-light-down.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/spinctrl/arrow-light-up.png
-%%DATADIR%%/addons/skin.estuary/media/buttons/thumbnail_focused.png
-%%DATADIR%%/addons/skin.estuary/media/calibrate/cal_br.png
-%%DATADIR%%/addons/skin.estuary/media/calibrate/cal_ratio.png
-%%DATADIR%%/addons/skin.estuary/media/calibrate/cal_sub.png
-%%DATADIR%%/addons/skin.estuary/media/calibrate/cal_tl.png
-%%DATADIR%%/addons/skin.estuary/media/colors/black.png
-%%DATADIR%%/addons/skin.estuary/media/colors/grey.png
-%%DATADIR%%/addons/skin.estuary/media/colors/white.png
-%%DATADIR%%/addons/skin.estuary/media/colors/white50.png
-%%DATADIR%%/addons/skin.estuary/media/colors/white70.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/close.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/dialog-bg-nobo.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/dialog-bg.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/extendedprogress/loading-back.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/extendedprogress/loading.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/separator-grey.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/mute.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p 0.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p 1.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p 2.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p 3.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p 4.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p 5.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p 6.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p 7.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p 8.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p 9.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p0.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p1.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p10.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p100.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p11.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p12.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p13.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p14.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p15.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p16.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p17.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p18.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p19.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p2.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p20.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p21.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p22.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p23.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p24.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p25.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p26.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p27.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p28.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p29.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p3.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p30.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p31.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p32.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p33.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p34.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p35.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p36.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p37.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p38.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p39.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p4.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p40.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p41.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p42.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p43.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p44.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p45.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p46.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p47.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p48.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p49.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p5.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p50.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p51.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p52.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p53.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p54.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p55.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p56.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p57.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p58.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p59.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p6.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p60.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p61.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p62.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p63.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p64.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p65.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p66.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p67.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p68.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p69.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p7.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p70.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p71.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p72.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p73.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p74.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p75.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p76.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p77.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p78.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p79.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p8.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p80.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p81.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p82.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p83.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p84.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p85.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p86.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p87.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p88.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p89.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p9.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p90.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p91.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p92.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p93.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p94.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p95.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p96.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p97.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p98.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/progress/p99.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/volume.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/volume1.png
-%%DATADIR%%/addons/skin.estuary/media/dialogs/volume/volume2.png
-%%DATADIR%%/addons/skin.estuary/media/flags/aspectratio/1.33.png
-%%DATADIR%%/addons/skin.estuary/media/flags/aspectratio/1.37.png
-%%DATADIR%%/addons/skin.estuary/media/flags/aspectratio/1.66.png
-%%DATADIR%%/addons/skin.estuary/media/flags/aspectratio/1.78.png
-%%DATADIR%%/addons/skin.estuary/media/flags/aspectratio/1.85.png
-%%DATADIR%%/addons/skin.estuary/media/flags/aspectratio/2.20.png
-%%DATADIR%%/addons/skin.estuary/media/flags/aspectratio/2.35.png
-%%DATADIR%%/addons/skin.estuary/media/flags/aspectratio/2.40.png
-%%DATADIR%%/addons/skin.estuary/media/flags/aspectratio/2.55.png
-%%DATADIR%%/addons/skin.estuary/media/flags/aspectratio/%%PYTHON_VER%%6.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiochannel/0.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiochannel/1.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiochannel/10.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiochannel/2.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiochannel/3.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiochannel/4.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiochannel/5.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiochannel/6.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiochannel/7.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiochannel/8.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/aac.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/aac_latm.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/ac3.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/aif.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/aifc.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/aiff.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/alac.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/ape.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/avc.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/cdda.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/dca.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/dolbydigital.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/dts.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/dtshd_hra.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/dtshd_ma.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/dtsma.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/eac3.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/flac.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/mp1.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/mp2.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/mp3.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/ogg.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/opus.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/pcm.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/pcm_bluray.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/pcm_s16le.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/pcm_s24le.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/truehd.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/vorbis.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/wav.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/wavpack.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/wma.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/wmapro.png
-%%DATADIR%%/addons/skin.estuary/media/flags/audiocodec/wmav2.png
-%%DATADIR%%/addons/skin.estuary/media/flags/flag.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/0.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/1.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/10.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/2.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/3.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/4.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/5.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/6.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/7.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/8.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/9.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/rating0.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/rating1.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/rating2.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/rating3.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/rating4.png
-%%DATADIR%%/addons/skin.estuary/media/flags/starrating/rating5.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/avc1.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/bluray.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/div3.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/divx.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/dvd.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/dx50.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/flv.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/h264.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/hddvd.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/hdmv.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/hev1.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/hevc.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/hvc1.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/mp4v.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/mpeg1.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/mpeg1video.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/mpeg2.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/mpeg2video.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/mpeg4.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/tv.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/vc1.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/vc-1.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/vhs.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/vp8.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/vp9.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/wmv.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/wmv3.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/wvc1.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videocodec/xvid.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videoresolution/1080.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videoresolution/3D.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videoresolution/480.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videoresolution/4K.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videoresolution/540.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videoresolution/576.png
-%%DATADIR%%/addons/skin.estuary/media/flags/videoresolution/720.png
-%%DATADIR%%/addons/skin.estuary/media/frame/InfoBar.png
-%%DATADIR%%/addons/skin.estuary/media/frame/item-count.png
-%%DATADIR%%/addons/skin.estuary/media/frame/menu-nofo.png
-%%DATADIR%%/addons/skin.estuary/media/frame/osdfade.png
-%%DATADIR%%/addons/skin.estuary/media/icons/addonstatus/disable.png
-%%DATADIR%%/addons/skin.estuary/media/icons/addonstatus/install.png
-%%DATADIR%%/addons/skin.estuary/media/icons/addonstatus/orphan.png
-%%DATADIR%%/addons/skin.estuary/media/icons/addonstatus/update.png
-%%DATADIR%%/addons/skin.estuary/media/icons/favourites.png
-%%DATADIR%%/addons/skin.estuary/media/icons/file-manager/left-right.png
-%%DATADIR%%/addons/skin.estuary/media/icons/filemanager.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/choose_image.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/cinema.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/configure.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/director.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/disable.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/enabled.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/image.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/info.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/install.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/launch.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/play.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/play_record.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/rating.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/record.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/similar.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/timer.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/trailer.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/trailer_search.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/uninstall.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/update.png
-%%DATADIR%%/addons/skin.estuary/media/icons/infodialogs/youtube.png
-%%DATADIR%%/addons/skin.estuary/media/icons/keyboard/arrowleft.png
-%%DATADIR%%/addons/skin.estuary/media/icons/keyboard/arrowright.png
-%%DATADIR%%/addons/skin.estuary/media/icons/keyboard/backspace.png
-%%DATADIR%%/addons/skin.estuary/media/icons/keyboard/capslock.png
-%%DATADIR%%/addons/skin.estuary/media/icons/keyboard/letters.png
-%%DATADIR%%/addons/skin.estuary/media/icons/keyboard/shift.png
-%%DATADIR%%/addons/skin.estuary/media/icons/keyboard/spacebar.png
-%%DATADIR%%/addons/skin.estuary/media/icons/keyboard/symbols.png
-%%DATADIR%%/addons/skin.estuary/media/icons/logo-text.png
-%%DATADIR%%/addons/skin.estuary/media/icons/logo.png
-%%DATADIR%%/addons/skin.estuary/media/icons/menu.png
-%%DATADIR%%/addons/skin.estuary/media/icons/now-playing/fullscreen.png
-%%DATADIR%%/addons/skin.estuary/media/icons/now-playing/next.png
-%%DATADIR%%/addons/skin.estuary/media/icons/now-playing/pause.png
-%%DATADIR%%/addons/skin.estuary/media/icons/now-playing/play.png
-%%DATADIR%%/addons/skin.estuary/media/icons/now-playing/stop.png
-%%DATADIR%%/addons/skin.estuary/media/icons/power.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/PVR-HasRecording.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/PVR-HasTimer.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/PVR-HasTimerConflict.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/PVR-HasTimerDisabled.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/PVR-HasTimerError.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/PVR-HasTimerSchedule.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/PVR-HasTimerScheduleConflict.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/PVR-HasTimerScheduleDisabled.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/PVR-HasTimerScheduleError.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/PVR-IsRecording.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/epg.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/recording.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/timer-rule.png
-%%DATADIR%%/addons/skin.estuary/media/icons/pvr/timer.png
-%%DATADIR%%/addons/skin.estuary/media/icons/search.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/addons.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/eventlog.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/filemanager.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/interface.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/libreelec.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/livetv.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/media.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/network.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/player.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/profiles.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/skin.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/sysinfo.png
-%%DATADIR%%/addons/skin.estuary/media/icons/settings/system.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/addons.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/android.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/disc.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/download.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/favourites.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/livetv.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/manage.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/movies.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/music.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/musicvideos.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/pictures.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/programs.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/radio.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/tv.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/videos.png
-%%DATADIR%%/addons/skin.estuary/media/icons/sidemenu/weather.png
-%%DATADIR%%/addons/skin.estuary/media/icons/submenu/add-ons.png
-%%DATADIR%%/addons/skin.estuary/media/icons/submenu/channels.png
-%%DATADIR%%/addons/skin.estuary/media/icons/submenu/guide.png
-%%DATADIR%%/addons/skin.estuary/media/icons/submenu/recordings.png
-%%DATADIR%%/addons/skin.estuary/media/icons/submenu/timer-rules.png
-%%DATADIR%%/addons/skin.estuary/media/icons/submenu/timers.png
-%%DATADIR%%/addons/skin.estuary/media/icons/submenu/tv-search.png
-%%DATADIR%%/addons/skin.estuary/media/icons/submenu/updatelibrary.png
-%%DATADIR%%/addons/skin.estuary/media/icons/weather/humidity.png
-%%DATADIR%%/addons/skin.estuary/media/icons/weather/rain.png
-%%DATADIR%%/addons/skin.estuary/media/icons/weather/sunrise.png
-%%DATADIR%%/addons/skin.estuary/media/icons/weather/sunset.png
-%%DATADIR%%/addons/skin.estuary/media/icons/weather/wind.png
-%%DATADIR%%/addons/skin.estuary/media/lists/duration.png
-%%DATADIR%%/addons/skin.estuary/media/lists/focus.png
-%%DATADIR%%/addons/skin.estuary/media/lists/panel-mediamenu.png
-%%DATADIR%%/addons/skin.estuary/media/lists/panel.png
-%%DATADIR%%/addons/skin.estuary/media/lists/played-total.png
-%%DATADIR%%/addons/skin.estuary/media/lists/rating.png
-%%DATADIR%%/addons/skin.estuary/media/lists/year.png
-%%DATADIR%%/addons/skin.estuary/media/osd/buffer-bg.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/bookmarks.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/button-fo.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/channels.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/guide.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/home.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/information.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/next.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/pause.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/play.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/previous.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/random-off.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/random-on.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/rating.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/record-white.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/record.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/repeat-all.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/repeat-off.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/repeat-one.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/settings-subtitle.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/settings.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/stereoscopic.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/stop.png
-%%DATADIR%%/addons/skin.estuary/media/osd/fullscreen/buttons/teletext.png
-%%DATADIR%%/addons/skin.estuary/media/osd/progress/nub_bar.png
-%%DATADIR%%/addons/skin.estuary/media/osd/progress/nub_leftright.png
-%%DATADIR%%/addons/skin.estuary/media/overlays/arrowdown.png
-%%DATADIR%%/addons/skin.estuary/media/overlays/arrowright.png
-%%DATADIR%%/addons/skin.estuary/media/overlays/badge.png
-%%DATADIR%%/addons/skin.estuary/media/overlays/folder.png
-%%DATADIR%%/addons/skin.estuary/media/overlays/overlay-bg.png
-%%DATADIR%%/addons/skin.estuary/media/overlays/overlayfade.png
-%%DATADIR%%/addons/skin.estuary/media/overlays/set.png
-%%DATADIR%%/addons/skin.estuary/media/overlays/shadow.png
-%%DATADIR%%/addons/skin.estuary/media/overlays/watched/OverlayPlaying-List.png
-%%DATADIR%%/addons/skin.estuary/media/overlays/watched/resume.png
-%%DATADIR%%/addons/skin.estuary/media/pointer_arrow.png
-%%DATADIR%%/addons/skin.estuary/media/pointer_click.png
-%%DATADIR%%/addons/skin.estuary/media/progress/texturebg_alt_white.png
-%%DATADIR%%/addons/skin.estuary/media/progress/texturebg_border_white.png
-%%DATADIR%%/addons/skin.estuary/media/progress/texturebg_white.png
-%%DATADIR%%/addons/skin.estuary/media/spinner.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/0.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/1.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/10.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/11.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/12.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/13.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/14.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/15.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/16.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/17.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/18.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/19.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/2.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/20.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/21.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/22.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/23.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/24.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/25.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/26.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/27.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/28.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/29.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/3.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/30.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/31.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/32.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/33.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/34.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/35.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/36.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/37.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/38.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/39.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/4.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/40.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/41.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/42.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/43.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/44.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/45.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/46.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/47.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/5.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/6.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/7.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/8.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/9.png
-%%DATADIR%%/addons/skin.estuary/media/weather/small/na.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/0.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/112.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/128.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/144.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/16.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/160.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/176.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/192.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/208.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/224.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/240.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/256.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/32.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/48.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/64.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/80.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg-genres/96.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/epg_progress.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/record.png
-%%DATADIR%%/addons/skin.estuary/media/windows/pvr/timer.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/-.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/LICENSE.txt
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/ar.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/bg.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/bs.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/ca.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/cs.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/da.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/de.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/el.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/en.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/es.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/et.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/fa.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/fi.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/fo.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/fr.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/gl.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/he.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/hi.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/hr.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/hu.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/hy.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/id.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/is.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/it.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/ja.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/kk.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/ko.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/lb.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/lt.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/lv.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/mk.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/ms.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/nl.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/no.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/pb.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/pl.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/pt.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/ro.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/ru.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/sk.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/sl.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/sq.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/sr.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/sv.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/tr.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/uk.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/vi.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/flags/zh.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/icon_close_caption.png
-%%DATADIR%%/addons/skin.estuary/media/windows/subtitles/icon_sync.png
+%%DATADIR%%/addons/skin.estuary/media/Textures.xbt
+%%DATADIR%%/addons/skin.estuary/media/curial.xbt
+%%DATADIR%%/addons/skin.estuary/media/flat.xbt
%%DATADIR%%/addons/skin.estuary/playlists/inprogress_movies.xsp
%%DATADIR%%/addons/skin.estuary/playlists/mostplayed_albums.xsp
%%DATADIR%%/addons/skin.estuary/playlists/random_albums.xsp
@@ -1989,8 +939,6 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/skin.estuary/themes/flat/dialogs/dialog-bg.png
%%DATADIR%%/addons/skin.estuary/themes/flat/overlays/shadow.png
%%DATADIR%%/addons/skin.estuary/xml/AddonBrowser.xml
-%%DATADIR%%/addons/skin.estuary/xml/Constants_1920.xml
-%%DATADIR%%/addons/skin.estuary/xml/Constants_2560.xml
%%DATADIR%%/addons/skin.estuary/xml/Custom_1100_AddonLauncher.xml
%%DATADIR%%/addons/skin.estuary/xml/Custom_1101_SettingsList.xml
%%DATADIR%%/addons/skin.estuary/xml/Custom_1102_TextViewer.xml
@@ -2002,24 +950,22 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/skin.estuary/xml/Defaults.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogAddonInfo.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogAddonSettings.xml
-%%DATADIR%%/addons/skin.estuary/xml/DialogAudioDSPManager.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogBusy.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogButtonMenu.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogConfirm.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogContextMenu.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogExtendedProgressBar.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogFavourites.xml
-%%DATADIR%%/addons/skin.estuary/xml/DialogFullScreenInfo.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogGameControllers.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogKeyboard.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogMediaSource.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogMusicInfo.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogNotification.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogNumeric.xml
+%%DATADIR%%/addons/skin.estuary/xml/DialogPVRChannelGuide.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogPVRChannelManager.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogPVRChannelsOSD.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogPVRGroupManager.xml
-%%DATADIR%%/addons/skin.estuary/xml/DialogPVRGuideOSD.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogPVRGuideSearch.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogPVRInfo.xml
%%DATADIR%%/addons/skin.estuary/xml/DialogPVRRadioRDSInfo.xml
@@ -2037,16 +983,19 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/skin.estuary/xml/FileBrowser.xml
%%DATADIR%%/addons/skin.estuary/xml/FileManager.xml
%%DATADIR%%/addons/skin.estuary/xml/Font.xml
+%%DATADIR%%/addons/skin.estuary/xml/GameOSD.xml
%%DATADIR%%/addons/skin.estuary/xml/Home.xml
%%DATADIR%%/addons/skin.estuary/xml/Includes.xml
%%DATADIR%%/addons/skin.estuary/xml/Includes_Animations.xml
%%DATADIR%%/addons/skin.estuary/xml/Includes_Buttons.xml
+%%DATADIR%%/addons/skin.estuary/xml/Includes_DialogSelect.xml
%%DATADIR%%/addons/skin.estuary/xml/Includes_Home.xml
%%DATADIR%%/addons/skin.estuary/xml/Includes_MediaMenu.xml
%%DATADIR%%/addons/skin.estuary/xml/Includes_PVR.xml
%%DATADIR%%/addons/skin.estuary/xml/LoginScreen.xml
%%DATADIR%%/addons/skin.estuary/xml/MusicOSD.xml
%%DATADIR%%/addons/skin.estuary/xml/MusicVisualisation.xml
+%%DATADIR%%/addons/skin.estuary/xml/MyGames.xml
%%DATADIR%%/addons/skin.estuary/xml/MyMusicNav.xml
%%DATADIR%%/addons/skin.estuary/xml/MyMusicPlaylistEditor.xml
%%DATADIR%%/addons/skin.estuary/xml/MyPVRChannels.xml
@@ -2102,14 +1051,17 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/webinterface.default/images/thumbnail_default.png
%%DATADIR%%/addons/webinterface.default/index.html
%%DATADIR%%/addons/webinterface.default/js/kodi-webinterface.js
+%%DATADIR%%/addons/webinterface.default/lang/_strings/cs.json
%%DATADIR%%/addons/webinterface.default/lang/_strings/de.json
%%DATADIR%%/addons/webinterface.default/lang/_strings/en.json
%%DATADIR%%/addons/webinterface.default/lang/_strings/es.json
%%DATADIR%%/addons/webinterface.default/lang/_strings/fr.json
%%DATADIR%%/addons/webinterface.default/lang/_strings/gr.json
+%%DATADIR%%/addons/webinterface.default/lang/_strings/hu.json
%%DATADIR%%/addons/webinterface.default/lang/_strings/lt.json
%%DATADIR%%/addons/webinterface.default/lang/_strings/nl.json
%%DATADIR%%/addons/webinterface.default/lang/_strings/pl.json
+%%DATADIR%%/addons/webinterface.default/lang/_strings/pt.json
%%DATADIR%%/addons/webinterface.default/lang/_strings/zh_hans.json
%%DATADIR%%/addons/webinterface.default/lang/de/app-readme.html
%%DATADIR%%/addons/webinterface.default/lang/de/keybind-readme.html
@@ -2118,6 +1070,7 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/webinterface.default/lang/en/addons.html
%%DATADIR%%/addons/webinterface.default/lang/en/app-changelog.html
%%DATADIR%%/addons/webinterface.default/lang/en/app-readme.html
+%%DATADIR%%/addons/webinterface.default/lang/en/developers.html
%%DATADIR%%/addons/webinterface.default/lang/en/help-overview.html
%%DATADIR%%/addons/webinterface.default/lang/en/keybind-readme.html
%%DATADIR%%/addons/webinterface.default/lang/en/lang-readme.html
@@ -2125,6 +1078,7 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/webinterface.default/lang/fr/help-overview.html
%%DATADIR%%/addons/webinterface.default/lang/fr/keybind-readme.html
%%DATADIR%%/addons/webinterface.default/lang/fr/lang-readme.html
+%%DATADIR%%/addons/webinterface.default/lang/nl/keybind-readme.html
%%DATADIR%%/addons/webinterface.default/lang/pl/addons.html
%%DATADIR%%/addons/webinterface.default/lang/pl/app-changelog.html
%%DATADIR%%/addons/webinterface.default/lang/pl/app-readme.html
@@ -2219,20 +1173,14 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/webinterface.default/themes/base/images/thumbnail_default.png
%%DATADIR%%/addons/webinterface.default/videoPlayer.html
%%DATADIR%%/addons/xbmc.addon/addon.xml
-%%DATADIR%%/addons/xbmc.addon/addon.xml.in
%%DATADIR%%/addons/xbmc.addon/metadata.xsd
%%DATADIR%%/addons/xbmc.addon/repository.xsd
-%%DATADIR%%/addons/xbmc.audioencoder/addon.xml
-%%DATADIR%%/addons/xbmc.codec/addon.xml
%%DATADIR%%/addons/xbmc.core/addon.xml
%%DATADIR%%/addons/xbmc.gui/addon.xml
%%DATADIR%%/addons/xbmc.gui/skin.xsd
%%DATADIR%%/addons/xbmc.json/addon.xml
-%%DATADIR%%/addons/xbmc.json/addon.xml.in
%%DATADIR%%/addons/xbmc.metadata/addon.xml
%%DATADIR%%/addons/xbmc.metadata/scraper.xsd
-%%DATADIR%%/addons/xbmc.pvr/addon.xml
-%%DATADIR%%/addons/xbmc.pvr/icon.png
%%DATADIR%%/addons/xbmc.python/addon.xml
%%DATADIR%%/addons/xbmc.python/contextitem.xsd
%%DATADIR%%/addons/xbmc.python/icon.png
@@ -2241,21 +1189,32 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/addons/xbmc.python/service.xsd
%%DATADIR%%/addons/xbmc.webinterface/addon.xml
%%DATADIR%%/addons/xbmc.webinterface/webinterface.xsd
+%%DATADIR%%/cmake/AddOptions.cmake
+%%DATADIR%%/cmake/AddonHelpers.cmake
+%%DATADIR%%/cmake/ArchSetup.cmake
+%%DATADIR%%/cmake/CheckCommits.cmake
+%%DATADIR%%/cmake/CheckTargetPlatform.cmake
+%%DATADIR%%/cmake/GenerateVersionedFiles.cmake
+%%DATADIR%%/cmake/GeneratorSetup.cmake
+%%DATADIR%%/cmake/HandleDepends.cmake
+%%DATADIR%%/cmake/KodiConfig.cmake
+%%DATADIR%%/cmake/Macros.cmake
+%%DATADIR%%/cmake/PathSetup.cmake
+%%DATADIR%%/cmake/PrepareEnv.cmake
+%%DATADIR%%/cmake/ProjectMacros.cmake
%%DATADIR%%/media/Fonts/arial.ttf
%%DATADIR%%/media/Fonts/teletext.ttf
-%%DATADIR%%/media/Splash.png
%%DATADIR%%/media/banner.png
%%DATADIR%%/media/icon120x120.png
%%DATADIR%%/media/icon16x16.png
%%DATADIR%%/media/icon256x256.png
%%DATADIR%%/media/icon32x32.png
%%DATADIR%%/media/icon48x48.png
+%%DATADIR%%/media/icon80x80.png
+%%DATADIR%%/media/splash.jpg
%%DATADIR%%/privacy-policy.txt
-%%DATADIR%%/system/IRSSmap.xml
-%%DATADIR%%/system/Lircmap.xml
-%%DATADIR%%/system/X10-Lola-IRSSmap.xml
%%DATADIR%%/system/addon-manifest.xml
-%%ARM%%%%DATADIR%%/system/advancedsettings.xml
+%%DATADIR%%/system/certs/cacert.pem
%%DATADIR%%/system/colors.xml
%%DATADIR%%/system/keyboardlayouts/arabic.xml
%%DATADIR%%/system/keyboardlayouts/bulgarian.xml
@@ -2280,8 +1239,10 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/system/keyboardlayouts/russian.xml
%%DATADIR%%/system/keyboardlayouts/silesian.xml
%%DATADIR%%/system/keyboardlayouts/slovak.xml
+%%DATADIR%%/system/keyboardlayouts/slovenian.xml
%%DATADIR%%/system/keyboardlayouts/spanish.xml
%%DATADIR%%/system/keyboardlayouts/swedish.xml
+%%DATADIR%%/system/keyboardlayouts/thai.xml
%%DATADIR%%/system/keyboardlayouts/turkish.xml
%%DATADIR%%/system/keyboardlayouts/ukrainian.xml
%%DATADIR%%/system/keymaps/appcommand.xml
@@ -2301,18 +1262,18 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/system/library/music/compilations.xml
%%DATADIR%%/system/library/music/files.xml
%%DATADIR%%/system/library/music/genres.xml
-%%DATADIR%%/system/library/music/musicroles/Arrangers.xml
-%%DATADIR%%/system/library/music/musicroles/Composers.xml
-%%DATADIR%%/system/library/music/musicroles/Conductors.xml
-%%DATADIR%%/system/library/music/musicroles/DJMixers.xml
-%%DATADIR%%/system/library/music/musicroles/Lyricists.xml
-%%DATADIR%%/system/library/music/musicroles/Orchestras.xml
-%%DATADIR%%/system/library/music/musicroles/Remixers.xml
%%DATADIR%%/system/library/music/musicroles/albumartists.xml
%%DATADIR%%/system/library/music/musicroles/allartists.xml
%%DATADIR%%/system/library/music/musicroles/allcontributors.xml
%%DATADIR%%/system/library/music/musicroles/allroles.xml
+%%DATADIR%%/system/library/music/musicroles/arrangers.xml
+%%DATADIR%%/system/library/music/musicroles/composers.xml
+%%DATADIR%%/system/library/music/musicroles/conductors.xml
+%%DATADIR%%/system/library/music/musicroles/djmixers.xml
%%DATADIR%%/system/library/music/musicroles/index.xml
+%%DATADIR%%/system/library/music/musicroles/lyricists.xml
+%%DATADIR%%/system/library/music/musicroles/orchestras.xml
+%%DATADIR%%/system/library/music/musicroles/remixers.xml
%%DATADIR%%/system/library/music/musicvideos/albums.xml
%%DATADIR%%/system/library/music/musicvideos/artists.xml
%%DATADIR%%/system/library/music/musicvideos/directors.xml
@@ -2327,6 +1288,7 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/system/library/music/recentlyplayedalbums.xml
%%DATADIR%%/system/library/music/singles.xml
%%DATADIR%%/system/library/music/songs.xml
+%%DATADIR%%/system/library/music/sources.xml
%%DATADIR%%/system/library/music/top100/index.xml
%%DATADIR%%/system/library/music/top100/top100albums.xml
%%DATADIR%%/system/library/music/top100/top100songs.xml
@@ -2376,64 +1338,81 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/system/library/video_flat/tvshows.xml
%%DATADIR%%/system/peripherals.xml
%%DATADIR%%/system/playercorefactory.xml
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/10-autohint.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/10-no-sub-pixel.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-bgr.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-rgb.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-vbgr.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/10-sub-pixel-vrgb.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/10-unhinted.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/20-fix-globaladvance.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/20-lohit-gujarati.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/20-unhint-small-vera.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/30-amt-aliases.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/30-urw-aliases.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/40-generic.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/49-sansserif.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/50-user.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/51-local.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/60-latin.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/65-fonts-persian.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/65-nonlatin.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/69-unifont.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/70-no-bitmaps.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/70-yes-bitmaps.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/80-delicious.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/90-synthetic.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.avail/README
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/20-fix-globaladvance.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/20-lohit-gujarati.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/20-unhint-small-vera.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/30-amt-aliases.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/30-urw-aliases.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/40-generic.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/49-sansserif.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/50-user.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/51-local.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/60-latin.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/65-fonts-persian.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/65-nonlatin.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/69-unifont.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/80-delicious.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/conf.d/90-synthetic.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/fonts.conf
-%%DATADIR%%/system/players/VideoPlayer/etc/fonts/fonts.dtd
-%%DATADIR%%/system/python/readme.txt
+%%DATADIR%%/system/settings/aml-linux.xml
%%DATADIR%%/system/settings/android.xml
%%DATADIR%%/system/settings/darwin.xml
%%DATADIR%%/system/settings/darwin_ios.xml
%%DATADIR%%/system/settings/darwin_osx.xml
%%DATADIR%%/system/settings/freebsd.xml
-%%DATADIR%%/system/settings/imx6.xml
+%%DATADIR%%/system/settings/gbm.xml
%%DATADIR%%/system/settings/linux.xml
%%DATADIR%%/system/settings/rbp.xml
%%DATADIR%%/system/settings/rbp2.xml
%%DATADIR%%/system/settings/settings.xml
+%%DATADIR%%/system/settings/wayland.xml
+%%DATADIR%%/system/settings/win10.xml
%%DATADIR%%/system/settings/win32.xml
-%%DATADIR%%/system/shaders/convolution-4x4.glsl
+%%DATADIR%%/system/settings/windows.xml
+%%DATADIR%%/system/settings/x11.xml
+%%DATADIR%%/system/shaders/GL/1.2/gl_convolution-4x4.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_convolution-6x6.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_output.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_shader_frag_default.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_shader_frag_fonts.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_shader_frag_multi.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_shader_frag_multi_blendcolor.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_shader_frag_texture.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_shader_frag_texture_noblend.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_shader_vert.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_shader_vert_default.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_stretch.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_videofilter_frag.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_videofilter_vertex.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_yuv2rgb_basic.glsl
+%%DATADIR%%/system/shaders/GL/1.2/gl_yuv2rgb_vertex.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_convolution-4x4.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_convolution-6x6.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_output.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_shader_frag_default.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_shader_frag_fonts.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_shader_frag_multi.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_shader_frag_multi_blendcolor.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_shader_frag_texture.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_shader_frag_texture_lim.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_shader_frag_texture_noblend.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_shader_vert.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_shader_vert_default.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_stretch.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_tonemap.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_videofilter_frag.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_videofilter_vertex.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_yuv2rgb_basic.glsl
+%%DATADIR%%/system/shaders/GL/1.5/gl_yuv2rgb_vertex.glsl
+%%DATADIR%%/system/shaders/GL/4.0/gl_yuv2rgb_filter4.glsl
+%%DATADIR%%/system/shaders/GLES/2.0/gles_convolution-4x4.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_convolution-6x6.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader.vert
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader_default.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader_fonts.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader_multi.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader_multi_blendcolor.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader_rgba.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader_rgba_blendcolor.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader_rgba_bob.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader_rgba_bob_oes.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader_rgba_oes.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader_texture.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader_texture_noalpha.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_shader_texture_noblend.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_tonemap.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_videofilter.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_videofilter.vert
+%%DATADIR%%/system/shaders/GLES/2.0/gles_yuv2rgb.vert
+%%DATADIR%%/system/shaders/GLES/2.0/gles_yuv2rgb_basic.frag
+%%DATADIR%%/system/shaders/GLES/2.0/gles_yuv2rgb_bob.frag
%%DATADIR%%/system/shaders/convolution-4x4_d3d.fx
-%%DATADIR%%/system/shaders/convolution-6x6.glsl
%%DATADIR%%/system/shaders/convolution-6x6_d3d.fx
+%%DATADIR%%/system/shaders/convolution_d3d.fx
%%DATADIR%%/system/shaders/convolutionsep-4x4_d3d.fx
%%DATADIR%%/system/shaders/convolutionsep-6x6_d3d.fx
%%DATADIR%%/system/shaders/guishader_checkerboard_left.hlsl
@@ -2441,44 +1420,16 @@ share/icons/hicolor/64x64/apps/kodi.png
%%DATADIR%%/system/shaders/guishader_common.hlsl
%%DATADIR%%/system/shaders/guishader_default.hlsl
%%DATADIR%%/system/shaders/guishader_fonts.hlsl
-%%DATADIR%%/system/shaders/guishader_frag_default.glsl
-%%DATADIR%%/system/shaders/guishader_frag_fonts.glsl
-%%DATADIR%%/system/shaders/guishader_frag_multi.glsl
-%%DATADIR%%/system/shaders/guishader_frag_multi_blendcolor.glsl
-%%DATADIR%%/system/shaders/guishader_frag_rgba.glsl
-%%DATADIR%%/system/shaders/guishader_frag_rgba_blendcolor.glsl
-%%DATADIR%%/system/shaders/guishader_frag_rgba_bob.glsl
-%%DATADIR%%/system/shaders/guishader_frag_rgba_bob_oes.glsl
-%%DATADIR%%/system/shaders/guishader_frag_rgba_oes.glsl
-%%DATADIR%%/system/shaders/guishader_frag_texture.glsl
-%%DATADIR%%/system/shaders/guishader_frag_texture_noblend.glsl
%%DATADIR%%/system/shaders/guishader_interlaced_left.hlsl
%%DATADIR%%/system/shaders/guishader_interlaced_right.hlsl
%%DATADIR%%/system/shaders/guishader_multi_texture_blend.hlsl
%%DATADIR%%/system/shaders/guishader_texture.hlsl
%%DATADIR%%/system/shaders/guishader_texture_noblend.hlsl
-%%DATADIR%%/system/shaders/guishader_vert.glsl
%%DATADIR%%/system/shaders/guishader_vert.hlsl
-%%DATADIR%%/system/shaders/guishader_video.hlsl
-%%DATADIR%%/system/shaders/guishader_video_control.hlsl
-%%DATADIR%%/system/shaders/output.glsl
-%%DATADIR%%/system/shaders/stretch.glsl
-%%DATADIR%%/system/shaders/yuv2rgb_basic.glsl
-%%DATADIR%%/system/shaders/yuv2rgb_basic_2d.arb
-%%DATADIR%%/system/shaders/yuv2rgb_basic_2d_UYVY.arb
-%%DATADIR%%/system/shaders/yuv2rgb_basic_2d_YUY2.arb
-%%DATADIR%%/system/shaders/yuv2rgb_basic_gles.glsl
-%%DATADIR%%/system/shaders/yuv2rgb_basic_rect.arb
-%%DATADIR%%/system/shaders/yuv2rgb_basic_rect_UYVY.arb
-%%DATADIR%%/system/shaders/yuv2rgb_basic_rect_YUY2.arb
-%%DATADIR%%/system/shaders/yuv2rgb_bob.glsl
-%%DATADIR%%/system/shaders/yuv2rgb_bob_gles.glsl
+%%DATADIR%%/system/shaders/output_d3d.fx
+%%DATADIR%%/system/shaders/rp_output_d3d.fx
%%DATADIR%%/system/shaders/yuv2rgb_d3d.fx
-%%DATADIR%%/system/shaders/yuv2rgb_vertex.glsl
-%%DATADIR%%/system/shaders/yuv2rgb_vertex_gles.glsl
%%DATADIR%%/userdata/ModeLines_template.xml
%%DATADIR%%/userdata/RssFeeds.xml
%%DATADIR%%/userdata/iOS/sources.xml
-share/xbmc
share/xsessions/kodi.desktop
-share/xsessions/xbmc.desktop