aboutsummaryrefslogtreecommitdiffstats
path: root/multimedia/xbmc-pvr
diff options
context:
space:
mode:
authornox <nox@FreeBSD.org>2012-03-18 07:13:27 +0800
committernox <nox@FreeBSD.org>2012-03-18 07:13:27 +0800
commit21ab75ae328f8421963930ff1855e9a5cc314e8f (patch)
tree0865078d58c6620dcaf6bfd1a24cab4323f93054 /multimedia/xbmc-pvr
parent08a0174ed50510abdefeb235f1a09746b538b799 (diff)
downloadfreebsd-ports-gnome-21ab75ae328f8421963930ff1855e9a5cc314e8f.tar.gz
freebsd-ports-gnome-21ab75ae328f8421963930ff1855e9a5cc314e8f.tar.zst
freebsd-ports-gnome-21ab75ae328f8421963930ff1855e9a5cc314e8f.zip
- Update to xbmc-pvr-ppa-odk-70.
- Fix build with clang, and a bug it uncovered too. - Add OPTION to be able to build without xrandr support. (Which misbehaves with xf86-video-ati when used with tvout.) - Add explicit pointers to multimedia/xbmc-addon-xvdr, multimedia/vdr-plugin-xvdr, and to the vdr wiki page to pkg-descr. Feature safe: yes
Diffstat (limited to 'multimedia/xbmc-pvr')
-rw-r--r--multimedia/xbmc-pvr/Makefile22
-rw-r--r--multimedia/xbmc-pvr/distinfo4
-rw-r--r--multimedia/xbmc-pvr/files/patch-configure.in18
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib-platform-posix-os-types.h11
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__cpluff.c18
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__logging.c26
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__pinfo.c26
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__psymbol.c26
-rw-r--r--multimedia/xbmc-pvr/files/patch-libdl-freebsd23
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-pvr-PVRManager.h11
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.cpp38
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.h23
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.cpp38
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.h23
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-screensavers-rsxs-0.9-lib-argp-fmtstream.h11
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-screensavers-rsxs-0.9-lib-argp-help.c12
-rw-r--r--multimedia/xbmc-pvr/pkg-descr13
-rw-r--r--multimedia/xbmc-pvr/pkg-plist17
18 files changed, 211 insertions, 149 deletions
diff --git a/multimedia/xbmc-pvr/Makefile b/multimedia/xbmc-pvr/Makefile
index baa426600149..8caa61798f6c 100644
--- a/multimedia/xbmc-pvr/Makefile
+++ b/multimedia/xbmc-pvr/Makefile
@@ -6,12 +6,11 @@
#
PORTNAME= xbmc
-PORTVERSION= 65
-PORTREVISION= 4
+PORTVERSION= 70
CATEGORIES= multimedia
MASTER_SITES= LOCAL/nox
PKGNAMESUFFIX= -pvr-ppa-odk
-DISTNAME= opdenkamp-${PORTNAME}-Eden-pvr_beta2-0-g${GITHASH}
+DISTNAME= opdenkamp-${PORTNAME}${PKGNAMESUFFIX}${PORTVERSION}-0-g${GITHASH}
MAINTAINER= nox@FreeBSD.org
COMMENT= XBMC is an award winning media center application - PVR branch
@@ -55,7 +54,8 @@ LIB_DEPENDS= asound.2:${PORTSDIR}/audio/alsa-lib \
ass.5:${PORTSDIR}/multimedia/libass \
wavpack.2:${PORTSDIR}/audio/wavpack \
yajl:${PORTSDIR}/devel/yajl \
- plist:${PORTSDIR}/devel/libplist
+ plist:${PORTSDIR}/devel/libplist \
+ iconv:${PORTSDIR}/converters/libiconv
RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:${PORTSDIR}/audio/alsa-plugins \
${PYTHON_SITELIBDIR}/_sqlite3.so:${PORTSDIR}/databases/py-sqlite3 \
@@ -63,14 +63,14 @@ RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:${PORTSDIR}/a
${PYTHON_SITELIBDIR}/PIL/__init__.py:${PORTSDIR}/graphics/py-imaging \
xdpyinfo:${PORTSDIR}/x11/xdpyinfo
-GITHASH= cbe2cf3
+GITHASH= 9023e39
WRKSRC= ${WRKDIR}/opdenkamp-${PORTNAME}-${GITHASH}
FETCH_ARGS= -Fpr
USE_GMAKE= yes
USE_GNOME= pkgconfig
USE_AUTOTOOLS= autoconf libtool automake libltdl
GNU_CONFIGURE= yes
-USE_XORG= xinerama xt xmu xrandr xtst
+USE_XORG= xinerama xt xmu xtst
USE_GL= glu
USE_SDL= image mixer sdl
USE_MYSQL= yes
@@ -97,6 +97,7 @@ OPTIONS= AVAHI "Enable Avahi support" on \
RTMP "RTMP support via librtmp" off \
VAAPI "Enable VAAPI support" off \
VDPAU "Enable VDPAU support" off \
+ XRANDR "Enable xrandr support" on \
WEBSERVER "Build Internal Webserver" off
DESKTOP_ENTRIES="XBMC" \
@@ -209,6 +210,15 @@ CONFIGURE_ARGS+= --disable-webserver
PLIST_SUB+= HTTPD="@comment "
.endif
+.if defined(WITH_XRANDR)
+CONFIGURE_ARGS+= --enable-xrandr
+USE_XORG+= xrandr
+PLIST_SUB+= XRANDR=""
+.else
+CONFIGURE_ARGS+= --disable-xrandr
+PLIST_SUB+= XRANDR="@comment "
+.endif
+
post-patch:
@${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
${WRKSRC}/configure.in \
diff --git a/multimedia/xbmc-pvr/distinfo b/multimedia/xbmc-pvr/distinfo
index c713f1f42a06..db697d65e495 100644
--- a/multimedia/xbmc-pvr/distinfo
+++ b/multimedia/xbmc-pvr/distinfo
@@ -1,2 +1,2 @@
-SHA256 (opdenkamp-xbmc-Eden-pvr_beta2-0-gcbe2cf3.tar.gz) = a165b491092b25be7f8d989cc7c4974a8b01f72ed2a10d529f58710673583261
-SIZE (opdenkamp-xbmc-Eden-pvr_beta2-0-gcbe2cf3.tar.gz) = 57981055
+SHA256 (opdenkamp-xbmc-pvr-ppa-odk70-0-g9023e39.tar.gz) = fc0bd23fcc938c4e11934e216af4cb659b2557ddf4888f96878f9e72407c7889
+SIZE (opdenkamp-xbmc-pvr-ppa-odk70-0-g9023e39.tar.gz) = 61713939
diff --git a/multimedia/xbmc-pvr/files/patch-configure.in b/multimedia/xbmc-pvr/files/patch-configure.in
index d6268eb37958..29246ada475d 100644
--- a/multimedia/xbmc-pvr/files/patch-configure.in
+++ b/multimedia/xbmc-pvr/files/patch-configure.in
@@ -9,7 +9,7 @@
if [[ ! -z $$1_FILENAME ]]; then
$1_SONAME=$(objdump -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
fi
-@@ -377,6 +377,12 @@ AC_ARG_ENABLE([texturepacker],
+@@ -385,6 +385,12 @@ AC_ARG_ENABLE([texturepacker],
[use_texturepacker=$enableval],
[use_texturepacker=auto])
@@ -22,7 +22,7 @@
AC_ARG_WITH([lirc-device],
[AS_HELP_STRING([--with-lirc-device=file],
[specify the default LIRC device (default is /dev/lircd)])],
-@@ -445,6 +451,20 @@ case $host in
+@@ -453,6 +459,20 @@ case $host in
ARCH="x86_64-linux"
AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
;;
@@ -42,8 +42,8 @@
+ ;;
arm-apple-darwin*)
use_joystick=no
- use_crystalhd=no
-@@ -622,6 +642,8 @@ INCLUDES="$INCLUDES -I\$(abs_top_srcdir)
+ use_neon=yes
+@@ -636,6 +656,8 @@ INCLUDES="$INCLUDES -I\$(abs_top_srcdir)
# Check inotify availability
AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),)
@@ -52,7 +52,7 @@
# Checks for boost headers using CXX instead of CC
AC_LANG_PUSH([C++])
AC_CHECK_HEADER([boost/shared_ptr.hpp],, AC_MSG_ERROR($missing_library))
-@@ -774,6 +796,29 @@ AS_CASE([x$use_libbluray],
+@@ -800,6 +822,29 @@ AS_CASE([x$use_libbluray],
]
)
@@ -82,18 +82,20 @@
# platform dependent libraries
if test "$host_vendor" = "apple" ; then
AC_CHECK_LIB([iconv], [main],, AC_MSG_ERROR($missing_library))
-@@ -783,8 +828,10 @@ if test "$host_vendor" = "apple" ; then
+@@ -809,8 +854,12 @@ if test "$host_vendor" = "apple" ; then
AC_DEFINE([HAVE_SDL],[1],["Define to 1 if using sdl"])
fi
else
+ if echo "$ARCH" | grep -vq freebsd; then
AC_CHECK_LIB([dl], [main],, AC_MSG_ERROR($missing_library))
AC_CHECK_LIB([resolv], [main],, AC_MSG_ERROR($missing_library))
++ else
++ AC_CHECK_LIB([iconv], [main],, AC_MSG_ERROR($missing_library))
+ fi
AC_CHECK_LIB([jasper], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
AC_CHECK_LIB([rt], [clock_gettime],, AC_MSG_ERROR($missing_library))
-@@ -1634,6 +1681,12 @@ else
+@@ -1662,6 +1711,12 @@ else
USE_TEXTUREPACKER=0
fi
@@ -106,7 +108,7 @@
if test "$use_mid" = "yes"; then
final_message="$final_message\n MID Support:\tYes"
SDL_DEFINES="$SDL_DEFINES -DMID"
-@@ -1837,7 +1890,6 @@ OUTPUT_FILES="Makefile \
+@@ -1865,7 +1920,6 @@ OUTPUT_FILES="Makefile \
lib/nosefart/Makefile \
lib/libsidplay2/Makefile \
lib/vgmstream/Makefile \
diff --git a/multimedia/xbmc-pvr/files/patch-lib-platform-posix-os-types.h b/multimedia/xbmc-pvr/files/patch-lib-platform-posix-os-types.h
new file mode 100644
index 000000000000..0e48419d6469
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib-platform-posix-os-types.h
@@ -0,0 +1,11 @@
+--- lib/platform/posix/os-types.h.orig
++++ lib/platform/posix/os-types.h
+@@ -35,7 +35,7 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <sys/time.h>
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ #include <sys/prctl.h>
+ #endif
+ #include <pthread.h>
diff --git a/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__cpluff.c b/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__cpluff.c
new file mode 100644
index 000000000000..88c4dcc8d617
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__cpluff.c
@@ -0,0 +1,18 @@
+--- ./lib/cpluff/libcpluff/cpluff.c.orig 2011-12-23 04:12:21.000000000 +0100
++++ ./lib/cpluff/libcpluff/cpluff.c 2012-01-02 10:14:38.000000000 +0100
+@@ -77,6 +77,7 @@
+ return CP_HOST;
+ }
+
++#if defined(CP_THREADS) || !defined(NDEBUG)
+ CP_HIDDEN void cpi_lock_framework(void) {
+ #if defined(CP_THREADS)
+ cpi_lock_mutex(framework_mutex);
+@@ -93,6 +94,7 @@
+ framework_locked--;
+ #endif
+ }
++#endif
+
+ static void reset(void) {
+ #ifdef CP_THREADS
diff --git a/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__logging.c b/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__logging.c
new file mode 100644
index 000000000000..86fa1c9d3f7f
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__logging.c
@@ -0,0 +1,26 @@
+--- ./lib/cpluff/libcpluff/logging.c.orig 2011-12-23 04:12:21.000000000 +0100
++++ ./lib/cpluff/libcpluff/logging.c 2012-01-02 10:14:38.000000000 +0100
+@@ -130,9 +130,11 @@
+ if (status == CP_ERR_RESOURCE) {
+ cpi_error(context, N_("Logger could not be registered due to insufficient memory."));
+ } else if (cpi_is_logged(context, CP_LOG_DEBUG)) {
++#ifndef __clang__
+ char owner[64];
+ /* TRANSLATORS: %s is the context owner */
+ cpi_debugf(context, N_("%s registered a logger."), cpi_context_owner(context, owner, sizeof(owner)));
++#endif
+ }
+ cpi_unlock_context(context);
+
+@@ -167,9 +169,11 @@
+ update_logging_limits(context);
+ }
+ if (cpi_is_logged(context, CP_LOG_DEBUG)) {
++#ifndef __clang__
+ char owner[64];
+ /* TRANSLATORS: %s is the context owner */
+ cpi_debugf(context, N_("%s unregistered a logger."), cpi_context_owner(context, owner, sizeof(owner)));
++#endif
+ }
+ cpi_unlock_context(context);
+ }
diff --git a/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__pinfo.c b/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__pinfo.c
new file mode 100644
index 000000000000..c72f8476e86b
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__pinfo.c
@@ -0,0 +1,26 @@
+--- ./lib/cpluff/libcpluff/pinfo.c.orig 2011-12-23 04:12:21.000000000 +0100
++++ ./lib/cpluff/libcpluff/pinfo.c 2012-01-02 10:14:38.000000000 +0100
+@@ -570,9 +570,11 @@
+ if (status != CP_OK) {
+ cpi_error(context, _("A plug-in listener could not be registered due to insufficient memory."));
+ } else if (cpi_is_logged(context, CP_LOG_DEBUG)) {
++#ifndef __clang__
+ char owner[64];
+ /* TRANSLATORS: %s is the context owner */
+ cpi_debugf(context, N_("%s registered a plug-in listener."), cpi_context_owner(context, owner, sizeof(owner)));
++#endif
+ }
+ cpi_unlock_context(context);
+
+@@ -592,9 +594,11 @@
+ process_unregister_plistener(context->env->plugin_listeners, node, NULL);
+ }
+ if (cpi_is_logged(context, CP_LOG_DEBUG)) {
++#ifndef __clang__
+ char owner[64];
+ /* TRANSLATORS: %s is the context owner */
+ cpi_debugf(context, N_("%s unregistered a plug-in listener."), cpi_context_owner(context, owner, sizeof(owner)));
++#endif
+ }
+ cpi_unlock_context(context);
+ }
diff --git a/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__psymbol.c b/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__psymbol.c
new file mode 100644
index 000000000000..7fc56663c11e
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__psymbol.c
@@ -0,0 +1,26 @@
+--- ./lib/cpluff/libcpluff/psymbol.c.orig 2011-12-23 04:12:21.000000000 +0100
++++ ./lib/cpluff/libcpluff/psymbol.c 2012-01-02 10:14:38.000000000 +0100
+@@ -249,9 +249,11 @@
+ provider_info->usage_count++;
+
+ if (cpi_is_logged(context, CP_LOG_DEBUG)) {
++#ifndef __clang__
+ char owner[64];
+ /* TRANSLATORS: First %s is the context owner */
+ cpi_debugf(context, "%s resolved symbol %s defined by plug-in %s.", cpi_context_owner(context, owner, sizeof(owner)), name, id);
++#endif
+ }
+ } while (0);
+
+@@ -315,9 +317,11 @@
+ hash_delete_free(context->resolved_symbols, node);
+ free(symbol_info);
+ if (cpi_is_logged(context, CP_LOG_DEBUG)) {
++#ifndef __clang__
+ char owner[64];
+ /* TRANSLATORS: First %s is the context owner */
+ cpi_debugf(context, _("%s released the symbol at address %p defined by plug-in %s."), cpi_context_owner(context, owner, sizeof(owner)), ptr, provider_info->plugin->plugin->identifier);
++#endif
+ }
+ }
+
diff --git a/multimedia/xbmc-pvr/files/patch-libdl-freebsd b/multimedia/xbmc-pvr/files/patch-libdl-freebsd
index e983e0a8e96d..8bfd9e037a1e 100644
--- a/multimedia/xbmc-pvr/files/patch-libdl-freebsd
+++ b/multimedia/xbmc-pvr/files/patch-libdl-freebsd
@@ -21,12 +21,12 @@
--- xbmc/pvrclients/tvheadend/Makefile.in.orig
+++ xbmc/pvrclients/tvheadend/Makefile.in
-@@ -6,7 +6,7 @@
+@@ -5,7 +5,7 @@
+ # how to reach the author.
#
- LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a \
-- @abs_top_srcdir@/lib/libhts/libhts.a -ldl
-+ @abs_top_srcdir@/lib/libhts/libhts.a
+-LIBS = @abs_top_srcdir@/lib/libhts/libhts.a -ldl
++LIBS = @abs_top_srcdir@/lib/libhts/libhts.a
LIBDIR = @abs_top_srcdir@/addons/pvr.hts
LIB = @abs_top_srcdir@/addons/pvr.hts/XBMC_Tvheadend.pvr
@@ -36,8 +36,19 @@
# how to reach the author.
#
--LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a -ldl -lpthread
-+LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a -lpthread
+-LIBS = -ldl
++#LIBS = -ldl
LIBDIR = @abs_top_srcdir@/addons/pvr.vdr.vnsi
LIB = @abs_top_srcdir@/addons/pvr.vdr.vnsi/XBMC_VDR_vnsi.pvr
+--- xbmc/pvrclients/pvr-demo/Makefile.in.orig
++++ xbmc/pvrclients/pvr-demo/Makefile.in
+@@ -5,7 +5,7 @@
+ # how to reach the author.
+ #
+
+-LIBS = @abs_top_srcdir@/lib/tinyXML/tinyxml.a -ldl
++LIBS = @abs_top_srcdir@/lib/tinyXML/tinyxml.a
+ LIBDIR = @abs_top_srcdir@/addons/pvr.demo
+ LIB = @abs_top_srcdir@/addons/pvr.demo/XBMC_demo.pvr
+
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-pvr-PVRManager.h b/multimedia/xbmc-pvr/files/patch-xbmc-pvr-PVRManager.h
new file mode 100644
index 000000000000..a88442c5fc8f
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-pvr-PVRManager.h
@@ -0,0 +1,11 @@
+--- xbmc/pvr/PVRManager.h.orig
++++ xbmc/pvr/PVRManager.h
+@@ -532,7 +532,7 @@ namespace PVR
+ int m_LastChannel;
+ unsigned int m_LastChannelChanged;
+
+- ManagerState m_managerState;
++ long m_managerState;
+ };
+
+ class CPVRRecordingsUpdateJob : public CJob
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.cpp
deleted file mode 100644
index d92a000eb95d..000000000000
--- a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
---- xbmc/pvrclients/tvheadend/thread.cpp.orig
-+++ xbmc/pvrclients/tvheadend/thread.cpp
-@@ -25,10 +25,14 @@
-
- #include "thread.h"
- #include <errno.h>
--#ifndef __APPLE__
-+#if !defined(__APPLE__) && !defined(__FreeBSD__)
- #include <malloc.h>
- #endif
-
-+#if defined(__FreeBSD__)
-+#include <signal.h>
-+#endif
-+
- #if !defined(__WINDOWS__)
- #include <sys/signal.h>
- #endif
-@@ -164,7 +168,7 @@ cMutex::cMutex(void)
- locked = 0;
- pthread_mutexattr_t attr;
- pthread_mutexattr_init(&attr);
--#ifndef __APPLE__
-+#if !defined(__APPLE__) && !defined(__FreeBSD__)
- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK_NP);
- #else
- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
-@@ -342,8 +346,8 @@ void cThread::Cancel(int WaitSeconds)
-
- tThreadId cThread::ThreadId(void)
- {
--#ifdef __APPLE__
-- return (int)pthread_self();
-+#if defined(__APPLE__) || defined(__FreeBSD__)
-+ return (tThreadId)pthread_self();
- #else
- #ifdef __WINDOWS__
- return GetCurrentThreadId();
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.h b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.h
deleted file mode 100644
index 67aee89d1235..000000000000
--- a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.h
+++ /dev/null
@@ -1,23 +0,0 @@
---- xbmc/pvrclients/tvheadend/thread.h.orig
-+++ xbmc/pvrclients/tvheadend/thread.h
-@@ -76,7 +76,11 @@ public:
- void Unlock(void);
- };
-
-+#ifdef __FreeBSD__
-+typedef pthread_t tThreadId;
-+#else
- typedef pid_t tThreadId;
-+#endif
-
- class cThread {
- friend class cThreadLock;
-@@ -127,7 +131,7 @@ public:
- bool Active(void);
- ///< Checks whether the thread is still alive.
- static tThreadId ThreadId(void);
-- static tThreadId IsMainThread(void) { return ThreadId() == mainThreadId; }
-+ static int IsMainThread(void) { return ThreadId() == mainThreadId; }
- static void SetMainThreadId(void);
- };
-
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.cpp
deleted file mode 100644
index 4145da7e3b18..000000000000
--- a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
---- xbmc/pvrclients/vdr-vnsi/thread.cpp.orig
-+++ xbmc/pvrclients/vdr-vnsi/thread.cpp
-@@ -28,10 +28,14 @@
- #include "thread.h"
- #include "client.h"
-
--#ifndef __APPLE__
-+#if !defined(__APPLE__) && !defined(__FreeBSD__)
- #include <malloc.h>
- #endif
-
-+#if defined(__FreeBSD__)
-+#include <signal.h>
-+#endif
-+
- #if !defined(__WINDOWS__)
- #include <sys/signal.h>
- #endif
-@@ -162,7 +166,7 @@ cMutex::cMutex(void)
- locked = 0;
- pthread_mutexattr_t attr;
- pthread_mutexattr_init(&attr);
--#ifndef __APPLE__
-+#if !defined(__APPLE__) && !defined(__FreeBSD__)
- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK_NP);
- #else
- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK);
-@@ -348,8 +352,8 @@ void cThread::Cancel(int WaitSeconds)
-
- tThreadId cThread::ThreadId(void)
- {
--#ifdef __APPLE__
-- return (int)pthread_self();
-+#if defined(__APPLE__) || defined(__FreeBSD__)
-+ return (tThreadId)pthread_self();
- #else
- #ifdef __WINDOWS__
- return GetCurrentThreadId();
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.h b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.h
deleted file mode 100644
index a7dd2dc4af8a..000000000000
--- a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.h
+++ /dev/null
@@ -1,23 +0,0 @@
---- xbmc/pvrclients/vdr-vnsi/thread.h.orig
-+++ xbmc/pvrclients/vdr-vnsi/thread.h
-@@ -76,7 +76,11 @@ public:
- void Unlock(void);
- };
-
-+#ifdef __FreeBSD__
-+typedef pthread_t tThreadId;
-+#else
- typedef pid_t tThreadId;
-+#endif
-
- class cThread {
- friend class cThreadLock;
-@@ -123,7 +127,7 @@ public:
- bool Active(void);
- ///< Checks whether the thread is still alive.
- static tThreadId ThreadId(void);
-- static tThreadId IsMainThread(void) { return ThreadId() == mainThreadId; }
-+ static int IsMainThread(void) { return ThreadId() == mainThreadId; }
- static void SetMainThreadId(void);
- };
-
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-screensavers-rsxs-0.9-lib-argp-fmtstream.h b/multimedia/xbmc-pvr/files/patch-xbmc-screensavers-rsxs-0.9-lib-argp-fmtstream.h
new file mode 100644
index 000000000000..ee23184df417
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-screensavers-rsxs-0.9-lib-argp-fmtstream.h
@@ -0,0 +1,11 @@
+--- xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h.orig
++++ xbmc/screensavers/rsxs-0.9/lib/argp-fmtstream.h
+@@ -182,7 +182,7 @@ extern void __argp_fmtstream_update (arg
+ extern int _argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
+ extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
+
+-#ifdef __OPTIMIZE__
++#if defined(__OPTIMIZE__) && (!defined(__clang__) || defined(ARGP_FS_EI))
+ /* Inline versions of above routines. */
+
+ #if !_LIBC
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-screensavers-rsxs-0.9-lib-argp-help.c b/multimedia/xbmc-pvr/files/patch-xbmc-screensavers-rsxs-0.9-lib-argp-help.c
new file mode 100644
index 000000000000..90b9db633853
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-screensavers-rsxs-0.9-lib-argp-help.c
@@ -0,0 +1,12 @@
+--- xbmc/screensavers/rsxs-0.9/lib/argp-help.c.orig
++++ xbmc/screensavers/rsxs-0.9/lib/argp-help.c
+@@ -48,6 +48,9 @@
+ #endif
+
+ #include "argp.h"
++#ifdef __clang__ // XXX
++#define ARGP_FS_EI
++#endif
+ #include "argp-fmtstream.h"
+ #include "argp-namefrob.h"
+
diff --git a/multimedia/xbmc-pvr/pkg-descr b/multimedia/xbmc-pvr/pkg-descr
index 2d1e487c796c..24314e4e7116 100644
--- a/multimedia/xbmc-pvr/pkg-descr
+++ b/multimedia/xbmc-pvr/pkg-descr
@@ -2,11 +2,16 @@ XBMC Media Center (formerly named "XBox Media Center")
is a free and open source cross-platform media-player
and entertainment hub.
-This is a tagged release of the XBMC pvr-ppa-odk branch that adds
-PVR functionality using tvheadend (not ported to FreeBSD yet but
-can be used over the network), MythTV (currently broken), or VDR
-(via external plugins), and is located at:
+This is a tagged release of the XBMC pvr-ppa-odk branch that
+adds PVR functionality using tvheadend (not ported to FreeBSD
+yet but can be used over the network), MythTV (currently broken),
+or VDR (via external plugins multimedia/xbmc-addon-xvdr and
+multimedia/vdr-plugin-xvdr), and is located at:
https://github.com/opdenkamp/xbmc
+See also:
+
+http://wiki.freebsd.org/VDR
+
WWW: http://xbmc.org/
diff --git a/multimedia/xbmc-pvr/pkg-plist b/multimedia/xbmc-pvr/pkg-plist
index 7891f85c66e7..8a3ec040709b 100644
--- a/multimedia/xbmc-pvr/pkg-plist
+++ b/multimedia/xbmc-pvr/pkg-plist
@@ -6,6 +6,7 @@ lib/xbmc/addons/library.xbmc.pvr/libXBMC_pvr-%%ARCH%%-freebsd.so
lib/xbmc/addons/library.xbmc.addon/libXBMC_addon-%%ARCH%%-linux.so
lib/xbmc/addons/library.xbmc.gui/libXBMC_gui-%%ARCH%%-linux.so
lib/xbmc/addons/library.xbmc.pvr/libXBMC_pvr-%%ARCH%%-linux.so
+lib/xbmc/addons/pvr.demo/XBMC_demo.pvr
lib/xbmc/addons/pvr.hts/XBMC_Tvheadend.pvr
lib/xbmc/addons/pvr.mythtv/XBMC_Mythtv.pvr
lib/xbmc/addons/pvr.team-mediaportal.tvserver/XBMC_MPTV.pvr
@@ -30,7 +31,7 @@ lib/xbmc/system/players/paplayer/nosefart-%%ARCH%%-freebsd.so
lib/xbmc/system/players/paplayer/stsoundlibrary-%%ARCH%%-freebsd.so
lib/xbmc/system/players/paplayer/timidity-%%ARCH%%-freebsd.so
lib/xbmc/system/players/paplayer/vgmstream-%%ARCH%%-freebsd.so
-lib/xbmc/xbmc-xrandr
+%%XRANDR%%lib/xbmc/xbmc-xrandr
lib/xbmc/xbmc.bin
%%DOCSDIR%%/LICENSE.GPL
%%DOCSDIR%%/README.linux
@@ -143,6 +144,7 @@ share/icons/hicolor/48x48/apps/xbmc.png
%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Swedish/strings.xml
%%DATADIR%%/addons/metadata.yahoomusic.com/resources/settings.xml
%%DATADIR%%/addons/metadata.yahoomusic.com/yahoomusic.xml
+%%DATADIR%%/addons/pvr.demo/addon.xml
%%DATADIR%%/addons/pvr.hts/addon.xml
%%DATADIR%%/addons/pvr.hts/icon.png
%%DATADIR%%/addons/pvr.hts/resources/language/Dutch/strings.xml
@@ -355,6 +357,7 @@ share/icons/hicolor/48x48/apps/xbmc.png
%%DATADIR%%/addons/skin.confluence/fonts/DejaVuSans.ttf
%%DATADIR%%/addons/skin.confluence/icon.png
%%DATADIR%%/addons/skin.confluence/language/Afrikaans/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Arabic/strings.xml
%%DATADIR%%/addons/skin.confluence/language/Bulgarian/strings.xml
%%DATADIR%%/addons/skin.confluence/language/Catalan/strings.xml
%%DATADIR%%/addons/skin.confluence/language/Chinese (Simple)/strings.xml
@@ -667,6 +670,7 @@ share/icons/hicolor/48x48/apps/xbmc.png
%%DATADIR%%/addons/skin.confluence/media/flagging/audio/ogg.png
%%DATADIR%%/addons/skin.confluence/media/flagging/audio/pcm_bluray.png
%%DATADIR%%/addons/skin.confluence/media/flagging/audio/truehd.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/vorbis.png
%%DATADIR%%/addons/skin.confluence/media/flagging/audio/wav.png
%%DATADIR%%/addons/skin.confluence/media/flagging/audio/wavpack.png
%%DATADIR%%/addons/skin.confluence/media/flagging/audio/wma.png
@@ -841,6 +845,8 @@ share/icons/hicolor/48x48/apps/xbmc.png
%%DATADIR%%/addons/weather.wunderground/changelog.txt
%%DATADIR%%/addons/weather.wunderground/default.py
%%DATADIR%%/addons/weather.wunderground/icon.png
+%%DATADIR%%/addons/weather.wunderground/resources/language/Chinese (Simple)/strings.xml
+%%DATADIR%%/addons/weather.wunderground/resources/language/Dutch/strings.xml
%%DATADIR%%/addons/weather.wunderground/resources/language/English/strings.xml
%%DATADIR%%/addons/weather.wunderground/resources/language/Finnish/strings.xml
%%DATADIR%%/addons/weather.wunderground/resources/language/German/strings.xml
@@ -880,6 +886,8 @@ share/icons/hicolor/48x48/apps/xbmc.png
%%DATADIR%%/addons/xbmc.python/script.xsd
%%DATADIR%%/language/Afrikaans/langinfo.xml
%%DATADIR%%/language/Afrikaans/strings.xml
+%%DATADIR%%/language/Arabic/langinfo.xml
+%%DATADIR%%/language/Arabic/strings.xml
%%DATADIR%%/language/Basque/langinfo.xml
%%DATADIR%%/language/Basque/strings.xml
%%DATADIR%%/language/Bosnian/langinfo.xml
@@ -978,6 +986,7 @@ share/icons/hicolor/48x48/apps/xbmc.png
%%DATADIR%%/sounds/Bursting Bubbles/sounds.xml
%%DATADIR%%/system/IRSSmap.xml
%%DATADIR%%/system/Lircmap.xml
+%%DATADIR%%/system/PVRDemoAddonSettings.xml
%%DATADIR%%/system/X10-Lola-IRSSmap.xml
%%DATADIR%%/system/asound.conf
%%DATADIR%%/system/colors.xml
@@ -1100,6 +1109,7 @@ share/xsessions/XBMC.desktop
@dirrm lib/xbmc/addons/pvr.team-mediaportal.tvserver
@dirrm lib/xbmc/addons/pvr.mythtv
@dirrm lib/xbmc/addons/pvr.hts
+@dirrm lib/xbmc/addons/pvr.demo
@dirrm lib/xbmc/addons/library.xbmc.pvr
@dirrm lib/xbmc/addons/library.xbmc.gui
@dirrm lib/xbmc/addons/library.xbmc.addon
@@ -1167,6 +1177,7 @@ share/xsessions/XBMC.desktop
@dirrm %%DATADIR%%/language/Bulgarian
@dirrm %%DATADIR%%/language/Bosnian
@dirrm %%DATADIR%%/language/Basque
+@dirrm %%DATADIR%%/language/Arabic
@dirrm %%DATADIR%%/language/Afrikaans
@dirrm %%DATADIR%%/language
@dirrm %%DATADIR%%/addons/xbmc.python
@@ -1184,6 +1195,8 @@ share/xsessions/XBMC.desktop
@dirrm %%DATADIR%%/addons/weather.wunderground/resources/language/German
@dirrm %%DATADIR%%/addons/weather.wunderground/resources/language/Finnish
@dirrm %%DATADIR%%/addons/weather.wunderground/resources/language/English
+@dirrm %%DATADIR%%/addons/weather.wunderground/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/weather.wunderground/resources/language/Chinese (Simple)
@dirrm %%DATADIR%%/addons/weather.wunderground/resources/language
@dirrm %%DATADIR%%/addons/weather.wunderground/resources
@dirrm %%DATADIR%%/addons/weather.wunderground
@@ -1304,6 +1317,7 @@ share/xsessions/XBMC.desktop
@dirrm %%DATADIR%%/addons/skin.confluence/language/Chinese (Simple)
@dirrm %%DATADIR%%/addons/skin.confluence/language/Catalan
@dirrm %%DATADIR%%/addons/skin.confluence/language/Bulgarian
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Arabic
@dirrm %%DATADIR%%/addons/skin.confluence/language/Afrikaans
@dirrm %%DATADIR%%/addons/skin.confluence/language
@dirrm %%DATADIR%%/addons/skin.confluence/fonts
@@ -1388,6 +1402,7 @@ share/xsessions/XBMC.desktop
@dirrm %%DATADIR%%/addons/pvr.hts/resources/language
@dirrm %%DATADIR%%/addons/pvr.hts/resources
@dirrm %%DATADIR%%/addons/pvr.hts
+@dirrm %%DATADIR%%/addons/pvr.demo
@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Swedish
@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Portuguese
@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Polish