Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Apr 2017 22:35:11 +0000 (UTC)
From:      "Carlos J. Puga Medina" <cpm@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r437676 - in head/multimedia/kodi: . files
Message-ID:  <201704032235.v33MZBcr021200@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cpm
Date: Mon Apr  3 22:35:11 2017
New Revision: 437676
URL: https://svnweb.freebsd.org/changeset/ports/437676

Log:
  multimedia/kodi: update to 17.1
  
  - Add support for armv6 (RPi 1 and RPi 2)
  
  PR:		218121
  Submitted by:	Mikael Urankar <mikael.urankar@gmail.com>
  Reviewed by:	swills
  Approved by:	Mickael Maillot <mickael.maillot@gmail.com> (maintainer)

Added:
  head/multimedia/kodi/files/patch-m4_xbmc__arch.m4   (contents, props changed)
  head/multimedia/kodi/files/patch-system_settings_rbp2.xml   (contents, props changed)
  head/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_FFmpeg-3.1.6-Krypton_configure   (contents, props changed)
  head/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_FFmpeg-3.1.6-Krypton_libavutil_x86_asm.h   (contents, props changed)
  head/multimedia/kodi/files/patch-tools_depends_target_libdvdcss_Makefile   (contents, props changed)
  head/multimedia/kodi/files/patch-tools_depends_target_libdvdnav_Makefile   (contents, props changed)
  head/multimedia/kodi/files/patch-tools_depends_target_libdvdread_Makefile   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_core_VideoPlayer_Process_overrides_linux_ProcessInfoLinux.cpp   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_cores_VideoPlayer_DVDDemuxSPU.cpp   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_guilib_TextureBundleXBT.h   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_linux_PlatformDefs.h   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_platform_posix_main.cpp   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_system.h   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_utils_CPUInfo.cpp   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_windowing_Makefile.in   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_windowing_WinEvents.cpp   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.cpp   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.h   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_windowing_WindowingFactory.h   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_windowing_egl_EGLNativeTypeAmlogic.cpp   (contents, props changed)
  head/multimedia/kodi/files/patch-xbmc_windowing_es__scancodes.h   (contents, props changed)
  head/multimedia/kodi/files/pkg-message.in   (contents, props changed)
Deleted:
  head/multimedia/kodi/files/patch-Makefile.in
  head/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_FFmpeg-2.8.6-Jarvis-16.0_configure
  head/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_FFmpeg-2.8.6-Jarvis-16.0_libavutil_x86_asm.h
  head/multimedia/kodi/files/patch-xbmc_cores_AudioEngine_Sinks_AESinkOSS.cpp
  head/multimedia/kodi/files/patch-xbmc_cores_dvdplayer_DVDDemuxSPU.cpp
  head/multimedia/kodi/files/patch-xbmc_dialogs_GUIDialogGamepad.cpp
  head/multimedia/kodi/files/patch-xbmc_dialogs_GUIDialogNumeric.cpp
  head/multimedia/kodi/files/patch-xbmc_guilib_GUIAction.cpp
  head/multimedia/kodi/files/patch-xbmc_guilib_GUISpinControl.cpp
  head/multimedia/kodi/files/patch-xbmc_guilib_TextureBundleXPR.h
  head/multimedia/kodi/files/patch-xbmc_interfaces_builtins_GUIContainerBuiltins.cpp
  head/multimedia/kodi/files/patch-xbmc_interfaces_legacy_Dialog.cpp
  head/multimedia/kodi/files/patch-xbmc_linux_XFileUtils.cpp
  head/multimedia/kodi/files/patch-xbmc_main_main.cpp
  head/multimedia/kodi/files/patch-xbmc_music_tags_MusicInfoTagLoaderCDDA.cpp
  head/multimedia/kodi/files/patch-xbmc_pvr_PVRActionListener.cpp
  head/multimedia/kodi/files/patch-xbmc_pvr_recordings_PVRRecording.cpp
  head/multimedia/kodi/files/patch-xbmc_storage_linux_DeviceKitDisksProvider.cpp
  head/multimedia/kodi/files/patch-xbmc_storage_linux_UDisksProvider.cpp
Modified:
  head/multimedia/kodi/Makefile
  head/multimedia/kodi/distinfo
  head/multimedia/kodi/files/patch-configure.ac
  head/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_autobuild.sh
  head/multimedia/kodi/pkg-plist

Modified: head/multimedia/kodi/Makefile
==============================================================================
--- head/multimedia/kodi/Makefile	Mon Apr  3 22:24:55 2017	(r437675)
+++ head/multimedia/kodi/Makefile	Mon Apr  3 22:35:11 2017	(r437676)
@@ -1,8 +1,7 @@
 # $FreeBSD$
 
 PORTNAME=	kodi
-DISTVERSION=	16.1
-PORTREVISION=	11
+DISTVERSION=	17.1
 CATEGORIES=	multimedia java
 
 MAINTAINER=	mickael.maillot@gmail.com
@@ -16,17 +15,14 @@ BUILD_DEPENDS=	enca:converters/enca \
 		cmake:devel/cmake \
 		zip:archivers/zip \
 		nasm:devel/nasm \
-		gtk-update-icon-cache:x11-toolkits/gtk20 \
 		swig3.0:devel/swig30
 LIB_DEPENDS=	libass.so:multimedia/libass \
 		libFLAC.so:audio/flac \
-		libboost_thread.so:devel/boost-libs \
-		libcdio.so:sysutils/libcdio	\
+		libcdio.so:sysutils/libcdio \
 		libcrossguid.so:devel/libcrossguid \
 		libcurl.so:ftp/curl \
 		libdbus-1.so:devel/dbus \
 		libdcadec.so:multimedia/libdcadec \
-		libdrm.so:graphics/libdrm \
 		libenca.so:converters/enca \
 		libexpat.so:textproc/expat2\
 		libfontconfig.so:x11-fonts/fontconfig \
@@ -55,37 +51,38 @@ LIB_DEPENDS=	libass.so:multimedia/libass
 		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	\
+		libxslt.so:textproc/libxslt \
 		libyajl.so:devel/yajl
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 \
-		glxinfo:graphics/mesa-demos \
-		python:lang/python \
-		xdpyinfo:x11/xdpyinfo
+		python:lang/python
 
 CONFLICTS_BUILD=compat9x
 
 USE_GITHUB=	yes
-GH_TUPLE=	xbmc:xbmc:c327c53 \
-		xbmc:FFmpeg:2.8.6-Jarvis-16.0:ffmpeg/tools/depends/target/ffmpeg
+GH_TUPLE=	xbmc:xbmc:fc1619b \
+		xbmc:FFmpeg:3.1.6-Krypton:ffmpeg/tools/depends/target/ffmpeg \
+		xbmc:libdvdcss:2f12236:libdvdcss/tools/depends/target/libdvdcss/native \
+		xbmc:libdvdnav:981488f:libdvdnav/tools/depends/target/libdvdnav/native \
+		xbmc:libdvdread:17d99db:libdvdread/tools/depends/target/libdvdread/native
 
 USES=		autoreconf:build compiler:c++11-lib gettext gmake iconv jpeg \
 		libtool pkgconfig python:2 ssl
 GNU_CONFIGURE=	yes
-USE_XORG=	x11 xcb xext xmu xrandr xt xtst
-USE_GL=		gl glu glew
-USE_SDL=	image sdl2
 USE_JAVA=	yes
 USE_GNOME=	libxml2
 USE_LDCONFIG=	yes
 JAVA_BUILD=	jre
 NOPRECIOUSMAKEVARS=	yes
-INSTALLS_ICONS=	yes
+CONFIGURE_ENV=	OPENSSL_LIBS="-L${OPENSSLLIB}" \
+		OPENSSL_CFLAGS="-I${OPENSSLINC}"
 
-ONLY_FOR_ARCHS=	i386 amd64
+ONLY_FOR_ARCHS=	amd64 armv6 i386
 KODI_ARCH_i386=	x86
 KODI_ARCH_amd64=x86_64
+KODI_ARCH_armv6=armv6
 
 PLIST_SUB=	ARCH=${KODI_ARCH_${ARCH}}
 
@@ -93,14 +90,24 @@ OPTIONS_SUB=	yes
 OPTIONS_DEFINE=	AIRPLAY AIRTUNES AVAHI CEC DOCS \
 		LIBBLURAY LIRC MYSQL NFS NONFREE PULSEAUDIO RTMP \
 		SFTP SMB VAAPI VDPAU WEBSERVER
+OPTIONS_SINGLE=		RPI
+OPTIONS_SINGLE_RPI=	RPI1 RPI2
+
+OPTIONS_EXCLUDE_armv6=	LIRC VAAPI VDPAU
+OPTIONS_EXCLUDE_amd64=	RPI1 RPI2
+OPTIONS_EXCLUDE_i386=	RPI1 RPI2
+
 AIRPLAY_DESC=	AirPlay support via libplist
 AIRTUNES_DESC=	AirTunes support via libshairplay
 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 LIBBLURAY LIRC \
 		MYSQL NFS RTMP SFTP SMB VAAPI VDPAU WEBSERVER
+OPTIONS_DEFAULT_armv6=	RPI1
 
 AIRPLAY_LIB_DEPENDS=	libplist.so:devel/libplist
 AIRPLAY_CONFIGURE_ENABLE=	airplay
@@ -133,6 +140,9 @@ NONFREE_VARS=		NO_CDROM="Restricted bina
 PULSEAUDIO_LIB_DEPENDS=	libpulse.so:audio/pulseaudio
 PULSEAUDIO_CONFIGURE_ENABLE=	pulse
 
+RPI1_CONFIGURE_ON=	--with-platform=raspberry-pi
+RPI2_CONFIGURE_ON=	--with-platform=raspberry-pi2
+
 RTMP_LIB_DEPENDS=	librtmp.so:multimedia/librtmp
 RTMP_CONFIGURE_ENABLE=	rtmp
 
@@ -154,12 +164,38 @@ SFTP_CONFIGURE_ENABLE=	ssh
 
 CONFIGURE_ARGS+=	--disable-debug --disable-alsa --disable-texturepacker
 
+.include <bsd.port.pre.mk>
+
+.if ${ARCH} != "armv6"
+BUILD_DEPENDS+=	gtk-update-icon-cache:x11-toolkits/gtk20
+LIB_DEPENDS+=	libdrm.so:graphics/libdrm
+RUN_DEPENDS+=	glxinfo:graphics/mesa-demos \
+		xdpyinfo:x11/xdpyinfo
+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 (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
+
 post-patch:
 	${REINPLACE_CMD} 's;make;gmake;' \
 		${WRKSRC}/bootstrap \
 		${WRKSRC}/codegenerator.mk \
 		${WRKSRC}/xbmc/Makefile.in
 	${REINPLACE_CMD} 's;which swig;&3.0;' ${WRKSRC}/codegenerator.mk
+	${RM} ${WRKSRC}/system/settings/rbp2.xml.orig
 
 pre-configure:
 	cd ${WRKSRC} && ${SH} ./bootstrap
@@ -170,6 +206,8 @@ post-install:
 	${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
 	${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/kodi/kodi-xrandr
+.endif
 
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>

Modified: head/multimedia/kodi/distinfo
==============================================================================
--- head/multimedia/kodi/distinfo	Mon Apr  3 22:24:55 2017	(r437675)
+++ head/multimedia/kodi/distinfo	Mon Apr  3 22:35:11 2017	(r437676)
@@ -1,5 +1,11 @@
-TIMESTAMP = 1468326866
-SHA256 (xbmc-xbmc-16.1-c327c53_GH0.tar.gz) = 8ab5ef294d4b940072a05e682acb16fe17cb90e3e5875ecb1bb7835bb4a42cea
-SIZE (xbmc-xbmc-16.1-c327c53_GH0.tar.gz) = 52090841
-SHA256 (xbmc-FFmpeg-2.8.6-Jarvis-16.0_GH0.tar.gz) = b08d8dc171f19627025136b498dfcad4f1b84923de7a62696d8a9a7f1d979b01
-SIZE (xbmc-FFmpeg-2.8.6-Jarvis-16.0_GH0.tar.gz) = 10264915
+TIMESTAMP = 1490104616
+SHA256 (xbmc-xbmc-17.1-fc1619b_GH0.tar.gz) = d37923946f556167e2bae57c8ed6fde94e1c9996b2eb907ae2a843da242b2680
+SIZE (xbmc-xbmc-17.1-fc1619b_GH0.tar.gz) = 58455275
+SHA256 (xbmc-FFmpeg-3.1.6-Krypton_GH0.tar.gz) = 01f914742f6af8afd1d2eb076425975e24c4eed75f5d57f1c816086dc4625192
+SIZE (xbmc-FFmpeg-3.1.6-Krypton_GH0.tar.gz) = 11170735
+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

Modified: head/multimedia/kodi/files/patch-configure.ac
==============================================================================
--- head/multimedia/kodi/files/patch-configure.ac	Mon Apr  3 22:24:55 2017	(r437675)
+++ head/multimedia/kodi/files/patch-configure.ac	Mon Apr  3 22:35:11 2017	(r437676)
@@ -1,20 +1,41 @@
---- configure.ac.orig	2016-02-20 15:21:19 UTC
+--- configure.ac.orig	2016-10-08 UTC
 +++ configure.ac
-@@ -599,11 +599,13 @@ case $host in
-      target_platform=target_linux
+@@ -564,12 +564,25 @@ 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
       ;;
    arm-apple-darwin*)
-      use_joystick=no
-@@ -777,10 +779,16 @@ fi
+      CORE_SYSTEM_NAME=ios
+@@ -684,7 +697,7 @@ if test "$target_platform" = "target_ras
+      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"])
+@@ -753,10 +766,16 @@ fi
  # platform specific flags
  if echo "$ARCH" | grep -q "freebsd" ; then
    LOCALBASE="${LOCALBASE:-/usr/local}"
@@ -34,15 +55,33 @@
  fi
  if test "$host_vendor" = "apple" ; then
    # standard application paths
-@@ -913,6 +921,7 @@ AC_LANG_POP([C++])
+@@ -796,8 +815,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="armv6-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"
+@@ -915,6 +942,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],,)
  
- # Checks for boost headers using CXX instead of CC
- AC_LANG_PUSH([C++])
-@@ -1228,12 +1237,13 @@ AS_CASE([x$use_libbluray],
+ # Python
+ if test -z "$PYTHON_NOVERSIONCHECK"; then
+@@ -1163,12 +1191,13 @@ AS_CASE([x$use_libbluray],
  )
  
  #Check to see if libs are needed for functions that are often built-in to libc
@@ -57,7 +96,7 @@
  
  # platform dependent libraries
  if test "$host_vendor" = "apple" ; then
-@@ -1654,7 +1664,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th
+@@ -1552,7 +1581,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th
  
    if test "$cross_compiling" != "yes"; then
      if test "$use_debug" != "yes"; then
@@ -66,7 +105,7 @@
      fi
      if test "$use_optimizations" != "yes"; then
        FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations"
-@@ -1665,7 +1675,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th
+@@ -1563,7 +1592,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th
        SAVE_LIBS="$LIBS"
        # check for system installed ffmpeg. We require minimum versions.
        PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES],
@@ -75,25 +114,29 @@
          [FFMPEG_FOUND="false"])
  
        if test "${USE_STATIC_FFMPEG}" = "1" && test "$FFMPEG_FOUND" = "true"; then
-@@ -1692,7 +1702,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th
+@@ -1590,7 +1619,11 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th
      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}
-+      CC="$CC" CPP="$CPP" CXX="$CXX" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS} || exit 1
++      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
-@@ -1705,7 +1715,7 @@ fi
+@@ -1603,7 +1636,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"], 
+-    [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
  
-@@ -1731,9 +1741,9 @@ fi
+@@ -1627,9 +1660,9 @@ fi
  echo "Checking for SWIG installation"
  AC_PATH_PROG(SWIG_EXE, swig, "none")
  if test "$SWIG_EXE" = "none"; then
@@ -106,16 +149,7 @@
    fi
  fi
  if test "$SWIG_EXE" = "none"; then
-@@ -2065,7 +2075,7 @@ fi
- # we don't compile with default upstream squish, so we use our own one
- # even on non unified deps platforms
- if test "$cross_compiling" != "yes"; then
--  make -C ${abs_top_srcdir}/tools/depends/native/libsquish-native CXX=${CXX}
-+  $MAKE -C ${abs_top_srcdir}/tools/depends/native/libsquish-native CXX=${CXX}
-   export PKG_CONFIG_PATH="${abs_top_srcdir}/tools/depends/native/libsquish-native/squish-install/lib/pkgconfig:$PKG_CONFIG_PATH"
- fi
- PKG_CHECK_MODULES([SQUISH], [squish],
-@@ -2076,7 +2086,7 @@ if test "x$use_texturepacker" != "xno"; 
+@@ -1922,7 +1955,7 @@ if test "x$use_texturepacker" != "xno"; 
    AC_PATH_PROG([TEXTUREPACKER], [TexturePacker], ["none"],
      [$PATH$PATH_SEPARATOR${abs_top_srcdir}/tools/depends/native/TexturePacker/bin])
    if test "$TEXTUREPACKER" = "none"; then
@@ -124,7 +158,7 @@
      TEXTUREPACKER="${abs_top_srcdir}/tools/depends/native/TexturePacker/bin/TexturePacker"
    fi
    if test -x "$TEXTUREPACKER"; then
-@@ -2346,6 +2356,8 @@ if test "$host_vendor" = "apple" ; then
+@@ -2142,6 +2175,8 @@ if test "$host_vendor" = "apple" ; then
    LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale"
  fi
  
@@ -132,4 +166,4 @@
 +
  OUTPUT_FILES="Makefile \
      Makefile.include \
-     addons/skin.confluence/media/Makefile \
+     addons/skin.estuary/media/Makefile \

Added: head/multimedia/kodi/files/patch-m4_xbmc__arch.m4
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-m4_xbmc__arch.m4	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,30 @@
+--- m4/xbmc_arch.m4.orig	2016-10-08 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")
+      ;;
++  armv6-*-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")
+      ;;
++  armv6-*-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_and
+ 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
+ ])

Added: head/multimedia/kodi/files/patch-system_settings_rbp2.xml
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-system_settings_rbp2.xml	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,11 @@
+--- ./system/settings/rbp2.xml.orig	2016-11-24 09:26:41 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>

Added: head/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_FFmpeg-3.1.6-Krypton_configure
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_FFmpeg-3.1.6-Krypton_configure	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,10 @@
+--- tools/depends/target/ffmpeg/FFmpeg-3.1.6-Krypton/configure.orig	2016-02-03 20:33:07 UTC
++++ tools/depends/target/ffmpeg/FFmpeg-3.1.6-Krypton/configure
+@@ -5683,6 +5683,7 @@ elif enabled llvm_gcc; then
+     check_cflags -mllvm -stack-alignment=16
+ elif enabled clang; then
+     check_cflags -mllvm -stack-alignment=16
++    check_cflags -mstack-alignment=16
+     check_cflags -Qunused-arguments
+     check_cflags -Werror=implicit-function-declaration
+     check_cflags -Werror=missing-prototypes

Added: head/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_FFmpeg-3.1.6-Krypton_libavutil_x86_asm.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_FFmpeg-3.1.6-Krypton_libavutil_x86_asm.h	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,11 @@
+--- tools/depends/target/ffmpeg/FFmpeg-3.1.6-Krypton/libavutil/x86/asm.h	2016-10-08 UTC
++++ tools/depends/target/ffmpeg/FFmpeg-3.1.6-Krypton/libavutil/x86/asm.h.orig
+@@ -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)

Modified: head/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_autobuild.sh
==============================================================================
--- head/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_autobuild.sh	Mon Apr  3 22:24:55 2017	(r437675)
+++ head/multimedia/kodi/files/patch-tools_depends_target_ffmpeg_autobuild.sh	Mon Apr  3 22:35:11 2017	(r437676)
@@ -1,4 +1,4 @@
---- tools/depends/target/ffmpeg/autobuild.sh.orig	2016-02-20 15:21:19 UTC
+--- tools/depends/target/ffmpeg/autobuild.sh.orig	2016-10-08 UTC
 +++ tools/depends/target/ffmpeg/autobuild.sh
 @@ -1,4 +1,4 @@
 -#!/bin/bash
@@ -8,7 +8,7 @@
  #      http://xbmc.org
 @@ -27,7 +27,8 @@ BASE_URL=$(grep "BASE_URL=" FFMPEG-VERSI
  VERSION=$(grep "VERSION=" FFMPEG-VERSION | sed 's/VERSION=//g')
- ARCHIVE=ffmpeg-${VERSION}.tar.gz
+ ARCHIVE=ffmpeg-$(echo "${VERSION}" | sed 's/\//-/g').tar.gz
  
 -function usage {
 +usage()
@@ -16,7 +16,7 @@
    echo "usage $(basename $0) 
         [-p | --prefix]    ... ffmepg install prefix
         [-d | --download]  ... no build, download tarfile only
-@@ -82,6 +83,14 @@ do
+@@ -82,6 +83,46 @@ do
        FLAGS="$FLAGS --extra-cxxflags=\"${1#*=}\""
        shift
        ;;
@@ -28,10 +28,42 @@
 +      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
-@@ -100,7 +109,7 @@ do
+@@ -100,7 +141,7 @@ do
    esac
  done
  
@@ -40,12 +72,16 @@
  [ ${BUILDTHREADS} -eq 0 ] && BUILDTHREADS=1
  
  [ -z ${VERSION} ] && exit 3
-@@ -110,10 +119,10 @@ then
+@@ -110,12 +151,12 @@ then
    [ "$VERSION" == "$CURVER" ] && exit 0
  fi
  
--[ -f ${ARCHIVE} ] || curl -Ls --create-dirs -f -o ${ARCHIVE} ${BASE_URL}/${VERSION}.tar.gz
-+#[ -f ${ARCHIVE} ] || curl -Ls --create-dirs -f -o ${ARCHIVE} ${BASE_URL}/${VERSION}.tar.gz
+-[ -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
@@ -53,21 +89,21 @@
  if [ -d ${FFMPEG_PREFIX} ]
  then
    [ -w ${FFMPEG_PREFIX} ] || SUDO="sudo"
-@@ -121,9 +130,9 @@ else
+@@ -123,9 +164,9 @@ else
    [ -w $(dirname ${FFMPEG_PREFIX}) ] || SUDO="sudo"
  fi
  
--mkdir ffmpeg-${VERSION}
--cd ffmpeg-${VERSION} || exit 2
--tar --strip-components=1 -xf ../${ARCHIVE}
-+#mkdir ffmpeg-${VERSION}
-+cd FFmpeg-${VERSION} || exit 2
-+#tar --strip-components=1 -xf ../${ARCHIVE}
+-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 \
-@@ -162,11 +171,11 @@ CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LD
- 	--enable-libdcadec \
+@@ -162,11 +203,11 @@ CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LD
+ 	--disable-mipsdspr2 \
          ${FLAGS}
  
 -make -j ${BUILDTHREADS} 
@@ -75,8 +111,8 @@
  if [ $? -eq 0 ]
  then
    [ ${SUDO} ] && echo "Root privileges are required to install to ${FFMPEG_PREFIX}"
--  ${SUDO} make install && echo "$VERSION" > ../.ffmpeg-installed
-+  ${SUDO} gmake install && echo "$VERSION" > ../.ffmpeg-installed
+-  ${SUDO} make install && echo "$VERSION" > $MYDIR/.ffmpeg-installed
++  ${SUDO} gmake install && echo "$VERSION" > $MYDIR/.ffmpeg-installed
  else
    echo "ERROR: Building ffmpeg failed"
    exit 1

Added: head/multimedia/kodi/files/patch-tools_depends_target_libdvdcss_Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-tools_depends_target_libdvdcss_Makefile	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,23 @@
+--- 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)

Added: head/multimedia/kodi/files/patch-tools_depends_target_libdvdnav_Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-tools_depends_target_libdvdnav_Makefile	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,21 @@
+--- 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)

Added: head/multimedia/kodi/files/patch-tools_depends_target_libdvdread_Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-tools_depends_target_libdvdread_Makefile	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,23 @@
+--- 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)

Added: head/multimedia/kodi/files/patch-xbmc_core_VideoPlayer_Process_overrides_linux_ProcessInfoLinux.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-xbmc_core_VideoPlayer_Process_overrides_linux_ProcessInfoLinux.cpp	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,11 @@
+--- xbmc/cores/VideoPlayer/Process/overrides/linux/ProcessInfoLinux.cpp.orig	2017-03-04 19:48:40 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()
+ {

Added: head/multimedia/kodi/files/patch-xbmc_cores_VideoPlayer_DVDDemuxSPU.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-xbmc_cores_VideoPlayer_DVDDemuxSPU.cpp	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,10 @@
+--- xbmc/cores/VideoPlayer/DVDDemuxSPU.cpp.orig	2016-02-20 15:21:19 UTC
++++ xbmc/cores/VideoPlayer/DVDDemuxSPU.cpp
+@@ -18,6 +18,7 @@
+  *
+  */
+ 
++#include <stdlib.h>
+ #include "DVDDemuxSPU.h"
+ #include "DVDClock.h"
+ #include "utils/log.h"

Added: head/multimedia/kodi/files/patch-xbmc_guilib_TextureBundleXBT.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-xbmc_guilib_TextureBundleXBT.h	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,10 @@
+--- xbmc/guilib/TextureBundleXBT.h.orig	2016-02-20 15:21:19 UTC
++++ xbmc/guilib/TextureBundleXBT.h
+@@ -24,6 +24,7 @@
+ #include <string>
+ #include <stdint.h>
+ #include <vector>
++#include <ctime>
+ 
+ class CAutoTexBuffer;
+ class CBaseTexture;

Added: head/multimedia/kodi/files/patch-xbmc_linux_PlatformDefs.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-xbmc_linux_PlatformDefs.h	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,10 @@
+--- 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

Added: head/multimedia/kodi/files/patch-xbmc_platform_posix_main.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-xbmc_platform_posix_main.cpp	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,18 @@
+--- 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"

Added: head/multimedia/kodi/files/patch-xbmc_system.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-xbmc_system.h	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,14 @@
+--- xbmc/system.h.orig       2015-08-16 16:37:32 UTC
++++ xbmc/system.h
+@@ -166,7 +166,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

Added: head/multimedia/kodi/files/patch-xbmc_utils_CPUInfo.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-xbmc_utils_CPUInfo.cpp	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,27 @@
+--- xbmc/utils/CPUInfo.cpp.orig	2016-04-24 UTC
++++ xbmc/utils/CPUInfo.cpp
+@@ -584,6 +584,14 @@ bool CCPUInfo::getTemperature(CTemperatu
+ #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;
+@@ -937,6 +945,9 @@ bool CCPUInfo::HasNeon()
+ #elif defined(TARGET_DARWIN_IOS)
+   has_neon = 1;
+ 
++#elif defined(__FreeBSD__) && defined(__ARM_NEON__)
++  has_neon = 1;
++
+ #elif defined(TARGET_LINUX) && defined(__ARM_NEON__)
+   if (has_neon == -1)
+   {

Added: head/multimedia/kodi/files/patch-xbmc_windowing_Makefile.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-xbmc_windowing_Makefile.in	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,8 @@
+--- 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 \

Added: head/multimedia/kodi/files/patch-xbmc_windowing_WinEvents.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-xbmc_windowing_WinEvents.cpp	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,13 @@
+--- 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

Added: head/multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/multimedia/kodi/files/patch-xbmc_windowing_WinEventsFreeBSD.cpp	Mon Apr  3 22:35:11 2017	(r437676)
@@ -0,0 +1,531 @@
+--- 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;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201704032235.v33MZBcr021200>