aboutsummaryrefslogtreecommitdiff
path: root/multimedia
diff options
context:
space:
mode:
authorJuergen Lock <nox@FreeBSD.org>2011-12-18 18:32:02 +0000
committerJuergen Lock <nox@FreeBSD.org>2011-12-18 18:32:02 +0000
commitdf4439a7f0e516c75f29d47bfd797b73dea6db38 (patch)
tree0ba8c5ec73bb7f69091aee95fa2ae37b51c62c29 /multimedia
parent529289231791bace1daef440ff1d87598441988e (diff)
downloadports-df4439a7f0e516c75f29d47bfd797b73dea6db38.tar.gz
ports-df4439a7f0e516c75f29d47bfd797b73dea6db38.zip
Notes
Diffstat (limited to 'multimedia')
-rw-r--r--multimedia/Makefile1
-rw-r--r--multimedia/xbmc-pvr/Makefile253
-rw-r--r--multimedia/xbmc-pvr/distinfo2
-rw-r--r--multimedia/xbmc-pvr/files/patch-Makefile.in20
-rw-r--r--multimedia/xbmc-pvr/files/patch-addons-library.xbmc.addon-libXBMC_addon.h34
-rw-r--r--multimedia/xbmc-pvr/files/patch-addons-library.xbmc.gui-libXBMC_gui.h32
-rw-r--r--multimedia/xbmc-pvr/files/patch-addons-library.xbmc.pvr-libXBMC_pvr.h34
-rw-r--r--multimedia/xbmc-pvr/files/patch-configure.in116
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-dcr.c12
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-libdcr.h11
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib-libPlatform-linux-os_posix.h11
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib-libXDAAP-httpClient.c14
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib-libXDAAP-ioloop.c13
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib-libXDAAP-threadpool.c15
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib-libsidplay2-eventh88
-rw-r--r--multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__ploader.c55
-rw-r--r--multimedia/xbmc-pvr/files/patch-libdl-freebsd43
-rw-r--r--multimedia/xbmc-pvr/files/patch-threadid-freebsd177
-rw-r--r--multimedia/xbmc-pvr/files/patch-tools-TexturePacker-XBTFWriter.cpp11
-rw-r--r--multimedia/xbmc-pvr/files/patch-tools__Linux__xbmc.sh.in28
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.cpp33
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.h13
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-filesystem-CacheStrategy.cpp33
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-filesystem-SAPDirectory.cpp12
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-music-tags-MusicInfoTagLoaderWMA.cpp11
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-network-Network.cpp12
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-network-linux-NetworkLinux.cpp195
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-programs-ProgramDatabase.cpp11
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-MediaPortal-CriticalSection.cpp13
-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-storage-IoSupport.cpp39
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-utils-StdString.h10
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc-windowing-X11-XRandR.cpp14
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__ViewDatabase.cpp11
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__addons__Addon.cpp12
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.cpp169
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.h18
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDAudio.cpp19
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDPlayer.cpp11
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__Makefile.in10
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__PAPlayer.cpp12
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__WAVcodec.cpp11
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.c255
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.h28
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__linux__LinuxTimezone.cpp189
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__linux__Makefile.in15
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__linux__PlatformDefs.h48
-rw-r--r--multimedia/xbmc-pvr/files/patch-xbmc__screensavers__rsxs-0.9__lib__stdbool_.h12
-rw-r--r--multimedia/xbmc-pvr/pkg-descr12
-rw-r--r--multimedia/xbmc-pvr/pkg-plist1455
53 files changed, 3775 insertions, 0 deletions
diff --git a/multimedia/Makefile b/multimedia/Makefile
index f033060cc6a2..73da4dfd91ea 100644
--- a/multimedia/Makefile
+++ b/multimedia/Makefile
@@ -367,6 +367,7 @@
SUBDIR += xanim
SUBDIR += xawtv
SUBDIR += xbmc
+ SUBDIR += xbmc-pvr
SUBDIR += xfce4-media
SUBDIR += xfce4-parole
SUBDIR += xfce4-xmms-plugin
diff --git a/multimedia/xbmc-pvr/Makefile b/multimedia/xbmc-pvr/Makefile
new file mode 100644
index 000000000000..f10d507bfc42
--- /dev/null
+++ b/multimedia/xbmc-pvr/Makefile
@@ -0,0 +1,253 @@
+# New ports collection makefile for: xbmc
+# Date created: 2010-09-16
+# Whom: Mickael Maillot <mickael.maillot@gmail.com>
+#
+# $FreeBSD$
+#
+
+PORTNAME= xbmc
+PORTVERSION= 57
+CATEGORIES= multimedia
+MASTER_SITES= LOCAL/nox
+PKGNAMESUFFIX= -pvr-ppa-odk
+DISTNAME= opdenkamp-${PORTNAME}${PKGNAMESUFFIX}${PORTVERSION}-0-g${GITHASH}
+
+MAINTAINER= nox@FreeBSD.org
+COMMENT= XBMC is an award winning media center application - PVR branch
+
+LICENSE= GPLv2
+
+BUILD_DEPENDS= enca:${PORTSDIR}/converters/enca \
+ gawk:${PORTSDIR}/lang/gawk \
+ gperf:${PORTSDIR}/devel/gperf \
+ cmake:${PORTSDIR}/devel/cmake \
+ zip:${PORTSDIR}/archivers/zip \
+ unzip:${PORTSDIR}/archivers/unzip \
+ nasm:${PORTSDIR}/devel/nasm \
+ dvdread-config:${PORTSDIR}/multimedia/libdvdread
+
+LIB_DEPENDS= asound.2:${PORTSDIR}/audio/alsa-lib \
+ boost_thread.4:${PORTSDIR}/devel/boost-libs \
+ cdio.12:${PORTSDIR}/sysutils/libcdio \
+ curl.6:${PORTSDIR}/ftp/curl \
+ dbus-1.3:${PORTSDIR}/devel/dbus \
+ enca.5:${PORTSDIR}/converters/enca \
+ GLEW.1:${PORTSDIR}/graphics/glew \
+ avcodec.1:${PORTSDIR}/multimedia/ffmpeg \
+ fontconfig.1:${PORTSDIR}/x11-fonts/fontconfig \
+ freetype.9:${PORTSDIR}/print/freetype2 \
+ fribidi.3:${PORTSDIR}/converters/fribidi \
+ lzo2.2:${PORTSDIR}/archivers/lzo2 \
+ jasper.4:${PORTSDIR}/graphics/jasper \
+ jpeg.11:${PORTSDIR}/graphics/jpeg \
+ faad.2:${PORTSDIR}/audio/faad \
+ mad:${PORTSDIR}/audio/libmad \
+ modplug:${PORTSDIR}/audio/libmodplug \
+ mpeg2:${PORTSDIR}/multimedia/libmpeg2 \
+ ogg.7:${PORTSDIR}/audio/libogg \
+ pcre.0:${PORTSDIR}/devel/pcre \
+ png.6:${PORTSDIR}/graphics/png \
+ samplerate.1:${PORTSDIR}/audio/libsamplerate \
+ smbclient.0:${PORTSDIR}/net/samba-libsmbclient \
+ sqlite3.8:${PORTSDIR}/databases/sqlite3 \
+ vorbis.4:${PORTSDIR}/audio/libvorbis \
+ ass.5:${PORTSDIR}/multimedia/libass \
+ wavpack.2:${PORTSDIR}/audio/wavpack \
+ yajl:${PORTSDIR}/devel/yajl \
+ plist:${PORTSDIR}/devel/libplist
+
+RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:${PORTSDIR}/audio/alsa-plugins \
+ ${PYTHON_SITELIBDIR}/_sqlite3.so:${PORTSDIR}/databases/py-sqlite3 \
+ glxinfo:${PORTSDIR}/graphics/mesa-demos \
+ ${PYTHON_SITELIBDIR}/PIL/__init__.py:${PORTSDIR}/graphics/py-imaging \
+ xdpyinfo:${PORTSDIR}/x11/xdpyinfo
+
+GITHASH= d967ec3
+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_GL= glu
+USE_SDL= image mixer sdl
+USE_MYSQL= yes
+USE_PYTHON= 2.5-2.7
+MAKE_JOBS_SAFE= yes
+NOPRECIOUSMAKEVARS= yes
+INSTALLS_ICONS= yes
+ONLY_FOR_ARCHS= i386 amd64
+USE_LDCONFIG= ${PREFIX}/lib/xbmc/system \
+ ${PREFIX}/lib/xbmc/system/players/dvdplayer \
+ ${PREFIX}/lib/xbmc/system/players/paplayer
+CONFLICTS_INSTALL= xbmc-[0-9]*
+
+PLIST_SUB+= PYVER="${PYTHON_VERSION:S/python//:S/.//g}"
+
+OPTIONS= AVAHI "Enable Avahi support" on \
+ LIBBLURAY "Enable libbluray support" on \
+ FAAC "Enable FAAC support" off \
+ HAL "Enable HAL support" on \
+ LIRC "Enable lirc support" off \
+ MMS "Enable mms:// & mmsh:// support" on \
+ NONFREE "Enable non-free components (rar, ccx, ffmpeg)" off \
+ PULSE "Enable PulseAudio support" off \
+ RTMP "RTMP support via librtmp" off \
+ VAAPI "Enable VAAPI support" off \
+ VDPAU "Enable VDPAU support" off \
+ WEBSERVER "Build Internal Webserver" off
+
+DESKTOP_ENTRIES="XBMC" \
+ "${COMMENT}" \
+ "${DATADIR}/media/icon.png" \
+ "xbmc" \
+ "AudioVideo;Video;" \
+ true
+
+CPPFLAGS+= -I${LOCALBASE}/include
+LDFLAGS+= -L${LOCALBASE}/lib
+
+CONFIGURE_ARGS+= --enable-external-libraries
+
+.include <bsd.port.pre.mk>
+
+.if defined(WITH_DEBUG)
+CONFIGURE_ARGS+= --enable-debug
+.else
+CONFIGURE_ARGS+= --disable-debug
+.endif
+
+.if ${ARCH} == i386
+PLIST_SUB+= ARCH="x86"
+.else
+PLIST_SUB+= ARCH="x86_64"
+.endif
+
+.if !defined(WITHOUT_AVAHI)
+CONFIGURE_ARGS+= --enable-avahi
+LIB_DEPENDS+= avahi-common.3:${PORTSDIR}/net/avahi-app
+.else
+CONFIGURE_ARGS+= --disable-avahi
+.endif
+
+.if !defined(WITHOUT_LIBBLURAY)
+CONFIGURE_ARGS+= --enable-libbluray
+LIB_DEPENDS+= bluray.0:${PORTSDIR}/multimedia/libbluray
+.else
+CONFIGURE_ARGS+= --disable-libbluray
+.endif
+
+.if defined(WITH_FAAC)
+CONFIGURE_ARGS+= --enable-faac
+LIB_DEPENDS+= faac.0:${PORTSDIR}/audio/faac
+.else
+CONFIGURE_ARGS+= --disable-faac
+.endif
+
+.if !defined(WITHOUT_HAL)
+CONFIGURE_ARGS+= --enable-hal
+LIB_DEPENDS+= hal.1:${PORTSDIR}/sysutils/hal
+.else
+CONFIGURE_ARGS+= --disable-hal
+.endif
+
+.if defined(WITH_LIRC)
+RUN_DEPENDS+= lircd:${PORTSDIR}/comms/lirc
+.endif
+
+.if !defined(WITHOUT_MMS)
+CONFIGURE_ARGS+= --enable-libmms
+LIB_DEPENDS+= mms.0:${PORTSDIR}/net/libmms
+.else
+CONFIGURE_ARGS+= --disable-libmms
+.endif
+
+.if defined(WITH_NONFREE)
+CONFIGURE_ARGS+= --enable-non-free
+NO_CDROM= Restricted binary distribution
+NO_PACKAGE= ${NO_CDROM}
+.else
+CONFIGURE_ARGS+= --disable-non-free
+.endif
+
+.if defined(WITH_PULSE)
+CONFIGURE_ARGS+= --enable-pulse
+LIB_DEPENDS+= pulse.0:${PORTSDIR}/audio/pulseaudio
+.else
+CONFIGURE_ARGS+= --disable-pulse
+.endif
+
+.if defined(WITH_RTMP)
+CONFIGURE_ARGS+= --enable-rtmp
+LIB_DEPENDS+= rtmp.0:${PORTSDIR}/multimedia/rtmpdump
+.else
+CONFIGURE_ARGS+= --disable-rtmp
+.endif
+
+.if defined(WITH_VAAPI)
+LIB_DEPENDS+= va.1:${PORTSDIR}/multimedia/libva
+CONFIGURE_ARGS+= --enable-vaapi
+.else
+CONFIGURE_ARGS+= --disable-vaapi
+.endif
+
+.if defined(WITH_VDPAU)
+LIB_DEPENDS+= vdpau.1:${PORTSDIR}/multimedia/libvdpau
+CONFIGURE_ARGS+= --enable-vdpau
+.else
+CONFIGURE_ARGS+= --disable-vdpau
+.endif
+
+.if defined(WITH_WEBSERVER)
+CONFIGURE_ARGS+= --enable-webserver
+LIB_DEPENDS+= microhttpd.23:${PORTSDIR}/www/libmicrohttpd
+PLIST_SUB+= HTTPD=""
+.else
+CONFIGURE_ARGS+= --disable-webserver
+PLIST_SUB+= HTTPD="@comment "
+.endif
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
+ ${WRKSRC}/configure.in \
+ ${WRKSRC}/lib/asap/Makefile.in \
+ ${WRKSRC}/lib/libdvd/libdvdnav/configure.ac \
+ ${WRKSRC}/lib/libdvd/libdvdnav/configure2 \
+ ${WRKSRC}/lib/libdvd/libdvdread/configure.ac \
+ ${WRKSRC}/lib/libdvd/libdvdread/configure2 \
+ ${WRKSRC}/lib/libsidplay2/libsidplay/unix/my_macros.m4 \
+ ${WRKSRC}/lib/timidity/configure.in \
+ ${WRKSRC}/xbmc/screensavers/rsxs-0.9/acinclude.m4
+ ${RM} ${WRKSRC}/addons/library.xbmc.addon/libXBMC_addon.h.orig
+ ${RM} ${WRKSRC}/addons/library.xbmc.gui/libXBMC_gui.h.orig
+ ${RM} ${WRKSRC}/addons/library.xbmc.pvr/libXBMC_pvr.h.orig
+# XXX somehow there are still references to linux libraries, if you find
+# where they come from please tell us!
+.if ${ARCH} == "amd64"
+ ${LN} -s libXBMC_addon-x86_64-freebsd.so ${WRKSRC}/addons/library.xbmc.addon/libXBMC_addon-x86_64-linux.so
+ ${LN} -s libXBMC_gui-x86_64-freebsd.so ${WRKSRC}/addons/library.xbmc.gui/libXBMC_gui-x86_64-linux.so
+ ${LN} -s libXBMC_pvr-x86_64-freebsd.so ${WRKSRC}/addons/library.xbmc.pvr/libXBMC_pvr-x86_64-linux.so
+.else
+ ${LN} -s libXBMC_addon-i386-freebsd.so ${WRKSRC}/addons/library.xbmc.addon/libXBMC_addon-i486-linux.so
+ ${LN} -s libXBMC_gui-i386-freebsd.so ${WRKSRC}/addons/library.xbmc.gui/libXBMC_gui-i486-linux.so
+ ${LN} -s libXBMC_pvr-i386-freebsd.so ${WRKSRC}/addons/library.xbmc.pvr/libXBMC_pvr-i486-linux.so
+.endif
+
+pre-configure:
+ cd ${WRKSRC} && ./bootstrap
+
+post-install:
+# XXX somehow there are still references to linux libraries, if you find
+# where they come from please tell us!
+.if ${ARCH} == "amd64"
+ ${LN} -s libXBMC_addon-x86_64-freebsd.so ${PREFIX}/lib/xbmc/addons/library.xbmc.addon/libXBMC_addon-x86_64-linux.so
+ ${LN} -s libXBMC_gui-x86_64-freebsd.so ${PREFIX}/lib/xbmc/addons/library.xbmc.gui/libXBMC_gui-x86_64-linux.so
+ ${LN} -s libXBMC_pvr-x86_64-freebsd.so ${PREFIX}/lib/xbmc/addons/library.xbmc.pvr/libXBMC_pvr-x86_64-linux.so
+.else
+ ${LN} -s libXBMC_addon-i386-freebsd.so ${PREFIX}/lib/xbmc/addons/library.xbmc.addon/libXBMC_addon-i486-linux.so
+ ${LN} -s libXBMC_gui-i386-freebsd.so ${PREFIX}/lib/xbmc/addons/library.xbmc.gui/libXBMC_gui-i486-linux.so
+ ${LN} -s libXBMC_pvr-i386-freebsd.so ${PREFIX}/lib/xbmc/addons/library.xbmc.pvr/libXBMC_pvr-i486-linux.so
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/multimedia/xbmc-pvr/distinfo b/multimedia/xbmc-pvr/distinfo
new file mode 100644
index 000000000000..736456970544
--- /dev/null
+++ b/multimedia/xbmc-pvr/distinfo
@@ -0,0 +1,2 @@
+SHA256 (opdenkamp-xbmc-pvr-ppa-odk57-0-gd967ec3.tar.gz) = 291937b30f203608e255482d304ad6af36939a3544d3144e4cdaec2c6a3638f2
+SIZE (opdenkamp-xbmc-pvr-ppa-odk57-0-gd967ec3.tar.gz) = 57863915
diff --git a/multimedia/xbmc-pvr/files/patch-Makefile.in b/multimedia/xbmc-pvr/files/patch-Makefile.in
new file mode 100644
index 000000000000..7b91c2766829
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-Makefile.in
@@ -0,0 +1,20 @@
+--- Makefile.in.orig
++++ Makefile.in
+@@ -127,7 +127,6 @@ PAPCODECS_DIRS= \
+ lib/timidity \
+ lib/libsidplay2 \
+ lib/stsound/StSoundLibrary \
+- lib/snesapu/SNES/SNESAPU \
+ lib/vgmstream
+
+ ifeq (@USE_ASAP_CODEC@,1)
+@@ -463,9 +462,6 @@ ifeq (@USE_ASAP_CODEC@,1)
+ endif
+ endif
+ $(MAKE) -C lib/stsound/StSoundLibrary
+-ifeq ($(or $(findstring powerpc,@ARCH@),$(findstring x86_64-linux,@ARCH@),$(findstring arm, @ARCH@)),)
+- $(MAKE) -C lib/snesapu/SNES/SNESAPU
+-endif
+ imagelib: dllloader
+ $(MAKE) -C lib/cximage-6.0
+
diff --git a/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.addon-libXBMC_addon.h b/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.addon-libXBMC_addon.h
new file mode 100644
index 000000000000..0bf0700d9473
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.addon-libXBMC_addon.h
@@ -0,0 +1,34 @@
+--- addons/library.xbmc.addon/libXBMC_addon.h.orig
++++ addons/library.xbmc.addon/libXBMC_addon.h
+@@ -40,15 +40,31 @@
+ #define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-x86-osx.so"
+ #endif
+ #elif defined(__x86_64__)
++#ifdef __FreeBSD__
++#define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-x86_64-freebsd.so"
++#else
+ #define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-x86_64-linux.so"
++#endif
+ #elif defined(_POWERPC)
++#ifdef __FreeBSD__
++#define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-powerpc-freebsd.so"
++#else
+ #define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-powerpc-linux.so"
++#endif
+ #elif defined(_POWERPC64)
++#ifdef __FreeBSD__
++#define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-powerpc64-freebsd.so"
++#else
+ #define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-powerpc64-linux.so"
++#endif
+ #elif defined(_ARMEL)
+ #define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-arm.so"
+ #else /* !__x86_64__ && !__powerpc__ */
++#ifdef __FreeBSD__
++#define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-i386-freebsd.so"
++#else
+ #define ADDON_DLL "/library.xbmc.addon/libXBMC_addon-i486-linux.so"
++#endif
+ #endif /* __x86_64__ */
+ #endif /* _LINUX */
+
diff --git a/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.gui-libXBMC_gui.h b/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.gui-libXBMC_gui.h
new file mode 100644
index 000000000000..713eaef89290
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.gui-libXBMC_gui.h
@@ -0,0 +1,32 @@
+--- addons/library.xbmc.gui/libXBMC_gui.h.orig
++++ addons/library.xbmc.gui/libXBMC_gui.h
+@@ -44,13 +44,29 @@ typedef void* GUIHANDLE;
+ #elif defined(_ARMEL)
+ #define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-arm.so"
+ #elif defined(__x86_64__)
++#ifdef __FreeBSD__
++#define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-x86_64-freebsd.so"
++#else
+ #define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-x86_64-linux.so"
++#endif
+ #elif defined(_POWERPC)
++#ifdef __FreeBSD__
++#define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-powerpc-freebsd.so"
++#else
+ #define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-powerpc-linux.so"
++#endif
+ #elif defined(_POWERPC64)
++#ifdef __FreeBSD__
++#define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-powerpc64-freebsd.so"
++#else
+ #define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-powerpc64-linux.so"
++#endif
+ #else /* !__x86_64__ && !__powerpc__ && !_ARMEL */
++#ifdef __FreeBSD__
++#define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-i386-freebsd.so"
++#else
+ #define GUI_HELPER_DLL "/library.xbmc.gui/libXBMC_gui-i486-linux.so"
++#endif
+ #endif /* __x86_64__ */
+ #endif /* _LINUX */
+
diff --git a/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.pvr-libXBMC_pvr.h b/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.pvr-libXBMC_pvr.h
new file mode 100644
index 000000000000..9cde7f07926e
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-addons-library.xbmc.pvr-libXBMC_pvr.h
@@ -0,0 +1,34 @@
+--- addons/library.xbmc.pvr/libXBMC_pvr.h.orig
++++ addons/library.xbmc.pvr/libXBMC_pvr.h
+@@ -41,15 +41,31 @@
+ #define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-x86-osx.so"
+ #endif
+ #elif defined(__x86_64__)
++#ifdef __FreeBSD__
++#define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-x86_64-freebsd.so"
++#else
+ #define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-x86_64-linux.so"
++#endif
+ #elif defined(_POWERPC)
++#ifdef __FreeBSD__
++#define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-powerpc-freebsd.so"
++#else
+ #define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-powerpc-linux.so"
++#endif
+ #elif defined(_POWERPC64)
++#ifdef __FreeBSD__
++#define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-powerpc64-freebsd.so"
++#else
+ #define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-powerpc64-linux.so"
++#endif
+ #elif defined(_ARMEL)
+ #define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-arm.so"
+ #else /* !__x86_64__ && !__powerpc__ */
++#ifdef __FreeBSD__
++#define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-i386-freebsd.so"
++#else
+ #define PVR_HELPER_DLL "/library.xbmc.pvr/libXBMC_pvr-i486-linux.so"
++#endif
+ #endif /* __x86_64__ */
+ #endif /* _LINUX */
+
diff --git a/multimedia/xbmc-pvr/files/patch-configure.in b/multimedia/xbmc-pvr/files/patch-configure.in
new file mode 100644
index 000000000000..d6268eb37958
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-configure.in
@@ -0,0 +1,116 @@
+--- configure.in.orig
++++ configure.in
+@@ -20,7 +20,7 @@ AC_DEFUN([XB_FIND_SONAME],
+ [
+ if [[ "$host_vendor" != "apple" ]]; then
+ AC_MSG_CHECKING([for lib$2 soname])
+- $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
++ $1_FILENAME=$($CC -nostdlib $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
+ 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],
+ [use_texturepacker=$enableval],
+ [use_texturepacker=auto])
+
++AC_ARG_ENABLE([libmms],
++ [AS_HELP_STRING([--enable-libmms],
++ [enable mms:// and mmsh:// support (default is auto)])],
++ [use_libmms=$enableval],
++ [use_libmms=auto])
++
+ 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
+ ARCH="x86_64-linux"
+ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
+ ;;
++ i386-*-freebsd*)
++ ARCH="x86-freebsd"
++ MAKE="gmake"
++ CFLAGS="$CFLAGS -I/usr/local/include"
++ CXXFLAGS="$CXXFLAGS -I/usr/local/include"
++ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
++ ;;
++ amd64-*-freebsd*)
++ ARCH="x86_64-freebsd"
++ MAKE="gmake"
++ CFLAGS="$CFLAGS -I/usr/local/include"
++ CXXFLAGS="$CXXFLAGS -I/usr/local/include"
++ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
++ ;;
+ arm-apple-darwin*)
+ use_joystick=no
+ use_crystalhd=no
+@@ -622,6 +642,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]),)
+
++AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[""]),)
++
+ # 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],
+ ]
+ )
+
++# check for libmms
++AS_CASE([x$use_libmms],
++ [xyes],[
++ PKG_CHECK_MODULES([LIBMMS],[libmms],[use_libmms="yes"], AC_MSG_ERROR($missing_library))
++ ],
++ [xauto],[
++ PKG_CHECK_MODULES([LIBMMS],[libmms],[use_libmms="yes"], [use_libmms="no"])
++ ])
++
++AS_CASE([x$use_libmms],
++ [xyes],[
++ INCLUDES="$INCLUDES $LIBMMS_CFLAGS";
++ LIBS="$LIBS $LIBMMS_LIBS";
++ if test "$host_vendor" != "apple"; then
++ XB_FIND_SONAME([MMS], [mms], [use_libmms])
++ fi;
++ AC_DEFINE([HAVE_LIBMMS], 1, [System has libmms library])
++ AC_SUBST([HAVE_LIBMMS], 1)
++ ],[
++ AC_SUBST([HAVE_LIBMMS], 0)
++ ]
++)
++
+ # 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
+ 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))
++ 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
+ USE_TEXTUREPACKER=0
+ fi
+
++if test "$use_libmms" = "yes"; then
++ final_message="$final_message\n MMS Support:\tYes"
++else
++ final_message="$final_message\n MMS Support:\tNo"
++fi
++
+ 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 \
+ lib/nosefart/Makefile \
+ lib/libsidplay2/Makefile \
+ lib/vgmstream/Makefile \
+- lib/snesapu/SNES/SNESAPU/Makefile \
+ lib/stsound/StSoundLibrary/Makefile \
+ xbmc/cores/playercorefactory/Makefile \
+ xbmc/music/karaoke/Makefile \
diff --git a/multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-dcr.c b/multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-dcr.c
new file mode 100644
index 000000000000..89e251ea6f31
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-dcr.c
@@ -0,0 +1,12 @@
+--- lib/cximage-6.0/raw/dcr.c.orig
++++ lib/cximage-6.0/raw/dcr.c
+@@ -144,7 +144,9 @@ int DCR_CLASS main (int argc, char **arg
+
+ //!!! set return point for error handling
+ if (setjmp (dcr.failure)) {
++#if !defined(__FreeBSD__)
+ if (fileno(dcr.obj_) > 2) (*dcr.ops_->close_)(dcr.obj_);
++#endif
+ if (fileno(ofp) > 2) fclose(ofp);
+ status = 1;
+ goto cleanup;
diff --git a/multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-libdcr.h b/multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-libdcr.h
new file mode 100644
index 000000000000..c5ce6a61cb7a
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib-cximage-6.0-raw-libdcr.h
@@ -0,0 +1,11 @@
+--- lib/cximage-6.0/raw/libdcr.h.orig
++++ lib/cximage-6.0/raw/libdcr.h
+@@ -41,7 +41,7 @@
+ #include <setjmp.h>
+ #include <sys/types.h>
+ #endif
+-#if defined(_LINUX) || defined(__APPLE__)
++#if defined(_LINUX) || defined(__APPLE__) || defined(__FreeBSD__)
+ #include <setjmp.h>
+ #include <sys/types.h>
+ #define _swab swab
diff --git a/multimedia/xbmc-pvr/files/patch-lib-libPlatform-linux-os_posix.h b/multimedia/xbmc-pvr/files/patch-lib-libPlatform-linux-os_posix.h
new file mode 100644
index 000000000000..0bc12b5ed5f6
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib-libPlatform-linux-os_posix.h
@@ -0,0 +1,11 @@
+--- lib/libPlatform/linux/os_posix.h.orig
++++ lib/libPlatform/linux/os_posix.h
+@@ -32,7 +32,7 @@
+ #include <sys/timeb.h>
+ #include <sys/resource.h>
+ #include <sys/syscall.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-libXDAAP-httpClient.c b/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-httpClient.c
new file mode 100644
index 000000000000..edaa6db0ebf0
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-httpClient.c
@@ -0,0 +1,14 @@
+--- lib/libXDAAP/httpClient.c.orig
++++ lib/libXDAAP/httpClient.c
+@@ -61,6 +61,11 @@
+ #include <netinet/in.h>
+ #endif
+
++#if defined(__FreeBSD__)
++#include <sys/types.h>
++#include <sys/socket.h>
++#endif /* __FreeBSD__ */
++
+ struct HTTP_ConnectionTAG
+ {
+ char *host;
diff --git a/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-ioloop.c b/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-ioloop.c
new file mode 100644
index 000000000000..c6f339b78f52
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-ioloop.c
@@ -0,0 +1,13 @@
+--- lib/libXDAAP/ioloop.c.orig
++++ lib/libXDAAP/ioloop.c
+@@ -122,9 +122,9 @@
+
+ void fd_event_reset(fd_event *event)
+ {
+- event->signalled = 0;
+ char buf[1] = {0};
+ int flags;
++ event->signalled = 0;
+
+ /* set non-blocking on read pipe */
+ flags = fcntl(event->pipe[0], F_GETFL, 0);
diff --git a/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-threadpool.c b/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-threadpool.c
new file mode 100644
index 000000000000..23f35c268e5d
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib-libXDAAP-threadpool.c
@@ -0,0 +1,15 @@
+--- lib/libXDAAP/threadpool.c.orig
++++ lib/libXDAAP/threadpool.c
+@@ -279,10 +279,10 @@
+ void CP_ThreadPool_QueueWorkItem(CP_SThreadPool *pTPThis, CP_TPfnJob pfnCallback,
+ void *arg1, void *arg2)
+ {
+- ts_mutex_lock(pTPThis->mtJobQueueMutex);
+-
+ CP_STPJobQueue *pTPJQNewJob = malloc(sizeof(CP_STPJobQueue));
+
++ ts_mutex_lock(pTPThis->mtJobQueueMutex);
++
+ pTPJQNewJob->fnJobCallback = pfnCallback;
+ pTPJQNewJob->arg1 = arg1;
+ pTPJQNewJob->arg2 = arg2;
diff --git a/multimedia/xbmc-pvr/files/patch-lib-libsidplay2-eventh b/multimedia/xbmc-pvr/files/patch-lib-libsidplay2-eventh
new file mode 100644
index 000000000000..5aa7a10ac035
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib-libsidplay2-eventh
@@ -0,0 +1,88 @@
+--- lib/libsidplay2/libsidplay/src/event.cpp.orig
++++ lib/libsidplay2/libsidplay/src/event.cpp
+@@ -50,7 +50,7 @@
+ ***************************************************************************/
+
+ #include <string.h>
+-#include "event.h"
++#include "../../include/sidplay/event.h"
+
+ #define EVENT_TIMEWARP_COUNT 0x0FFFFF
+
+--- lib/libsidplay2/libsidplay/src/mos6510/mos6510.h.orig
++++ lib/libsidplay2/libsidplay/src/mos6510/mos6510.h
+@@ -36,7 +36,7 @@
+ #include "config.h"
+ #include "component.h"
+ #include "sidenv.h"
+-#include "event.h"
++#include "../../include/sidplay/event.h"
+
+ #undef MOS6510_VERSION
+ #undef MOS6510_DATE
+--- lib/libsidplay2/libsidplay/include/sidplay/c64env.h.orig
++++ lib/libsidplay2/libsidplay/include/sidplay/c64env.h
+@@ -19,7 +19,7 @@
+ #define _c64env_h_
+
+ #include "sidtypes.h"
+-#include "event.h"
++#include "../../include/sidplay/event.h"
+
+ /* An implementation of of this class can be created to perform the C64
+ specifics. A pointer to this child class can then be passed to
+--- lib/libsidplay2/libsidplay/include/sidplay/sid2types.h.orig
++++ lib/libsidplay2/libsidplay/include/sidplay/sid2types.h
+@@ -19,7 +19,7 @@
+ #define _sid2types_h_
+
+ #include "sidtypes.h"
+-#include "event.h"
++#include "../../include/sidplay/event.h"
+
+ class sidbuilder;
+ struct SidTuneInfo;
+--- lib/libsidplay2/libsidplay/src/mos6526/mos6526.h.orig
++++ lib/libsidplay2/libsidplay/src/mos6526/mos6526.h
+@@ -85,7 +85,7 @@
+ #define _mos6526_h_
+
+ #include "component.h"
+-#include "event.h"
++#include "../../include/sidplay/event.h"
+
+ class MOS6526: public component
+ {
+--- lib/libsidplay2/libsidplay/src/mos656x/mos656x.h.orig
++++ lib/libsidplay2/libsidplay/src/mos656x/mos656x.h
+@@ -19,7 +19,7 @@
+ #define _mos656x_h_
+
+ #include "component.h"
+-#include "event.h"
++#include "../../include/sidplay/event.h"
+
+ typedef enum
+ {
+--- lib/libsidplay2/libsidplay/src/sid6526/sid6526.h.orig
++++ lib/libsidplay2/libsidplay/src/sid6526/sid6526.h
+@@ -38,7 +38,7 @@
+ #define _sid6526_h_
+
+ #include "component.h"
+-#include "event.h"
++#include "../../include/sidplay/event.h"
+ #include "c64env.h"
+
+ class SID6526: public component
+--- lib/libsidplay2/libsidplay/src/xsid/xsid.h.orig
++++ lib/libsidplay2/libsidplay/src/xsid/xsid.h
+@@ -106,7 +106,7 @@ programmed with.
+
+ #include "config.h"
+ #include "sidbuilder.h"
+-#include "event.h"
++#include "../../include/sidplay/event.h"
+
+ // XSID configuration settings
+ //#define XSID_DEBUG 1
diff --git a/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__ploader.c b/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__ploader.c
new file mode 100644
index 000000000000..790e45dc0778
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-lib__cpluff__libcpluff__ploader.c
@@ -0,0 +1,55 @@
+--- ./lib/cpluff/libcpluff/ploader.c.orig 2010-07-09 17:51:15.000000000 +0200
++++ ./lib/cpluff/libcpluff/ploader.c 2010-12-01 12:17:34.288126970 +0100
+@@ -161,15 +161,15 @@
+ cpi_warnf(plcontext->context,
+ N_("Suspicious plug-in descriptor content in %s, line %d, column %d (%s)."),
+ plcontext->file,
+- XML_GetCurrentLineNumber(plcontext->parser),
+- XML_GetCurrentColumnNumber(plcontext->parser) + 1,
++ (int)XML_GetCurrentLineNumber(plcontext->parser),
++ (int)XML_GetCurrentColumnNumber(plcontext->parser) + 1,
+ message);
+ } else {
+ cpi_errorf(plcontext->context,
+ N_("Invalid plug-in descriptor content in %s, line %d, column %d (%s)."),
+ plcontext->file,
+- XML_GetCurrentLineNumber(plcontext->parser),
+- XML_GetCurrentColumnNumber(plcontext->parser) + 1,
++ (int)XML_GetCurrentLineNumber(plcontext->parser),
++ (int)XML_GetCurrentColumnNumber(plcontext->parser) + 1,
+ message);
+ }
+ if (!warn) {
+@@ -188,8 +188,8 @@
+ cpi_errorf(plcontext->context,
+ N_("Insufficient system resources to parse plug-in descriptor content in %s, line %d, column %d."),
+ plcontext->file,
+- XML_GetCurrentLineNumber(plcontext->parser),
+- XML_GetCurrentColumnNumber(plcontext->parser) + 1);
++ (int)XML_GetCurrentLineNumber(plcontext->parser),
++ (int)XML_GetCurrentColumnNumber(plcontext->parser) + 1);
+ }
+ plcontext->resource_error_count++;
+ }
+@@ -1084,8 +1084,8 @@
+ cpi_errorf(context,
+ N_("XML parsing error in %s, line %d, column %d (%s)."),
+ file,
+- XML_GetErrorLineNumber(parser),
+- XML_GetErrorColumnNumber(parser) + 1,
++ (int)XML_GetErrorLineNumber(parser),
++ (int)XML_GetErrorColumnNumber(parser) + 1,
+ XML_ErrorString(XML_GetErrorCode(parser)));
+ cpi_unlock_context(context);
+ }
+@@ -1270,8 +1270,8 @@
+ cpi_errorf(context,
+ N_("XML parsing error in %s, line %d, column %d (%s)."),
+ file,
+- XML_GetErrorLineNumber(parser),
+- XML_GetErrorColumnNumber(parser) + 1,
++ (int)XML_GetErrorLineNumber(parser),
++ (int)XML_GetErrorColumnNumber(parser) + 1,
+ XML_ErrorString(XML_GetErrorCode(parser)));
+ cpi_unlock_context(context);
+ }
diff --git a/multimedia/xbmc-pvr/files/patch-libdl-freebsd b/multimedia/xbmc-pvr/files/patch-libdl-freebsd
new file mode 100644
index 000000000000..e983e0a8e96d
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-libdl-freebsd
@@ -0,0 +1,43 @@
+--- xbmc/pvrclients/MediaPortal/Makefile.in.orig
++++ xbmc/pvrclients/MediaPortal/Makefile.in
+@@ -5,7 +5,7 @@
+ # how to reach the author.
+ #
+
+-LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a lib/tinyxml/tinyxml.a -ldl
++LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a lib/tinyxml/tinyxml.a
+ LIBDIR = @abs_top_srcdir@/addons/pvr.team-mediaportal.tvserver
+ LIB = @abs_top_srcdir@/addons/pvr.team-mediaportal.tvserver/XBMC_MPTV.pvr
+
+--- xbmc/pvrclients/mythtv/Makefile.in.orig
++++ xbmc/pvrclients/mythtv/Makefile.in
+@@ -5,7 +5,6 @@
+ # how to reach the author.
+ #
+
+-LIBS = -ldl
+ LIBDIR = @abs_top_srcdir@/addons/pvr.mythtv
+ LIB = @abs_top_srcdir@/addons/pvr.mythtv/XBMC_Mythtv.pvr
+
+--- xbmc/pvrclients/tvheadend/Makefile.in.orig
++++ xbmc/pvrclients/tvheadend/Makefile.in
+@@ -6,7 +6,7 @@
+ #
+
+ LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a \
+- @abs_top_srcdir@/lib/libhts/libhts.a -ldl
++ @abs_top_srcdir@/lib/libhts/libhts.a
+ LIBDIR = @abs_top_srcdir@/addons/pvr.hts
+ LIB = @abs_top_srcdir@/addons/pvr.hts/XBMC_Tvheadend.pvr
+
+--- xbmc/pvrclients/vdr-vnsi/Makefile.in.orig
++++ xbmc/pvrclients/vdr-vnsi/Makefile.in
+@@ -5,7 +5,7 @@
+ # how to reach the author.
+ #
+
+-LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a -ldl -lpthread
++LIBS = @abs_top_srcdir@/lib/libTcpSocket/libTcpSocket.a -lpthread
+ LIBDIR = @abs_top_srcdir@/addons/pvr.vdr.vnsi
+ LIB = @abs_top_srcdir@/addons/pvr.vdr.vnsi/XBMC_VDR_vnsi.pvr
+
diff --git a/multimedia/xbmc-pvr/files/patch-threadid-freebsd b/multimedia/xbmc-pvr/files/patch-threadid-freebsd
new file mode 100644
index 000000000000..1150f6a486a1
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-threadid-freebsd
@@ -0,0 +1,177 @@
+--- xbmc/linux/XThreadUtils.cpp.orig
++++ xbmc/linux/XThreadUtils.cpp
+@@ -38,7 +38,11 @@ HANDLE WINAPI CreateThread(
+ LPTHREAD_START_ROUTINE lpStartAddress,
+ LPVOID lpParameter,
+ DWORD dwCreationFlags,
++#ifdef __FreeBSD__
++ LPLONG lpThreadId
++#else
+ LPDWORD lpThreadId
++#endif
+ ) {
+
+ // a thread handle would actually contain an event
+@@ -62,8 +66,12 @@ HANDLE WINAPI CreateThread(
+ pthread_attr_destroy(&attr);
+
+ if (h && lpThreadId)
++#ifdef __FreeBSD__
++ *lpThreadId = (LONG)h->m_hThread;
++#else
+ // WARNING: This can truncate thread IDs on x86_64.
+ *lpThreadId = (DWORD)h->m_hThread;
++#endif
+ return h;
+ }
+
+@@ -89,10 +97,18 @@ HANDLE _beginthreadex(
+ int ( *start_address )( void * ),
+ void *arglist,
+ unsigned initflag,
++#ifdef __FreeBSD__
++ unsigned long *thrdaddr
++#else
+ unsigned *thrdaddr
++#endif
+ ) {
+
++#ifdef __FreeBSD__
++ HANDLE h = CreateThread(NULL, stack_size, start_address, arglist, initflag, (LPLONG)thrdaddr);
++#else
+ HANDLE h = CreateThread(NULL, stack_size, start_address, arglist, initflag, (LPDWORD)thrdaddr);
++#endif
+ return h;
+
+ }
+--- xbmc/linux/XThreadUtils.h.orig
++++ xbmc/linux/XThreadUtils.h
+@@ -30,7 +30,11 @@ HANDLE WINAPI CreateThread(
+ LPTHREAD_START_ROUTINE lpStartAddress,
+ LPVOID lpParameter,
+ DWORD dwCreationFlags,
++#ifdef __FreeBSD__
++ LPLONG lpThreadId
++#else
+ LPDWORD lpThreadId
++#endif
+ );
+
+ HANDLE _beginthreadex(
+@@ -39,7 +43,11 @@ HANDLE _beginthreadex(
+ int ( *start_address )( void * ),
+ void *arglist,
+ unsigned initflag,
++#ifdef __FreeBSD__
++ unsigned long *thrdaddr
++#else
+ unsigned *thrdaddr
++#endif
+ );
+
+ uintptr_t _beginthread(
+--- lib/asap/win32/winamp/in_asap.c.orig
++++ lib/asap/win32/winamp/in_asap.c
+@@ -305,7 +305,11 @@ static int play(char *fn)
+ {
+ int song;
+ int maxlatency;
++#ifdef __FreeBSD__
++ LONG threadId;
++#else
+ DWORD threadId;
++#endif
+ strcpy(current_filename_with_song, fn);
+ song = extractSongNumber(fn, current_filename);
+ if (!loadModule(current_filename, module, &module_len))
+--- lib/timidity/interface/w32g.h.orig
++++ lib/timidity/interface/w32g.h
+@@ -65,9 +65,14 @@ typedef LPTHREAD_START_ROUTINE BCC_BEGIN
+ #define crt_beginthread(start_address,stack_size,arglist) \
+ (HANDLE)_beginthread((BCC_BEGINTHREAD_START_ADDRESS)start_address,(unsigned)stack_size,(void *)arglist)
+ #else
++#ifdef __FreeBSD__
++#define crt_beginthread(start_address,stack_size,arglist) \
++(HANDLE)CreateThread(NULL,(DWORD)stack_size,(LPTHREAD_START_ROUTINE)start_address,(LPVOID)arglist,0,NULL)
++#else
+ #define crt_beginthread(start_address,stack_size,arglist) \
+ (HANDLE)CreateThread(NULL,(DWORD)stack_size,(LPTHREAD_START_ROUTINE)start_address,(LPVOID)arglist,0,&dwTmp)
+ #endif
++#endif
+
+ // (HANDLE)crt_beginthreadex(LPSECURITY_ATTRIBUTES security, DWORD stack_size, LPTHREAD_START_ROUTINE start_address, LPVOID arglist, DWORD initflag, LPDWORD thrdaddr );
+ #if defined(_MSC_VER) || defined(__WATCOMC__)
+@@ -77,9 +82,14 @@ typedef LPTHREAD_START_ROUTINE BCC_BEGIN
+ #define crt_beginthreadex(security,stack_size,start_address,arglist,initflag,thrdaddr ) \
+ (HANDLE)_beginthreadNT((BCC_BEGINTHREAD_START_ADDRESS)start_address,(unsigned)stack_size,(void *)arglist,(void *)security_attrib,(unsigned long)create_flags,(unsigned long *)thread_id)
+ #else
++#ifdef __FreeBSD__
++#define crt_beginthreadex(security,stack_size,start_address,arglist,initflag,thrdaddr ) \
++(HANDLE)CreateThread((LPSECURITY_ATTRIBUTES)security,(DWORD)stack_size,(LPTHREAD_START_ROUTINE)start_address,(LPVOID)arglist,(DWORD)initflag,(LPLONG)thrdaddr)
++#else
+ #define crt_beginthreadex(security,stack_size,start_address,arglist,initflag,thrdaddr ) \
+ (HANDLE)CreateThread((LPSECURITY_ATTRIBUTES)security,(DWORD)stack_size,(LPTHREAD_START_ROUTINE)start_address,(LPVOID)arglist,(DWORD)initflag,(LPDWORD)thrdaddr)
+ #endif
++#endif
+
+ #if defined(_MSC_VER) || defined(__WATCOMC__)
+ #define crt_endthread() _endthread()
+--- lib/timidity/timidity/gogo_a.c.orig
++++ lib/timidity/timidity/gogo_a.c
+@@ -109,9 +109,14 @@ typedef LPTHREAD_START_ROUTINE BCC_BEGIN
+ #define crt_beginthreadex(security,stack_size,start_address,arglist,initflag,thrdaddr ) \
+ (HANDLE)_beginthreadNT((BCC_BEGINTHREAD_START_ADDRESS)start_address,(unsigned)stack_size,(void *)arglist,(void *)security_attrib,(unsigned long)create_flags,(unsigned long *)thread_id)
+ #else
++#ifdef __FreeBSD__
++#define crt_beginthreadex(security,stack_size,start_address,arglist,initflag,thrdaddr ) \
++(HANDLE)CreateThread((LPSECURITY_ATTRIBUTES)security,(DWORD)stack_size,(LPTHREAD_START_ROUTINE)start_address,(LPVOID)arglist,(DWORD)initflag,(LPLONG)thrdaddr)
++#else
+ #define crt_beginthreadex(security,stack_size,start_address,arglist,initflag,thrdaddr ) \
+ (HANDLE)CreateThread((LPSECURITY_ATTRIBUTES)security,(DWORD)stack_size,(LPTHREAD_START_ROUTINE)start_address,(LPVOID)arglist,(DWORD)initflag,(LPDWORD)thrdaddr)
+ #endif
++#endif
+
+ volatile extern char *w32g_output_dir;
+ volatile extern int w32g_auto_output_mode;
+--- xbmc/visualizations/XBMCProjectM/libprojectM/fftsg.cpp.orig
++++ xbmc/visualizations/XBMCProjectM/libprojectM/fftsg.cpp
+@@ -782,6 +782,16 @@ void makect(int nc, int *ip, double *c)
+ #include <stdio.h>
+ #include <stdlib.h>
+ #define cdft_thread_t HANDLE
++#ifdef __FreeBSD__
++#define cdft_thread_create(thp,func,argp) { \
++ LONG thid; \
++ *(thp) = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) func, (LPVOID) argp, 0, &thid); \
++ if (*(thp) == 0) { \
++ fprintf(stderr, "cdft thread error\n"); \
++ exit(1); \
++ } \
++}
++#else
+ #define cdft_thread_create(thp,func,argp) { \
+ DWORD thid; \
+ *(thp) = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) func, (LPVOID) argp, 0, &thid); \
+@@ -790,6 +800,7 @@ void makect(int nc, int *ip, double *c)
+ exit(1); \
+ } \
+ }
++#endif
+ #define cdft_thread_wait(th) { \
+ WaitForSingleObject(th, INFINITE); \
+ CloseHandle(th); \
+--- xbmc/threads/Thread.h.orig
++++ xbmc/threads/Thread.h
+@@ -117,8 +117,12 @@ private:
+ ThreadIdentifier ThreadId() const;
+ bool m_bAutoDelete;
+ CEvent m_StopEvent;
++#ifdef __FreeBSD__
++ unsigned long m_ThreadId;
++#else
+ unsigned m_ThreadId; // This value is unreliable on platforms using pthreads
+ // Use m_ThreadHandle->m_hThread instead
++#endif
+ IRunnable* m_pRunnable;
+
+ unsigned __int64 m_iLastUsage;
diff --git a/multimedia/xbmc-pvr/files/patch-tools-TexturePacker-XBTFWriter.cpp b/multimedia/xbmc-pvr/files/patch-tools-TexturePacker-XBTFWriter.cpp
new file mode 100644
index 000000000000..160b5c780443
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-tools-TexturePacker-XBTFWriter.cpp
@@ -0,0 +1,11 @@
+--- tools/TexturePacker/XBTFWriter.cpp.orig
++++ tools/TexturePacker/XBTFWriter.cpp
+@@ -26,6 +26,8 @@
+ #include "utils/EndianSwap.h"
+ #if !defined(__APPLE__) && !defined(__FreeBSD__)
+ #include <malloc.h>
++#else
++#include <stdlib.h>
+ #endif
+ #include <memory.h>
+
diff --git a/multimedia/xbmc-pvr/files/patch-tools__Linux__xbmc.sh.in b/multimedia/xbmc-pvr/files/patch-tools__Linux__xbmc.sh.in
new file mode 100644
index 000000000000..2978dfbf69c8
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-tools__Linux__xbmc.sh.in
@@ -0,0 +1,28 @@
+--- ./tools/Linux/xbmc.sh.in.orig 2010-10-28 21:09:04.000000000 +0200
++++ ./tools/Linux/xbmc.sh.in 2010-12-01 12:17:34.286115032 +0100
+@@ -23,6 +23,8 @@
+ exec_prefix="@exec_prefix@"
+ datarootdir="@datarootdir@"
+ LIBDIR="@libdir@"
++export XBMC_BIN_HOME="${LIBDIR}/xbmc"
++export XBMC_HOME="${datarootdir}/xbmc"
+
+ # Check for some options used by this script
+ while [ "$#" -gt "0" ]
+@@ -103,11 +105,11 @@
+ echo "Crash report available at $FILE"
+ }
+
+-python @datadir@/xbmc/FEH.py $SAVED_ARGS
+-RET=$?
+-if [ $RET -ne 0 ]; then
+- exit $RET
+-fi
++# python @datadir@/xbmc/FEH.py $SAVED_ARGS
++# RET=$?
++# if [ $RET -ne 0 ]; then
++# exit $RET
++# fi
+
+ if which gdb >/dev/null 2>&1; then
+ # Output warning in case ulimit is unsupported by shell
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.cpp
new file mode 100644
index 000000000000..4cf7c797fd8f
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.cpp
@@ -0,0 +1,33 @@
+--- xbmc/cores/VideoRenderers/LinuxRendererGL.cpp.orig
++++ xbmc/cores/VideoRenderers/LinuxRendererGL.cpp
+@@ -159,6 +159,10 @@ CLinuxRendererGL::CLinuxRendererGL()
+ m_rgbPbo = 0;
+
+ m_dllSwScale = new DllSwScale;
++
++#ifdef __FreeBSD__
++ m_tid = NULL;
++#endif
+ }
+
+ CLinuxRendererGL::~CLinuxRendererGL()
+@@ -247,6 +251,9 @@ bool CLinuxRendererGL::ValidateRenderTar
+ (this->*m_textureCreate)(i);
+
+ m_bValidated = true;
++#ifdef __FreeBSD__
++ m_tid = pthread_self();
++#endif
+ return true;
+ }
+ return false;
+@@ -716,6 +723,9 @@ unsigned int CLinuxRendererGL::PreInit()
+ CSingleLock lock(g_graphicsContext);
+ m_bConfigured = false;
+ m_bValidated = false;
++#ifdef __FreeBSD__ // XXX Will this leak? It's needed to avoid crashes... :(
++ if (pthread_self() == m_tid)
++#endif
+ UnInit();
+ m_resolution = g_guiSettings.m_LookAndFeelResolution;
+ if ( m_resolution == RES_WINDOW )
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.h b/multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.h
new file mode 100644
index 000000000000..b797b3c2b7a7
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-cores-VideoRenderers-LinuxRendererGL.h
@@ -0,0 +1,13 @@
+--- xbmc/cores/VideoRenderers/LinuxRendererGL.h.orig
++++ xbmc/cores/VideoRenderers/LinuxRendererGL.h
+@@ -228,6 +228,10 @@ protected:
+ int m_currentField;
+ int m_reloadShaders;
+
++#ifdef __FreeBSD__
++ pthread_t m_tid;
++#endif
++
+ struct YUVPLANE
+ {
+ GLuint id;
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-filesystem-CacheStrategy.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-filesystem-CacheStrategy.cpp
new file mode 100644
index 000000000000..b12763337061
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-filesystem-CacheStrategy.cpp
@@ -0,0 +1,33 @@
+--- xbmc/filesystem/CacheStrategy.cpp.orig
++++ xbmc/filesystem/CacheStrategy.cpp
+@@ -93,7 +93,8 @@
+
+ if(m_hCacheFileWrite == INVALID_HANDLE_VALUE)
+ {
+- CLog::Log(LOGERROR, "%s - failed to create file %s with error code %d", __FUNCTION__, fileName.c_str(), GetLastError());
++ CLog::Log(LOGERROR, "%s - failed to create file %s with error code %d",
++ __FUNCTION__, fileName.c_str(), (int)GetLastError());
+ Close();
+ return CACHE_RC_ERROR;
+ }
+@@ -107,7 +108,8 @@
+
+ if(m_hCacheFileRead == INVALID_HANDLE_VALUE)
+ {
+- CLog::Log(LOGERROR, "%s - failed to open file %s with error code %d", __FUNCTION__, fileName.c_str(), GetLastError());
++ CLog::Log(LOGERROR, "%s - failed to open file %s with error code %d",
++ __FUNCTION__, fileName.c_str(), (int)GetLastError());
+ Close();
+ return CACHE_RC_ERROR;
+ }
+@@ -140,8 +142,8 @@
+ DWORD iWritten=0;
+ if (!WriteFile(m_hCacheFileWrite, pBuffer, iSize, &iWritten, NULL))
+ {
+- CLog::Log(LOGERROR, "%s - failed to write to file. err: %u",
+- __FUNCTION__, GetLastError());
++ CLog::Log(LOGERROR, "%s - failed to write to file. err: %d",
++ __FUNCTION__, (int)GetLastError());
+ return CACHE_RC_ERROR;
+ }
+
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-filesystem-SAPDirectory.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-filesystem-SAPDirectory.cpp
new file mode 100644
index 000000000000..ef727b4f0e71
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-filesystem-SAPDirectory.cpp
@@ -0,0 +1,12 @@
+--- xbmc/filesystem/SAPDirectory.cpp.orig
++++ xbmc/filesystem/SAPDirectory.cpp
+@@ -31,6 +31,9 @@
+ #ifdef __APPLE__
+ #include "OSXGNUReplacements.h" // strnlen
+ #endif
++#ifdef __FreeBSD__
++#include "FreeBSDGNUReplacements.h" // strnlen
++#endif
+
+ #include <sys/socket.h>
+ #include <netinet/in.h>
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-music-tags-MusicInfoTagLoaderWMA.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-music-tags-MusicInfoTagLoaderWMA.cpp
new file mode 100644
index 000000000000..ef424f687f6a
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-music-tags-MusicInfoTagLoaderWMA.cpp
@@ -0,0 +1,11 @@
+--- xbmc/music/tags/MusicInfoTagLoaderWMA.cpp.orig
++++ xbmc/music/tags/MusicInfoTagLoaderWMA.cpp
+@@ -538,7 +538,7 @@
+ "Unable to create album art for %s "
+ "(extension=%s, size=%u)",
+ tag.GetURL().c_str(), strExtension.c_str(),
+- picture.dwDataLen);
++ (unsigned int)picture.dwDataLen);
+ }
+ }
+ }
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-network-Network.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-network-Network.cpp
new file mode 100644
index 000000000000..d00736f26e2b
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-network-Network.cpp
@@ -0,0 +1,12 @@
+--- xbmc/network/Network.cpp.orig
++++ xbmc/network/Network.cpp
+@@ -31,6 +31,9 @@
+
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
++#ifdef __FreeBSD__
++#include <sys/socket.h>
++#endif
+
+ using namespace std;
+
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-network-linux-NetworkLinux.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-network-linux-NetworkLinux.cpp
new file mode 100644
index 000000000000..1f81e1c0af55
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-network-linux-NetworkLinux.cpp
@@ -0,0 +1,195 @@
+--- xbmc/network/linux/NetworkLinux.cpp.orig
++++ xbmc/network/linux/NetworkLinux.cpp
+@@ -23,14 +23,14 @@
+ #include <sys/socket.h>
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ #include <linux/if.h>
+ #include <linux/wireless.h>
+ #include <linux/sockios.h>
+ #endif
+ #include <errno.h>
+ #include <resolv.h>
+-#if defined(__APPLE__)
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ #include <sys/sockio.h>
+ #include <net/if.h>
+ #include <net/if_dl.h>
+@@ -42,6 +42,9 @@
+ #include "NetworkLinux.h"
+ #include "Util.h"
+ #include "utils/log.h"
++#if defined(__FreeBSD__)
++#include <net/route.h>
++#endif
+
+ using namespace std;
+
+@@ -64,7 +67,7 @@ CStdString& CNetworkInterfaceLinux::GetN
+
+ bool CNetworkInterfaceLinux::IsWireless()
+ {
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ return false;
+ #else
+ struct iwreq wrq;
+@@ -144,7 +147,7 @@ CStdString CNetworkInterfaceLinux::GetCu
+ {
+ CStdString result = "";
+
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ char essid[IW_ESSID_MAX_SIZE + 1];
+ memset(&essid, 0, sizeof(essid));
+
+@@ -166,7 +169,84 @@ CStdString CNetworkInterfaceLinux::GetCu
+ {
+ CStdString result = "";
+
+-#ifndef __APPLE__
++#if defined(__FreeBSD__)
++ struct {
++ struct rt_msghdr m_rtm;
++ char m_space[512];
++ } m_rtmsg;
++ int s, seq, l, pid, rtm_addrs, i;
++ struct sockaddr so_dst, so_mask;
++ struct rt_msghdr rtm;
++ char *cp = m_rtmsg.m_space;
++ struct sockaddr *gate = NULL, *sa;
++ struct rt_msghdr *rtm_aux;
++
++#define ROUNDUP(a) \
++ ((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
++
++#define NEXTADDR(w, u) \
++ if (rtm_addrs & (w)) {\
++ l = ROUNDUP(u.sa_len); memmove(cp, &(u), l); cp += l;\
++ }
++
++#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len))
++
++ pid = getpid();
++ seq = 0;
++ rtm_addrs = RTA_DST | RTA_NETMASK;
++
++ bzero(&so_dst, sizeof(so_dst));
++ bzero(&so_mask, sizeof(so_mask));
++ bzero(&rtm, sizeof(struct rt_msghdr));
++
++ rtm.rtm_type = RTM_GET;
++ rtm.rtm_flags = RTF_UP | RTF_GATEWAY;
++ rtm.rtm_version = RTM_VERSION;
++ rtm.rtm_seq = ++seq;
++ rtm.rtm_addrs = rtm_addrs;
++
++ so_dst.sa_family = AF_INET;
++ so_dst.sa_len = sizeof(struct sockaddr_in);
++ so_mask.sa_family = AF_INET;
++ so_mask.sa_len = sizeof(struct sockaddr_in);
++
++ NEXTADDR(RTA_DST, so_dst);
++ NEXTADDR(RTA_NETMASK, so_mask);
++
++ rtm.rtm_msglen = l = cp - (char *)&m_rtmsg;
++
++ s = socket(PF_ROUTE, SOCK_RAW, 0);
++
++ if (write(s, (char *)&m_rtmsg, l) < 0)
++ return result;
++
++ do {
++ l = read(s, (char *)&m_rtmsg, sizeof(m_rtmsg));
++ } while (l > 0 && (rtm.rtm_seq != seq || rtm.rtm_pid != pid));
++
++ close(s);
++
++ rtm_aux = &rtm;
++
++ cp = ((char *)(rtm_aux + 1));
++ if (rtm_aux->rtm_addrs) {
++ for (i = 1; i; i <<= 1)
++ if (i & rtm_aux->rtm_addrs) {
++ sa = (struct sockaddr *)cp;
++ if (i == RTA_GATEWAY)
++ gate = sa;
++ ADVANCE(cp, sa);
++ }
++ }
++ else
++ return result;
++
++ if (gate != NULL)
++ result = inet_ntoa(((struct sockaddr_in *)gate)->sin_addr);
++
++ return result;
++
++#elif !defined(__APPLE__)
+ FILE* fp = fopen("/proc/net/route", "r");
+ if (!fp)
+ {
+@@ -267,7 +347,7 @@ CNetworkInterface* CNetworkLinux::GetFir
+ CStdString CNetworkLinux::GetMacAddress(CStdString interfaceName)
+ {
+ CStdString result = "00:00:00:00:00:00";
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+
+ #if ! defined(IFT_ETHER)
+ #define IFT_ETHER 0x6/* Ethernet CSMACD */
+@@ -333,7 +413,7 @@ void CNetworkLinux::queryInterfaceList()
+ CStdString macAddr = "";
+ m_interfaces.clear();
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+
+ // Query the list of interfaces.
+ struct ifaddrs *list;
+@@ -352,7 +432,6 @@ void CNetworkLinux::queryInterfaceList()
+ }
+
+ freeifaddrs(list);
+-
+ #else
+ FILE* fp = fopen("/proc/net/dev", "r");
+ if (!fp)
+@@ -394,7 +473,7 @@ void CNetworkLinux::queryInterfaceList()
+ std::vector<CStdString> CNetworkLinux::GetNameServers(void)
+ {
+ std::vector<CStdString> result;
+-#ifndef __APPLE__
++#if !defined(__APPLE__)
+ res_init();
+
+ for (int i = 0; i < _res.nscount; i ++)
+@@ -430,7 +509,7 @@ std::vector<NetworkAccessPoint> CNetwork
+ if (!IsWireless())
+ return result;
+
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ // Query the wireless extentsions version number. It will help us when we
+ // parse the resulting events
+ struct iwreq iwr;
+@@ -616,7 +695,7 @@ void CNetworkInterfaceLinux::GetSettings
+ encryptionMode = ENC_NONE;
+ assignment = NETWORK_DISABLED;
+
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ FILE* fp = fopen("/etc/network/interfaces", "r");
+ if (!fp)
+ {
+@@ -692,7 +771,7 @@ void CNetworkInterfaceLinux::GetSettings
+
+ void CNetworkInterfaceLinux::SetSettings(NetworkAssignment& assignment, CStdString& ipAddress, CStdString& networkMask, CStdString& defaultGateway, CStdString& essId, CStdString& key, EncMode& encryptionMode)
+ {
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ FILE* fr = fopen("/etc/network/interfaces", "r");
+ if (!fr)
+ {
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-programs-ProgramDatabase.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-programs-ProgramDatabase.cpp
new file mode 100644
index 000000000000..c8d453fbed6c
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-programs-ProgramDatabase.cpp
@@ -0,0 +1,11 @@
+--- xbmc/programs/ProgramDatabase.cpp.orig
++++ xbmc/programs/ProgramDatabase.cpp
+@@ -63,7 +63,7 @@
+ catch (...)
+ {
+ CLog::Log(LOGERROR, "programdatabase::unable to create tables:%u",
+- GetLastError());
++ (unsigned int)GetLastError());
+ return false;
+ }
+
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-MediaPortal-CriticalSection.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-MediaPortal-CriticalSection.cpp
new file mode 100644
index 000000000000..374bbbd7a02e
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-MediaPortal-CriticalSection.cpp
@@ -0,0 +1,13 @@
+--- xbmc/pvrclients/MediaPortal/CriticalSection.cpp.orig
++++ xbmc/pvrclients/MediaPortal/CriticalSection.cpp
+@@ -18,6 +18,10 @@
+
+ #include "CriticalSection.h"
+
++#ifdef __FreeBSD__
++#define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE
++#endif
++
+ CCriticalSection::CCriticalSection(void)
+ {
+ }
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.cpp
new file mode 100644
index 000000000000..d92a000eb95d
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.cpp
@@ -0,0 +1,38 @@
+--- 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
new file mode 100644
index 000000000000..67aee89d1235
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-tvheadend-thread.h
@@ -0,0 +1,23 @@
+--- 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
new file mode 100644
index 000000000000..4145da7e3b18
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.cpp
@@ -0,0 +1,38 @@
+--- 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
new file mode 100644
index 000000000000..a7dd2dc4af8a
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-pvrclients-vdr-vnsi-thread.h
@@ -0,0 +1,23 @@
+--- 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-storage-IoSupport.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-storage-IoSupport.cpp
new file mode 100644
index 000000000000..a4d2a5a950e9
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-storage-IoSupport.cpp
@@ -0,0 +1,39 @@
+--- xbmc/storage/IoSupport.cpp.orig
++++ xbmc/storage/IoSupport.cpp
+@@ -30,7 +30,7 @@
+ #include "WIN32Util.h"
+ #include "utils/CharsetConverter.h"
+ #endif
+-#if defined (_LINUX) && !defined(__APPLE__)
++#if defined (_LINUX) && !defined(__APPLE__) && !defined(__FreeBSD__)
+ #include <linux/limits.h>
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
+@@ -54,6 +54,9 @@
+ #include <IOKit/storage/IOStorageDeviceCharacteristics.h>
+ #endif
+ #endif
++#ifdef __FreeBSD__
++#include <sys/syslimits.h>
++#endif
+ #include "cdioSupport.h"
+ #include "filesystem/iso9660.h"
+ #include "MediaManager.h"
+@@ -226,7 +229,7 @@ HRESULT CIoSupport::EjectTray( const boo
+ HRESULT CIoSupport::CloseTray()
+ {
+ #ifdef HAS_DVD_DRIVE
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ // FIXME...
+ #elif defined(_LINUX)
+ char* dvdDevice = CLibcdio::GetInstance()->GetDeviceFileName();
+@@ -402,6 +405,8 @@ INT CIoSupport::ReadSectorMode2(HANDLE h
+ return -1;
+ }
+ return MODE2_DATA_SIZE;
++#elif defined(__FreeBSD__)
++ // TODO
+ #elif defined(_LINUX)
+ if (hDevice->m_bCDROM)
+ {
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-utils-StdString.h b/multimedia/xbmc-pvr/files/patch-xbmc-utils-StdString.h
new file mode 100644
index 000000000000..679b55a02fd2
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-utils-StdString.h
@@ -0,0 +1,10 @@
+--- xbmc/utils/StdString.h.orig
++++ xbmc/utils/StdString.h
+@@ -2,6 +2,7 @@
+ #include <string>
+ #include <stdint.h>
+ #include <vector>
++#include <cstring>
+
+ #if defined(_WIN32) && !defined(va_copy)
+ #define va_copy(dst, src) ((dst) = (src))
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc-windowing-X11-XRandR.cpp b/multimedia/xbmc-pvr/files/patch-xbmc-windowing-X11-XRandR.cpp
new file mode 100644
index 000000000000..f2da68fe0f59
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc-windowing-X11-XRandR.cpp
@@ -0,0 +1,14 @@
+--- xbmc/windowing/X11/XRandR.cpp.orig
++++ xbmc/windowing/X11/XRandR.cpp
+@@ -29,6 +29,11 @@
+ #include "tinyXML/tinyxml.h"
+ #include "../xbmc/utils/log.h"
+
++#if defined(__FreeBSD__)
++#include <sys/types.h>
++#include <sys/wait.h>
++#endif
++
+ using namespace std;
+
+ CXRandR::CXRandR(bool query)
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__ViewDatabase.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__ViewDatabase.cpp
new file mode 100644
index 000000000000..1ba267d3e0e6
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__ViewDatabase.cpp
@@ -0,0 +1,11 @@
+--- ./xbmc/ViewDatabase.cpp.orig 2010-07-03 13:07:36.000000000 +0200
++++ ./xbmc/ViewDatabase.cpp 2010-12-01 12:17:34.233780060 +0100
+@@ -62,7 +62,7 @@
+ catch (...)
+ {
+ CLog::Log(LOGERROR, "%s unable to create tables:%u",
+- __FUNCTION__, GetLastError());
++ __FUNCTION__, (unsigned int)GetLastError());
+ return false;
+ }
+
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__addons__Addon.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__addons__Addon.cpp
new file mode 100644
index 000000000000..984f019fc92c
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__addons__Addon.cpp
@@ -0,0 +1,12 @@
+--- xbmc/addons/Addon.cpp.orig
++++ xbmc/addons/Addon.cpp
+@@ -28,6 +28,9 @@
+ #ifdef __APPLE__
+ #include "../osx/OSXGNUReplacements.h"
+ #endif
++#ifdef __FreeBSD__
++#include "FreeBSDGNUReplacements.h" // strverscmp
++#endif
+ #include "utils/log.h"
+ #include "utils/URIUtils.h"
+ #include <vector>
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.cpp
new file mode 100644
index 000000000000..8c3c2d432595
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.cpp
@@ -0,0 +1,169 @@
+--- xbmc/cores/DllLoader/exports/emu_msvcrt.cpp.orig
++++ xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
+@@ -27,7 +27,7 @@
+ #include <direct.h>
+ #include <process.h>
+ #else
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ #include <mntent.h>
+ #endif
+ #endif
+@@ -36,6 +36,7 @@
+ #include <sys/timeb.h>
+ #include "system.h" // for HAS_DVD_DRIVE
+ #ifdef HAS_DVD_DRIVE
++#if !defined(__FreeBSD__)
+ #ifdef _LINUX
+ #include <sys/ioctl.h>
+ #ifndef __APPLE__
+@@ -45,6 +46,7 @@
+ #endif
+ #endif
+ #endif
++#endif
+ #include <fcntl.h>
+ #include <time.h>
+ #include <signal.h>
+@@ -139,6 +141,8 @@ extern "C" void __stdcall init_emu_envir
+ dll_putenv("OS=darwin");
+ #elif defined(_LINUX)
+ dll_putenv("OS=linux");
++#elif defined(__FreeBSD__)
++ dll_putenv("OS=freebsd");
+ #else
+ dll_putenv("OS=unknown");
+ #endif
+@@ -159,11 +163,11 @@ extern "C" void __stdcall init_emu_envir
+ dll_putenv(string("PATH=.;" + _P("special://xbmc") + ";" + _P("special://xbmc/system/python")).c_str());
+ }
+ //dll_putenv("PYTHONCASEOK=1");
+- //dll_putenv("PYTHONDEBUG=1");
++ dll_putenv("PYTHONDEBUG=1");
+ //dll_putenv("PYTHONVERBOSE=2"); // "1" for normal verbose, "2" for more verbose ?
+ dll_putenv("PYTHONOPTIMIZE=1");
+ //dll_putenv("PYTHONDUMPREFS=1");
+- //dll_putenv("THREADDEBUG=1");
++ dll_putenv("THREADDEBUG=1");
+ //dll_putenv("PYTHONMALLOCSTATS=1");
+ //dll_putenv("PYTHONY2K=1");
+ dll_putenv("TEMP=special://temp/temp"); // for python tempdir
+@@ -1159,7 +1163,7 @@ extern "C"
+ FILE* dll_fopen(const char* filename, const char* mode)
+ {
+ FILE* file = NULL;
+-#if defined(_LINUX) && !defined(__APPLE__)
++#if defined(_LINUX) && !defined(__APPLE__) && !defined(__FreeBSD__)
+ if (strcmp(filename, MOUNTED) == 0
+ || strcmp(filename, MNTTAB) == 0)
+ {
+@@ -1267,7 +1271,7 @@ extern "C"
+ {
+ // it might be something else than a file, or the file is not emulated
+ // let the operating system handle it
+-#if defined(__APPLE__)
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ return fseek(stream, offset, origin);
+ #else
+ return fseeko64(stream, offset, origin);
+@@ -1332,7 +1336,7 @@ extern "C"
+ {
+ // it might be something else than a file, or the file is not emulated
+ // let the operating system handle it
+-#if defined(__APPLE__)
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ return ftello(stream);
+ #else
+ return ftello64(stream);
+@@ -1378,7 +1382,7 @@ extern "C"
+ CLog::Log(LOGWARNING, "msvcrt.dll: dll_telli64 called, TODO: add 'int64 -> long' type checking"); //warning
+ #ifndef _LINUX
+ return (__int64)tell(fd);
+-#elif defined(__APPLE__)
++#elif defined(__APPLE__) || defined(__FreeBSD__)
+ return lseek(fd, 0, SEEK_CUR);
+ #else
+ return lseek64(fd, 0, SEEK_CUR);
+@@ -1555,7 +1559,7 @@ extern "C"
+ int ret;
+
+ ret = dll_fgetpos64(stream, &tmpPos);
+-#if !defined(_LINUX) || defined(__APPLE__)
++#if !defined(_LINUX) || defined(__APPLE__) || defined(__FreeBSD__)
+ *pos = (fpos_t)tmpPos;
+ #else
+ pos->__pos = (off_t)tmpPos.__pos;
+@@ -1568,7 +1572,7 @@ extern "C"
+ CFile* pFile = g_emuFileWrapper.GetFileXbmcByStream(stream);
+ if (pFile != NULL)
+ {
+-#if !defined(_LINUX) || defined(__APPLE__)
++#if !defined(_LINUX) || defined(__APPLE__) || defined(__FreeBSD__)
+ *pos = pFile->GetPosition();
+ #else
+ pos->__pos = pFile->GetPosition();
+@@ -1590,7 +1594,7 @@ extern "C"
+ int fd = g_emuFileWrapper.GetDescriptorByStream(stream);
+ if (fd >= 0)
+ {
+-#if !defined(_LINUX) || defined(__APPLE__)
++#if !defined(_LINUX) || defined(__APPLE__) || defined(__FreeBSD__)
+ if (dll_lseeki64(fd, *pos, SEEK_SET) >= 0)
+ #else
+ if (dll_lseeki64(fd, (__off64_t)pos->__pos, SEEK_SET) >= 0)
+@@ -1607,7 +1611,7 @@ extern "C"
+ {
+ // it might be something else than a file, or the file is not emulated
+ // let the operating system handle it
+-#if !defined(_LINUX) || defined(__APPLE__)
++#if !defined(_LINUX) || defined(__APPLE__) || defined(__FreeBSD__)
+ return fsetpos(stream, pos);
+ #else
+ return fsetpos64(stream, pos);
+@@ -1623,7 +1627,7 @@ extern "C"
+ if (fd >= 0)
+ {
+ fpos64_t tmpPos;
+-#if !defined(_LINUX) || defined(__APPLE__)
++#if !defined(_LINUX) || defined(__APPLE__) || defined(__FreeBSD__)
+ tmpPos= *pos;
+ #else
+ tmpPos.__pos = (off64_t)(pos->__pos);
+@@ -2069,7 +2073,7 @@ extern "C"
+ return (char***)&t;
+ }
+
+-#ifdef _LINUX
++#if defined(_LINUX)
+ int * __cdecl dll_errno(void)
+ {
+ return &errno;
+@@ -2083,7 +2087,9 @@ extern "C"
+ return -1;
+
+ #ifdef HAS_DVD_DRIVE
+-#ifndef __APPLE__
++#if defined(__FreeBSD__)
++ if (0)
++#elif !defined(__APPLE__)
+ if(request == DVD_READ_STRUCT || request == DVD_AUTH)
+ #else
+ if(request == DKIOCDVDSENDKEY || request == DKIOCDVDREPORTKEY || request == DKIOCDVDREADSTRUCTURE)
+@@ -2125,7 +2131,7 @@ extern "C"
+ CLog::Log(LOGERROR, "%s - getmntent is not implemented for our virtual filesystem", __FUNCTION__);
+ return NULL;
+ }
+-#if defined(_LINUX) && !defined(__APPLE__)
++#if defined(_LINUX) && !defined(__APPLE__) && !defined(__FreeBSD__)
+ return getmntent(fp);
+ #else
+ CLog::Log(LOGWARNING, "%s - unimplemented function called", __FUNCTION__);
+@@ -2150,7 +2156,7 @@ extern "C"
+ else
+ return 0;
+ }
+-#ifdef _LINUX
++#if defined(_LINUX)
+ return 0;
+ #else
+ return _filbuf(fp);
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.h b/multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.h
new file mode 100644
index 000000000000..49d9bbde9d11
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.h
@@ -0,0 +1,18 @@
+--- ./xbmc/cores/DllLoader/exports/emu_msvcrt.h.orig 2010-05-28 21:31:42.000000000 +0200
++++ ./xbmc/cores/DllLoader/exports/emu_msvcrt.h 2010-12-01 12:17:34.210600869 +0100
+@@ -35,9 +35,15 @@
+
+ typedef void ( *PFV)(void);
+
++#if defined(__FreeBSD__)
++#define __IS_STDIN_STREAM(stream) (stream->_file == STDIN_FILENO)
++#define __IS_STDOUT_STREAM(stream) (stream->_file == STDOUT_FILENO)
++#define __IS_STDERR_STREAM(stream) (stream->_file == STDERR_FILENO)
++#else
+ #define __IS_STDIN_STREAM(stream) (stream == stdin || stream->_file == stdin->_file || stream->_file == 0)
+ #define __IS_STDOUT_STREAM(stream) (stream == stdout || stream->_file == stdout->_file || stream->_file == 1)
+ #define __IS_STDERR_STREAM(stream) (stream == stderr || stream->_file == stderr->_file || stream->_file == 2)
++#endif
+ #define IS_STDIN_STREAM(stream) (stream != NULL && __IS_STDIN_STREAM(stream))
+ #define IS_STDOUT_STREAM(stream) (stream != NULL && __IS_STDOUT_STREAM(stream))
+ #define IS_STDERR_STREAM(stream) (stream != NULL && __IS_STDERR_STREAM(stream))
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDAudio.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDAudio.cpp
new file mode 100644
index 000000000000..a033b5cd72bb
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDAudio.cpp
@@ -0,0 +1,19 @@
+--- xbmc/cores/dvdplayer/DVDAudio.cpp.orig
++++ xbmc/cores/dvdplayer/DVDAudio.cpp
+@@ -237,14 +237,14 @@ void CDVDAudio::Finish()
+
+ if(silence > 0 && m_iBufferSize > 0)
+ {
+- CLog::Log(LOGDEBUG, "CDVDAudio::Drain - adding %d bytes of silence, buffer size: %d, chunk size: %d", silence, m_iBufferSize, m_dwPacketSize);
++ CLog::Log(LOGDEBUG, "CDVDAudio::Drain - adding %d bytes of silence, buffer size: %d, chunk size: %d", (int)silence, (int)m_iBufferSize, (int)m_dwPacketSize);
+ m_pBuffer = (BYTE*)realloc(m_pBuffer, m_iBufferSize + silence);
+ memset(m_pBuffer+m_iBufferSize, 0, silence);
+ m_iBufferSize += silence;
+ }
+
+ if(AddPacketsRenderer(m_pBuffer, m_iBufferSize, lock) != m_iBufferSize)
+- CLog::Log(LOGERROR, "CDVDAudio::Drain - failed to play the final %d bytes", m_iBufferSize);
++ CLog::Log(LOGERROR, "CDVDAudio::Drain - failed to play the final %d bytes", (int)m_iBufferSize);
+
+ m_iBufferSize = 0;
+ }
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDPlayer.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDPlayer.cpp
new file mode 100644
index 000000000000..2d4e0d1ce03a
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__dvdplayer__DVDPlayer.cpp
@@ -0,0 +1,11 @@
+--- ./xbmc/cores/dvdplayer/DVDPlayer.cpp.orig 2010-10-27 19:02:14.000000000 +0200
++++ ./xbmc/cores/dvdplayer/DVDPlayer.cpp 2010-12-01 12:17:34.204563658 +0100
+@@ -2868,7 +2868,7 @@
+ m_dvd.state = DVDSTATE_STILL;
+ CLog::Log(LOGDEBUG,
+ "DVDNAV_STILL_FRAME - waiting %i sec, with delay of %d sec",
+- still_event->length, time / 1000);
++ still_event->length, (int)(time / 1000));
+ }
+ return NAVRESULT_HOLD;
+ }
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__Makefile.in b/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__Makefile.in
new file mode 100644
index 000000000000..f1db1efcc51a
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__Makefile.in
@@ -0,0 +1,10 @@
+--- xbmc/cores/paplayer/Makefile.in.orig 2011-02-23 22:23:24.000000000 +0100
++++ xbmc/cores/paplayer/Makefile.in 2011-02-23 22:24:24.000000000 +0100
+@@ -20,7 +20,6 @@
+ endif
+
+ ifneq ($(ARCH), arm)
+- CXXFLAGS+=-DHAS_SPC_CODEC
+ SRCS+=SPCCodec.cpp
+ endif
+
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__PAPlayer.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__PAPlayer.cpp
new file mode 100644
index 000000000000..c223b20e2d4a
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__PAPlayer.cpp
@@ -0,0 +1,12 @@
+--- xbmc/cores/paplayer/PAPlayer.cpp.orig
++++ xbmc/cores/paplayer/PAPlayer.cpp
+@@ -341,7 +341,8 @@
+
+ if(silence > 0 && m_bufferPos[stream] > 0)
+ {
+- CLog::Log(LOGDEBUG, "PAPlayer: Drain - adding %d bytes of silence, real pcmdata size: %d, chunk size: %d", silence, m_bufferPos[stream], m_pAudioDecoder[stream]->GetChunkLen());
++ CLog::Log(LOGDEBUG, "PAPlayer: Drain - adding %d bytes of silence, real pcmdata size: %d, chunk size: %d",
++ (int)silence, m_bufferPos[stream], m_pAudioDecoder[stream]->GetChunkLen());
+ memset(m_pcmBuffer[stream] + m_bufferPos[stream], 0, silence);
+ m_bufferPos[stream] += silence;
+ }
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__WAVcodec.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__WAVcodec.cpp
new file mode 100644
index 000000000000..f74132730272
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__cores__paplayer__WAVcodec.cpp
@@ -0,0 +1,11 @@
+--- ./xbmc/cores/paplayer/WAVcodec.cpp.orig 2010-06-03 06:23:58.000000000 +0200
++++ ./xbmc/cores/paplayer/WAVcodec.cpp 2010-12-01 12:17:34.221698375 +0100
+@@ -137,7 +137,7 @@
+ return false;
+ }
+ m_ChannelMask = Endian_SwapLE32(wfx.dwChannelMask);
+- CLog::Log(LOGINFO, "WAVCodec::Init - WAVE_FORMAT_EXTENSIBLE detected, channel mask: %d", m_ChannelMask);
++ CLog::Log(LOGINFO, "WAVCodec::Init - WAVE_FORMAT_EXTENSIBLE detected, channel mask: %d", (int)m_ChannelMask);
+
+ wfx.SubFormat.Data1 = Endian_SwapLE32(wfx.SubFormat.Data1);
+ wfx.SubFormat.Data2 = Endian_SwapLE16(wfx.SubFormat.Data2);
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.c b/multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.c
new file mode 100644
index 000000000000..41313ca75aa5
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.c
@@ -0,0 +1,255 @@
+--- /dev/null 2010-12-16 16:44:10.000000000 +0100
++++ xbmc/linux/FreeBSDGNUReplacements.c 2010-12-16 16:45:22.613185593 +0100
+@@ -0,0 +1,252 @@
++
++#include "FreeBSDGNUReplacements.h"
++
++#if __FreeBSD_version < 800067
++
++/*-
++ * Copyright (c) 2009 David Schultz <das@FreeBSD.org>
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ * notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ * notice, this list of conditions and the following disclaimer in the
++ * documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
++ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
++ * SUCH DAMAGE.
++ */
++
++size_t
++strnlen(const char *s, size_t maxlen)
++{
++ size_t len;
++
++ for (len = 0; len < maxlen; len++, s++) {
++ if (!*s)
++ break;
++ }
++ return (len);
++}
++
++/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Library General Public License as
++ published by the Free Software Foundation; either version 2 of the
++ License, or (at your option) any later version.
++
++ The GNU C Library 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
++ Library General Public License for more details.
++
++ You should have received a copy of the GNU Library General Public
++ License along with the GNU C Library; see the file COPYING.LIB. If not,
++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
++ Boston, MA 02111-1307, USA.
++*/
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <limits.h>
++#include <errno.h>
++
++/* Read up to (and including) a TERMINATOR from STREAM into *LINEPTR
++ (and null-terminate it). *LINEPTR is a pointer returned from malloc (or
++ NULL), pointing to *N characters of space. It is realloc'd as
++ necessary. Returns the number of characters read (not including the
++ null terminator), or -1 on error or EOF. */
++
++ssize_t
++getdelim(char **lineptr, size_t *n, int terminator, FILE *stream)
++{
++ char *line, *p;
++ size_t size, copy;
++
++ if (stream == NULL || lineptr == NULL || n == NULL)
++ {
++ errno = EINVAL;
++ return -1;
++ }
++
++ if (ferror (stream))
++ return -1;
++
++ /* Make sure we have a line buffer to start with. */
++ if (*lineptr == NULL || *n < 2) /* !seen and no buf yet need 2 chars. */
++ {
++#ifndef MAX_CANON
++#define MAX_CANON 256
++#endif
++ line = (char *)realloc (*lineptr, MAX_CANON);
++ if (line == NULL)
++ return -1;
++ *lineptr = line;
++ *n = MAX_CANON;
++ }
++
++ line = *lineptr;
++ size = *n;
++
++ copy = size;
++ p = line;
++
++ while (1)
++ {
++ size_t len;
++
++ while (--copy > 0)
++ {
++ register int c = getc (stream);
++ if (c == EOF)
++ goto lose;
++ else if ((*p++ = c) == terminator)
++ goto win;
++ }
++
++ /* Need to enlarge the line buffer. */
++ len = p - line;
++ size *= 2;
++ line = (char *)realloc (line, size);
++ if (line == NULL)
++ goto lose;
++ *lineptr = line;
++ *n = size;
++ p = line + len;
++ copy = size - len;
++ }
++
++ lose:
++ if (p == *lineptr)
++ return -1;
++ /* Return a partial line since we got an error in the middle. */
++ win:
++ *p = '\0';
++ return p - *lineptr;
++}
++
++#endif
++
++/* Compare strings while treating digits characters numerically.
++ Copyright (C) 1997, 2002, 2005 Free Software Foundation, Inc.
++ This file is part of the libiberty library.
++ Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
++
++ Libiberty is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ Libiberty 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
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, write to the Free
++ Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
++ 02110-1301 USA. */
++
++#include <ctype.h>
++
++#define ISASCII(c) isascii(c)
++#define ISDIGIT(c) (ISASCII (c) && isdigit (c))
++/* states: S_N: normal, S_I: comparing integral part, S_F: comparing
++ fractional parts, S_Z: idem but with leading Zeroes only */
++#define S_N 0x0
++#define S_I 0x4
++#define S_F 0x8
++#define S_Z 0xC
++
++/* result_type: CMP: return diff; LEN: compare using len_diff/diff */
++#define CMP 2
++#define LEN 3
++
++
++/* Compare S1 and S2 as strings holding indices/version numbers,
++ returning less than, equal to or greater than zero if S1 is less than,
++ equal to or greater than S2 (for more info, see the Glibc texinfo doc). */
++
++int
++strverscmp (const char *s1, const char *s2)
++{
++ const unsigned char *p1 = (const unsigned char *) s1;
++ const unsigned char *p2 = (const unsigned char *) s2;
++ unsigned char c1, c2;
++ int state;
++ int diff;
++
++ /* Symbol(s) 0 [1-9] others (padding)
++ Transition (10) 0 (01) d (00) x (11) - */
++ static const unsigned int next_state[] =
++ {
++ /* state x d 0 - */
++ /* S_N */ S_N, S_I, S_Z, S_N,
++ /* S_I */ S_N, S_I, S_I, S_I,
++ /* S_F */ S_N, S_F, S_F, S_F,
++ /* S_Z */ S_N, S_F, S_Z, S_Z
++ };
++
++ static const int result_type[] =
++ {
++ /* state x/x x/d x/0 x/- d/x d/d d/0 d/-
++ 0/x 0/d 0/0 0/- -/x -/d -/0 -/- */
++
++ /* S_N */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP,
++ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP,
++ /* S_I */ CMP, -1, -1, CMP, +1, LEN, LEN, CMP,
++ +1, LEN, LEN, CMP, CMP, CMP, CMP, CMP,
++ /* S_F */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP,
++ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP,
++ /* S_Z */ CMP, +1, +1, CMP, -1, CMP, CMP, CMP,
++ -1, CMP, CMP, CMP
++ };
++
++ if (p1 == p2)
++ return 0;
++
++ c1 = *p1++;
++ c2 = *p2++;
++ /* Hint: '0' is a digit too. */
++ state = S_N | ((c1 == '0') + (ISDIGIT (c1) != 0));
++
++ while ((diff = c1 - c2) == 0 && c1 != '\0')
++ {
++ state = next_state[state];
++ c1 = *p1++;
++ c2 = *p2++;
++ state |= (c1 == '0') + (ISDIGIT (c1) != 0);
++ }
++
++ state = result_type[state << 2 | (((c2 == '0') + (ISDIGIT (c2) != 0)))];
++
++ switch (state)
++ {
++ case CMP:
++ return diff;
++
++ case LEN:
++ while (ISDIGIT (*p1++))
++ if (!ISDIGIT (*p2++))
++ return 1;
++
++ return ISDIGIT (*p2) ? -1 : diff;
++
++ default:
++ return state;
++ }
++}
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.h b/multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.h
new file mode 100644
index 000000000000..1b65441afd4e
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__linux__FreeBSDGNUReplacements.h
@@ -0,0 +1,28 @@
+--- /dev/null 2010-12-16 17:00:01.000000000 +0100
++++ xbmc/linux/FreeBSDGNUReplacements.h 2010-12-16 16:54:02.098300652 +0100
+@@ -0,0 +1,25 @@
++#ifndef __FREEBSDGNUREPLACEMENTS_H__
++#define __FREEBSDGNUREPLACEMENTS_H__
++
++#include <sys/param.h>
++#include <string.h>
++#include <stdio.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif /* __cplusplus */
++
++#if __FreeBSD_version < 800067
++
++size_t strnlen(const char *s, size_t n);
++ssize_t getdelim(char **lineptr, size_t *n, int delimiter, FILE *stream);
++
++#endif
++
++int strverscmp(const char *s1, const char *s2);
++
++#ifdef __cplusplus
++}
++#endif /* __cplusplus */
++
++#endif
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__linux__LinuxTimezone.cpp b/multimedia/xbmc-pvr/files/patch-xbmc__linux__LinuxTimezone.cpp
new file mode 100644
index 000000000000..717435bccce9
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__linux__LinuxTimezone.cpp
@@ -0,0 +1,189 @@
+--- xbmc/linux/LinuxTimezone.cpp (revision 35637)
++++ xbmc/linux/LinuxTimezone.cpp (working copy)
+@@ -28,6 +28,12 @@
+ #include "OSXGNUReplacements.h"
+ #endif
+
++#if defined(__FreeBSD__)
++#include "FreeBSDGNUReplacements.h" // getdelim
++#include <sys/types.h>
++#include <dirent.h>
++#endif
++
+ #include "Util.h"
+
+ using namespace std;
+@@ -90,7 +96,11 @@ CLinuxTimezone::CLinuxTimezone() : m_IsD
+ }
+
+ // Load countries
++#if defined(__FreeBSD__)
++ fp = fopen("/usr/share/misc/iso3166", "r");
++#else
+ fp = fopen("/usr/share/zoneinfo/iso3166.tab", "r");
++#endif
+ if (fp)
+ {
+ CStdString countryCode;
+@@ -110,7 +120,14 @@ CLinuxTimezone::CLinuxTimezone() : m_IsD
+ // Search for the first non space from the 2nd character and on
+ int i = 2;
+ while (s[i] == ' ' || s[i] == '\t') i++;
+-
++#if defined(__FreeBSD__)
++ // skip three
++ while (s[i] != ' ' && s[i] != '\t') i++;
++ while (s[i] == ' ' || s[i] == '\t') i++;
++ // skip number
++ while (s[i] != ' ' && s[i] != '\t') i++;
++ while (s[i] == ' ' || s[i] == '\t') i++;
++#endif
+ countryCode = s.Left(2);
+ countryName = s.Mid(i);
+
+@@ -156,15 +173,137 @@ void CLinuxTimezone::SetTimezone(CStdStr
+
+ if (use_timezone)
+ {
++#if defined(__FreeBSD__)
++ setenv("TZ", timezoneName.c_str(), 1);
++ tzset();
++#else
+ static char env_var[255];
+ sprintf(env_var, "TZ=:%s", timezoneName.c_str());
+ putenv(env_var);
++#endif
+ tzset();
+ }
+ }
+
++#if defined(__FreeBSD__)
++/*
++* Scans the specified directory and its subdirectories to find a
++* zoneinfo file which has the same content as /etc/localtime given in
++* 'buf'. Returns a zone ID if found, otherwise, NULL is returned.
++*/
++static char *
++findZoneinfoFile(char *buf, size_t size, const char *dir)
++{
++ DIR *dirp = NULL;
++ struct stat statbuf;
++ struct dirent entry;
++ struct dirent *dp;
++ char *pathname = NULL;
++ int fd = -1;
++ char *dbuf = NULL;
++ char *tz = NULL;
++ char *p;
++
++ dirp = opendir(dir);
++ if (dirp == NULL)
++ return NULL;
++
++ while (readdir_r(dirp, &entry, &dp) == 0 && dp != NULL) {
++ if (dp->d_name[0] == '.')
++ continue;
++
++ if (strcmp(dp->d_name, "zone.tab") == 0)
++ continue;
++
++ p = (char *)malloc(strlen(dir) + strlen(dp->d_name) + 2);
++ if (p == NULL)
++ break;
++
++ pathname = strcat(strcat(strcpy(p, dir), "/"), dp->d_name);
++ if (pathname == NULL)
++ break;
++
++ if (stat(pathname, &statbuf) == -1)
++ break;
++
++ if (S_ISDIR(statbuf.st_mode)) {
++ tz = findZoneinfoFile(buf, size, pathname);
++ if (tz != NULL)
++ break;
++ } else if (S_ISREG(statbuf.st_mode) && (size_t)statbuf.st_size == size) {
++ dbuf = (char *)malloc(size);
++ if (dbuf == NULL)
++ break;
++ if ((fd = open(pathname, O_RDONLY)) == -1) {
++ fd = 0;
++ break;
++ }
++ if (read(fd, dbuf, size) != (ssize_t)size)
++ break;
++ if (memcmp(buf, dbuf, size) == 0) {
++ p = strstr(pathname, "zoneinfo/");
++ if (p == NULL)
++ break;
++ p += strlen("zoneinfo/");
++ tz = strdup(p);
++ break;
++ }
++ free(dbuf);
++ dbuf = NULL;
++ (void)close(fd);
++ fd = 0;
++ }
++ free(pathname);
++ pathname = NULL;
++ }
++
++ if (dirp != NULL)
++ (void)closedir(dirp);
++ if (pathname != NULL)
++ free(pathname);
++ if (fd != 0)
++ (void)close(fd);
++ if (dbuf != NULL)
++ free(dbuf);
++
++ return tz;
++}
++#endif
++
+ CStdString CLinuxTimezone::GetOSConfiguredTimezone()
+ {
++#if defined(__FreeBSD__)
++ const char * timezonefile = "/etc/localtime";
++ struct stat statbuf;
++ int fd;
++ char *buf;
++ char *tz;
++ size_t size;
++
++ if (lstat(timezonefile, &statbuf) == -1)
++ return "";
++ if (!S_ISREG(statbuf.st_mode))
++ return "";
++
++ size = (size_t)statbuf.st_size;
++ buf = (char *)malloc(size);
++
++ if ((fd = open(timezonefile, O_RDONLY)) == -1) {
++ free(buf);
++ return "";
++ }
++
++ if (read(fd, buf, size) != (ssize_t) size) {
++ (void)close(fd);
++ free(buf);
++ return "";
++ }
++ (void)close(fd);
++
++ tz = findZoneinfoFile(buf, size, "/usr/share/zoneinfo");
++ free(buf);
++ return tz;
++#else
+ char timezoneName[255];
+
+ // try Slackware approach first
+@@ -191,6 +330,7 @@ CStdString CLinuxTimezone::GetOSConfigur
+ }
+
+ return timezoneName;
++#endif
+ }
+
+ CLinuxTimezone g_timezone;
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__linux__Makefile.in b/multimedia/xbmc-pvr/files/patch-xbmc__linux__Makefile.in
new file mode 100644
index 000000000000..8e17efc2af9b
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__linux__Makefile.in
@@ -0,0 +1,15 @@
+Index: xbmc/linux/Makefile.in
+===================================================================
+--- xbmc/linux/Makefile.in (revision 35575)
++++ xbmc/linux/Makefile.in (working copy)
+@@ -9,6 +9,10 @@
+
+ SRCS=ConvUtils.cpp XEventUtils.cpp XFileUtils.cpp XHandle.cpp XSyncUtils.cpp XTimeUtils.cpp XMemUtils.cpp XThreadUtils.cpp NetworkLinux.cpp LinuxResourceCounter.cpp LinuxTimezone.cpp XRandR.cpp XCriticalSection.cpp XLCDproc.cpp HALManager.cpp HALPowerSyscall.cpp ConsoleDeviceKitPowerSyscall.cpp DBusUtil.cpp DBusMessage.cpp ZeroconfAvahi.cpp ZeroconfBrowserAvahi.cpp HALProvider.cpp PosixMountProvider.cpp DeviceKitDisksProvider.cpp UDisksProvider.cpp ConsoleUPowerSyscall.cpp
+
++ifeq ($(findstring freebsd,$(ARCH)), freebsd)
++ SRCS+=FreeBSDGNUReplacements.cpp
++endif
++
+ LIB=linux.a
+
+ include ../../Makefile.include
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__linux__PlatformDefs.h b/multimedia/xbmc-pvr/files/patch-xbmc__linux__PlatformDefs.h
new file mode 100644
index 000000000000..bd6970259cf1
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__linux__PlatformDefs.h
@@ -0,0 +1,48 @@
+--- ./xbmc/linux/PlatformDefs.h.orig 2010-06-09 07:05:59.000000000 +0200
++++ ./xbmc/linux/PlatformDefs.h 2010-12-01 12:17:34.264972083 +0100
+@@ -39,11 +39,15 @@
+ #include <unistd.h>
+ #include <pthread.h>
+ #include <string.h>
+-#ifdef __APPLE__
++#if defined(__APPLE__)
+ #include <stdio.h>
+ #include <sys/sysctl.h>
+ #include <mach/mach.h>
+-#else
++#elif defined(__FreeBSD__)
++#include <stdio.h>
++#include <sys/sysctl.h>
++#include <sys/types.h>
++#else /* !__APPLE__ && !__FreeBSD__ */
+ #include <sys/sysinfo.h>
+ #endif
+ #include <sys/time.h>
+@@ -166,7 +170,7 @@
+ #define CALLBACK __stdcall
+ #define WINAPI __stdcall
+ #define WINAPIV __cdecl
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ #define APIENTRY WINAPI
+ #else
+ #define APIENTRY
+@@ -344,14 +360,16 @@ typedef int (*LPTHREAD_START_ROUTINE)(vo
+ #define _O_WRONLY O_WRONLY
+ #define _off_t off_t
+
+-#if defined(__APPLE__)
++#if defined(__APPLE__) || defined(__FreeBSD__)
++#ifdef __APPLE__
+ #include <sched.h>
+ #include <AvailabilityMacros.h>
++#endif
+ typedef int64_t off64_t;
+ typedef off_t __off_t;
+ typedef off64_t __off64_t;
+ typedef fpos_t fpos64_t;
+-#if (MAC_OS_X_VERSION_MAX_ALLOWED < 1050)
++#if defined(__FreeBSD__) || (defined(__APPLE__) && (MAC_OS_X_VERSION_MAX_ALLOWED < 1050))
+ #define __stat64 stat
+ #define stat64 stat
+ #define statfs64 statfs
diff --git a/multimedia/xbmc-pvr/files/patch-xbmc__screensavers__rsxs-0.9__lib__stdbool_.h b/multimedia/xbmc-pvr/files/patch-xbmc__screensavers__rsxs-0.9__lib__stdbool_.h
new file mode 100644
index 000000000000..102e2de80f07
--- /dev/null
+++ b/multimedia/xbmc-pvr/files/patch-xbmc__screensavers__rsxs-0.9__lib__stdbool_.h
@@ -0,0 +1,12 @@
+--- ./xbmc/screensavers/rsxs-0.9/lib/stdbool_.h.orig 2007-10-08 19:37:14.000000000 +0200
++++ ./xbmc/screensavers/rsxs-0.9/lib/stdbool_.h 2010-12-01 12:17:34.237808685 +0100
+@@ -101,7 +101,9 @@
+ # else
+ /* With this compiler, trust the _Bool type if the compiler has it. */
+ # if !@HAVE__BOOL@
++#if !defined(__FreeBSD__)
+ typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
++#endif
+ # endif
+ # endif
+ #endif
diff --git a/multimedia/xbmc-pvr/pkg-descr b/multimedia/xbmc-pvr/pkg-descr
new file mode 100644
index 000000000000..2d1e487c796c
--- /dev/null
+++ b/multimedia/xbmc-pvr/pkg-descr
@@ -0,0 +1,12 @@
+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:
+
+https://github.com/opdenkamp/xbmc
+
+WWW: http://xbmc.org/
diff --git a/multimedia/xbmc-pvr/pkg-plist b/multimedia/xbmc-pvr/pkg-plist
new file mode 100644
index 000000000000..8e435a05c163
--- /dev/null
+++ b/multimedia/xbmc-pvr/pkg-plist
@@ -0,0 +1,1455 @@
+bin/xbmc
+bin/xbmc-standalone
+lib/xbmc/addons/library.xbmc.addon/libXBMC_addon-%%ARCH%%-freebsd.so
+lib/xbmc/addons/library.xbmc.gui/libXBMC_gui-%%ARCH%%-freebsd.so
+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.hts/XBMC_Tvheadend.pvr
+lib/xbmc/addons/pvr.mythtv/XBMC_Mythtv.pvr
+lib/xbmc/addons/pvr.team-mediaportal.tvserver/XBMC_MPTV.pvr
+lib/xbmc/addons/pvr.vdr.vnsi/XBMC_VDR_vnsi.pvr
+lib/xbmc/addons/screensaver.rsxs.euphoria/Euphoria.xbs
+lib/xbmc/addons/screensaver.rsxs.plasma/Plasma.xbs
+lib/xbmc/addons/screensaver.rsxs.solarwinds/Solarwinds.xbs
+lib/xbmc/addons/visualization.glspectrum/opengl_spectrum.vis
+lib/xbmc/addons/visualization.projectm/projectM.vis
+lib/xbmc/addons/visualization.waveform/Waveform.vis
+lib/xbmc/system/ImageLib-%%ARCH%%-freebsd.so
+lib/xbmc/system/hdhomerun-%%ARCH%%-freebsd.so
+lib/xbmc/system/libcmyth-%%ARCH%%-freebsd.so
+lib/xbmc/system/libcpluff-%%ARCH%%-freebsd.so
+lib/xbmc/system/libexif-%%ARCH%%-freebsd.so
+lib/xbmc/system/libid3tag-%%ARCH%%-freebsd.so
+lib/xbmc/system/players/dvdplayer/libdvdcss-%%ARCH%%-freebsd.so
+lib/xbmc/system/players/dvdplayer/libdvdnav-%%ARCH%%-freebsd.so
+lib/xbmc/system/players/paplayer/adpcm-%%ARCH%%-freebsd.so
+lib/xbmc/system/players/paplayer/libsidplay2-%%ARCH%%-freebsd.so
+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
+lib/xbmc/xbmc.bin
+%%DOCSDIR%%/LICENSE.GPL
+%%DOCSDIR%%/README.linux
+%%DOCSDIR%%/copying.txt
+%%DOCSDIR%%/keymapping.txt
+share/icons/hicolor/256x256/apps/xbmc.png
+share/icons/hicolor/48x48/apps/xbmc.png
+%%DATADIR%%/FEH.py
+%%DATADIR%%/addons/library.xbmc.addon/dlfcn-win32.cpp
+%%DATADIR%%/addons/library.xbmc.addon/dlfcn-win32.h
+%%DATADIR%%/addons/library.xbmc.addon/libXBMC_addon.h
+%%DATADIR%%/addons/library.xbmc.gui/libXBMC_gui.h
+%%DATADIR%%/addons/library.xbmc.pvr/libXBMC_pvr.h
+%%DATADIR%%/addons/metadata.albums.allmusic.com/addon.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/allmusic.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/icon.png
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Bulgarian/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Chinese (Simple)/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/English/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/French/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/German/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Hungarian/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Korean/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Polish/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Portuguese/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Russian/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Spanish/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Swedish/strings.xml
+%%DATADIR%%/addons/metadata.albums.allmusic.com/resources/settings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/addon.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/allmusic.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/icon.png
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Bulgarian/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Chinese (Simple)/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/English/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/French/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/German/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Hungarian/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Korean/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Polish/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Portuguese/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Russian/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Spanish/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Swedish/strings.xml
+%%DATADIR%%/addons/metadata.artists.allmusic.com/resources/settings.xml
+%%DATADIR%%/addons/metadata.common.allmusic.com/addon.xml
+%%DATADIR%%/addons/metadata.common.allmusic.com/allmusic.xml
+%%DATADIR%%/addons/metadata.common.hdtrailers.net/addon.xml
+%%DATADIR%%/addons/metadata.common.hdtrailers.net/hdtrailers.xml
+%%DATADIR%%/addons/metadata.common.htbackdrops.com/addon.xml
+%%DATADIR%%/addons/metadata.common.htbackdrops.com/htbackdrops.xml
+%%DATADIR%%/addons/metadata.common.imdb.com/addon.xml
+%%DATADIR%%/addons/metadata.common.imdb.com/changelog.txt
+%%DATADIR%%/addons/metadata.common.imdb.com/imdb.xml
+%%DATADIR%%/addons/metadata.common.last.fm/addon.xml
+%%DATADIR%%/addons/metadata.common.last.fm/lastfm.xml
+%%DATADIR%%/addons/metadata.common.themoviedb.org/addon.xml
+%%DATADIR%%/addons/metadata.common.themoviedb.org/tmdb.xml
+%%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/Bulgarian/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Chinese (Simple)/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/English/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/French/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/German/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Hungarian/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Korean/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Polish/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Portuguese/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Romanian/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Russian/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Spanish/strings.xml
+%%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Swedish/strings.xml
+%%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/Chinese (Simple)/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/language/English/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/language/French/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/language/German/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Hungarian/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Korean/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Polish/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Portuguese/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Russian/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Spanish/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/language/Swedish/strings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/resources/settings.xml
+%%DATADIR%%/addons/metadata.tvdb.com/tvdb.xml
+%%DATADIR%%/addons/metadata.yahoomusic.com/addon.xml
+%%DATADIR%%/addons/metadata.yahoomusic.com/icon.png
+%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/English/strings.xml
+%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Hungarian/strings.xml
+%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Korean/strings.xml
+%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Polish/strings.xml
+%%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Portuguese/strings.xml
+%%DATADIR%%/addons/metadata.yahoomusic.com/resources/settings.xml
+%%DATADIR%%/addons/metadata.yahoomusic.com/yahoomusic.xml
+%%DATADIR%%/addons/pvr.hts/addon.xml
+%%DATADIR%%/addons/pvr.hts/icon.png
+%%DATADIR%%/addons/pvr.hts/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/pvr.hts/resources/language/English/strings.xml
+%%DATADIR%%/addons/pvr.hts/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/pvr.hts/resources/language/German/strings.xml
+%%DATADIR%%/addons/pvr.hts/resources/settings.xml
+%%DATADIR%%/addons/pvr.mythtv/addon.xml
+%%DATADIR%%/addons/pvr.mythtv/icon.png
+%%DATADIR%%/addons/pvr.mythtv/resources/language/English/strings.xml
+%%DATADIR%%/addons/pvr.mythtv/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/pvr.mythtv/resources/language/German/strings.xml
+%%DATADIR%%/addons/pvr.mythtv/resources/settings.xml
+%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/LICENSE.txt
+%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/addon.xml
+%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/changelog.txt
+%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/icon.png
+%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/genre_translation.xml
+%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/English/strings.xml
+%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/German/strings.xml
+%%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/settings.xml
+%%DATADIR%%/addons/pvr.vdr.vnsi/addon.xml
+%%DATADIR%%/addons/pvr.vdr.vnsi/icon.png
+%%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/English/strings.xml
+%%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/German/strings.xml
+%%DATADIR%%/addons/pvr.vdr.vnsi/resources/settings.xml
+%%DATADIR%%/addons/pvr.vdr.vnsi/resources/skins/Confluence/720p/ChannelScan.xml
+%%DATADIR%%/addons/repository.xbmc.org/addon.xml
+%%DATADIR%%/addons/repository.xbmc.org/icon.png
+%%DATADIR%%/addons/screensaver.rsxs.euphoria/addon.xml
+%%DATADIR%%/addons/screensaver.rsxs.euphoria/icon.png
+%%DATADIR%%/addons/screensaver.rsxs.plasma/addon.xml
+%%DATADIR%%/addons/screensaver.rsxs.plasma/icon.png
+%%DATADIR%%/addons/screensaver.rsxs.solarwinds/addon.xml
+%%DATADIR%%/addons/screensaver.rsxs.solarwinds/icon.png
+%%DATADIR%%/addons/screensaver.xbmc.builtin.black/addon.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.black/icon.png
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/addon.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/icon.png
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Bulgarian/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Chinese (Simple)/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/English/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/French/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/German/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Hungarian/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Korean/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Polish/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Portuguese/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Russian/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Slovenian/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Spanish/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Swedish/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/settings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/addon.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/icon.png
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Chinese (Simple)/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/English/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/French/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/German/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Hungarian/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Korean/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Polish/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Russian/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Slovenian/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Spanish/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Swedish/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/settings.xml
+%%DATADIR%%/addons/script.module.pil/addon.xml
+%%DATADIR%%/addons/script.module.pysqlite/addon.xml
+%%DATADIR%%/addons/script.module.pysqlite/lib/pysqlite2/__init__.py
+%%DATADIR%%/addons/skin.confluence/720p/AddonBrowser.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogAddonInfo.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogAddonSettings.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogAlbumInfo.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogBusy.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogButtonMenu.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogContentSettings.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogContextMenu.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogExtendedProgressBar.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogFavourites.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogFileStacking.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogGamepad.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogKaiToast.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogKaraokeSongSelector.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogKaraokeSongSelectorLarge.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogKeyboard.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogMediaSource.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogMusicScan.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogMuteBug.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogNetworkSetup.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogNumeric.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogOK.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogPVRChannelManager.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogPVRChannelsOSD.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogPVRGroupManager.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogPVRGuideInfo.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogPVRGuideOSD.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogPVRGuideSearch.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogPVRRecordingInfo.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogPVRTimerSettings.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogPeripheralManager.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogPeripheralSettings.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogPictureInfo.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogProgress.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogSeekBar.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogSelect.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogSlider.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogSongInfo.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogTextViewer.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogVideoInfo.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogVideoScan.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogVolumeBar.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogYesNo.xml
+%%DATADIR%%/addons/skin.confluence/720p/FileBrowser.xml
+%%DATADIR%%/addons/skin.confluence/720p/FileManager.xml
+%%DATADIR%%/addons/skin.confluence/720p/Font.xml
+%%DATADIR%%/addons/skin.confluence/720p/Home.xml
+%%DATADIR%%/addons/skin.confluence/720p/IncludesBackgroundBuilding.xml
+%%DATADIR%%/addons/skin.confluence/720p/IncludesCodecFlagging.xml
+%%DATADIR%%/addons/skin.confluence/720p/IncludesHomeMenuItems.xml
+%%DATADIR%%/addons/skin.confluence/720p/IncludesHomeRecentlyAdded.xml
+%%DATADIR%%/addons/skin.confluence/720p/LockSettings.xml
+%%DATADIR%%/addons/skin.confluence/720p/LoginScreen.xml
+%%DATADIR%%/addons/skin.confluence/720p/MusicKaraokeLyrics.xml
+%%DATADIR%%/addons/skin.confluence/720p/MusicOSD.xml
+%%DATADIR%%/addons/skin.confluence/720p/MusicOverlay.xml
+%%DATADIR%%/addons/skin.confluence/720p/MusicVisualisation.xml
+%%DATADIR%%/addons/skin.confluence/720p/MyMusicNav.xml
+%%DATADIR%%/addons/skin.confluence/720p/MyMusicPlaylist.xml
+%%DATADIR%%/addons/skin.confluence/720p/MyMusicPlaylistEditor.xml
+%%DATADIR%%/addons/skin.confluence/720p/MyMusicSongs.xml
+%%DATADIR%%/addons/skin.confluence/720p/MyPVR.xml
+%%DATADIR%%/addons/skin.confluence/720p/MyPics.xml
+%%DATADIR%%/addons/skin.confluence/720p/MyPrograms.xml
+%%DATADIR%%/addons/skin.confluence/720p/MyVideoNav.xml
+%%DATADIR%%/addons/skin.confluence/720p/MyVideoPlaylist.xml
+%%DATADIR%%/addons/skin.confluence/720p/MyWeather.xml
+%%DATADIR%%/addons/skin.confluence/720p/PlayerControls.xml
+%%DATADIR%%/addons/skin.confluence/720p/Pointer.xml
+%%DATADIR%%/addons/skin.confluence/720p/ProfileSettings.xml
+%%DATADIR%%/addons/skin.confluence/720p/Settings.xml
+%%DATADIR%%/addons/skin.confluence/720p/SettingsCategory.xml
+%%DATADIR%%/addons/skin.confluence/720p/SettingsProfile.xml
+%%DATADIR%%/addons/skin.confluence/720p/SettingsScreenCalibration.xml
+%%DATADIR%%/addons/skin.confluence/720p/SettingsSystemInfo.xml
+%%DATADIR%%/addons/skin.confluence/720p/SlideShow.xml
+%%DATADIR%%/addons/skin.confluence/720p/SmartPlaylistEditor.xml
+%%DATADIR%%/addons/skin.confluence/720p/SmartPlaylistRule.xml
+%%DATADIR%%/addons/skin.confluence/720p/Startup.xml
+%%DATADIR%%/addons/skin.confluence/720p/VideoFullScreen.xml
+%%DATADIR%%/addons/skin.confluence/720p/VideoOSD.xml
+%%DATADIR%%/addons/skin.confluence/720p/VideoOSDBookmarks.xml
+%%DATADIR%%/addons/skin.confluence/720p/VideoOSDSettings.xml
+%%DATADIR%%/addons/skin.confluence/720p/VideoOverlay.xml
+%%DATADIR%%/addons/skin.confluence/720p/ViewsAddonBrowser.xml
+%%DATADIR%%/addons/skin.confluence/720p/ViewsFileMode.xml
+%%DATADIR%%/addons/skin.confluence/720p/ViewsLiveTV.xml
+%%DATADIR%%/addons/skin.confluence/720p/ViewsMusicLibrary.xml
+%%DATADIR%%/addons/skin.confluence/720p/ViewsPVR.xml
+%%DATADIR%%/addons/skin.confluence/720p/ViewsPictures.xml
+%%DATADIR%%/addons/skin.confluence/720p/ViewsVideoLibrary.xml
+%%DATADIR%%/addons/skin.confluence/720p/VisualisationPresetList.xml
+%%DATADIR%%/addons/skin.confluence/720p/custom_SkinSetting_1111.xml
+%%DATADIR%%/addons/skin.confluence/720p/defaults.xml
+%%DATADIR%%/addons/skin.confluence/720p/includes.xml
+%%DATADIR%%/addons/skin.confluence/720p/script-RSS_Editor-rssEditor.xml
+%%DATADIR%%/addons/skin.confluence/720p/script-RSS_Editor-setEditor.xml
+%%DATADIR%%/addons/skin.confluence/720p/script-XBMC_Lyrics-main.xml
+%%DATADIR%%/addons/skin.confluence/720p/weather+/10DayForecast.xml
+%%DATADIR%%/addons/skin.confluence/720p/weather+/36HourForecast.xml
+%%DATADIR%%/addons/skin.confluence/720p/weather+/HourlyForecast.xml
+%%DATADIR%%/addons/skin.confluence/720p/weather+/MapsVideo.xml
+%%DATADIR%%/addons/skin.confluence/720p/weather+/WeekendForecast.xml
+%%DATADIR%%/addons/skin.confluence/addon.xml
+%%DATADIR%%/addons/skin.confluence/backgrounds/addons.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/appearance.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/media-overlay.png
+%%DATADIR%%/addons/skin.confluence/backgrounds/music.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/network.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/pictures.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/playdisc.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/programs.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/settings.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/skinsetting.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/system.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/tv.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/videos.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/weather.jpg
+%%DATADIR%%/addons/skin.confluence/build.bat
+%%DATADIR%%/addons/skin.confluence/changelog.txt
+%%DATADIR%%/addons/skin.confluence/colors/defaults.xml
+%%DATADIR%%/addons/skin.confluence/fonts/DefaultCaps.ttf
+%%DATADIR%%/addons/skin.confluence/fonts/DejaVuSans-Bold-Caps.ttf
+%%DATADIR%%/addons/skin.confluence/fonts/DejaVuSans-Bold.ttf
+%%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/Bulgarian/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Catalan/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Chinese (Simple)/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Chinese (Traditional)/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Czech/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Danish/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Dutch/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/English/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Finnish/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/French/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/German/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Greek/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Hungarian/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Icelandic/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Italian/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Japanese/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Korean/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Norwegian/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Polish/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Portuguese (Brazil)/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Portuguese/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Romanian/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Russian/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Serbian (Cyrillic)/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Serbian/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Slovak/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Slovenian/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Spanish/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Swedish/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Turkish/strings.xml
+%%DATADIR%%/addons/skin.confluence/media/ArrowDown.png
+%%DATADIR%%/addons/skin.confluence/media/ArrowUp.png
+%%DATADIR%%/addons/skin.confluence/media/CalibrateBottomRight.png
+%%DATADIR%%/addons/skin.confluence/media/CalibratePixelRatio.png
+%%DATADIR%%/addons/skin.confluence/media/CalibrateSubtitles.png
+%%DATADIR%%/addons/skin.confluence/media/CalibrateTopLeft.png
+%%DATADIR%%/addons/skin.confluence/media/CenterRating/rating0.png
+%%DATADIR%%/addons/skin.confluence/media/CenterRating/rating1.png
+%%DATADIR%%/addons/skin.confluence/media/CenterRating/rating2.png
+%%DATADIR%%/addons/skin.confluence/media/CenterRating/rating3.png
+%%DATADIR%%/addons/skin.confluence/media/CenterRating/rating4.png
+%%DATADIR%%/addons/skin.confluence/media/CenterRating/rating5.png
+%%DATADIR%%/addons/skin.confluence/media/Confluence_Logo.png
+%%DATADIR%%/addons/skin.confluence/media/ContentPanel.png
+%%DATADIR%%/addons/skin.confluence/media/ContentPanelMirror.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultActor.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddSource.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddon.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonAlbumInfo.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonArtistInfo.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonLyrics.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonMovieInfo.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonMusic.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonMusicVideoInfo.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonNone.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonPicture.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonProgram.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonRepository.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonScreensaver.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonService.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonSkin.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonSubtitles.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonTvInfo.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonVideo.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonVisualization.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonWeather.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAddonWebSkin.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAlbumCover.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultArtist.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultAudio.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultCDDA.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultDVDEmpty.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultDVDRom.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultFile.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultFolder.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultFolderBack.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultHardDisk.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultIconError.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultIconInfo.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultIconWarning.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMovies.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMusicAlbums.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMusicArtists.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMusicCompilations.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMusicGenres.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMusicPlaylists.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMusicPlugins.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMusicRecentlyAdded.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMusicRecentlyPlayed.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMusicSongs.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMusicTop100.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMusicVideos.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultMusicYears.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultNetwork.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultPicture.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultPlaylist.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultProgram.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultRecentlyAddedEpisodes.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultRecentlyAddedMovies.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultRecentlyAddedMusicVideos.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultTVShows.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultVideo.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultVideoCover.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultVideoPlaylists.png
+%%DATADIR%%/addons/skin.confluence/media/DefaultVideoPlugins.png
+%%DATADIR%%/addons/skin.confluence/media/DialogBack.png
+%%DATADIR%%/addons/skin.confluence/media/DialogBack2.png
+%%DATADIR%%/addons/skin.confluence/media/DialogCloseButton-focus.png
+%%DATADIR%%/addons/skin.confluence/media/DialogCloseButton.png
+%%DATADIR%%/addons/skin.confluence/media/DialogContextBottom.png
+%%DATADIR%%/addons/skin.confluence/media/DialogContextMiddle.png
+%%DATADIR%%/addons/skin.confluence/media/DialogContextTop.png
+%%DATADIR%%/addons/skin.confluence/media/Fanart_Fallback_Music_Small.jpg
+%%DATADIR%%/addons/skin.confluence/media/Fanart_Fallback_Small.jpg
+%%DATADIR%%/addons/skin.confluence/media/GlassOverlay.png
+%%DATADIR%%/addons/skin.confluence/media/GlassTitleBar.png
+%%DATADIR%%/addons/skin.confluence/media/GoFullscreen.png
+%%DATADIR%%/addons/skin.confluence/media/HasSub.png
+%%DATADIR%%/addons/skin.confluence/media/HomeBack.png
+%%DATADIR%%/addons/skin.confluence/media/HomeBladeSub.png
+%%DATADIR%%/addons/skin.confluence/media/HomeButtonsBack.png
+%%DATADIR%%/addons/skin.confluence/media/HomeIcon-Focus.png
+%%DATADIR%%/addons/skin.confluence/media/HomeIcon.png
+%%DATADIR%%/addons/skin.confluence/media/HomeNowPlayingBack.png
+%%DATADIR%%/addons/skin.confluence/media/HomeOverlay1.png
+%%DATADIR%%/addons/skin.confluence/media/HomeSeperator.png
+%%DATADIR%%/addons/skin.confluence/media/HomeSubEnd.png
+%%DATADIR%%/addons/skin.confluence/media/HomeSubFO.png
+%%DATADIR%%/addons/skin.confluence/media/HomeSubNF.png
+%%DATADIR%%/addons/skin.confluence/media/InfoMessagePanel.png
+%%DATADIR%%/addons/skin.confluence/media/KeyboardCornerBottom.png
+%%DATADIR%%/addons/skin.confluence/media/KeyboardCornerBottomNF.png
+%%DATADIR%%/addons/skin.confluence/media/KeyboardCornerTop.png
+%%DATADIR%%/addons/skin.confluence/media/KeyboardCornerTopNF.png
+%%DATADIR%%/addons/skin.confluence/media/KeyboardEditArea.png
+%%DATADIR%%/addons/skin.confluence/media/KeyboardKey.png
+%%DATADIR%%/addons/skin.confluence/media/KeyboardKeyNF.png
+%%DATADIR%%/addons/skin.confluence/media/LeftRating/rating0.png
+%%DATADIR%%/addons/skin.confluence/media/LeftRating/rating1.png
+%%DATADIR%%/addons/skin.confluence/media/LeftRating/rating2.png
+%%DATADIR%%/addons/skin.confluence/media/LeftRating/rating3.png
+%%DATADIR%%/addons/skin.confluence/media/LeftRating/rating4.png
+%%DATADIR%%/addons/skin.confluence/media/LeftRating/rating5.png
+%%DATADIR%%/addons/skin.confluence/media/Makefile
+%%DATADIR%%/addons/skin.confluence/media/Makefile.in
+%%DATADIR%%/addons/skin.confluence/media/MediaBladeSub.png
+%%DATADIR%%/addons/skin.confluence/media/MediaItemDetailBG.png
+%%DATADIR%%/addons/skin.confluence/media/MenuItemFO.png
+%%DATADIR%%/addons/skin.confluence/media/MenuItemNF.png
+%%DATADIR%%/addons/skin.confluence/media/NowPlayingIcon.png
+%%DATADIR%%/addons/skin.confluence/media/OSD16x.png
+%%DATADIR%%/addons/skin.confluence/media/OSD2x.png
+%%DATADIR%%/addons/skin.confluence/media/OSD32x.png
+%%DATADIR%%/addons/skin.confluence/media/OSD4x.png
+%%DATADIR%%/addons/skin.confluence/media/OSD8x.png
+%%DATADIR%%/addons/skin.confluence/media/OSDAudioFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDAudioNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDBookmarksFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDBookmarksNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDChannelDownFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDChannelDownNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDChannelListFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDChannelListNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDChannelUPFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDChannelUPNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDDvdFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDDvdNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDForwardFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDForwardNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDLyricsFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDLyricsNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDNextTrackFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDNextTrackNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPause.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPauseFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPauseNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPlay.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPlayFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPlayNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPlaylistFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPlaylistNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPreFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPreNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPresetSettingsFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPresetSettingsNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPrevTrackFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDPrevTrackNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDProgressBack.png
+%%DATADIR%%/addons/skin.confluence/media/OSDProgressMid.png
+%%DATADIR%%/addons/skin.confluence/media/OSDProgressMidLight.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRandomOffFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRandomOffNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRandomOnFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRandomOnNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRecordOffFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRecordOffNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRecordOnFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRecordOnNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRepeatAllFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRepeatAllNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRepeatFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRepeatNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRepeatOneFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRepeatOneNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRewindFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRewindNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDSeekForward.png
+%%DATADIR%%/addons/skin.confluence/media/OSDSeekFrame.png
+%%DATADIR%%/addons/skin.confluence/media/OSDSeekRewind.png
+%%DATADIR%%/addons/skin.confluence/media/OSDStopFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDStopNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDSubtitlesFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDSubtitlesNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDTeleTextFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDTeleTextNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDVideoFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDVideoNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDVizFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDVizNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDepgFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDepgNF.png
+%%DATADIR%%/addons/skin.confluence/media/OverlayDialogBackground.png
+%%DATADIR%%/addons/skin.confluence/media/OverlayHD.png
+%%DATADIR%%/addons/skin.confluence/media/OverlayLocked.png
+%%DATADIR%%/addons/skin.confluence/media/OverlayRAR.png
+%%DATADIR%%/addons/skin.confluence/media/OverlayWatched.png
+%%DATADIR%%/addons/skin.confluence/media/PVR-HasTimer.png
+%%DATADIR%%/addons/skin.confluence/media/PVR-IsRecording.png
+%%DATADIR%%/addons/skin.confluence/media/RecentAddedBack.png
+%%DATADIR%%/addons/skin.confluence/media/ScrollBarH.png
+%%DATADIR%%/addons/skin.confluence/media/ScrollBarH_bar.png
+%%DATADIR%%/addons/skin.confluence/media/ScrollBarH_bar_focus.png
+%%DATADIR%%/addons/skin.confluence/media/ScrollBarNib.png
+%%DATADIR%%/addons/skin.confluence/media/ScrollBarV.png
+%%DATADIR%%/addons/skin.confluence/media/ScrollBarV_bar.png
+%%DATADIR%%/addons/skin.confluence/media/ScrollBarV_bar_focus.png
+%%DATADIR%%/addons/skin.confluence/media/ShutdownButtonFocus.png
+%%DATADIR%%/addons/skin.confluence/media/ShutdownButtonNoFocus.png
+%%DATADIR%%/addons/skin.confluence/media/SideFade.png
+%%DATADIR%%/addons/skin.confluence/media/StackFO.png
+%%DATADIR%%/addons/skin.confluence/media/StackNF.png
+%%DATADIR%%/addons/skin.confluence/media/Textures.xbt
+%%DATADIR%%/addons/skin.confluence/media/ThumbBG.png
+%%DATADIR%%/addons/skin.confluence/media/ThumbBorder.png
+%%DATADIR%%/addons/skin.confluence/media/ThumbShadow.png
+%%DATADIR%%/addons/skin.confluence/media/VolumeIcon-Mute.png
+%%DATADIR%%/addons/skin.confluence/media/VolumeIcon.png
+%%DATADIR%%/addons/skin.confluence/media/black-back.png
+%%DATADIR%%/addons/skin.confluence/media/black-back2.png
+%%DATADIR%%/addons/skin.confluence/media/busy.png
+%%DATADIR%%/addons/skin.confluence/media/button-focus.png
+%%DATADIR%%/addons/skin.confluence/media/button-focus2.png
+%%DATADIR%%/addons/skin.confluence/media/button-nofocus.png
+%%DATADIR%%/addons/skin.confluence/media/defaultDVDFull.png
+%%DATADIR%%/addons/skin.confluence/media/dialogheader.png
+%%DATADIR%%/addons/skin.confluence/media/diffuse_mirror2.png
+%%DATADIR%%/addons/skin.confluence/media/diffuse_mirror3.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/0.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/112.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/128.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/144.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/16.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/160.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/176.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/192.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/208.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/224.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/240.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/32.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/48.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/64.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/80.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/96.png
+%%DATADIR%%/addons/skin.confluence/media/epg-genres/genre-numbers.txt
+%%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio/1.33.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio/1.66.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio/1.78.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio/1.85.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio/2.20.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio/2.35.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/0.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/1.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/10.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/2.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/3.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/4.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/5.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/6.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/7.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/8.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/aac.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/ac3.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/aif.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/aifc.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/aiff.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/alac.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/ape.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/avc.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/cdda.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/dca.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/dts.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/dtshd_hra.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/dtshd_ma.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/eac3.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/flac.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/mp1.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/mp2.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/mp3.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/wav.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/wavpack.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/wma.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/wmapro.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/wmav2.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/blank.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/lists/1080.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/lists/480.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/lists/540.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/lists/576.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/lists/720.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/ratings/mpaa_general.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/ratings/mpaa_nc17.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/ratings/mpaa_notrated.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/ratings/mpaa_pg.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/ratings/mpaa_pg13.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/ratings/mpaa_restricted.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/1080.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/480.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/540.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/576.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/720.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/avc1.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/bluray.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/divx.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/dvd.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/flv.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/h264.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/hddvd.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/mpeg1video.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/mpeg2video.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/tv.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/vc-1.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/vhs.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/vp8.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/wvc1.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/video/xvid.png
+%%DATADIR%%/addons/skin.confluence/media/floor.png
+%%DATADIR%%/addons/skin.confluence/media/folder-focus.png
+%%DATADIR%%/addons/skin.confluence/media/gradient.png
+%%DATADIR%%/addons/skin.confluence/media/header.png
+%%DATADIR%%/addons/skin.confluence/media/home-favourites-FO.png
+%%DATADIR%%/addons/skin.confluence/media/home-favourites.png
+%%DATADIR%%/addons/skin.confluence/media/home-power-FO.png
+%%DATADIR%%/addons/skin.confluence/media/home-power-inhibit-FO.png
+%%DATADIR%%/addons/skin.confluence/media/home-power-inhibit.png
+%%DATADIR%%/addons/skin.confluence/media/home-power.png
+%%DATADIR%%/addons/skin.confluence/media/icon-mute.png
+%%DATADIR%%/addons/skin.confluence/media/icon-rss.png
+%%DATADIR%%/addons/skin.confluence/media/icon-video.png
+%%DATADIR%%/addons/skin.confluence/media/icon-weather.png
+%%DATADIR%%/addons/skin.confluence/media/lastfm-hate-focus.png
+%%DATADIR%%/addons/skin.confluence/media/lastfm-hate-nofocus.png
+%%DATADIR%%/addons/skin.confluence/media/lastfm-love-focus.png
+%%DATADIR%%/addons/skin.confluence/media/lastfm-love-nofocus.png
+%%DATADIR%%/addons/skin.confluence/media/osd_slider_bg.png
+%%DATADIR%%/addons/skin.confluence/media/osd_slider_bg_2.png
+%%DATADIR%%/addons/skin.confluence/media/osd_slider_nib.png
+%%DATADIR%%/addons/skin.confluence/media/osd_slider_nibNF.png
+%%DATADIR%%/addons/skin.confluence/media/pointer-focus-click.png
+%%DATADIR%%/addons/skin.confluence/media/pointer-focus-drag.png
+%%DATADIR%%/addons/skin.confluence/media/pointer-focus.png
+%%DATADIR%%/addons/skin.confluence/media/pointer-nofocus.png
+%%DATADIR%%/addons/skin.confluence/media/radiobutton-focus.png
+%%DATADIR%%/addons/skin.confluence/media/radiobutton-nofocus.png
+%%DATADIR%%/addons/skin.confluence/media/scroll-down-2.png
+%%DATADIR%%/addons/skin.confluence/media/scroll-down-focus-2.png
+%%DATADIR%%/addons/skin.confluence/media/scroll-down-focus.png
+%%DATADIR%%/addons/skin.confluence/media/scroll-down.png
+%%DATADIR%%/addons/skin.confluence/media/scroll-left-focus.png
+%%DATADIR%%/addons/skin.confluence/media/scroll-left.png
+%%DATADIR%%/addons/skin.confluence/media/scroll-right-focus.png
+%%DATADIR%%/addons/skin.confluence/media/scroll-right.png
+%%DATADIR%%/addons/skin.confluence/media/scroll-up-2.png
+%%DATADIR%%/addons/skin.confluence/media/scroll-up-focus-2.png
+%%DATADIR%%/addons/skin.confluence/media/scroll-up-focus.png
+%%DATADIR%%/addons/skin.confluence/media/scroll-up.png
+%%DATADIR%%/addons/skin.confluence/media/seekslider.png
+%%DATADIR%%/addons/skin.confluence/media/seekslider2.png
+%%DATADIR%%/addons/skin.confluence/media/separator.png
+%%DATADIR%%/addons/skin.confluence/media/separator2.png
+%%DATADIR%%/addons/skin.confluence/media/separator_vertical.png
+%%DATADIR%%/addons/skin.confluence/media/unknown-user.png
+%%DATADIR%%/addons/skin.confluence/media/xbmc-logo.png
+%%DATADIR%%/addons/skin.confluence/sounds/back.wav
+%%DATADIR%%/addons/skin.confluence/sounds/click.wav
+%%DATADIR%%/addons/skin.confluence/sounds/cursor.wav
+%%DATADIR%%/addons/skin.confluence/sounds/notify.wav
+%%DATADIR%%/addons/skin.confluence/sounds/out.wav
+%%DATADIR%%/addons/skin.confluence/sounds/shutter.wav
+%%DATADIR%%/addons/skin.confluence/sounds/sounds.xml
+%%DATADIR%%/addons/visualization.dxspectrum/addon.xml
+%%DATADIR%%/addons/visualization.dxspectrum/icon.png
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Bulgarian/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Chinese (Simple)/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/English/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/French/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/German/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Hungarian/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Korean/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Polish/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Portuguese/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Romanian/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Slovenian/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Spanish/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/language/Swedish/strings.xml
+%%DATADIR%%/addons/visualization.dxspectrum/resources/settings.xml
+%%DATADIR%%/addons/visualization.glspectrum/addon.xml
+%%DATADIR%%/addons/visualization.glspectrum/icon.png
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/Bulgarian/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/Chinese (Simple)/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/English/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/French/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/German/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/Hungarian/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/Korean/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/Polish/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/Russian/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/Slovenian/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/Spanish/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/language/Swedish/strings.xml
+%%DATADIR%%/addons/visualization.glspectrum/resources/settings.xml
+%%DATADIR%%/addons/visualization.itunes/addon.xml
+%%DATADIR%%/addons/visualization.milkdrop/addon.xml
+%%DATADIR%%/addons/visualization.milkdrop/icon.png
+%%DATADIR%%/addons/visualization.milkdrop/presets/WA51-presets(265).zip
+%%DATADIR%%/addons/visualization.milkdrop/presets/Winamp-presets(436).zip
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Bulgarian/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Chinese (Simple)/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/English/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/French/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/German/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Hungarian/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Korean/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Polish/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Portuguese/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Romanian/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Russian/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Slovenian/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Spanish/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/language/Swedish/strings.xml
+%%DATADIR%%/addons/visualization.milkdrop/resources/settings.xml
+%%DATADIR%%/addons/visualization.projectm/addon.xml
+%%DATADIR%%/addons/visualization.projectm/icon.png
+%%DATADIR%%/addons/visualization.projectm/resources/language/Bulgarian/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/Chinese (Simple)/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/Dutch/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/English/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/French/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/German/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/Hungarian/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/Korean/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/Polish/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/Portuguese/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/Russian/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/Slovenian/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/Spanish/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/language/Swedish/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/presets.zip
+%%DATADIR%%/addons/visualization.projectm/resources/settings.xml
+%%DATADIR%%/addons/visualization.waveform/addon.xml
+%%DATADIR%%/addons/visualization.waveform/icon.png
+%%DATADIR%%/addons/weather.wunderground/LICENSE.txt
+%%DATADIR%%/addons/weather.wunderground/addon.xml
+%%DATADIR%%/addons/weather.wunderground/changelog.txt
+%%DATADIR%%/addons/weather.wunderground/default.py
+%%DATADIR%%/addons/weather.wunderground/icon.png
+%%DATADIR%%/addons/weather.wunderground/resources/language/English/strings.xml
+%%DATADIR%%/addons/weather.wunderground/resources/language/German/strings.xml
+%%DATADIR%%/addons/weather.wunderground/resources/lib/utilities.py
+%%DATADIR%%/addons/weather.wunderground/resources/settings.xml
+%%DATADIR%%/addons/webinterface.default/addon.xml
+%%DATADIR%%/addons/webinterface.default/css/core.css
+%%DATADIR%%/addons/webinterface.default/css/ipad.css
+%%DATADIR%%/addons/webinterface.default/favicon.ico
+%%DATADIR%%/addons/webinterface.default/icon.png
+%%DATADIR%%/addons/webinterface.default/images/DefaultAlbumCover.png
+%%DATADIR%%/addons/webinterface.default/images/DefaultVideo.png
+%%DATADIR%%/addons/webinterface.default/images/ajax-loader.gif
+%%DATADIR%%/addons/webinterface.default/images/close-button.png
+%%DATADIR%%/addons/webinterface.default/images/remote.jpg
+%%DATADIR%%/addons/webinterface.default/index.html
+%%DATADIR%%/addons/webinterface.default/js/Core.js
+%%DATADIR%%/addons/webinterface.default/js/Launcher.js
+%%DATADIR%%/addons/webinterface.default/js/MediaLibrary.js
+%%DATADIR%%/addons/webinterface.default/js/NowPlayingManager.js
+%%DATADIR%%/addons/webinterface.default/js/iscroll-min.js
+%%DATADIR%%/addons/webinterface.default/js/jquery-1.5.2.js
+%%DATADIR%%/addons/webinterface.default/js/jquery-1.5.2.min.js
+%%DATADIR%%/addons/webinterface.default/js/jquery.lazyload.js
+%%DATADIR%%/addons/xbmc.addon/addon.xml
+%%DATADIR%%/addons/xbmc.addon/metadata.xsd
+%%DATADIR%%/addons/xbmc.addon/repository.xsd
+%%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.metadata/addon.xml
+%%DATADIR%%/addons/xbmc.metadata/scraper.xsd
+%%DATADIR%%/addons/xbmc.python/addon.xml
+%%DATADIR%%/addons/xbmc.python/pluginsource.xsd
+%%DATADIR%%/addons/xbmc.python/script.xsd
+%%DATADIR%%/language/Afrikaans/langinfo.xml
+%%DATADIR%%/language/Afrikaans/strings.xml
+%%DATADIR%%/language/Basque/langinfo.xml
+%%DATADIR%%/language/Basque/strings.xml
+%%DATADIR%%/language/Bosnian/langinfo.xml
+%%DATADIR%%/language/Bosnian/strings.xml
+%%DATADIR%%/language/Bulgarian/langinfo.xml
+%%DATADIR%%/language/Bulgarian/strings.xml
+%%DATADIR%%/language/Catalan/langinfo.xml
+%%DATADIR%%/language/Catalan/strings.xml
+%%DATADIR%%/language/Chinese (Simple)/langinfo.xml
+%%DATADIR%%/language/Chinese (Simple)/strings.xml
+%%DATADIR%%/language/Chinese (Traditional)/langinfo.xml
+%%DATADIR%%/language/Chinese (Traditional)/strings.xml
+%%DATADIR%%/language/Croatian/langinfo.xml
+%%DATADIR%%/language/Croatian/strings.xml
+%%DATADIR%%/language/Czech/langinfo.xml
+%%DATADIR%%/language/Czech/strings.xml
+%%DATADIR%%/language/Danish/langinfo.xml
+%%DATADIR%%/language/Danish/strings.xml
+%%DATADIR%%/language/Dutch/langinfo.xml
+%%DATADIR%%/language/Dutch/strings.xml
+%%DATADIR%%/language/English (US)/langinfo.xml
+%%DATADIR%%/language/English (US)/strings.xml
+%%DATADIR%%/language/English/langinfo.xml
+%%DATADIR%%/language/English/strings.xml
+%%DATADIR%%/language/Esperanto/langinfo.xml
+%%DATADIR%%/language/Esperanto/strings.xml
+%%DATADIR%%/language/Finnish/langinfo.xml
+%%DATADIR%%/language/Finnish/strings.xml
+%%DATADIR%%/language/French/langinfo.xml
+%%DATADIR%%/language/French/strings.xml
+%%DATADIR%%/language/German/keyboardmap.xml
+%%DATADIR%%/language/German/langinfo.xml
+%%DATADIR%%/language/German/strings.xml
+%%DATADIR%%/language/Greek/langinfo.xml
+%%DATADIR%%/language/Greek/strings.xml
+%%DATADIR%%/language/Hebrew/langinfo.xml
+%%DATADIR%%/language/Hebrew/strings.xml
+%%DATADIR%%/language/Hindi (Devanagiri)/langinfo.xml
+%%DATADIR%%/language/Hindi (Devanagiri)/strings.xml
+%%DATADIR%%/language/Hungarian/langinfo.xml
+%%DATADIR%%/language/Hungarian/strings.xml
+%%DATADIR%%/language/Icelandic/langinfo.xml
+%%DATADIR%%/language/Icelandic/strings.xml
+%%DATADIR%%/language/Indonesian/langinfo.xml
+%%DATADIR%%/language/Indonesian/strings.xml
+%%DATADIR%%/language/Italian/langinfo.xml
+%%DATADIR%%/language/Italian/strings.xml
+%%DATADIR%%/language/Japanese/langinfo.xml
+%%DATADIR%%/language/Japanese/strings.xml
+%%DATADIR%%/language/Korean/langinfo.xml
+%%DATADIR%%/language/Korean/strings.xml
+%%DATADIR%%/language/Maltese/langinfo.xml
+%%DATADIR%%/language/Maltese/strings.xml
+%%DATADIR%%/language/Norwegian/langinfo.xml
+%%DATADIR%%/language/Norwegian/strings.xml
+%%DATADIR%%/language/Polish/langinfo.xml
+%%DATADIR%%/language/Polish/strings.xml
+%%DATADIR%%/language/Portuguese (Brazil)/langinfo.xml
+%%DATADIR%%/language/Portuguese (Brazil)/strings.xml
+%%DATADIR%%/language/Portuguese/langinfo.xml
+%%DATADIR%%/language/Portuguese/strings.xml
+%%DATADIR%%/language/Romanian/langinfo.xml
+%%DATADIR%%/language/Romanian/strings.xml
+%%DATADIR%%/language/Russian/langinfo.xml
+%%DATADIR%%/language/Russian/strings.xml
+%%DATADIR%%/language/Serbian (Cyrillic)/langinfo.xml
+%%DATADIR%%/language/Serbian (Cyrillic)/strings.xml
+%%DATADIR%%/language/Serbian/langinfo.xml
+%%DATADIR%%/language/Serbian/strings.xml
+%%DATADIR%%/language/Slovak/langinfo.xml
+%%DATADIR%%/language/Slovak/strings.xml
+%%DATADIR%%/language/Slovenian/langinfo.xml
+%%DATADIR%%/language/Slovenian/strings.xml
+%%DATADIR%%/language/Spanish (Mexico)/langinfo.xml
+%%DATADIR%%/language/Spanish (Mexico)/strings.xml
+%%DATADIR%%/language/Spanish/langinfo.xml
+%%DATADIR%%/language/Spanish/strings.xml
+%%DATADIR%%/language/Swedish/langinfo.xml
+%%DATADIR%%/language/Swedish/strings.xml
+%%DATADIR%%/language/Thai/langinfo.xml
+%%DATADIR%%/language/Thai/strings.xml
+%%DATADIR%%/language/Turkish/langinfo.xml
+%%DATADIR%%/language/Turkish/strings.xml
+%%DATADIR%%/language/Ukrainian/langinfo.xml
+%%DATADIR%%/language/Ukrainian/strings.xml
+%%DATADIR%%/media/Fonts/arial.ttf
+%%DATADIR%%/media/Fonts/teletext.ttf
+%%DATADIR%%/media/Splash.png
+%%DATADIR%%/media/icon.png
+%%DATADIR%%/media/icon32x32.png
+%%DATADIR%%/media/weather.zip
+%%DATADIR%%/media/xbmc.icns
+%%DATADIR%%/sounds/Bursting Bubbles/nav.wav
+%%DATADIR%%/sounds/Bursting Bubbles/sounds.xml
+%%DATADIR%%/system/IRSSmap.xml
+%%DATADIR%%/system/Lircmap.xml
+%%DATADIR%%/system/X10-Lola-IRSSmap.xml
+%%DATADIR%%/system/asound.conf
+%%DATADIR%%/system/colors.xml
+%%DATADIR%%/system/keymaps/appcommand.xml
+%%DATADIR%%/system/keymaps/gamepad.xml
+%%DATADIR%%/system/keymaps/joystick.Alienware.Dual.Compatible.Controller.xml
+%%DATADIR%%/system/keymaps/joystick.AppleRemote.xml
+%%DATADIR%%/system/keymaps/joystick.Harmony.xml
+%%DATADIR%%/system/keymaps/joystick.Interact.AxisPad.xml
+%%DATADIR%%/system/keymaps/joystick.Logitech.RumblePad.2.xml
+%%DATADIR%%/system/keymaps/joystick.Microsoft.Xbox.360.Controller.xml
+%%DATADIR%%/system/keymaps/joystick.Microsoft.Xbox.Controller.S.xml
+%%DATADIR%%/system/keymaps/joystick.PS3.Remote.Keyboard.xml
+%%DATADIR%%/system/keymaps/joystick.Sony.PLAYSTATION(R)3.Controller.xml
+%%DATADIR%%/system/keymaps/joystick.WiiRemote.xml
+%%DATADIR%%/system/keymaps/keyboard.xml
+%%DATADIR%%/system/keymaps/mouse.xml
+%%DATADIR%%/system/keymaps/nyxboard/keyboard.xml
+%%DATADIR%%/system/keymaps/remote.xml
+%%DATADIR%%/system/peripherals.xml
+%%DATADIR%%/system/playercorefactory.xml
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-autohint.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-no-sub-pixel.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-sub-pixel-bgr.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-sub-pixel-rgb.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-sub-pixel-vbgr.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-sub-pixel-vrgb.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/10-unhinted.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/20-fix-globaladvance.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/20-lohit-gujarati.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/20-unhint-small-vera.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/30-amt-aliases.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/30-urw-aliases.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/40-generic.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/49-sansserif.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/50-user.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/51-local.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/60-latin.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/65-fonts-persian.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/65-nonlatin.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/69-unifont.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/70-no-bitmaps.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/70-yes-bitmaps.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/80-delicious.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/90-synthetic.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail/README
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/20-fix-globaladvance.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/20-lohit-gujarati.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/20-unhint-small-vera.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/30-amt-aliases.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/30-urw-aliases.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/40-generic.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/49-sansserif.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/50-user.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/51-local.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/60-latin.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/65-fonts-persian.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/65-nonlatin.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/69-unifont.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/80-delicious.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d/90-synthetic.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/fonts.conf
+%%DATADIR%%/system/players/dvdplayer/etc/fonts/fonts.dtd
+%%DATADIR%%/system/python/readme.txt
+%%DATADIR%%/system/shaders/convolution-4x4.glsl
+%%DATADIR%%/system/shaders/convolution-4x4_d3d.fx
+%%DATADIR%%/system/shaders/convolution-6x6.glsl
+%%DATADIR%%/system/shaders/convolution-6x6_d3d.fx
+%%DATADIR%%/system/shaders/convolutionsep-4x4_d3d.fx
+%%DATADIR%%/system/shaders/convolutionsep-6x6_d3d.fx
+%%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_texture.glsl
+%%DATADIR%%/system/shaders/guishader_frag_texture_noblend.glsl
+%%DATADIR%%/system/shaders/guishader_vert.glsl
+%%DATADIR%%/system/shaders/stretch.glsl
+%%DATADIR%%/system/shaders/testshader.fx
+%%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/yuv2rgb_d3d.fx
+%%DATADIR%%/system/shaders/yuv2rgb_vertex.glsl
+%%DATADIR%%/system/shaders/yuv2rgb_vertex_gles.glsl
+%%DATADIR%%/userdata/LCD.xml
+%%DATADIR%%/userdata/ModeLines_template.xml
+%%DATADIR%%/userdata/PictureIcon/Picon/tuxbox.png
+%%DATADIR%%/userdata/PictureIcon/Readme.txt
+%%DATADIR%%/userdata/PictureIcon/picon.xml
+%%DATADIR%%/userdata/RssFeeds.xml
+share/xsessions/XBMC.desktop
+@dirrmtry share/xsessions
+@dirrmtry share/icons/hicolor/48x48/apps
+@dirrmtry share/icons/hicolor/48x48
+@dirrmtry share/icons/hicolor/256x256/apps
+@dirrmtry share/icons/hicolor/256x256
+@dirrmtry share/icons/hicolor
+@dirrmtry share/icons
+@dirrm lib/xbmc/system/players/paplayer
+@dirrm lib/xbmc/system/players/dvdplayer
+@dirrm lib/xbmc/system/players
+@dirrm lib/xbmc/system
+@dirrm lib/xbmc/addons/visualization.waveform
+@dirrm lib/xbmc/addons/visualization.projectm
+@dirrm lib/xbmc/addons/visualization.glspectrum
+@dirrm lib/xbmc/addons/screensaver.rsxs.solarwinds
+@dirrm lib/xbmc/addons/screensaver.rsxs.plasma
+@dirrm lib/xbmc/addons/screensaver.rsxs.euphoria
+@dirrm lib/xbmc/addons/pvr.vdr.vnsi
+@dirrm lib/xbmc/addons/pvr.team-mediaportal.tvserver
+@dirrm lib/xbmc/addons/pvr.mythtv
+@dirrm lib/xbmc/addons/pvr.hts
+@dirrm lib/xbmc/addons/library.xbmc.pvr
+@dirrm lib/xbmc/addons/library.xbmc.gui
+@dirrm lib/xbmc/addons/library.xbmc.addon
+@dirrm lib/xbmc/addons
+@dirrm lib/xbmc
+@dirrm %%DOCSDIR%%
+@dirrm %%DATADIR%%/userdata/PictureIcon/Picon
+@dirrm %%DATADIR%%/userdata/PictureIcon
+@dirrm %%DATADIR%%/userdata
+@dirrm %%DATADIR%%/system/shaders
+@dirrm %%DATADIR%%/system/python
+@dirrm %%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.d
+@dirrm %%DATADIR%%/system/players/dvdplayer/etc/fonts/conf.avail
+@dirrm %%DATADIR%%/system/players/dvdplayer/etc/fonts
+@dirrm %%DATADIR%%/system/players/dvdplayer/etc
+@dirrm %%DATADIR%%/system/players/dvdplayer
+@dirrm %%DATADIR%%/system/players
+@dirrm %%DATADIR%%/system/keymaps/nyxboard
+@dirrm %%DATADIR%%/system/keymaps
+@dirrm %%DATADIR%%/system
+@dirrm %%DATADIR%%/sounds/Bursting Bubbles
+@dirrm %%DATADIR%%/sounds
+@dirrm %%DATADIR%%/media/Fonts
+@dirrm %%DATADIR%%/media
+@dirrm %%DATADIR%%/language/Ukrainian
+@dirrm %%DATADIR%%/language/Turkish
+@dirrm %%DATADIR%%/language/Thai
+@dirrm %%DATADIR%%/language/Swedish
+@dirrm %%DATADIR%%/language/Spanish (Mexico)
+@dirrm %%DATADIR%%/language/Spanish
+@dirrm %%DATADIR%%/language/Slovenian
+@dirrm %%DATADIR%%/language/Slovak
+@dirrm %%DATADIR%%/language/Serbian (Cyrillic)
+@dirrm %%DATADIR%%/language/Serbian
+@dirrm %%DATADIR%%/language/Russian
+@dirrm %%DATADIR%%/language/Romanian
+@dirrm %%DATADIR%%/language/Portuguese (Brazil)
+@dirrm %%DATADIR%%/language/Portuguese
+@dirrm %%DATADIR%%/language/Polish
+@dirrm %%DATADIR%%/language/Norwegian
+@dirrm %%DATADIR%%/language/Maltese
+@dirrm %%DATADIR%%/language/Korean
+@dirrm %%DATADIR%%/language/Japanese
+@dirrm %%DATADIR%%/language/Italian
+@dirrm %%DATADIR%%/language/Indonesian
+@dirrm %%DATADIR%%/language/Icelandic
+@dirrm %%DATADIR%%/language/Hungarian
+@dirrm %%DATADIR%%/language/Hindi (Devanagiri)
+@dirrm %%DATADIR%%/language/Hebrew
+@dirrm %%DATADIR%%/language/Greek
+@dirrm %%DATADIR%%/language/German
+@dirrm %%DATADIR%%/language/French
+@dirrm %%DATADIR%%/language/Finnish
+@dirrm %%DATADIR%%/language/Esperanto
+@dirrm %%DATADIR%%/language/English (US)
+@dirrm %%DATADIR%%/language/English
+@dirrm %%DATADIR%%/language/Dutch
+@dirrm %%DATADIR%%/language/Danish
+@dirrm %%DATADIR%%/language/Czech
+@dirrm %%DATADIR%%/language/Croatian
+@dirrm %%DATADIR%%/language/Chinese (Traditional)
+@dirrm %%DATADIR%%/language/Chinese (Simple)
+@dirrm %%DATADIR%%/language/Catalan
+@dirrm %%DATADIR%%/language/Bulgarian
+@dirrm %%DATADIR%%/language/Bosnian
+@dirrm %%DATADIR%%/language/Basque
+@dirrm %%DATADIR%%/language/Afrikaans
+@dirrm %%DATADIR%%/language
+@dirrm %%DATADIR%%/addons/xbmc.python
+@dirrm %%DATADIR%%/addons/xbmc.metadata
+@dirrm %%DATADIR%%/addons/xbmc.json
+@dirrm %%DATADIR%%/addons/xbmc.gui
+@dirrm %%DATADIR%%/addons/xbmc.core
+@dirrm %%DATADIR%%/addons/xbmc.addon
+@dirrm %%DATADIR%%/addons/webinterface.default/js
+@dirrm %%DATADIR%%/addons/webinterface.default/images
+@dirrm %%DATADIR%%/addons/webinterface.default/css
+@dirrm %%DATADIR%%/addons/webinterface.default
+@dirrm %%DATADIR%%/addons/weather.wunderground/resources/lib
+@dirrm %%DATADIR%%/addons/weather.wunderground/resources/language/German
+@dirrm %%DATADIR%%/addons/weather.wunderground/resources/language/English
+@dirrm %%DATADIR%%/addons/weather.wunderground/resources/language
+@dirrm %%DATADIR%%/addons/weather.wunderground/resources
+@dirrm %%DATADIR%%/addons/weather.wunderground
+@dirrm %%DATADIR%%/addons/visualization.waveform
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Swedish
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Spanish
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Slovenian
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Russian
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Portuguese
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Polish
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Korean
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Hungarian
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/German
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/French
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/English
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Chinese (Simple)
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Bulgarian
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources
+@dirrm %%DATADIR%%/addons/visualization.projectm
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Swedish
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Spanish
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Slovenian
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Russian
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Romanian
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Portuguese
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Polish
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Korean
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Hungarian
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/German
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/French
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/English
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Chinese (Simple)
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language/Bulgarian
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources/language
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/resources
+@dirrm %%DATADIR%%/addons/visualization.milkdrop/presets
+@dirrm %%DATADIR%%/addons/visualization.milkdrop
+@dirrm %%DATADIR%%/addons/visualization.itunes
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Swedish
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Spanish
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Slovenian
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Russian
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Polish
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Korean
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Hungarian
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/German
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/French
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/English
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Chinese (Simple)
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language/Bulgarian
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources/language
+@dirrm %%DATADIR%%/addons/visualization.glspectrum/resources
+@dirrm %%DATADIR%%/addons/visualization.glspectrum
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Swedish
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Spanish
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Slovenian
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Romanian
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Portuguese
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Polish
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Korean
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Hungarian
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/German
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/French
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/English
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Chinese (Simple)
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language/Bulgarian
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources/language
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum/resources
+@dirrm %%DATADIR%%/addons/visualization.dxspectrum
+@dirrm %%DATADIR%%/addons/skin.confluence/sounds
+@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging/video
+@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging/ratings
+@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging/lists
+@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging/audio
+@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio
+@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging
+@dirrm %%DATADIR%%/addons/skin.confluence/media/epg-genres
+@dirrm %%DATADIR%%/addons/skin.confluence/media/LeftRating
+@dirrm %%DATADIR%%/addons/skin.confluence/media/CenterRating
+@dirrm %%DATADIR%%/addons/skin.confluence/media
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Turkish
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Swedish
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Spanish
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Slovenian
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Slovak
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Serbian (Cyrillic)
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Serbian
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Russian
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Romanian
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Portuguese (Brazil)
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Portuguese
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Polish
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Norwegian
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Korean
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Japanese
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Italian
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Icelandic
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Hungarian
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Greek
+@dirrm %%DATADIR%%/addons/skin.confluence/language/German
+@dirrm %%DATADIR%%/addons/skin.confluence/language/French
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Finnish
+@dirrm %%DATADIR%%/addons/skin.confluence/language/English
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Dutch
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Danish
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Czech
+@dirrm %%DATADIR%%/addons/skin.confluence/language/Chinese (Traditional)
+@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/Afrikaans
+@dirrm %%DATADIR%%/addons/skin.confluence/language
+@dirrm %%DATADIR%%/addons/skin.confluence/fonts
+@dirrm %%DATADIR%%/addons/skin.confluence/colors
+@dirrm %%DATADIR%%/addons/skin.confluence/backgrounds
+@dirrm %%DATADIR%%/addons/skin.confluence/720p/weather+
+@dirrm %%DATADIR%%/addons/skin.confluence/720p
+@dirrm %%DATADIR%%/addons/skin.confluence
+@dirrm %%DATADIR%%/addons/script.module.pysqlite/lib/pysqlite2
+@dirrm %%DATADIR%%/addons/script.module.pysqlite/lib
+@dirrm %%DATADIR%%/addons/script.module.pysqlite
+@dirrm %%DATADIR%%/addons/script.module.pil
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Swedish
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Spanish
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Slovenian
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Russian
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Polish
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Korean
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Hungarian
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/German
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/French
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/English
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Chinese (Simple)
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Swedish
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Spanish
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Slovenian
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Russian
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Portuguese
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Polish
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Korean
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Hungarian
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/German
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/French
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/English
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Chinese (Simple)
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language/Bulgarian
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources/language
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim/resources
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.dim
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.black
+@dirrm %%DATADIR%%/addons/screensaver.rsxs.solarwinds
+@dirrm %%DATADIR%%/addons/screensaver.rsxs.plasma
+@dirrm %%DATADIR%%/addons/screensaver.rsxs.euphoria
+@dirrm %%DATADIR%%/addons/repository.xbmc.org
+@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/skins/Confluence/720p
+@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/skins/Confluence
+@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/skins
+@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/German
+@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/English
+@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources/language
+@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi/resources
+@dirrm %%DATADIR%%/addons/pvr.vdr.vnsi
+@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/German
+@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/English
+@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources/language
+@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver/resources
+@dirrm %%DATADIR%%/addons/pvr.team-mediaportal.tvserver
+@dirrm %%DATADIR%%/addons/pvr.mythtv/resources/language/German
+@dirrm %%DATADIR%%/addons/pvr.mythtv/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/pvr.mythtv/resources/language/English
+@dirrm %%DATADIR%%/addons/pvr.mythtv/resources/language
+@dirrm %%DATADIR%%/addons/pvr.mythtv/resources
+@dirrm %%DATADIR%%/addons/pvr.mythtv
+@dirrm %%DATADIR%%/addons/pvr.hts/resources/language/German
+@dirrm %%DATADIR%%/addons/pvr.hts/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/pvr.hts/resources/language/English
+@dirrm %%DATADIR%%/addons/pvr.hts/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/pvr.hts/resources/language
+@dirrm %%DATADIR%%/addons/pvr.hts/resources
+@dirrm %%DATADIR%%/addons/pvr.hts
+@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Portuguese
+@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Polish
+@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Korean
+@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Hungarian
+@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/English
+@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources/language
+@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com/resources
+@dirrm %%DATADIR%%/addons/metadata.yahoomusic.com
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Swedish
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Spanish
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Russian
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Portuguese
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Polish
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Korean
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Hungarian
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/German
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/French
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/English
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language/Chinese (Simple)
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources/language
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com/resources
+@dirrm %%DATADIR%%/addons/metadata.tvdb.com
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Swedish
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Spanish
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Russian
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Romanian
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Portuguese
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Polish
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Korean
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Hungarian
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/German
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/French
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/English
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Chinese (Simple)
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language/Bulgarian
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources/language
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org/resources
+@dirrm %%DATADIR%%/addons/metadata.themoviedb.org
+@dirrm %%DATADIR%%/addons/metadata.common.themoviedb.org
+@dirrm %%DATADIR%%/addons/metadata.common.last.fm
+@dirrm %%DATADIR%%/addons/metadata.common.imdb.com
+@dirrm %%DATADIR%%/addons/metadata.common.htbackdrops.com
+@dirrm %%DATADIR%%/addons/metadata.common.hdtrailers.net
+@dirrm %%DATADIR%%/addons/metadata.common.allmusic.com
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Swedish
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Spanish
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Russian
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Portuguese
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Polish
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Korean
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Hungarian
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/German
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/French
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/English
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Chinese (Simple)
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language/Bulgarian
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources/language
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com/resources
+@dirrm %%DATADIR%%/addons/metadata.artists.allmusic.com
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Swedish
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Spanish
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Russian
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Portuguese
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Polish
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Korean
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Hungarian
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/German
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/French
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/English
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Dutch
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Chinese (Simple)
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language/Bulgarian
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources/language
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com/resources
+@dirrm %%DATADIR%%/addons/metadata.albums.allmusic.com
+@dirrm %%DATADIR%%/addons/library.xbmc.pvr
+@dirrm %%DATADIR%%/addons/library.xbmc.gui
+@dirrm %%DATADIR%%/addons/library.xbmc.addon
+@dirrmtry %%DATADIR%%/addons
+@dirrmtry %%DATADIR%%