aboutsummaryrefslogtreecommitdiffstats
path: root/multimedia
diff options
context:
space:
mode:
authordecke <decke@FreeBSD.org>2010-12-30 04:39:31 +0800
committerdecke <decke@FreeBSD.org>2010-12-30 04:39:31 +0800
commitc2368a1555688c93c8de05c6f16f581b11c9898e (patch)
tree598565d8077e924457fad8b59cb69d1a4d2d4a4e /multimedia
parentd54564cfab7751fd92fb537b4d0a0f4cb96d14bf (diff)
downloadfreebsd-ports-gnome-c2368a1555688c93c8de05c6f16f581b11c9898e.tar.gz
freebsd-ports-gnome-c2368a1555688c93c8de05c6f16f581b11c9898e.tar.zst
freebsd-ports-gnome-c2368a1555688c93c8de05c6f16f581b11c9898e.zip
XBMC Media Center (formerly named "XBox Media Center")
is a free and open source cross-platform media-player and entertainment hub. WWW: http://xbmc.org/ PR: ports/153528 Submitted by: Mickael Maillot <mickael dot maillot at gmail dot com> Thanks to: multimedia@, avg
Diffstat (limited to 'multimedia')
-rw-r--r--multimedia/Makefile1
-rw-r--r--multimedia/xbmc/Makefile241
-rw-r--r--multimedia/xbmc/distinfo2
-rw-r--r--multimedia/xbmc/files/patch-Makefile.in123
-rw-r--r--multimedia/xbmc/files/patch-Makefile.include.in11
-rw-r--r--multimedia/xbmc/files/patch-configure.in182
-rw-r--r--multimedia/xbmc/files/patch-guilib__StdString.h30
-rw-r--r--multimedia/xbmc/files/patch-guilib__TextureBundleXPR.cpp11
-rw-r--r--multimedia/xbmc/files/patch-guilib__XBTFReader.cpp11
-rw-r--r--multimedia/xbmc/files/patch-guilib__common__Makefile.in11
-rw-r--r--multimedia/xbmc/files/patch-guilib__system.h22
-rw-r--r--multimedia/xbmc/files/patch-lib__cpluff__libcpluff__ploader.c55
-rw-r--r--multimedia/xbmc/files/patch-tools__Linux__xbmc.sh.in28
-rw-r--r--multimedia/xbmc/files/patch-tools__TexturePacker__XBMCTex.cpp14
-rw-r--r--multimedia/xbmc/files/patch-xbmc__Application.cpp23
-rw-r--r--multimedia/xbmc/files/patch-xbmc__DetectDVDType.cpp11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__FileSystem__CacheStrategy.cpp33
-rw-r--r--multimedia/xbmc/files/patch-xbmc__FileSystem__DllLibCurl.cpp15
-rw-r--r--multimedia/xbmc/files/patch-xbmc__FileSystem__SAPDirectory.cpp14
-rw-r--r--multimedia/xbmc/files/patch-xbmc__GUILargeTextureManager.cpp12
-rw-r--r--multimedia/xbmc/files/patch-xbmc__MusicInfoTagLoaderWMA.cpp11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__ProgramDatabase.cpp11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__Util.cpp73
-rw-r--r--multimedia/xbmc/files/patch-xbmc__VideoDatabase.cpp76
-rw-r--r--multimedia/xbmc/files/patch-xbmc__ViewDatabase.cpp11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__addons__Addon.cpp14
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__AudioRenderers__ALSADirectSound.cpp21
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.cpp161
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.h18
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__exports_python_linux.cpp56
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__util__EmuFileWrapper.h11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__wrapper.c11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__dvdplayer__DVDAudio.cpp19
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__dvdplayer__DVDCodecs__Video__VDPAU.cpp11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__dvdplayer__DVDPlayer.cpp11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__paplayer__NSFCodec__NoseFartDLL.cpp11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__paplayer__PAPlayer.cpp21
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__paplayer__SIDCodec__Makefile.in12
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__paplayer__WAVcodec.cpp11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__paplayer__YMCodec__StSoundLibrary__XBMCYM.cpp11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__cores__paplayer__YMCodec__StSoundLibrary__YmTypes.h29
-rw-r--r--multimedia/xbmc/files/patch-xbmc__lib__cximage-6.0__raw__dcr.c17
-rw-r--r--multimedia/xbmc/files/patch-xbmc__lib__cximage-6.0__raw__libdcr.h11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__lib__libPython__XBPython.cpp36
-rw-r--r--multimedia/xbmc/files/patch-xbmc__lib__libPython__linux__Makefile.in11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__lib__libPython__linux__wrapper_python.c20
-rw-r--r--multimedia/xbmc/files/patch-xbmc__lib__libRTV__GuideParser.cpp11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__lib__libXBMS__ccincludes.h13
-rw-r--r--multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__httpClient.c14
-rw-r--r--multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__ioloop.c13
-rw-r--r--multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__thread.h11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__threadpool.c15
-rw-r--r--multimedia/xbmc/files/patch-xbmc__lib__libhts__net_posix.c29
-rw-r--r--multimedia/xbmc/files/patch-xbmc__linux__FreeBSDGNUReplacements.c255
-rw-r--r--multimedia/xbmc/files/patch-xbmc__linux__FreeBSDGNUReplacements.h28
-rw-r--r--multimedia/xbmc/files/patch-xbmc__linux__LinuxTimezone.cpp189
-rw-r--r--multimedia/xbmc/files/patch-xbmc__linux__Makefile.in15
-rw-r--r--multimedia/xbmc/files/patch-xbmc__linux__NetworkLinux.cpp195
-rw-r--r--multimedia/xbmc/files/patch-xbmc__linux__PlatformDefs.h87
-rw-r--r--multimedia/xbmc/files/patch-xbmc__linux__PosixMountProvider.cpp11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__linux__XFileUtils.cpp56
-rw-r--r--multimedia/xbmc/files/patch-xbmc__linux__XRandR.cpp14
-rw-r--r--multimedia/xbmc/files/patch-xbmc__linux__XSyncUtils.cpp61
-rw-r--r--multimedia/xbmc/files/patch-xbmc__screensavers__rsxs-0.9__lib__stdbool_.h12
-rw-r--r--multimedia/xbmc/files/patch-xbmc__utils__IoSupport.cpp39
-rw-r--r--multimedia/xbmc/files/patch-xbmc__utils__Semaphore.cpp29
-rw-r--r--multimedia/xbmc/files/patch-xbmc__utils__Stopwatch.cpp11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__utils__SystemInfo.cpp21
-rw-r--r--multimedia/xbmc/files/patch-xbmc__utils__SystemInfo.h11
-rw-r--r--multimedia/xbmc/files/patch-xbmc__utils__Thread.cpp56
-rw-r--r--multimedia/xbmc/files/patch-xbmc__visualizations__Goom__Makefile.in44
-rw-r--r--multimedia/xbmc/pkg-descr5
-rw-r--r--multimedia/xbmc/pkg-plist1319
73 files changed, 4119 insertions, 0 deletions
diff --git a/multimedia/Makefile b/multimedia/Makefile
index c8a963ef238a..de29271bae1c 100644
--- a/multimedia/Makefile
+++ b/multimedia/Makefile
@@ -335,6 +335,7 @@
SUBDIR += x264-devel
SUBDIR += xanim
SUBDIR += xawtv
+ SUBDIR += xbmc
SUBDIR += xdvshow
SUBDIR += xfce4-media
SUBDIR += xfce4-parole
diff --git a/multimedia/xbmc/Makefile b/multimedia/xbmc/Makefile
new file mode 100644
index 000000000000..9875ab579a2b
--- /dev/null
+++ b/multimedia/xbmc/Makefile
@@ -0,0 +1,241 @@
+# New ports collection makefile for: xbmc
+# Date created: 2010-09-16
+# Whom: Mickael Maillot <mickael.maillot@gmail.com>
+#
+# $FreeBSD$
+#
+
+PORTNAME= xbmc
+PORTVERSION= 10.0
+CATEGORIES= multimedia
+MASTER_SITES= http://mirrors.xbmc.org/releases/source/ \
+ http://fneufn.eu/freebsd/xbmc/
+
+MAINTAINER= mickael.maillot@gmail.com
+COMMENT= XBMC is an award winning media center application
+
+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 \
+ 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 \
+ wavpack.2:${PORTSDIR}/audio/wavpack \
+ Xtst:${PORTSDIR}/x11/libXtst
+
+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
+
+FETCH_ARGS= -Fpr
+USE_GMAKE= yes
+USE_GNOME= pkgconfig
+USE_AUTOTOOLS= autoconf libtool automake libltdl
+GNU_CONFIGURE= yes
+USE_XORG= xinerama xt xmu xrandr
+USE_GL= glu
+USE_SDL= image mixer sdl
+USE_MYSQL= yes
+USE_PYTHON= 2.4-2.6
+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
+
+USE_DOS2UNIX= xbmc/lib/libid3tag/libid3tag/compat.gperf
+
+OPTIONS= AVAHI "Enable Avahi support" on \
+ FAAC "Enable FAAC support" off \
+ HAL "Enable HAL support" on \
+ 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 \
+ VDPAU "Enable VDPAU support" off \
+ WEBSERVER "Build Internal Webserver" off
+
+DESKTOP_ENTRIES="XBMC" \
+ "${COMMENT}" \
+ "${DATADIR}/media/icon.png" \
+ "xbmc" \
+ "AudioVideo;Video;" \
+ true
+
+CONFIGURE_ENV+= CPPFLAGS="-I${LOCALBASE}/include" \
+ LDFLAGS="-L${LOCALBASE}/lib"
+
+CONFIGURE_ARGS+=--enable-external-libraries \
+ --disable-debug
+
+.include <bsd.port.pre.mk>
+
+.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(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(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_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.6:${PORTSDIR}/www/libmicrohttpd
+PLIST_SUB+= HTTPD=""
+.else
+CONFIGURE_ARGS+= --disable-webserver
+PLIST_SUB+= HTTPD="@comment "
+.endif
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|#!/bin/bash|#!/bin/sh|' ${WRKSRC}/XBMC.xcodeproj/project.pbxproj
+ @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
+ ${WRKSRC}/configure.in \
+ ${WRKSRC}/lib/enca/configure \
+ ${WRKSRC}/lib/freetype/builds/unix/configure \
+ ${WRKSRC}/lib/fribidi/configure \
+ ${WRKSRC}/lib/libcdio/configure \
+ ${WRKSRC}/lib/libcdio/libcdio.pc \
+ ${WRKSRC}/lib/libcdio/libcdio_cdda.pc \
+ ${WRKSRC}/lib/libcdio/libiso9660.pc \
+ ${WRKSRC}/lib/libiconv/Makefile.in \
+ ${WRKSRC}/lib/libiconv/configure \
+ ${WRKSRC}/lib/libiconv/lib/Makefile.in \
+ ${WRKSRC}/lib/libiconv/libcharset/Makefile.in \
+ ${WRKSRC}/lib/libiconv/libcharset/configure \
+ ${WRKSRC}/lib/libiconv/libcharset/lib/Makefile.in \
+ ${WRKSRC}/lib/libiconv/man/Makefile.in \
+ ${WRKSRC}/lib/libiconv/preload/Makefile.in \
+ ${WRKSRC}/lib/libiconv/preload/configure \
+ ${WRKSRC}/lib/libiconv/src/Makefile.in \
+ ${WRKSRC}/lib/liblame/configure \
+ ${WRKSRC}/lib/libmicrohttpd/configure \
+ ${WRKSRC}/lib/libmodplug/configure \
+ ${WRKSRC}/lib/libmodplug/src/load_pat.cpp \
+ ${WRKSRC}/lib/pcre/configure \
+ ${WRKSRC}/xbmc/cores/dvdplayer/Codecs/ffmpeg/configure \
+ ${WRKSRC}/xbmc/cores/dvdplayer/Codecs/liba52/configure \
+ ${WRKSRC}/xbmc/cores/dvdplayer/Codecs/libdts/configure \
+ ${WRKSRC}/xbmc/cores/dvdplayer/Codecs/libdvd/libdvdnav/configure.ac \
+ ${WRKSRC}/xbmc/cores/dvdplayer/Codecs/libdvd/libdvdnav/configure2 \
+ ${WRKSRC}/xbmc/cores/dvdplayer/Codecs/libdvd/libdvdnav/doc/doxy.conf \
+ ${WRKSRC}/xbmc/cores/dvdplayer/Codecs/libdvd/libdvdread/configure.ac \
+ ${WRKSRC}/xbmc/cores/dvdplayer/Codecs/libdvd/libdvdread/configure2 \
+ ${WRKSRC}/xbmc/cores/dvdplayer/Codecs/libfaad2/configure \
+ ${WRKSRC}/xbmc/cores/dvdplayer/Codecs/libmad/configure \
+ ${WRKSRC}/xbmc/cores/dvdplayer/Codecs/libmpeg2/configure \
+ ${WRKSRC}/xbmc/cores/dvdplayer/Codecs/libmpeg2/test/compile \
+ ${WRKSRC}/xbmc/cores/paplayer/FLACCodec/flac-1.2.1/configure \
+ ${WRKSRC}/xbmc/cores/paplayer/SIDCodec/libsidplay/unix/libsidplay2.pc \
+ ${WRKSRC}/xbmc/cores/paplayer/asap/Makefile.in \
+ ${WRKSRC}/xbmc/cores/paplayer/timidity/configure.in \
+ ${WRKSRC}/xbmc/cores/paplayer/vorbisfile/libvorbis/configure \
+ ${WRKSRC}/xbmc/cores/paplayer/vorbisfile/ogg/configure \
+ ${WRKSRC}/xbmc/lib/UnrarXLib/pathfn.cpp \
+ ${WRKSRC}/xbmc/lib/cximage-6.0/zlib/Makefile.in \
+ ${WRKSRC}/xbmc/lib/cximage-6.0/zlib/configure \
+ ${WRKSRC}/xbmc/lib/libPython/Python/configure.in \
+ ${WRKSRC}/xbmc/lib/libPython/Python/setup.py \
+ ${WRKSRC}/xbmc/lib/libUPnP/Neptune/ThirdParty/axTLS/config/config.h \
+ ${WRKSRC}/xbmc/lib/libapetag/configure \
+ ${WRKSRC}/xbmc/lib/libid3tag/libid3tag/configure \
+ ${WRKSRC}/xbmc/lib/libid3tag/zlib/Makefile \
+ ${WRKSRC}/xbmc/lib/libid3tag/zlib/Makefile.in \
+ ${WRKSRC}/xbmc/lib/libid3tag/zlib/configure \
+ ${WRKSRC}/xbmc/lib/libmms/glib-2.20.4/glib/gutils.c \
+ ${WRKSRC}/xbmc/lib/libsamplerate/configure \
+ ${WRKSRC}/xbmc/lib/libsquish/config \
+ ${WRKSRC}/xbmc/screensavers/rsxs-0.9/configure \
+ ${WRKSRC}/xbmc/visualizations/Goom/goom2k4-0/configure \
+ ${WRKSRC}/xbmc/visualizations/Goom/goom2k4-0/gtk-gui-devel/configure
+
+pre-configure:
+ cd ${WRKSRC} && ./bootstrap
+
+.include <bsd.port.post.mk>
diff --git a/multimedia/xbmc/distinfo b/multimedia/xbmc/distinfo
new file mode 100644
index 000000000000..8ce6ab767dc3
--- /dev/null
+++ b/multimedia/xbmc/distinfo
@@ -0,0 +1,2 @@
+SHA256 (xbmc-10.0.tar.gz) = 06fa5332f4f448f4f68bf705e0e159591a866b1cace52840c78ea4f5925a404a
+SIZE (xbmc-10.0.tar.gz) = 130239951
diff --git a/multimedia/xbmc/files/patch-Makefile.in b/multimedia/xbmc/files/patch-Makefile.in
new file mode 100644
index 000000000000..902dc85711c7
--- /dev/null
+++ b/multimedia/xbmc/files/patch-Makefile.in
@@ -0,0 +1,123 @@
+--- ./Makefile.in.orig 2010-10-27 19:04:21.000000000 +0200
++++ ./Makefile.in 2010-12-01 12:17:34.175401731 +0100
+@@ -507,7 +507,8 @@
+ $(MAKE) -C tools/XBMCLive
+
+ install-bin: xbmc.bin # developement convenience target
+- sudo install -D xbmc.bin $(DESTDIR)$(libdir)/xbmc
++ sudo install -d $(DESTDIR)$(libdir)
++ sudo install xbmc.bin $(DESTDIR)$(libdir)/xbmc
+
+ ifeq ($(findstring osx,$(ARCH)), osx)
+ # TODO: add osx install
+@@ -516,45 +517,93 @@
+
+ install-binaries: install-scripts
+ @echo "Copying XBMC binary to $(DESTDIR)$(libdir)/xbmc/xbmc.bin"
+- @install -D xbmc.bin $(DESTDIR)$(libdir)/xbmc/xbmc.bin
+- @install -D xbmc-xrandr $(DESTDIR)$(libdir)/xbmc/xbmc-xrandr
++ @install -d $(DESTDIR)$(libdir)/xbmc
++ @install xbmc.bin $(DESTDIR)$(libdir)/xbmc/xbmc.bin
++ @install xbmc-xrandr $(DESTDIR)$(libdir)/xbmc/xbmc-xrandr
+ @echo "You can run XBMC with the command 'xbmc'"
+ endif
+
+ install-arch:
+ @# Arch dependent files
++ifeq ($(findstring bsd,$(ARCH)), bsd)
++ @find -E system addons -type f -not -iregex ".*svn.*|.*script\.module\..*" \
++ -iregex ".*$(ARCH).*|.*\.vis|.*\.xbs|.*python.*\.zip" \
++ -exec sh -c "install -d \"$(DESTDIR)$(libdir)/xbmc/\`dirname '{}'\`\"" \; \
++ -and \
++ -exec install "{}" $(DESTDIR)$(libdir)/xbmc/"{}" \; \
++ -exec printf " -- %-75.75s\r" "{}" \;
++else
++ifeq ($(findstring osx,$(ARCH)), osx)
++ @find -E system addons -type f -not -iregex ".*svn.*|.*script\.module\..*" \
++ -iregex ".*$(ARCH).*|.*\.vis|.*\.xbs|.*python.*\.zip" \
++ -exec sh -c "install -d \"$(DESTDIR)$(libdir)/xbmc/\`dirname '{}'\`\"" \; \
++ -and \
++ -exec install "{}" $(DESTDIR)$(libdir)/xbmc/"{}" \; \
++ -exec printf " -- %-75.75s\r" "{}" \;
++else
+ @find system addons -regextype posix-extended -type f -not -iregex ".*svn.*|.*script\.module\..*" -iregex ".*$(ARCH).*|.*\.vis|.*\.xbs|.*python.*\.zip" -exec install -D "{}" $(DESTDIR)$(libdir)/xbmc/"{}" \; -printf " -- %-75.75f\r"
++endif
++endif
++ @install -d $(DESTDIR)$(libdir)/xbmc/addons
+ @cp -r addons/script.module.pil $(DESTDIR)$(libdir)/xbmc/addons/
+ @cp -r addons/script.module.pysqlite $(DESTDIR)$(libdir)/xbmc/addons/
+
+ install-scripts:
+- @install -D tools/Linux/xbmc.sh $(DESTDIR)$(bindir)/xbmc
+- @install -D tools/Linux/xbmc-standalone.sh $(DESTDIR)$(bindir)/xbmc-standalone
+- @install -D -m 0644 tools/Linux/FEH.py $(DESTDIR)$(datarootdir)/xbmc/FEH.py
+- @install -D -m 0644 tools/Linux/xbmc-xsession.desktop $(DESTDIR)$(datarootdir)/xsessions/XBMC.desktop
++ @install -d $(DESTDIR)$(bindir)
++ @install tools/Linux/xbmc.sh $(DESTDIR)$(bindir)/xbmc
++ @install tools/Linux/xbmc-standalone.sh $(DESTDIR)$(bindir)/xbmc-standalone
++ @install -d $(DESTDIR)$(datarootdir)/xbmc
++ @install -m 0644 tools/Linux/FEH.py $(DESTDIR)$(datarootdir)/xbmc/FEH.py
++ @install -d $(DESTDIR)$(datarootdir)/xsessions
++ @install -m 0644 tools/Linux/xbmc-xsession.desktop $(DESTDIR)$(datarootdir)/xsessions/XBMC.desktop
+
+ install-datas: install-scripts
+ @echo "Copying support and legal files..."
++ @install -d $(DESTDIR)$(docdir)
+ @for FILE in `ls README.linux LICENSE.GPL *.txt`; do \
+- install -D -m 0644 "$$FILE" "$(DESTDIR)$(docdir)/$$FILE"; done
++ install -m 0644 "$$FILE" "$(DESTDIR)$(docdir)/$$FILE"; done
+ @echo "Done!"
+ @echo "Copying system files to $(DESTDIR)$(datarootdir)/xbmc"
++ @install -d $(DESTDIR)$(datarootdir)/xbmc
+ @# Arch independent files
+- @find addons language media sounds userdata system -regextype posix-extended -type f -not -iregex ".*script\.module\..*|.*$(ARCH).*|.*\.vis|.*\.xbs|.*svn.*|.*\.so|.*\.dll|.*\.pyd|.*python.*\.zip" -exec install -D -m 0644 "{}" $(DESTDIR)$(datarootdir)/xbmc/"{}" \; -printf " -- %-75.75f\r"
++ifeq ($(findstring bsd,$(ARCH)), bsd)
++ @find -E addons language media sounds userdata system -type f \
++ -not -iregex ".*script\.module\..*|.*$(ARCH).*|.*\.vis|.*\.xbs|.*svn.*|.*\.so|.*\.dll|.*\.pyd|.*python.*\.zip" \
++ -exec sh -c "install -d \"$(DESTDIR)$(datarootdir)/xbmc/\`dirname '{}'\`\"" \; \
++ -and \
++ -exec install -m 0644 "{}" $(DESTDIR)$(datarootdir)/xbmc/"{}" \; \
++ -exec printf " -- %-75.75s\r" "{}" \;
++else
++ifeq ($(findstring osx,$(ARCH)), osx)
++ @find -E addons language media sounds userdata system -type f \
++ -not -iregex ".*script\.module\..*|.*$(ARCH).*|.*\.vis|.*\.xbs|.*svn.*|.*\.so|.*\.dll|.*\.pyd|.*python.*\.zip" \
++ -exec sh -c "install -d \"$(DESTDIR)$(datarootdir)/xbmc/\`dirname '{}'\`\"" \; \
++ -and \
++ -exec install -m 0644 "{}" $(DESTDIR)$(datarootdir)/xbmc/"{}" \; \
++ -exec printf " -- %-75.75s\r" "{}" \;
++else
++ @find addons language media sounds userdata system -regextype posix-extended -type f \
++ -not -iregex ".*script\.module\..*|.*$(ARCH).*|.*\.vis|.*\.xbs|.*svn.*|.*\.so|.*\.dll|.*\.pyd|.*python.*\.zip" \
++ -exec install -D -m 0644 "{}" $(DESTDIR)$(datarootdir)/xbmc/"{}" \; \
++ -printf " -- %-75.75f\r"
++endif
++endif
+ @# Icons and links
+- @mkdir -p $(DESTDIR)$(datarootdir)/applications
+- @cp -a tools/Linux/xbmc.desktop $(DESTDIR)$(datarootdir)/applications/
+- @install -D -m 0644 tools/Linux/xbmc-48x48.png $(DESTDIR)$(datadir)/icons/hicolor/48x48/apps/xbmc.png
+- @install -D -m 0644 media/icon.png $(DESTDIR)$(datadir)/icons/hicolor/256x256/apps/xbmc.png
++ @install -d $(DESTDIR)$(datarootdir)/applications
++ @install tools/Linux/xbmc.desktop $(DESTDIR)$(datarootdir)/applications/xbmc.desktop
++ @install -d $(DESTDIR)$(datadir)/icons/hicolor/48x48/apps
++ @install -m 0644 tools/Linux/xbmc-48x48.png $(DESTDIR)$(datadir)/icons/hicolor/48x48/apps/xbmc.png
++ @install -d $(DESTDIR)$(datadir)/icons/hicolor/256x256/apps
++ @install -m 0644 media/icon.png $(DESTDIR)$(datadir)/icons/hicolor/256x256/apps/xbmc.png
+ @test -z "$(DESTDIR)" && gtk-update-icon-cache -f -q -t $(datadir)/icons/hicolor || :
+
+ install-livedatas: livedatas
+ @echo "Install Live CD datas..."
+- @mkdir -p $(DESTDIR)$(bindir)
+- @install -D tools/XBMCLive/diskmounter $(DESTDIR)$(bindir)/diskmounter
+- @install -D tools/XBMCLive/installXBMC $(DESTDIR)$(bindir)/installXBMC
+- @install -D tools/XBMCLive/runXBMC $(DESTDIR)$(bindir)/runXBMC
+- @install -D tools/XBMCLive/setAlsaVolumes $(DESTDIR)$(bindir)/setAlsaVolumes
++ @install -d $(DESTDIR)$(bindir)
++ @install tools/XBMCLive/diskmounter $(DESTDIR)$(bindir)/diskmounter
++ @install tools/XBMCLive/installXBMC $(DESTDIR)$(bindir)/installXBMC
++ @install tools/XBMCLive/runXBMC $(DESTDIR)$(bindir)/runXBMC
++ @install tools/XBMCLive/setAlsaVolumes $(DESTDIR)$(bindir)/setAlsaVolumes
+
+ uninstall:
+ @echo "Removing XBMC..."
diff --git a/multimedia/xbmc/files/patch-Makefile.include.in b/multimedia/xbmc/files/patch-Makefile.include.in
new file mode 100644
index 000000000000..7b00ae4a355b
--- /dev/null
+++ b/multimedia/xbmc/files/patch-Makefile.include.in
@@ -0,0 +1,11 @@
+--- ./Makefile.include.in.orig 2010-07-12 00:23:28.000000000 +0200
++++ ./Makefile.include.in 2010-12-01 12:17:34.287118766 +0100
+@@ -1,7 +1,7 @@
+ AR=ar
+ ARFLAGS=crus
+ RM=rm -rf
+-SHELL=/bin/bash
++SHELL=/bin/sh
+ ARCH=@ARCH@
+ abs_top_srcdir=@abs_top_srcdir@
+ prefix=@prefix@
diff --git a/multimedia/xbmc/files/patch-configure.in b/multimedia/xbmc/files/patch-configure.in
new file mode 100644
index 000000000000..75db2925f6d4
--- /dev/null
+++ b/multimedia/xbmc/files/patch-configure.in
@@ -0,0 +1,182 @@
+Index: configure.in
+===================================================================
+--- configure.in (revision 35649)
++++ configure.in (working copy)
+@@ -19,10 +19,10 @@
+ [
+ if [[ "$host_vendor" != "apple" ]]; then
+ AC_MSG_CHECKING([for lib$2 soname])
+- $1_SONAME=$( $CC -print-file-name=lib$2.so | \
++ $1_SONAME=$( LIBRARY_PATH=/usr/local/lib $CC -print-file-name=lib$2.so | \
+ while read output; do objdump -p $output | \
+ grep "SONAME" | \
+- sed -e 's/ \+SONAME \+//'; done 2> /dev/null )
++ sed -e 's/ *SONAME *//'; done 2> /dev/null )
+ else
+ AC_MSG_CHECKING([for lib$2 dylib])
+ gcc_lib_path=[`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`]
+@@ -294,6 +294,12 @@
+ [use_libbluray=$enableval],
+ [use_libbluray=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)])],
+@@ -359,6 +365,18 @@
+ x86_64-*-linux-gnu*)
+ ARCH="x86_64-linux"
+ ;;
++ i386-*-freebsd*)
++ ARCH="x86-freebsd"
++ MAKE="gmake"
++ CFLAGS="$CFLAGS -I/usr/local/include"
++ CXXFLAGS="$CXXFLAGS -I/usr/local/include"
++ ;;
++ amd64-*-freebsd*)
++ ARCH="x86_64-freebsd"
++ MAKE="gmake"
++ CFLAGS="$CFLAGS -I/usr/local/include"
++ CXXFLAGS="$CXXFLAGS -I/usr/local/include"
++ ;;
+ i386-apple-darwin*)
+ ARCH="x86-osx"
+ # define i386 or x86_64, cannot use $HOSTTYPE as it reports x86_64 on 10.6 regardless of kernel flavor
+@@ -543,7 +561,11 @@
+ AC_CHECK_LIB([ass], [ass_set_message_cb],,use_external_libass="no")
+ AC_CHECK_LIB([bz2], [main],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([jpeg], [main],, AC_MSG_ERROR($missing_library)) # check for cximage
++if echo "$ARCH" | grep -q freebsd; then
++AC_CHECK_LIB([pthread], [main],LIBS="-pthread $LIBS", AC_MSG_ERROR($missing_library))
++else
+ AC_CHECK_LIB([pthread], [main],, AC_MSG_ERROR($missing_library))
++fi
+ AC_CHECK_LIB([lzo2], [main],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([z], [main],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([ssl], [main],, AC_MSG_ERROR($missing_library))
+@@ -581,9 +603,6 @@
+ PKG_CHECK_MODULES([SAMPLERATE], [samplerate],
+ [INCLUDES="$INCLUDES $SAMPLERATE_CFLAGS"; LIBS="$LIBS $SAMPLERATE_LIBS"],
+ AC_MSG_ERROR($missing_library))
+-PKG_CHECK_MODULES([MMS], [libmms],
+- [INCLUDES="$INCLUDES $MMS_CFLAGS"; LIBS="$LIBS $MMS_LIBS"],
+- AC_MSG_ERROR($missing_library))
+ PKG_CHECK_MODULES([FREETYPE2], [freetype2],
+ [INCLUDES="$INCLUDES $FREETYPE2_CFLAGS"; LIBS="$LIBS $FREETYPE2_LIBS"],
+ AC_MSG_ERROR($missing_library))
+@@ -620,6 +639,29 @@
+ ]
+ )
+
++# 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))
+@@ -644,8 +686,10 @@
+ AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([smbclient], [main],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([SDL_mixer], [main],, AC_MSG_ERROR($missing_library))
+- AC_CHECK_LIB([dl], [main],, AC_MSG_ERROR($missing_library))
+- AC_CHECK_LIB([resolv], [main],, AC_MSG_ERROR($missing_library))
++ 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([tiff], [main],, AC_MSG_ERROR($missing_library))
+ AC_CHECK_LIB([rt], [clock_gettime],, AC_MSG_ERROR($missing_library))
+@@ -740,8 +784,8 @@
+ AC_MSG_RESULT($faac_disabled)
+ else
+ if test "$use_faac" = "yes"; then
+- AC_CHECK_LIB([faac], [main],,
+- use_faac=no;AC_MSG_RESULT($faac_not_found))
++ AC_CHECK_LIB([faac], [main], LIBS="-lfaac -lstdc++ $LIBS",
++ use_faac=no;AC_MSG_RESULT($faac_not_found), [-lstdc++])
+ else
+ AC_MSG_RESULT($faac_disabled)
+ fi
+@@ -1211,6 +1255,12 @@
+ final_message="$final_message\n Bluray:\tNo"
+ 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"
+@@ -1735,7 +1785,7 @@
+ --enable-static \
+ --disable-shared \
+ --cc="$CC" &&
+- make dvdread-config &&
++ $MAKE dvdread-config &&
+ mkdir -p `pwd`/../includes/dvdread
+ cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
+ else
+@@ -1744,13 +1794,14 @@
+ --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
+ --host=$host_alias \
+ --build=$build_alias \
+- --target=$target_alias \
++ --target=$target_alias \
+ --enable-static \
+ --disable-shared \
+ --disable-strip \
+ --disable-opts \
++ --make=$MAKE \
+ --cc="$CC" &&
+- make dvdread-config &&
++ $MAKE dvdread-config &&
+ mkdir -p `pwd`/../includes/dvdread
+ cp `pwd`/../libdvdread/src/*.h `pwd`/../includes/dvdread
+ fi
+@@ -1766,6 +1817,17 @@
+ --enable-static \
+ --disable-shared \
+ --cc="$CC"
++ elif echo "$ARCH" | grep -q "freebsd" ; then
++ ./configure2 \
++ --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I/usr/local/include" \
++ --extra-ldflags="-L/usr/local/lib" \
++ --host=$host_alias \
++ --build=$build_alias \
++ --target=$target_alias \
++ --enable-static \
++ --disable-shared \
++ --make=$MAKE \
++ --cc="$CC"
+ else
+ ./configure2 \
+ --extra-cflags="$CFLAGS $DVDREAD_CFLAGS -I`pwd`/../includes" \
diff --git a/multimedia/xbmc/files/patch-guilib__StdString.h b/multimedia/xbmc/files/patch-guilib__StdString.h
new file mode 100644
index 000000000000..f8a495520a2e
--- /dev/null
+++ b/multimedia/xbmc/files/patch-guilib__StdString.h
@@ -0,0 +1,30 @@
+--- guilib/StdString.h.orig 2009-09-25 16:12:41.000000000 +0200
++++ guilib/StdString.h 2010-12-13 21:19:16.000000000 +0100
+@@ -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))
+@@ -864,7 +865,8 @@
+ PWSTR pNextDstW = pDstW;
+ SSCodeCvt::result res = SSCodeCvt::ok;
+ const SSCodeCvt& conv = SS_USE_FACET(loc, SSCodeCvt);
+- SSCodeCvt::state_type st= { 0 };
++ SSCodeCvt::state_type st;
++ memset(&st, 0, sizeof(SSCodeCvt::state_type));
+ res = conv.in(st,
+ pSrcA, pSrcA + nSrc, pNextSrcA,
+ pDstW, pDstW + nDst, pNextDstW);
+@@ -907,7 +909,8 @@
+ PCWSTR pNextSrcW = pSrcW;
+ SSCodeCvt::result res = SSCodeCvt::ok;
+ const SSCodeCvt& conv = SS_USE_FACET(loc, SSCodeCvt);
+- SSCodeCvt::state_type st= { 0 };
++ SSCodeCvt::state_type st;
++ memset(&st, 0, sizeof(SSCodeCvt::state_type));
+ res = conv.out(st,
+ pSrcW, pSrcW + nSrc, pNextSrcW,
+ pDstA, pDstA + nDst, pNextDstA);
diff --git a/multimedia/xbmc/files/patch-guilib__TextureBundleXPR.cpp b/multimedia/xbmc/files/patch-guilib__TextureBundleXPR.cpp
new file mode 100644
index 000000000000..aae0f70c69b2
--- /dev/null
+++ b/multimedia/xbmc/files/patch-guilib__TextureBundleXPR.cpp
@@ -0,0 +1,11 @@
+--- ./guilib/TextureBundleXPR.cpp.orig 2010-05-13 09:06:42.000000000 +0200
++++ ./guilib/TextureBundleXPR.cpp 2010-12-01 12:17:34.307278095 +0100
+@@ -285,7 +285,7 @@
+ GlobalMemoryStatus(&stat);
+ CLog::Log(LOGERROR, "Out of memory loading texture: %s (need %lu bytes, have %lu bytes)", name.c_str(),
+ file->second.UnpackedSize + file->second.PackedSize, stat.dwAvailPhys);
+-#elif defined(__APPLE__)
++#elif defined(__APPLE__) || defined(__FreeBSD__)
+ CLog::Log(LOGERROR, "Out of memory loading texture: %s (need %d bytes)", name.c_str(),
+ file->second.UnpackedSize + file->second.PackedSize);
+ #else
diff --git a/multimedia/xbmc/files/patch-guilib__XBTFReader.cpp b/multimedia/xbmc/files/patch-guilib__XBTFReader.cpp
new file mode 100644
index 000000000000..83f5adb27b62
--- /dev/null
+++ b/multimedia/xbmc/files/patch-guilib__XBTFReader.cpp
@@ -0,0 +1,11 @@
+--- ./guilib/XBTFReader.cpp.orig 2010-02-14 19:20:07.000000000 +0100
++++ ./guilib/XBTFReader.cpp 2010-12-01 12:17:34.289131542 +0100
+@@ -187,7 +187,7 @@
+ {
+ return false;
+ }
+-#if defined(__APPLE__)
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ if (fseeko(m_file, (off_t)frame.GetOffset(), SEEK_SET) == -1)
+ #else
+ if (fseeko64(m_file, (off_t)frame.GetOffset(), SEEK_SET) == -1)
diff --git a/multimedia/xbmc/files/patch-guilib__common__Makefile.in b/multimedia/xbmc/files/patch-guilib__common__Makefile.in
new file mode 100644
index 000000000000..a4633d77b44b
--- /dev/null
+++ b/multimedia/xbmc/files/patch-guilib__common__Makefile.in
@@ -0,0 +1,11 @@
+--- ./guilib/common/Makefile.in.orig 2009-09-01 04:57:16.000000000 +0200
++++ ./guilib/common/Makefile.in 2010-12-01 12:17:34.308286578 +0100
+@@ -4,6 +4,8 @@
+
+ ifeq ($(findstring osx,$(ARCH)), osx)
+ SRCS=SDLJoystick.cpp
++else ifeq ($(findstring bsd,$(ARCH)), bsd)
++SRCS=SDLJoystick.cpp
+ else
+ SRCS=SDLJoystick.cpp LIRC.cpp
+ endif
diff --git a/multimedia/xbmc/files/patch-guilib__system.h b/multimedia/xbmc/files/patch-guilib__system.h
new file mode 100644
index 000000000000..f56e486cd3e0
--- /dev/null
+++ b/multimedia/xbmc/files/patch-guilib__system.h
@@ -0,0 +1,22 @@
+--- ./guilib/system.h.orig 2010-11-09 20:05:35.000000000 +0100
++++ ./guilib/system.h 2010-12-01 12:17:34.292155875 +0100
+@@ -66,7 +66,9 @@
+ #define HAS_FILESYSTEM_SAP
+ #define HAS_FILESYSTEM_VTP
+ #define HAS_FILESYSTEM_HTSP
++#ifdef HAVE_LIBMMS
+ #define HAS_FILESYSTEM_MMS
++#endif
+
+ /**********************
+ * Non-free Components
+@@ -134,7 +136,9 @@
+ #define HAS_GLX
+ #define HAS_LINUX_NETWORK
+ #define HAS_SDL_AUDIO
++#if !defined(__FreeBSD__)
+ #define HAS_LIRC
++#endif
+ #define HAS_SDL_WIN_EVENTS
+ #ifdef HAVE_LIBPULSE
+ #define HAS_PULSEAUDIO
diff --git a/multimedia/xbmc/files/patch-lib__cpluff__libcpluff__ploader.c b/multimedia/xbmc/files/patch-lib__cpluff__libcpluff__ploader.c
new file mode 100644
index 000000000000..790e45dc0778
--- /dev/null
+++ b/multimedia/xbmc/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/files/patch-tools__Linux__xbmc.sh.in b/multimedia/xbmc/files/patch-tools__Linux__xbmc.sh.in
new file mode 100644
index 000000000000..2978dfbf69c8
--- /dev/null
+++ b/multimedia/xbmc/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/files/patch-tools__TexturePacker__XBMCTex.cpp b/multimedia/xbmc/files/patch-tools__TexturePacker__XBMCTex.cpp
new file mode 100644
index 000000000000..4fd9d9c6b27e
--- /dev/null
+++ b/multimedia/xbmc/files/patch-tools__TexturePacker__XBMCTex.cpp
@@ -0,0 +1,14 @@
+--- ./tools/TexturePacker/XBMCTex.cpp.orig 2010-10-17 19:04:21.000000000 +0200
++++ ./tools/TexturePacker/XBMCTex.cpp 2010-12-01 12:17:34.285107108 +0100
+@@ -40,7 +40,11 @@
+ #endif
+
+ #ifdef _LINUX
++#if defined(__FreeBSD__)
++#include <lzo/lzo1x.h>
++#else /* !__FreeBSD__ */
+ #include <lzo1x.h>
++#endif
+ #else
+ #include "../../xbmc/lib/liblzo/LZO1X.H"
+ #endif
diff --git a/multimedia/xbmc/files/patch-xbmc__Application.cpp b/multimedia/xbmc/files/patch-xbmc__Application.cpp
new file mode 100644
index 000000000000..1bd10ec76af1
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__Application.cpp
@@ -0,0 +1,23 @@
+--- ./xbmc/Application.cpp.orig 2010-10-31 14:58:11.000000000 +0100
++++ ./xbmc/Application.cpp 2010-12-01 12:17:34.231763652 +0100
+@@ -494,6 +494,8 @@
+ CLog::Log(LOGNOTICE, "-----------------------------------------------------------------------");
+ #if defined(__APPLE__)
+ CLog::Log(LOGNOTICE, "Starting XBMC, Platform: Mac OS X (%s). Built on %s (SVN:%s)", g_sysinfo.GetUnameVersion().c_str(), __DATE__, SVN_REV);
++#elif defined(__FreeBSD__)
++ CLog::Log(LOGNOTICE, "Starting XBMC, Platform: FreeBSD (%s). Built on %s (SVN:%s)", g_sysinfo.GetUnameVersion().c_str(), __DATE__, SVN_REV);
+ #elif defined(_LINUX)
+ CLog::Log(LOGNOTICE, "Starting XBMC, Platform: Linux (%s, %s). Built on %s (SVN:%s)", g_sysinfo.GetLinuxDistro().c_str(), g_sysinfo.GetUnameVersion().c_str(), __DATE__, SVN_REV);
+ #elif defined(_WIN32)
+@@ -777,6 +779,11 @@
+ }
+ }
+ }
++ char resolved_path[PATH_MAX];
++ if (realpath(xbmcPath.c_str(), resolved_path))
++ xbmcPath = resolved_path;
++ if (realpath(xbmcBinPath.c_str(), resolved_path))
++ xbmcBinPath = resolved_path;
+
+ /* Set some environment variables */
+ setenv("XBMC_BIN_HOME", xbmcBinPath.c_str(), 0);
diff --git a/multimedia/xbmc/files/patch-xbmc__DetectDVDType.cpp b/multimedia/xbmc/files/patch-xbmc__DetectDVDType.cpp
new file mode 100644
index 000000000000..f2246fceb785
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__DetectDVDType.cpp
@@ -0,0 +1,11 @@
+--- ./xbmc/DetectDVDType.cpp.orig 2010-10-11 17:15:33.000000000 +0200
++++ ./xbmc/DetectDVDType.cpp 2010-12-01 12:17:34.238812978 +0100
+@@ -34,7 +34,7 @@
+ #include <sys/types.h>
+ #include <sys/ioctl.h>
+ #include <fcntl.h>
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ #include <linux/cdrom.h>
+ #endif
+ #endif
diff --git a/multimedia/xbmc/files/patch-xbmc__FileSystem__CacheStrategy.cpp b/multimedia/xbmc/files/patch-xbmc__FileSystem__CacheStrategy.cpp
new file mode 100644
index 000000000000..d43e982482b4
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__FileSystem__CacheStrategy.cpp
@@ -0,0 +1,33 @@
+--- ./xbmc/FileSystem/CacheStrategy.cpp.orig 2010-10-10 15:01:06.000000000 +0200
++++ ./xbmc/FileSystem/CacheStrategy.cpp 2010-12-01 12:17:34.234788543 +0100
+@@ -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/files/patch-xbmc__FileSystem__DllLibCurl.cpp b/multimedia/xbmc/files/patch-xbmc__FileSystem__DllLibCurl.cpp
new file mode 100644
index 000000000000..5805715b4ba1
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__FileSystem__DllLibCurl.cpp
@@ -0,0 +1,15 @@
+--- ./xbmc/FileSystem/DllLibCurl.cpp.orig 2010-08-25 00:38:59.000000000 +0200
++++ ./xbmc/FileSystem/DllLibCurl.cpp 2010-12-01 12:17:34.236800761 +0100
+@@ -84,6 +84,12 @@
+
+ void DllLibCurlGlobal::CheckIdle()
+ {
++
++#if defined(__FreeBSD__)
++ /* easy_cleanup crash on freebsd with extern python */
++ return;
++#endif
++
+ /* avoid locking section here, to avoid stalling gfx thread on loads*/
+ if(g_curlReferences == 0)
+ return;
diff --git a/multimedia/xbmc/files/patch-xbmc__FileSystem__SAPDirectory.cpp b/multimedia/xbmc/files/patch-xbmc__FileSystem__SAPDirectory.cpp
new file mode 100644
index 000000000000..ff577a90e6d3
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__FileSystem__SAPDirectory.cpp
@@ -0,0 +1,14 @@
+Index: xbmc/FileSystem/SAPDirectory.cpp
+===================================================================
+--- xbmc/FileSystem/SAPDirectory.cpp (revision 35575)
++++ xbmc/FileSystem/SAPDirectory.cpp (working copy)
+@@ -30,6 +30,9 @@
+ #ifdef __APPLE__
+ #include "OSXGNUReplacements.h" // strnlen
+ #endif
++#ifdef __FreeBSD__
++#include "FreeBSDGNUReplacements.h" // strnlen
++#endif
+ #ifdef _MSC_VER
+ #include <Ws2tcpip.h>
+ #else
diff --git a/multimedia/xbmc/files/patch-xbmc__GUILargeTextureManager.cpp b/multimedia/xbmc/files/patch-xbmc__GUILargeTextureManager.cpp
new file mode 100644
index 000000000000..654b988afe2f
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__GUILargeTextureManager.cpp
@@ -0,0 +1,12 @@
+--- ./xbmc/GUILargeTextureManager.cpp.orig 2010-10-08 04:41:58.000000000 +0200
++++ ./xbmc/GUILargeTextureManager.cpp 2010-12-01 12:17:34.238812978 +0100
+@@ -68,7 +68,8 @@
+ m_texture = NULL;
+ }
+ else if (CTimeUtils::GetTimeMS() - start > 100)
+- CLog::Log(LOGDEBUG, "%s - took %d ms to load %s", __FUNCTION__, CTimeUtils::GetTimeMS() - start, loadPath.c_str());
++ CLog::Log(LOGDEBUG, "%s - took %d ms to load %s", __FUNCTION__,
++ (int)(CTimeUtils::GetTimeMS() - start), loadPath.c_str());
+ }
+
+ return true;
diff --git a/multimedia/xbmc/files/patch-xbmc__MusicInfoTagLoaderWMA.cpp b/multimedia/xbmc/files/patch-xbmc__MusicInfoTagLoaderWMA.cpp
new file mode 100644
index 000000000000..4b848a2c1c53
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__MusicInfoTagLoaderWMA.cpp
@@ -0,0 +1,11 @@
+--- ./xbmc/MusicInfoTagLoaderWMA.cpp.orig 2009-10-12 11:16:56.000000000 +0200
++++ ./xbmc/MusicInfoTagLoaderWMA.cpp 2010-12-01 12:17:34.239816992 +0100
+@@ -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/files/patch-xbmc__ProgramDatabase.cpp b/multimedia/xbmc/files/patch-xbmc__ProgramDatabase.cpp
new file mode 100644
index 000000000000..0b881e84fba8
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__ProgramDatabase.cpp
@@ -0,0 +1,11 @@
+--- ./xbmc/ProgramDatabase.cpp.orig 2010-07-12 22:53:38.000000000 +0200
++++ ./xbmc/ProgramDatabase.cpp 2010-12-01 12:17:34.231763652 +0100
+@@ -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/files/patch-xbmc__Util.cpp b/multimedia/xbmc/files/patch-xbmc__Util.cpp
new file mode 100644
index 000000000000..a9c86318a45f
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__Util.cpp
@@ -0,0 +1,73 @@
+--- xbmc/Util.cpp.orig 2010-12-17 07:17:41.000000000 +0100
++++ xbmc/Util.cpp 2010-12-27 20:40:24.000000000 +0100
+@@ -27,6 +27,11 @@
+ #include <mach-o/dyld.h>
+ #endif
+
++#if defined(__FreeBSD__)
++#include <sys/param.h>
++#include <sys/sysctl.h>
++#endif
++
+ #ifdef _LINUX
+ #include <sys/types.h>
+ #include <dirent.h>
+@@ -739,7 +744,7 @@
+ strPath = strHomePath;
+ }
+
+-#if defined(_LINUX) && !defined(__APPLE__)
++#if ( defined(_LINUX) || defined(__FreeBSD__) ) && !defined(__APPLE__)
+ /* Change strPath accordingly when target is XBMC_HOME and when INSTALL_PATH
+ * and BIN_INSTALL_PATH differ
+ */
+@@ -1434,7 +1439,7 @@
+
+ void CUtil::CacheSubtitles(const CStdString& strMovie, CStdString& strExtensionCached, XFILE::IFileCallback *pCallback )
+ {
+- unsigned int startTimer = CTimeUtils::GetTimeMS();
++ DWORD startTimer = CTimeUtils::GetTimeMS();
+ CLog::Log(LOGDEBUG,"%s: START", __FUNCTION__);
+
+ // new array for commons sub dirs
+@@ -1546,7 +1551,7 @@
+ strLookInPaths.push_back(strPath);
+ }
+
+- unsigned int nextTimer = CTimeUtils::GetTimeMS();
++ DWORD nextTimer = CTimeUtils::GetTimeMS();
+ CLog::Log(LOGDEBUG,"%s: Done (time: %i ms)", __FUNCTION__, (int)(nextTimer - startTimer));
+
+ CStdString strLExt;
+@@ -3211,7 +3216,7 @@
+ srand(seed);
+ }
+
+-#ifdef _LINUX
++#if defined(_LINUX) || defined(__FreeBSD__)
+ bool CUtil::RunCommandLine(const CStdString& cmdLine, bool waitExit)
+ {
+ CStdStringArray args;
+@@ -3440,6 +3445,22 @@
+ if (result == 0)
+ realpath(given_path, real_given_path);
+ strExecutablePath = real_given_path;
++#elif defined(__FreeBSD__)
++ char buf[PATH_MAX];
++ size_t buflen;
++ int mib[4];
++
++ mib[0] = CTL_KERN;
++ mib[1] = KERN_PROC;
++ mib[2] = KERN_PROC_PATHNAME;
++ mib[3] = getpid();
++
++ buflen = sizeof(buf) - 1;
++
++ if(sysctl(mib, 4, buf, &buflen, NULL, 0) < 0)
++ strExecutablePath = "";
++ else
++ strExecutablePath = buf;
+ #else
+ /* Get our PID and build the name of the link in /proc */
+ pid_t pid = getpid();
diff --git a/multimedia/xbmc/files/patch-xbmc__VideoDatabase.cpp b/multimedia/xbmc/files/patch-xbmc__VideoDatabase.cpp
new file mode 100644
index 000000000000..59f7a6108c2c
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__VideoDatabase.cpp
@@ -0,0 +1,76 @@
+--- ./xbmc/VideoDatabase.cpp.orig 2010-11-09 22:55:18.000000000 +0100
++++ ./xbmc/VideoDatabase.cpp 2010-12-01 12:17:34.199531299 +0100
+@@ -4423,7 +4423,7 @@
+ }
+
+ CLog::Log(LOGDEBUG,"Time for actual SQL query = %d",
+- CTimeUtils::GetTimeMS() - time); time = CTimeUtils::GetTimeMS();
++ (int)(CTimeUtils::GetTimeMS() - time)); time = CTimeUtils::GetTimeMS();
+
+ // get data from returned rows
+ items.Reserve(iRowsFound);
+@@ -4443,7 +4443,7 @@
+ }
+
+ CLog::Log(LOGDEBUG,"Time to retrieve movies from dataset = %d",
+- CTimeUtils::GetTimeMS() - time);
++ (int)(CTimeUtils::GetTimeMS() - time));
+
+ // cleanup
+ m_pDS->close();
+@@ -4495,7 +4495,7 @@
+ }
+
+ CLog::Log(LOGDEBUG,"Time for actual SQL query = %d",
+- CTimeUtils::GetTimeMS() - time); time = CTimeUtils::GetTimeMS();
++ (int)(CTimeUtils::GetTimeMS() - time)); time = CTimeUtils::GetTimeMS();
+
+ // get data from returned rows
+ items.Reserve(iRowsFound);
+@@ -4523,7 +4523,7 @@
+ }
+
+ CLog::Log(LOGDEBUG,"Time to retrieve tvshows from dataset = %d",
+- CTimeUtils::GetTimeMS() - time);
++ (int)(CTimeUtils::GetTimeMS() - time));
+
+ CStdString order(where);
+ bool maintainOrder = order.ToLower().Find("order by") != -1;
+@@ -4777,7 +4777,7 @@
+ }
+
+ CLog::Log(LOGDEBUG,"Time for actual SQL query = %d",
+- CTimeUtils::GetTimeMS() - time); time = CTimeUtils::GetTimeMS();
++ (int)(CTimeUtils::GetTimeMS() - time)); time = CTimeUtils::GetTimeMS();
+
+ // get data from returned rows
+ items.Reserve(iRowsFound);
+@@ -4802,7 +4802,7 @@
+ }
+
+ CLog::Log(LOGDEBUG,"Time to retrieve episodes from dataset = %d",
+- CTimeUtils::GetTimeMS() - time);
++ (int)(CTimeUtils::GetTimeMS() - time));
+
+ // cleanup
+ m_pDS->close();
+@@ -5600,7 +5600,8 @@
+ // run query
+ if (!m_pDS->query(strSQL.c_str()))
+ return false;
+- CLog::Log(LOGDEBUG, "%s time for actual SQL query = %d", __FUNCTION__, CTimeUtils::GetTimeMS() - time); time = CTimeUtils::GetTimeMS();
++ CLog::Log(LOGDEBUG, "%s time for actual SQL query = %d", __FUNCTION__,
++ (int)(CTimeUtils::GetTimeMS() - time)); time = CTimeUtils::GetTimeMS();
+
+ int iRowsFound = m_pDS->num_rows();
+ if (iRowsFound == 0)
+@@ -5627,7 +5628,8 @@
+ m_pDS->next();
+ }
+
+- CLog::Log(LOGDEBUG, "%s time to retrieve from dataset = %d", __FUNCTION__, CTimeUtils::GetTimeMS() - time); time = CTimeUtils::GetTimeMS();
++ CLog::Log(LOGDEBUG, "%s time to retrieve from dataset = %d", __FUNCTION__,
++ (int)(CTimeUtils::GetTimeMS() - time)); time = CTimeUtils::GetTimeMS();
+
+ // cleanup
+ m_pDS->close();
diff --git a/multimedia/xbmc/files/patch-xbmc__ViewDatabase.cpp b/multimedia/xbmc/files/patch-xbmc__ViewDatabase.cpp
new file mode 100644
index 000000000000..1ba267d3e0e6
--- /dev/null
+++ b/multimedia/xbmc/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/files/patch-xbmc__addons__Addon.cpp b/multimedia/xbmc/files/patch-xbmc__addons__Addon.cpp
new file mode 100644
index 000000000000..b22eb423d786
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__addons__Addon.cpp
@@ -0,0 +1,14 @@
+Index: xbmc/addons/Addon.cpp
+===================================================================
+--- xbmc/addons/Addon.cpp (revision 35575)
++++ xbmc/addons/Addon.cpp (working copy)
+@@ -29,6 +29,9 @@
+ #ifdef __APPLE__
+ #include "../osx/OSXGNUReplacements.h"
+ #endif
++#ifdef __FreeBSD__
++#include "FreeBSDGNUReplacements.h" // strverscmp
++#endif
+ #include "log.h"
+ #include <vector>
+ #include <string.h>
diff --git a/multimedia/xbmc/files/patch-xbmc__cores__AudioRenderers__ALSADirectSound.cpp b/multimedia/xbmc/files/patch-xbmc__cores__AudioRenderers__ALSADirectSound.cpp
new file mode 100644
index 000000000000..c3d1da503e90
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__cores__AudioRenderers__ALSADirectSound.cpp
@@ -0,0 +1,21 @@
+--- ./xbmc/cores/AudioRenderers/ALSADirectSound.cpp.orig 2010-10-25 16:43:36.000000000 +0200
++++ ./xbmc/cores/AudioRenderers/ALSADirectSound.cpp 2010-12-01 12:17:34.212621188 +0100
+@@ -439,7 +439,7 @@
+ {
+ if (!m_bIsAllocated) return 0;
+
+- int nSpace = snd_pcm_avail_update(m_pPlayHandle);
++ snd_pcm_sframes_t nSpace = snd_pcm_avail_update(m_pPlayHandle);
+ if (nSpace == 0)
+ {
+ snd_pcm_state_t state = snd_pcm_state(m_pPlayHandle);
+@@ -451,7 +451,8 @@
+ }
+ if (nSpace < 0)
+ {
+- CLog::Log(LOGWARNING,"CALSADirectSound::GetSpace - get space failed. err: %d (%s)", nSpace, snd_strerror(nSpace));
++ CLog::Log(LOGWARNING,"CALSADirectSound::GetSpace - get space failed. err: %ld (%s)",
++ (long)nSpace, snd_strerror(nSpace));
+ nSpace = 0;
+ Flush();
+ }
diff --git a/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.cpp b/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.cpp
new file mode 100644
index 000000000000..4748d8d54927
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.cpp
@@ -0,0 +1,161 @@
+--- ./xbmc/cores/DllLoader/exports/emu_msvcrt.cpp.orig 2010-10-04 01:33:13.000000000 +0200
++++ ./xbmc/cores/DllLoader/exports/emu_msvcrt.cpp 2010-12-01 12:17:34.209596576 +0100
+@@ -30,6 +30,7 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <sys/timeb.h>
++#if !defined(__FreeBSD__)
+ #ifdef _LINUX
+ #include <sys/ioctl.h>
+ #ifndef __APPLE__
+@@ -39,6 +40,7 @@
+ #include <IOKit/storage/IODVDMediaBSDClient.h>
+ #endif
+ #endif
++#endif
+ #include <fcntl.h>
+ #include <time.h>
+ #include <signal.h>
+@@ -134,6 +136,8 @@
+ dll_putenv("OS=darwin");
+ #elif defined(_LINUX)
+ dll_putenv("OS=linux");
++#elif defined(__FreeBSD__)
++ dll_putenv("OS=freebsd");
+ #else
+ dll_putenv("OS=unknown");
+ #endif
+@@ -141,11 +145,11 @@
+ dll_putenv("PYTHONHOME=special://xbmc/system/python");
+ dll_putenv("PATH=.;special://xbmc;special://xbmc/system/python");
+ //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
+@@ -1141,7 +1145,7 @@
+ 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)
+ {
+@@ -1249,7 +1253,7 @@
+ {
+ // 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);
+@@ -1314,7 +1318,7 @@
+ {
+ // 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);
+@@ -1360,7 +1364,7 @@
+ 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);
+@@ -1537,7 +1541,7 @@
+ 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;
+@@ -1550,7 +1554,7 @@
+ 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();
+@@ -1572,7 +1576,7 @@
+ 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)
+@@ -1589,7 +1593,7 @@
+ {
+ // 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);
+@@ -1605,7 +1609,7 @@
+ 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);
+@@ -2079,7 +2083,7 @@
+ return (char***)&t;
+ }
+
+-#ifdef _LINUX
++#if defined(_LINUX)
+ int * __cdecl dll_errno(void)
+ {
+ return &errno;
+@@ -2090,8 +2094,9 @@
+ CFile* pFile = g_emuFileWrapper.GetFileXbmcByDescriptor(fd);
+ if (!pFile)
+ return -1;
+-
+-#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)
+@@ -2129,7 +2134,7 @@
+ 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__);
+@@ -2154,7 +2159,7 @@
+ else
+ return 0;
+ }
+-#ifdef _LINUX
++#if defined(_LINUX)
+ return 0;
+ #else
+ return _filbuf(fp);
diff --git a/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.h b/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__emu_msvcrt.h
new file mode 100644
index 000000000000..49d9bbde9d11
--- /dev/null
+++ b/multimedia/xbmc/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/files/patch-xbmc__cores__DllLoader__exports__exports_python_linux.cpp b/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__exports_python_linux.cpp
new file mode 100644
index 000000000000..26ccf8fe4232
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__exports_python_linux.cpp
@@ -0,0 +1,56 @@
+--- xbmc/cores/DllLoader/exports/exports_python_linux.cpp.orig 2010-12-17 07:17:41.000000000 +0100
++++ xbmc/cores/DllLoader/exports/exports_python_linux.cpp 2010-12-27 20:00:59.000000000 +0100
+@@ -34,7 +34,7 @@
+ #endif
+ #include "../DllLoaderContainer.h"
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ //
+ // Use pthread's built-in support for TLS, it's more portable.
+ //
+@@ -105,7 +105,7 @@
+
+ char* xbp_getcwd(char *buf, int size)
+ {
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ // Initialize thread local storage and local thread pointer.
+ pthread_once(&keyOnce, MakeTlsKeys);
+ if (xbp_cw_dir == 0)
+@@ -124,7 +124,7 @@
+
+ int xbp_chdir(const char *dirname)
+ {
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ // Initialize thread local storage and local thread pointer.
+ pthread_once(&keyOnce, MakeTlsKeys);
+
+@@ -139,7 +139,7 @@
+ if (strlen(dirname) > MAX_PATH) return -1;
+ strcpy(xbp_cw_dir, dirname);
+
+-#if (defined USE_EXTERNAL_PYTHON)
++#if defined(USE_EXTERNAL_PYTHON)
+ /* TODO: Need to figure out how to make system level Python make call to
+ * XBMC's chdir instead of non-threadsafe system chdir
+ */
+@@ -220,7 +220,7 @@
+ FILE* xbp_fopen64(const char *filename, const char *mode)
+ {
+ CStdString strName = _P(filename);
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ return fopen(strName.c_str(), mode);
+ #else
+ return fopen64(strName.c_str(), mode);
+@@ -233,7 +233,7 @@
+ return lstat(strName.c_str(), buf);
+ }
+
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ int xbp_lstat64(const char * path, struct stat64 * buf)
+ {
+ CStdString strName = _P(path);
diff --git a/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__util__EmuFileWrapper.h b/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__util__EmuFileWrapper.h
new file mode 100644
index 000000000000..63097e9f96a6
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__util__EmuFileWrapper.h
@@ -0,0 +1,11 @@
+--- ./xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h.orig 2010-06-01 16:33:45.000000000 +0200
++++ ./xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h 2010-12-01 12:17:34.211609073 +0100
+@@ -29,7 +29,7 @@
+
+ class CMutex;
+
+-#if defined(_LINUX) && !defined(__APPLE__)
++#if defined(_LINUX) && !defined(__APPLE__) && !defined(__FreeBSD__)
+ #define _file _fileno
+ #endif
+
diff --git a/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__wrapper.c b/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__wrapper.c
new file mode 100644
index 000000000000..e6c6c1ca2d80
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__cores__DllLoader__exports__wrapper.c
@@ -0,0 +1,11 @@
+--- ./xbmc/cores/DllLoader/exports/wrapper.c.orig 2010-05-28 21:31:42.000000000 +0200
++++ ./xbmc/cores/DllLoader/exports/wrapper.c 2010-12-01 12:17:34.206576434 +0100
+@@ -37,7 +37,7 @@
+ #include <dirent.h>
+ #endif
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ typedef int64_t off64_t;
+ typedef off_t __off_t;
+ typedef off64_t __off64_t;
diff --git a/multimedia/xbmc/files/patch-xbmc__cores__dvdplayer__DVDAudio.cpp b/multimedia/xbmc/files/patch-xbmc__cores__dvdplayer__DVDAudio.cpp
new file mode 100644
index 000000000000..8870cfbda496
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__cores__dvdplayer__DVDAudio.cpp
@@ -0,0 +1,19 @@
+--- ./xbmc/cores/dvdplayer/DVDAudio.cpp.orig 2010-05-05 11:33:40.000000000 +0200
++++ ./xbmc/cores/dvdplayer/DVDAudio.cpp 2010-12-01 12:17:34.200531401 +0100
+@@ -235,13 +235,14 @@
+
+ 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);
+ 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/files/patch-xbmc__cores__dvdplayer__DVDCodecs__Video__VDPAU.cpp b/multimedia/xbmc/files/patch-xbmc__cores__dvdplayer__DVDCodecs__Video__VDPAU.cpp
new file mode 100644
index 000000000000..f8abf0373b03
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__cores__dvdplayer__DVDCodecs__Video__VDPAU.cpp
@@ -0,0 +1,11 @@
+--- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp.orig 2010-12-17 07:17:41.000000000 +0100
++++ xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp 2010-12-28 13:26:49.000000000 +0100
+@@ -647,7 +647,7 @@
+
+ void CVDPAU::InitVDPAUProcs()
+ {
+- char* error;
++ const char* error;
+
+ dl_vdp_device_create_x11 = (VdpStatus (*)(Display*, int, VdpDevice*, VdpStatus (**)(VdpDevice, VdpFuncId, void**)))dlsym(dl_handle, (const char*)"vdp_device_create_x11");
+ error = dlerror();
diff --git a/multimedia/xbmc/files/patch-xbmc__cores__dvdplayer__DVDPlayer.cpp b/multimedia/xbmc/files/patch-xbmc__cores__dvdplayer__DVDPlayer.cpp
new file mode 100644
index 000000000000..2d4e0d1ce03a
--- /dev/null
+++ b/multimedia/xbmc/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/files/patch-xbmc__cores__paplayer__NSFCodec__NoseFartDLL.cpp b/multimedia/xbmc/files/patch-xbmc__cores__paplayer__NSFCodec__NoseFartDLL.cpp
new file mode 100644
index 000000000000..b9a4d736015e
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__cores__paplayer__NSFCodec__NoseFartDLL.cpp
@@ -0,0 +1,11 @@
+--- ./xbmc/cores/paplayer/NSFCodec/NoseFartDLL.cpp.orig 2010-10-04 19:49:31.000000000 +0200
++++ ./xbmc/cores/paplayer/NSFCodec/NoseFartDLL.cpp 2010-12-01 12:17:34.222702947 +0100
+@@ -19,7 +19,7 @@
+ *
+ */
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ #define __declspec(x)
+ #endif
+ extern "C"
diff --git a/multimedia/xbmc/files/patch-xbmc__cores__paplayer__PAPlayer.cpp b/multimedia/xbmc/files/patch-xbmc__cores__paplayer__PAPlayer.cpp
new file mode 100644
index 000000000000..fe7a85c6e84f
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__cores__paplayer__PAPlayer.cpp
@@ -0,0 +1,21 @@
+--- ./xbmc/cores/paplayer/PAPlayer.cpp.orig 2010-09-30 12:17:21.000000000 +0200
++++ ./xbmc/cores/paplayer/PAPlayer.cpp 2010-12-01 12:17:34.224719076 +0100
+@@ -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;
+ }
+@@ -896,7 +897,7 @@
+ {
+ DWORD time = CTimeUtils::GetTimeMS();
+ m_timeOffset = m_decoder[m_currentDecoder].Seek(m_SeekTime);
+- CLog::Log(LOGDEBUG, "Seek to time %f took %i ms", 0.001f * m_SeekTime, CTimeUtils::GetTimeMS() - time);
++ CLog::Log(LOGDEBUG, "Seek to time %f took %i ms", 0.001f * m_SeekTime, (int)(CTimeUtils::GetTimeMS() - time));
+ FlushStreams();
+ m_SeekTime = -1;
+ }
diff --git a/multimedia/xbmc/files/patch-xbmc__cores__paplayer__SIDCodec__Makefile.in b/multimedia/xbmc/files/patch-xbmc__cores__paplayer__SIDCodec__Makefile.in
new file mode 100644
index 000000000000..1180a7a1dfd6
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__cores__paplayer__SIDCodec__Makefile.in
@@ -0,0 +1,12 @@
+--- ./xbmc/cores/paplayer/SIDCodec/Makefile.in.orig 2010-06-11 19:53:24.000000000 +0200
++++ ./xbmc/cores/paplayer/SIDCodec/Makefile.in 2010-12-01 12:17:34.223710592 +0100
+@@ -1,7 +1,7 @@
+ ARCH=@ARCH@
+
+-CFLAGS +=-D_LINUX -DHAVE_UNIX -DHAVE_STRCASECMP -DHAVE_STRNCASECMP -DHAVE_IOS_OPENMODE -fPIC -Ilibsidplay/win/VC -Ibuilders/resid-builder/include/sidplay/builders -Ilibsidplay/include/sidplay -Iresid -Ilibsidplay/include -I../../../linux -I../../../utils -I../../../ -I../../../../guilib/ -fPIC
+-CXXFLAGS += $(CFLAGS)
++CFLAGS :=-D_LINUX -DHAVE_UNIX -DHAVE_STRCASECMP -DHAVE_STRNCASECMP -DHAVE_IOS_OPENMODE -fPIC -Ilibsidplay/win/VC -Ibuilders/resid-builder/include/sidplay/builders -Ilibsidplay/include/sidplay -Iresid -Ilibsidplay/include -I../../../linux -I../../../utils -I../../../ -I../../../../guilib/ -fPIC $(CFLAGS)
++CXXFLAGS := $(CFLAGS) $(CXXFLAGS)
+ ifeq ($(ARCH), powerpc-osx)
+ BUNDLE1_O=-lbundle1.o -L/usr/lib/gcc/powerpc-apple-darwin8/4.0.1/ -lgcc
+ endif
diff --git a/multimedia/xbmc/files/patch-xbmc__cores__paplayer__WAVcodec.cpp b/multimedia/xbmc/files/patch-xbmc__cores__paplayer__WAVcodec.cpp
new file mode 100644
index 000000000000..f74132730272
--- /dev/null
+++ b/multimedia/xbmc/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/files/patch-xbmc__cores__paplayer__YMCodec__StSoundLibrary__XBMCYM.cpp b/multimedia/xbmc/files/patch-xbmc__cores__paplayer__YMCodec__StSoundLibrary__XBMCYM.cpp
new file mode 100644
index 000000000000..f50f347a010d
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__cores__paplayer__YMCodec__StSoundLibrary__XBMCYM.cpp
@@ -0,0 +1,11 @@
+--- ./xbmc/cores/paplayer/YMCodec/StSoundLibrary/XBMCYM.cpp.orig 2010-10-04 19:46:47.000000000 +0200
++++ ./xbmc/cores/paplayer/YMCodec/StSoundLibrary/XBMCYM.cpp 2010-12-01 12:17:34.217661928 +0100
+@@ -25,7 +25,7 @@
+ #include <stdio.h>
+ #include <stdint.h>
+
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ #define __declspec(x)
+ #endif
+
diff --git a/multimedia/xbmc/files/patch-xbmc__cores__paplayer__YMCodec__StSoundLibrary__YmTypes.h b/multimedia/xbmc/files/patch-xbmc__cores__paplayer__YMCodec__StSoundLibrary__YmTypes.h
new file mode 100644
index 000000000000..bcb75bf438d6
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__cores__paplayer__YMCodec__StSoundLibrary__YmTypes.h
@@ -0,0 +1,29 @@
+--- ./xbmc/cores/paplayer/YMCodec/StSoundLibrary/YmTypes.h.orig 2008-07-15 20:34:24.000000000 +0200
++++ ./xbmc/cores/paplayer/YMCodec/StSoundLibrary/YmTypes.h 2010-12-01 12:17:34.219682526 +0100
+@@ -39,20 +39,20 @@
+ // Platform specific stuff
+ //-----------------------------------------------------------
+
+-#if defined(_WIN32) || defined(__linux__)
++#if defined(_WIN32) || defined(__linux__) || defined(__FreeBSD__)
+
+ // These settings are ok for Windows 32bits platform.
+
+ #ifdef YM_INTEGER_ONLY
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ #include <inttypes.h>
+ typedef int64_t yms64;
+-#else
++#else /* !__linux__ */
+ typedef __int64 yms64;
+-#endif
+-#else
++#endif /* __linux__ */
++#else /* !YM_INTEGER_ONLY */
+ typedef float ymfloat;
+-#endif
++#endif /* YM_INTEGER_ONLY */
+
+ typedef signed char yms8; // 8 bits signed integer
+ typedef signed short yms16; // 16 bits signed integer
diff --git a/multimedia/xbmc/files/patch-xbmc__lib__cximage-6.0__raw__dcr.c b/multimedia/xbmc/files/patch-xbmc__lib__cximage-6.0__raw__dcr.c
new file mode 100644
index 000000000000..e00798225b61
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__lib__cximage-6.0__raw__dcr.c
@@ -0,0 +1,17 @@
+--- ./xbmc/lib/cximage-6.0/raw/dcr.c.orig 2009-05-16 12:01:35.000000000 +0200
++++ ./xbmc/lib/cximage-6.0/raw/dcr.c 2010-12-01 12:17:34.252898220 +0100
+@@ -144,8 +144,12 @@
+
+ //!!! set return point for error handling
+ if (setjmp (dcr.failure)) {
+- if (fileno(dcr.obj_) > 2) (*dcr.ops_->close_)(dcr.obj_);
+- if (fileno(ofp) > 2) fclose(ofp);
++#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/files/patch-xbmc__lib__cximage-6.0__raw__libdcr.h b/multimedia/xbmc/files/patch-xbmc__lib__cximage-6.0__raw__libdcr.h
new file mode 100644
index 000000000000..98ad94df26dd
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__lib__cximage-6.0__raw__libdcr.h
@@ -0,0 +1,11 @@
+--- ./xbmc/lib/cximage-6.0/raw/libdcr.h.orig 2009-05-21 08:01:34.000000000 +0200
++++ ./xbmc/lib/cximage-6.0/raw/libdcr.h 2010-12-01 12:17:34.248861773 +0100
+@@ -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/files/patch-xbmc__lib__libPython__XBPython.cpp b/multimedia/xbmc/files/patch-xbmc__lib__libPython__XBPython.cpp
new file mode 100644
index 000000000000..c152156e0d89
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__lib__libPython__XBPython.cpp
@@ -0,0 +1,36 @@
+--- ./xbmc/lib/libPython/XBPython.cpp.orig 2010-10-09 15:00:44.000000000 +0200
++++ ./xbmc/lib/libPython/XBPython.cpp 2010-12-01 12:17:34.246845365 +0100
+@@ -60,6 +60,24 @@
+ #else
+ #define PYTHON_DLL "special://xbmcbin/system/python/python24-x86-osx.so"
+ #endif
++#elif defined(__FreeBSD__)
++#if defined(__x86_64__)
++#if defined(HAVE_LIBPYTHON2_6)
++#define PYTHON_DLL "special://xbmcbin/system/python/python26-x86_64-freebsd.so"
++#elif defined(HAVE_LIBPYTHON2_5)
++#define PYTHON_DLL "special://xbmcbin/system/python/python25-x86_64-freebsd.so"
++#else /* LIBPYTHON2_4 */
++#define PYTHON_DLL "special://xbmcbin/system/python/python24-x86_64-freebsd.so"
++#endif
++#else /* !__x86_64__ */
++#if defined(HAVE_LIBPYTHON2_6)
++#define PYTHON_DLL "special://xbmcbin/system/python/python26-x86-freebsd.so"
++#elif defined(HAVE_LIBPYTHON2_5)
++#define PYTHON_DLL "special://xbmcbin/system/python/python25-x86-freebsd.so"
++#else /* LIBPYTHON2_4 */
++#define PYTHON_DLL "special://xbmcbin/system/python/python24-x86-freebsd.so"
++#endif
++#endif /* __x86_64__ */
+ #elif defined(__x86_64__)
+ #if (defined HAVE_LIBPYTHON2_6)
+ #define PYTHON_DLL "special://xbmcbin/system/python/python26-x86_64-linux.so"
+@@ -443,7 +461,7 @@
+
+ // first free all dlls loaded by python, after that python24.dll (this is done by UnloadPythonDlls
+ DllLoaderContainer::UnloadPythonDlls();
+-#ifdef _LINUX
++#if defined(_LINUX) && !defined(__FreeBSD__)
+ // we can't release it on windows, as this is done in UnloadPythonDlls() for win32 (see above).
+ // The implementation for linux and os x needs looking at - UnloadPythonDlls() currently only searches for "python24.dll"
+ DllLoaderContainer::ReleaseModule(m_pDll);
diff --git a/multimedia/xbmc/files/patch-xbmc__lib__libPython__linux__Makefile.in b/multimedia/xbmc/files/patch-xbmc__lib__libPython__linux__Makefile.in
new file mode 100644
index 000000000000..c8c6bff2af42
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__lib__libPython__linux__Makefile.in
@@ -0,0 +1,11 @@
+--- ./xbmc/lib/libPython/linux/Makefile.in.orig 2010-07-11 23:22:04.000000000 +0200
++++ ./xbmc/lib/libPython/linux/Makefile.in 2010-12-01 12:17:34.245845263 +0100
+@@ -2,7 +2,7 @@
+ CC=@CC@
+ CFLAGS=@CFLAGS@
+ LDFLAGS=@LDFLAGS@
+-SHELL=/bin/bash
++SHELL=/bin/sh
+ SYSDIR=../../../../system/python
+
+ ifeq (@USE_PYTHON2_6@,1)
diff --git a/multimedia/xbmc/files/patch-xbmc__lib__libPython__linux__wrapper_python.c b/multimedia/xbmc/files/patch-xbmc__lib__libPython__linux__wrapper_python.c
new file mode 100644
index 000000000000..cdfde7547462
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__lib__libPython__linux__wrapper_python.c
@@ -0,0 +1,20 @@
+--- ./xbmc/lib/libPython/linux/wrapper_python.c.orig 2010-07-17 23:26:42.000000000 +0200
++++ ./xbmc/lib/libPython/linux/wrapper_python.c 2010-12-01 12:17:34.245845263 +0100
+@@ -40,7 +40,7 @@
+ int xbp_mkdir(const char *dirname);
+ int xbp_open(const char *filename, int oflag, int pmode);
+ int xbp_lstat(const char * path, struct stat * buf);
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ int xbp_lstat64(const char * path, struct stat64 * buf);
+ #endif
+ void *xbp_dlopen(const char *filename, int flag);
+@@ -98,7 +98,7 @@
+ {
+ return xbp_lstat(path, buf);
+ }
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ int PYTHON_WRAP(lstat64)(const char * path, struct stat64 * buf)
+ {
+ return xbp_lstat64(path, buf);
diff --git a/multimedia/xbmc/files/patch-xbmc__lib__libRTV__GuideParser.cpp b/multimedia/xbmc/files/patch-xbmc__lib__libRTV__GuideParser.cpp
new file mode 100644
index 000000000000..626d33733441
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__lib__libRTV__GuideParser.cpp
@@ -0,0 +1,11 @@
+--- ./xbmc/lib/libRTV/GuideParser.cpp.orig 2010-02-12 00:47:51.000000000 +0100
++++ ./xbmc/lib/libRTV/GuideParser.cpp 2010-12-01 12:17:34.245845263 +0100
+@@ -130,7 +130,7 @@
+ #include <winbase.h>
+ #endif
+
+-#if (defined(__unix__) || defined(__APPLE__)) && !defined(__FreeBSD__)
++#if (defined(__unix__) || defined(__APPLE__))
+ #include <netinet/in.h>
+ #endif
+
diff --git a/multimedia/xbmc/files/patch-xbmc__lib__libXBMS__ccincludes.h b/multimedia/xbmc/files/patch-xbmc__lib__libXBMS__ccincludes.h
new file mode 100644
index 000000000000..c5ab92e9d662
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__lib__libXBMS__ccincludes.h
@@ -0,0 +1,13 @@
+--- ./xbmc/lib/libXBMS/ccincludes.h.orig 2010-04-18 23:05:41.000000000 +0200
++++ ./xbmc/lib/libXBMS/ccincludes.h 2010-12-01 12:17:34.244845160 +0100
+@@ -58,6 +58,10 @@
+ #define snprintf _snprintf
+ #endif /* _XBOX */
+
++#if defined(__FreeBSD__)
++#include <netinet/in.h>
++#endif
++
+ //extern int errno;
+
+ #ifndef PATH_MAX
diff --git a/multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__httpClient.c b/multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__httpClient.c
new file mode 100644
index 000000000000..5e5638e25261
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__httpClient.c
@@ -0,0 +1,14 @@
+--- ./xbmc/lib/libXDAAP/httpClient.c.orig 2009-03-28 03:32:24.000000000 +0100
++++ ./xbmc/lib/libXDAAP/httpClient.c 2010-12-01 12:17:34.243841426 +0100
+@@ -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/files/patch-xbmc__lib__libXDAAP__ioloop.c b/multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__ioloop.c
new file mode 100644
index 000000000000..c5c63d659a1f
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__ioloop.c
@@ -0,0 +1,13 @@
+--- ./xbmc/lib/libXDAAP/ioloop.c.orig 2008-08-10 17:07:47.000000000 +0200
++++ ./xbmc/lib/libXDAAP/ioloop.c 2010-12-01 12:17:34.240824916 +0100
+@@ -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/files/patch-xbmc__lib__libXDAAP__thread.h b/multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__thread.h
new file mode 100644
index 000000000000..0f178386af03
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__thread.h
@@ -0,0 +1,11 @@
+--- ./xbmc/lib/libXDAAP/thread.h.orig 2008-12-04 22:22:25.000000000 +0100
++++ ./xbmc/lib/libXDAAP/thread.h 2010-12-01 12:17:34.243841426 +0100
+@@ -37,7 +37,7 @@
+ #define ts_mutex pthread_mutex_t
+ #define ts_condition pthread_cond_t
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ #define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE
+ #endif
+
diff --git a/multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__threadpool.c b/multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__threadpool.c
new file mode 100644
index 000000000000..ef556b0c7e70
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__lib__libXDAAP__threadpool.c
@@ -0,0 +1,15 @@
+--- ./xbmc/lib/libXDAAP/threadpool.c.orig 2008-07-19 14:45:00.000000000 +0200
++++ ./xbmc/lib/libXDAAP/threadpool.c 2010-12-01 12:17:34.241828930 +0100
+@@ -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/files/patch-xbmc__lib__libhts__net_posix.c b/multimedia/xbmc/files/patch-xbmc__lib__libhts__net_posix.c
new file mode 100644
index 000000000000..393e794d29e8
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__lib__libhts__net_posix.c
@@ -0,0 +1,29 @@
+--- ./xbmc/lib/libhts/net_posix.c.orig 2010-02-15 06:06:37.000000000 +0100
++++ ./xbmc/lib/libhts/net_posix.c 2010-12-01 12:17:34.312321908 +0100
+@@ -17,12 +17,14 @@
+ */
+
+ #include <netdb.h>
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ /* Needed on Mac OS/X */
+ #ifndef SOL_TCP
+ #define SOL_TCP IPPROTO_TCP
+ #endif
++#if defined(__APPLE__)
+ #include "OSXGNUReplacements.h"
++#endif
+ #else
+ #include <sys/epoll.h>
+ #endif
+@@ -41,6 +43,10 @@
+
+ #include "net.h"
+
++#if defined(__FreeBSD__)
++#include <sys/socket.h>
++#endif
++
+
+ /**
+ *
diff --git a/multimedia/xbmc/files/patch-xbmc__linux__FreeBSDGNUReplacements.c b/multimedia/xbmc/files/patch-xbmc__linux__FreeBSDGNUReplacements.c
new file mode 100644
index 000000000000..41313ca75aa5
--- /dev/null
+++ b/multimedia/xbmc/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/files/patch-xbmc__linux__FreeBSDGNUReplacements.h b/multimedia/xbmc/files/patch-xbmc__linux__FreeBSDGNUReplacements.h
new file mode 100644
index 000000000000..1b65441afd4e
--- /dev/null
+++ b/multimedia/xbmc/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/files/patch-xbmc__linux__LinuxTimezone.cpp b/multimedia/xbmc/files/patch-xbmc__linux__LinuxTimezone.cpp
new file mode 100644
index 000000000000..3bf0e4f74ccc
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__linux__LinuxTimezone.cpp
@@ -0,0 +1,189 @@
+--- xbmc/linux/LinuxTimezone.cpp (revision 35637)
++++ xbmc/linux/LinuxTimezone.cpp (working copy)
+@@ -27,6 +27,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;
+@@ -89,7 +95,11 @@
+ }
+
+ // 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;
+@@ -109,7 +119,14 @@
+ // 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);
+
+@@ -144,7 +161,10 @@
+
+ void CLinuxTimezone::SetTimezone(CStdString timezoneName)
+ {
+-#ifndef __APPLE__
++#if defined(__FreeBSD__)
++ setenv("TZ", timezoneName.c_str(), 1);
++ tzset();
++#elif !defined(__APPLE__)
+ static char env_var[255];
+ sprintf(env_var, "TZ=:%s", timezoneName.c_str());
+ putenv(env_var);
+@@ -152,8 +172,125 @@
+ #endif
+ }
+
++#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];
+ timezoneName[0] = 0;
+ FILE* fp = fopen("/etc/timezone", "r");
+@@ -165,6 +302,7 @@
+ }
+
+ return timezoneName;
++#endif
+ }
+
+ CLinuxTimezone g_timezone;
diff --git a/multimedia/xbmc/files/patch-xbmc__linux__Makefile.in b/multimedia/xbmc/files/patch-xbmc__linux__Makefile.in
new file mode 100644
index 000000000000..8e17efc2af9b
--- /dev/null
+++ b/multimedia/xbmc/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/files/patch-xbmc__linux__NetworkLinux.cpp b/multimedia/xbmc/files/patch-xbmc__linux__NetworkLinux.cpp
new file mode 100644
index 000000000000..b328f7c69d01
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__linux__NetworkLinux.cpp
@@ -0,0 +1,195 @@
+--- ./xbmc/linux/NetworkLinux.cpp.orig 2010-03-06 18:18:26.000000000 +0100
++++ ./xbmc/linux/NetworkLinux.cpp 2010-12-01 12:17:34.260943458 +0100
+@@ -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>
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ #include <sys/sockio.h>
+ #include <net/if.h>
+ #include <ifaddrs.h>
+@@ -40,6 +40,9 @@
+ #include "NetworkLinux.h"
+ #include "Util.h"
+ #include "log.h"
++#if defined(__FreeBSD__)
++#include <net/route.h>
++#endif
+
+ using namespace std;
+
+@@ -61,7 +64,7 @@
+
+ bool CNetworkInterfaceLinux::IsWireless()
+ {
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ return false;
+ #else
+ struct iwreq wrq;
+@@ -106,7 +109,7 @@
+ {
+ CStdString result = "";
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ result.Format("00:00:00:00:00:00");
+ #else
+ struct ifreq ifr;
+@@ -160,7 +163,7 @@
+ {
+ CStdString result = "";
+
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ char essid[IW_ESSID_MAX_SIZE + 1];
+ memset(&essid, 0, sizeof(essid));
+
+@@ -182,7 +185,84 @@
+ {
+ 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)
+ {
+@@ -262,7 +342,7 @@
+ {
+ m_interfaces.clear();
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+
+ // Query the list of interfaces.
+ struct ifaddrs *list;
+@@ -280,7 +360,6 @@
+ }
+
+ freeifaddrs(list);
+-
+ #else
+ FILE* fp = fopen("/proc/net/dev", "r");
+ if (!fp)
+@@ -327,7 +406,7 @@
+ 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 ++)
+@@ -363,7 +442,7 @@
+ 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;
+@@ -549,7 +628,7 @@
+ encryptionMode = ENC_NONE;
+ assignment = NETWORK_DISABLED;
+
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ FILE* fp = fopen("/etc/network/interfaces", "r");
+ if (!fp)
+ {
+@@ -625,7 +704,7 @@
+
+ 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/files/patch-xbmc__linux__PlatformDefs.h b/multimedia/xbmc/files/patch-xbmc__linux__PlatformDefs.h
new file mode 100644
index 000000000000..719346230bf6
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__linux__PlatformDefs.h
@@ -0,0 +1,87 @@
+--- ./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
+@@ -37,11 +37,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
+@@ -190,16 +194,24 @@
+ typedef void* HINSTANCE;
+ typedef void* HMODULE;
+
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ #ifdef __APPLE__
+ #include <AvailabilityMacros.h>
++#endif
+ typedef int64_t off64_t;
+ typedef off_t __off_t;
+ typedef off64_t __off64_t;
+ typedef fpos_t fpos64_t;
++#ifdef __APPLE__
+ #include <sched.h>
+ #endif
++#endif
+
++#if defined(__FreeBSD__)
++typedef unsigned long DWORD;
++#else
+ typedef unsigned int DWORD;
++#endif
+ typedef unsigned short WORD;
+ typedef unsigned char BYTE;
+ typedef char CHAR;
+@@ -248,7 +260,11 @@
+ typedef intptr_t (*FARPROC)(void);
+
+ #define MAXWORD 0xffff
++#if defined(__FreeBSD__) && defined(__amd64__)
++#define MAXDWORD 0xffffffffffffffff
++#else
+ #define MAXDWORD 0xffffffff
++#endif
+
+ typedef DWORD LCID;
+ typedef WORD* LPWORD;
+@@ -303,7 +319,11 @@
+ LONG DaylightBias;
+ } TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
+
++#if defined(__FreeBSD__) && defined(__amd64__)
++#define TIME_ZONE_ID_INVALID ((DWORD)0xFFFFFFFFFFFFFFFF)
++#else
+ #define TIME_ZONE_ID_INVALID ((DWORD)0xFFFFFFFF)
++#endif
+ #define TIME_ZONE_ID_UNKNOWN 0
+ #define TIME_ZONE_ID_STANDARD 1
+ #define TIME_ZONE_ID_DAYLIGHT 2
+@@ -357,7 +377,7 @@
+ #define _O_WRONLY O_WRONLY
+ #define _off_t off_t
+
+-#if defined(__APPLE__) && (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/files/patch-xbmc__linux__PosixMountProvider.cpp b/multimedia/xbmc/files/patch-xbmc__linux__PosixMountProvider.cpp
new file mode 100644
index 000000000000..099642d55c32
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__linux__PosixMountProvider.cpp
@@ -0,0 +1,11 @@
+--- ./xbmc/linux/PosixMountProvider.cpp.orig 2010-01-09 00:47:11.000000000 +0100
++++ ./xbmc/linux/PosixMountProvider.cpp 2010-12-01 12:17:34.257919126 +0100
+@@ -98,6 +98,8 @@
+
+ #ifdef __APPLE__
+ FILE* pipe = popen("df -hT ufs,cd9660,hfs,udf", "r");
++#elif defined(__FreeBSD__)
++ FILE* pipe = popen("df -h -t ufs,cd9660,hfs,udf,zfs", "r");
+ #else
+ FILE* pipe = popen("df -hx tmpfs", "r");
+ #endif
diff --git a/multimedia/xbmc/files/patch-xbmc__linux__XFileUtils.cpp b/multimedia/xbmc/files/patch-xbmc__linux__XFileUtils.cpp
new file mode 100644
index 000000000000..a17d6d48eded
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__linux__XFileUtils.cpp
@@ -0,0 +1,56 @@
+--- ./xbmc/linux/XFileUtils.cpp.orig 2010-08-21 12:04:13.000000000 +0200
++++ ./xbmc/linux/XFileUtils.cpp 2010-12-01 12:17:34.259935534 +0100
+@@ -29,7 +29,7 @@
+ #include "XHandle.h"
+ #include <sys/types.h>
+ #include <sys/stat.h>
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ #include <sys/vfs.h>
+ #else
+ #include <sys/param.h>
+@@ -60,7 +60,7 @@
+ strPath.Replace("\\","/");
+
+ // if the file name is a directory then we add a * to look for all files in this directory
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ DIR *testDir = opendir(strPath.c_str());
+ #else
+ DIR *testDir = opendir(szPath);
+@@ -552,7 +552,7 @@
+ nMode = SEEK_END;
+
+ off64_t currOff;
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ currOff = lseek(hFile->fd, offset, nMode);
+ #else
+ currOff = lseek64(hFile->fd, offset, nMode);
+@@ -598,7 +598,7 @@
+
+ memset(lpTimeZoneInformation, 0, sizeof(TIME_ZONE_INFORMATION));
+
+-#ifdef __APPLE__
++#if defined(__APPLE__)
+ struct timezone tz;
+ gettimeofday(NULL, &tz);
+ lpTimeZoneInformation->Bias = tz.tz_minuteswest;
+@@ -621,7 +621,7 @@
+ return false;
+
+ // get the current offset
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ off64_t currOff = lseek(hFile->fd, 0, SEEK_CUR);
+ #else
+ off64_t currOff = lseek64(hFile->fd, 0, SEEK_CUR);
+@@ -649,7 +649,7 @@
+
+ off64_t toMove = liDistanceToMove.QuadPart;
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ off64_t currOff = lseek(hFile->fd, toMove, nMode);
+ #else
+ off64_t currOff = lseek64(hFile->fd, toMove, nMode);
diff --git a/multimedia/xbmc/files/patch-xbmc__linux__XRandR.cpp b/multimedia/xbmc/files/patch-xbmc__linux__XRandR.cpp
new file mode 100644
index 000000000000..14b7e6685f88
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__linux__XRandR.cpp
@@ -0,0 +1,14 @@
+--- ./xbmc/linux/XRandR.cpp.orig 2010-10-10 20:44:23.000000000 +0200
++++ ./xbmc/linux/XRandR.cpp 2010-12-01 12:17:34.256914833 +0100
+@@ -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/files/patch-xbmc__linux__XSyncUtils.cpp b/multimedia/xbmc/files/patch-xbmc__linux__XSyncUtils.cpp
new file mode 100644
index 000000000000..7007b844be87
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__linux__XSyncUtils.cpp
@@ -0,0 +1,61 @@
+--- ./xbmc/linux/XSyncUtils.cpp.orig 2010-06-25 13:02:35.000000000 +0200
++++ ./xbmc/linux/XSyncUtils.cpp 2010-12-01 12:17:34.263963880 +0100
+@@ -105,7 +105,7 @@
+ return bOk;
+ }
+
+-#if defined(_LINUX) && !defined(__APPLE__)
++#if defined(_LINUX) && !defined(__APPLE__) && !defined(__FreeBSD__)
+ static FILE* procMeminfoFP = NULL;
+ #endif
+
+@@ -117,7 +117,7 @@
+ memset(lpBuffer, 0, sizeof(MEMORYSTATUS));
+ lpBuffer->dwLength = sizeof(MEMORYSTATUS);
+
+-#ifdef __APPLE__
++#if defined(__APPLE__)
+ uint64_t physmem;
+ size_t len = sizeof physmem;
+ int mib[2] = { CTL_HW, HW_MEMSIZE };
+@@ -155,6 +155,40 @@
+ lpBuffer->dwAvailVirtual = lpBuffer->dwAvailPhys; // FIXME.
+ }
+ }
++#elif defined(__FreeBSD__)
++ /* sysctl hw.physmem */
++ size_t physmem = 0, mem_free = 0, pagesize = 0, swap_free = 0;
++ size_t mem_avail = 0, mem_inactive = 0, mem_cache = 0, len = 0;
++
++ /* physmem */
++ len = sizeof(physmem);
++ if (sysctlbyname("hw.physmem", &physmem, &len, NULL, 0) == 0) {
++ lpBuffer->dwTotalPhys = physmem;
++ lpBuffer->dwTotalVirtual = physmem;
++ }
++ /* pagesize */
++ len = sizeof(pagesize);
++ if (sysctlbyname("hw.pagesize", &pagesize, &len, NULL, 0) != 0)
++ pagesize = 4096;
++ /* mem_inactive */
++ len = sizeof(mem_inactive);
++ if (sysctlbyname("vm.stats.vm.v_inactive_count", &mem_inactive, &len, NULL, 0) == 0)
++ mem_inactive *= pagesize;
++ /* mem_cache */
++ len = sizeof(mem_cache);
++ if (sysctlbyname("vm.stats.vm.v_cache_count", &mem_cache, &len, NULL, 0) == 0)
++ mem_cache *= pagesize;
++ /* mem_free */
++ len = sizeof(mem_free);
++ if (sysctlbyname("vm.stats.vm.v_free_count", &mem_free, &len, NULL, 0) == 0)
++ mem_free *= pagesize;
++
++ /* mem_avail = mem_inactive + mem_cache + mem_free */
++ lpBuffer->dwAvailPhys = mem_inactive + mem_cache + mem_free;
++ lpBuffer->dwAvailVirtual = mem_inactive + mem_cache + mem_free;
++
++ if (sysctlbyname("vm.stats.vm.v_swappgsout", &swap_free, &len, NULL, 0) == 0)
++ lpBuffer->dwAvailPageFile = swap_free * pagesize;
+ #else
+ struct sysinfo info;
+ char name[32];
diff --git a/multimedia/xbmc/files/patch-xbmc__screensavers__rsxs-0.9__lib__stdbool_.h b/multimedia/xbmc/files/patch-xbmc__screensavers__rsxs-0.9__lib__stdbool_.h
new file mode 100644
index 000000000000..102e2de80f07
--- /dev/null
+++ b/multimedia/xbmc/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/files/patch-xbmc__utils__IoSupport.cpp b/multimedia/xbmc/files/patch-xbmc__utils__IoSupport.cpp
new file mode 100644
index 000000000000..12d4cec7d137
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__utils__IoSupport.cpp
@@ -0,0 +1,39 @@
+--- xbmc/utils/IoSupport.cpp.orig 2010-07-11 22:11:12.000000000 +0200
++++ xbmc/utils/IoSupport.cpp 2010-12-13 21:20:19.000000000 +0100
+@@ -31,7 +31,7 @@
+ #include "WIN32Util.h"
+ #include "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>
+@@ -53,6 +53,9 @@
+ #include <IOKit/storage/IODVDMediaBSDClient.h>
+ #include <IOKit/storage/IOStorageDeviceCharacteristics.h>
+ #endif
++#ifdef __FreeBSD__
++#include <sys/syslimits.h>
++#endif
+ #include "../FileSystem/cdioSupport.h"
+ #include "../FileSystem/iso9660.h"
+ #include "../MediaManager.h"
+@@ -297,7 +300,7 @@
+ #ifdef _XBOX
+ HalWriteSMBusValue(0x20, 0x0C, FALSE, 1); // close tray
+ #endif
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ // FIXME...
+ #elif defined(_LINUX)
+ char* dvdDevice = CLibcdio::GetInstance()->GetDeviceFileName();
+@@ -496,6 +499,8 @@
+ return -1;
+ }
+ return MODE2_DATA_SIZE;
++#elif defined(__FreeBSD__)
++ // TODO
+ #elif defined(_LINUX)
+ if (hDevice->m_bCDROM)
+ {
diff --git a/multimedia/xbmc/files/patch-xbmc__utils__Semaphore.cpp b/multimedia/xbmc/files/patch-xbmc__utils__Semaphore.cpp
new file mode 100644
index 000000000000..057af6f8ba61
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__utils__Semaphore.cpp
@@ -0,0 +1,29 @@
+--- ./xbmc/utils/Semaphore.cpp.orig 2010-01-22 20:37:53.000000000 +0100
++++ ./xbmc/utils/Semaphore.cpp 2010-12-01 12:17:34.283090420 +0100
+@@ -21,7 +21,7 @@
+ */
+
+ #include "Semaphore.hpp"
+-#ifdef __linux__
++#if defined(__linux__) || defined(__FreeBSD__)
+ #include "SemaphorePOSIX.h"
+ #elif defined(__APPLE__)
+ #include "SemaphoreDarwin.h"
+@@ -30,7 +30,7 @@
+ CSemaphore::CSemaphore(uint32_t initialCount/*=1*/)
+ : ISemaphore()
+ {
+-#ifdef _SEMAPHORE_H
++#if defined(_SEMAPHORE_H) || defined(_SEMAPHORE_H_)
+ m_pSemaphore = new CSemaphorePOSIX(initialCount);
+ #elif defined(_BSD_SEMAPHORE_H)
+ m_pSemaphore = new CSemaphoreDarwin(initialCount);
+@@ -42,7 +42,7 @@
+ CSemaphore::CSemaphore(const CSemaphore& sem)
+ : ISemaphore()
+ {
+-#ifdef _SEMAPHORE_H
++#if defined(_SEMAPHORE_H) || defined(_SEMAPHORE_H_)
+ m_pSemaphore = new CSemaphorePOSIX(sem.GetCount());
+ #elif defined(_BSD_SEMAPHORE_H)
+ m_pSemaphore = new CSemaphoreDarwin(sem.GetCount());
diff --git a/multimedia/xbmc/files/patch-xbmc__utils__Stopwatch.cpp b/multimedia/xbmc/files/patch-xbmc__utils__Stopwatch.cpp
new file mode 100644
index 000000000000..a6cfad61bd14
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__utils__Stopwatch.cpp
@@ -0,0 +1,11 @@
+--- ./xbmc/utils/Stopwatch.cpp.orig 2010-06-25 23:43:57.000000000 +0200
++++ ./xbmc/utils/Stopwatch.cpp 2010-12-01 12:17:34.282082217 +0100
+@@ -20,7 +20,7 @@
+ */
+
+ #include "Stopwatch.h"
+-#if defined(_LINUX) && !defined(__APPLE__)
++#if defined(_LINUX) && !defined(__APPLE__) && !defined(__FreeBSD__)
+ #include <sys/sysinfo.h>
+ #endif
+ #include "utils/TimeUtils.h"
diff --git a/multimedia/xbmc/files/patch-xbmc__utils__SystemInfo.cpp b/multimedia/xbmc/files/patch-xbmc__utils__SystemInfo.cpp
new file mode 100644
index 000000000000..7facc390a1bc
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__utils__SystemInfo.cpp
@@ -0,0 +1,21 @@
+--- ./xbmc/utils/SystemInfo.cpp.orig 2010-06-16 03:13:48.000000000 +0200
++++ ./xbmc/utils/SystemInfo.cpp 2010-12-01 12:17:34.279062075 +0100
+@@ -607,7 +607,7 @@
+ return strRet;
+ }
+
+-#if defined(_LINUX) && !defined(__APPLE__)
++#if defined(_LINUX) && !defined(__APPLE__) && !defined(__FreeBSD__)
+ CStdString CSysInfo::GetLinuxDistro()
+ {
+ static const char* release_file[] = { "/etc/debian_version",
+@@ -674,6 +674,9 @@
+ #elif defined(__APPLE__)
+ result += "Mac OS X; ";
+ result += GetUnameVersion();
++#elif defined(__FreeBSD__)
++ result += "FreeBSD; ";
++ result += GetUnameVersion();
+ #elif defined(_LINUX)
+ result += "Linux; ";
+ result += GetLinuxDistro();
diff --git a/multimedia/xbmc/files/patch-xbmc__utils__SystemInfo.h b/multimedia/xbmc/files/patch-xbmc__utils__SystemInfo.h
new file mode 100644
index 000000000000..21eebe41562e
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__utils__SystemInfo.h
@@ -0,0 +1,11 @@
+--- ./xbmc/utils/SystemInfo.h.orig 2010-06-01 17:19:39.000000000 +0200
++++ ./xbmc/utils/SystemInfo.h 2010-12-01 12:17:34.284098904 +0100
+@@ -87,7 +87,7 @@
+ bool GetHDDInfo(CStdString& strHDDModel, CStdString& strHDDSerial,CStdString& strHDDFirmware,CStdString& strHDDpw,CStdString& strHDDLockState);
+ bool GetRefurbInfo(CStdString& rfi_FirstBootTime, CStdString& rfi_PowerCycleCount);
+
+-#if defined(_LINUX) && !defined(__APPLE__)
++#if defined(_LINUX) && !defined(__APPLE__) && !defined(__FreeBSD__)
+ CStdString GetLinuxDistro();
+ #endif
+ #ifdef _LINUX
diff --git a/multimedia/xbmc/files/patch-xbmc__utils__Thread.cpp b/multimedia/xbmc/files/patch-xbmc__utils__Thread.cpp
new file mode 100644
index 000000000000..a94594970a65
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__utils__Thread.cpp
@@ -0,0 +1,56 @@
+--- ./xbmc/utils/Thread.cpp.orig 2010-05-28 02:51:41.000000000 +0200
++++ ./xbmc/utils/Thread.cpp 2010-12-01 12:17:34.281078203 +0100
+@@ -37,7 +37,7 @@
+ #include "GraphicContext.h"
+ #include "utils/TimeUtils.h"
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ //
+ // Use pthread's built-in support for TLS, it's more portable.
+ //
+@@ -60,7 +60,7 @@
+
+ CThread::CThread()
+ {
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ // Initialize thread local storage and local thread pointer.
+ pthread_once(&keyOnce, MakeTlsKeys);
+ #endif
+@@ -80,7 +80,7 @@
+
+ CThread::CThread(IRunnable* pRunnable)
+ {
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ // Initialize thread local storage and local thread pointer.
+ pthread_once(&keyOnce, MakeTlsKeys);
+ #endif
+@@ -111,7 +111,7 @@
+ }
+
+ #ifdef _LINUX
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ // Use pthread-based TLS.
+ #define LOCAL_THREAD ((CThread* )pthread_getspecific(tlsLocalThread))
+ #else
+@@ -152,7 +152,7 @@
+ /* install win32 exception translator */
+ win32_exception::install_handler();
+ #else
+-#ifndef __APPLE__
++#if !defined(__APPLE__) && !defined(__FreeBSD__)
+ pLocalThread = pThread;
+ #endif
+ struct sigaction action;
+@@ -164,7 +164,7 @@
+ #endif
+
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__FreeBSD__)
+ // Set the TLS.
+ pthread_setspecific(tlsLocalThread, (void*)pThread);
+ #endif
diff --git a/multimedia/xbmc/files/patch-xbmc__visualizations__Goom__Makefile.in b/multimedia/xbmc/files/patch-xbmc__visualizations__Goom__Makefile.in
new file mode 100644
index 000000000000..22d44cf344b2
--- /dev/null
+++ b/multimedia/xbmc/files/patch-xbmc__visualizations__Goom__Makefile.in
@@ -0,0 +1,44 @@
+--- ./xbmc/visualizations/Goom/Makefile.in.orig 2010-06-11 00:43:09.000000000 +0200
++++ ./xbmc/visualizations/Goom/Makefile.in 2010-12-01 12:17:34.253906704 +0100
+@@ -17,8 +17,39 @@
+ `cat ../../cores/DllLoader/exports/wrapper.def` \
+ ../../cores/DllLoader/exports/wrapper.o
+ endif
+- @find visualization.goom -regextype posix-extended -type f -not -iregex ".*svn.*|.*\.so|.*\.dll|.*\.pyd|.*\.pvr|.*python/.*\.zlib|.*\.vis" -exec install -D -m 0644 "{}" ../../../addons/"{}" \; -printf " -- %-75.75f\r"
+- @find visualization.goom -type f -not -iregex ".*svn.*|.*win32(dx)?\.vis\.vis" -iregex ".*\.vis" -exec install -D "{}" ../../../addons/"{}" \; -printf " -- %-75.75f\r"
++ifeq ($(findstring bsd,$(ARCH)), bsd)
++ @install -d ../../../addons/visualization.goom
++ @find -E visualization.goom -type f \
++ -not -iregex ".*svn.*|.*\.so|.*\.dll|.*\.pyd|.*\.pvr|.*python/.*\.zlib|.*\.vis" \
++ -exec install -m 0644 "{}" ../../../addons/"{}" \; \
++ -exec printf " -- %-75.75s\r" "{}" \;
++ @find visualization.goom -type f -not -iregex ".*svn.*|.*win32(dx)?\.vis\.vis" \
++ -iregex ".*\.vis" \
++ -exec install "{}" ../../../addons/"{}" \; \
++ -exec printf " -- %-75.75s\r" "{}" \;
++else
++ifeq ($(findstring osx,$(ARCH)), osx)
++ @install -d ../../../addons/visualization.goom
++ @find -E visualization.goom -type f \
++ -not -iregex ".*svn.*|.*\.so|.*\.dll|.*\.pyd|.*\.pvr|.*python/.*\.zlib|.*\.vis" \
++ -exec install -m 0644 "{}" ../../../addons/"{}" \; \
++ -exec printf " -- %-75.75s\r" "{}" \;
++ @find visualization.goom -type f -not -iregex ".*svn.*|.*win32(dx)?\.vis\.vis" \
++ -iregex ".*\.vis" \
++ -exec install "{}" ../../../addons/"{}" \; \
++ -exec printf " -- %-75.75s\r" "{}" \;
++else
++ @find visualization.goom -regextype posix-extended -type f \
++ -not -iregex ".*svn.*|.*\.so|.*\.dll|.*\.pyd|.*\.pvr|.*python/.*\.zlib|.*\.vis" \
++ -exec install -D -m 0644 "{}" ../../../addons/"{}" \; \
++ -printf " -- %-75.75f\r"
++ @find visualization.goom -type f \
++ -not -iregex ".*svn.*|.*win32(dx)?\.vis\.vis" \
++ -iregex ".*\.vis" \
++ -exec install -D "{}" ../../../addons/"{}" \; \
++ -printf " -- %-75.75f\r"
++endif
++endif
+
+ goom2k4-0/src/.libs/libgoom2.a:
+ $(MAKE) -C goom2k4-0
diff --git a/multimedia/xbmc/pkg-descr b/multimedia/xbmc/pkg-descr
new file mode 100644
index 000000000000..cecc1bd633d7
--- /dev/null
+++ b/multimedia/xbmc/pkg-descr
@@ -0,0 +1,5 @@
+XBMC Media Center (formerly named "XBox Media Center")
+is a free and open source cross-platform media-player
+and entertainment hub.
+
+WWW: http://xbmc.org/
diff --git a/multimedia/xbmc/pkg-plist b/multimedia/xbmc/pkg-plist
new file mode 100644
index 000000000000..9ed1918ef30c
--- /dev/null
+++ b/multimedia/xbmc/pkg-plist
@@ -0,0 +1,1319 @@
+bin/xbmc-standalone
+bin/xbmc
+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/script.module.pil/addon.xml
+lib/xbmc/addons/script.module.pysqlite/addon.xml
+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/libcpluff-%%ARCH%%-freebsd.so
+lib/xbmc/system/libexif-%%ARCH%%-freebsd.so
+lib/xbmc/system/libid3tag-%%ARCH%%-freebsd.so
+lib/xbmc/system/players/dvdplayer/libass-%%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/SNESAPU-%%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/system/python/python26-%%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/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/Romanian/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/Romanian/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.mtv.com/addon.xml
+%%DATADIR%%/addons/metadata.mtv.com/icon.png
+%%DATADIR%%/addons/metadata.mtv.com/mtv.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/Romanian/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/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/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/Swedish/strings.xml
+%%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/settings.xml
+%%DATADIR%%/addons/script.recentlyadded/LICENSE.txt
+%%DATADIR%%/addons/script.recentlyadded/RecentlyAdded.py
+%%DATADIR%%/addons/script.recentlyadded/addon.xml
+%%DATADIR%%/addons/script.rss.editor/LICENSE.txt
+%%DATADIR%%/addons/script.rss.editor/addon.xml
+%%DATADIR%%/addons/script.rss.editor/default.py
+%%DATADIR%%/addons/script.rss.editor/icon.png
+%%DATADIR%%/addons/script.rss.editor/resources/__init__.py
+%%DATADIR%%/addons/script.rss.editor/resources/language/English/strings.xml
+%%DATADIR%%/addons/script.rss.editor/resources/language/Finnish/strings.xml
+%%DATADIR%%/addons/script.rss.editor/resources/language/German/strings.xml
+%%DATADIR%%/addons/script.rss.editor/resources/language/Hungarian/strings.xml
+%%DATADIR%%/addons/script.rss.editor/resources/lib/__init__.py
+%%DATADIR%%/addons/script.rss.editor/resources/lib/rssEditor.py
+%%DATADIR%%/addons/script.rss.editor/resources/lib/setEditor.py
+%%DATADIR%%/addons/script.rss.editor/resources/lib/xmlParser.py
+%%DATADIR%%/addons/script.rss.editor/resources/skins/default/720p/script-RSS_Editor-rssEditor.xml
+%%DATADIR%%/addons/script.rss.editor/resources/skins/default/720p/script-RSS_Editor-setEditor.xml
+%%DATADIR%%/addons/script.rss.editor/resources/skins/default/PAL/script-RSS_Editor-rssEditor.xml
+%%DATADIR%%/addons/script.rss.editor/resources/skins/default/PAL/script-RSS_Editor-setEditor.xml
+%%DATADIR%%/addons/script.rss.editor/resources/skins/default/media/black.png
+%%DATADIR%%/addons/script.rss.editor/resources/skins/default/media/dialog-panel2.png
+%%DATADIR%%/addons/script.rss.editor/resources/skins/default/media/input-focus.png
+%%DATADIR%%/addons/script.rss.editor/resources/skins/default/media/input-nofocus.png
+%%DATADIR%%/addons/script.rss.editor/resources/skins/default/media/keyboard-btn-backspace-focus.png
+%%DATADIR%%/addons/script.rss.editor/resources/skins/default/media/keyboard-btn-backspace.png
+%%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/DialogFavourites.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogFileStacking.xml
+%%DATADIR%%/addons/skin.confluence/720p/DialogFullScreenInfo.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/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/IncludesCodecFlagging.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/MyPics.xml
+%%DATADIR%%/addons/skin.confluence/720p/MyPrograms.xml
+%%DATADIR%%/addons/skin.confluence/720p/MyVideo.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/ViewsPictures.xml
+%%DATADIR%%/addons/skin.confluence/720p/ViewsVideoLibrary.xml
+%%DATADIR%%/addons/skin.confluence/720p/VisualisationPresetList.xml
+%%DATADIR%%/addons/skin.confluence/720p/custom_DiscDialog_1113.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-Apple_Movie_Trailers-chooser.xml
+%%DATADIR%%/addons/skin.confluence/720p/script-Apple_Movie_Trailers-context.xml
+%%DATADIR%%/addons/skin.confluence/720p/script-Apple_Movie_Trailers-main.xml
+%%DATADIR%%/addons/skin.confluence/720p/script-Apple_Movie_Trailers-search.xml
+%%DATADIR%%/addons/skin.confluence/720p/script-Apple_Movie_Trailers-settings.xml
+%%DATADIR%%/addons/skin.confluence/720p/script-Apple_Movie_Trailers-showtimes.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/script-XBMC_Lyrics-settings.xml
+%%DATADIR%%/addons/skin.confluence/addon.xml
+%%DATADIR%%/addons/skin.confluence/backgrounds/addons.jpg
+%%DATADIR%%/addons/skin.confluence/backgrounds/amt.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/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/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/Bulgarian/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/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/Spanish/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Swedish/strings.xml
+%%DATADIR%%/addons/skin.confluence/language/Turkish/strings.xml
+%%DATADIR%%/addons/skin.confluence/media/Apple Movie Trailers/G.png
+%%DATADIR%%/addons/skin.confluence/media/Apple Movie Trailers/NC-17.png
+%%DATADIR%%/addons/skin.confluence/media/Apple Movie Trailers/NR.png
+%%DATADIR%%/addons/skin.confluence/media/Apple Movie Trailers/PG-13.png
+%%DATADIR%%/addons/skin.confluence/media/Apple Movie Trailers/PG.png
+%%DATADIR%%/addons/skin.confluence/media/Apple Movie Trailers/R.png
+%%DATADIR%%/addons/skin.confluence/media/AppleLogo.png
+%%DATADIR%%/addons/skin.confluence/media/ArrowDown.png
+%%DATADIR%%/addons/skin.confluence/media/ArrowUp.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuExitFO.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuExitNF.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuLogOffFO.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuLogOffNF.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuMasterFO.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuMasterNF.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuNoMasterFO.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuNoMasterNF.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuRestartFO.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuRestartNF.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuShutdownFO.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuShutdownNF.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuSleepFO.png
+%%DATADIR%%/addons/skin.confluence/media/ButtonMenuSleepNF.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/ContentPanel2.png
+%%DATADIR%%/addons/skin.confluence/media/ContentPanel4.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/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/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_Diffuse.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/HomeBlade.png
+%%DATADIR%%/addons/skin.confluence/media/HomeBladeSub.png
+%%DATADIR%%/addons/skin.confluence/media/HomeBladeSub_Part1.png
+%%DATADIR%%/addons/skin.confluence/media/HomeBladeSub_Part2.png
+%%DATADIR%%/addons/skin.confluence/media/HomeBlade_bottom.png
+%%DATADIR%%/addons/skin.confluence/media/HomeBlade_middle.png
+%%DATADIR%%/addons/skin.confluence/media/HomeBlade_top.png
+%%DATADIR%%/addons/skin.confluence/media/HomeButtonsBack.png
+%%DATADIR%%/addons/skin.confluence/media/HomeHasSub.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/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/MediaBladeSub.png
+%%DATADIR%%/addons/skin.confluence/media/MediaBladeSub_Part1.png
+%%DATADIR%%/addons/skin.confluence/media/MediaBladeSub_Part2.png
+%%DATADIR%%/addons/skin.confluence/media/MediaInfoBackLower.png
+%%DATADIR%%/addons/skin.confluence/media/MediaInfoBackUpper.png
+%%DATADIR%%/addons/skin.confluence/media/MediaItemDetailBG.png
+%%DATADIR%%/addons/skin.confluence/media/MediaSubSet.png
+%%DATADIR%%/addons/skin.confluence/media/MediaSubSetNF.png
+%%DATADIR%%/addons/skin.confluence/media/MenuItemFO.png
+%%DATADIR%%/addons/skin.confluence/media/MenuItemNF.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/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/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/OSDRecord2.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRecordFO.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRecordNF.png
+%%DATADIR%%/addons/skin.confluence/media/OSDRecordOff.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/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/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/RecentAddedFO.png
+%%DATADIR%%/addons/skin.confluence/media/RecentAddedNF.png
+%%DATADIR%%/addons/skin.confluence/media/Rss_Back.png
+%%DATADIR%%/addons/skin.confluence/media/Rss_Back_Overlay.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/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/VisOsdPanel.png
+%%DATADIR%%/addons/skin.confluence/media/VolumeIcon-Mute.png
+%%DATADIR%%/addons/skin.confluence/media/VolumeIcon.png
+%%DATADIR%%/addons/skin.confluence/media/XBMC_Logo.png
+%%DATADIR%%/addons/skin.confluence/media/amt-blank-poster.png
+%%DATADIR%%/addons/skin.confluence/media/amt-generic-actor.png
+%%DATADIR%%/addons/skin.confluence/media/amt-generic-genre-i.png
+%%DATADIR%%/addons/skin.confluence/media/amt-generic-genre.png
+%%DATADIR%%/addons/skin.confluence/media/amt-generic-noactor.png
+%%DATADIR%%/addons/skin.confluence/media/amt-generic-studio.png
+%%DATADIR%%/addons/skin.confluence/media/amt-generic-trailer-w.png
+%%DATADIR%%/addons/skin.confluence/media/amt-generic-trailer.png
+%%DATADIR%%/addons/skin.confluence/media/amt-overlay-favorite.png
+%%DATADIR%%/addons/skin.confluence/media/amt-overlay-saved.png
+%%DATADIR%%/addons/skin.confluence/media/amt-overlay-watched.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-nofocus.png
+%%DATADIR%%/addons/skin.confluence/media/defaultDVDFull.png
+%%DATADIR%%/addons/skin.confluence/media/diffuse_mirror.png
+%%DATADIR%%/addons/skin.confluence/media/diffuse_mirror2.png
+%%DATADIR%%/addons/skin.confluence/media/diffuse_mirror3.png
+%%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/2.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/6.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/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/dolbydigital.png
+%%DATADIR%%/addons/skin.confluence/media/flagging/audio/dts.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/truehd.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/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/sd.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/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/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-playmedia-FO.png
+%%DATADIR%%/addons/skin.confluence/media/home-playmedia.png
+%%DATADIR%%/addons/skin.confluence/media/home-power-FO.png
+%%DATADIR%%/addons/skin.confluence/media/home-power.png
+%%DATADIR%%/addons/skin.confluence/media/icon-mute.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/separator.png
+%%DATADIR%%/addons/skin.confluence/media/separator2.png
+%%DATADIR%%/addons/skin.confluence/media/separator_vertical.png
+%%DATADIR%%/addons/skin.confluence/media/twc-logo.png
+%%DATADIR%%/addons/skin.confluence/media/unknown-user.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/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/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/Swedish/strings.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/Swedish/strings.xml
+%%DATADIR%%/addons/visualization.projectm/resources/presets.zip
+%%DATADIR%%/addons/visualization.waveform/addon.xml
+%%DATADIR%%/addons/visualization.waveform/icon.png
+%%DATADIR%%/addons/weather.xbmc.builtin/addon.xml
+%%DATADIR%%/addons/weather.xbmc.builtin/icon.png
+%%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/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.4.2.js
+%%DATADIR%%/addons/webinterface.default/js/jquery-1.4.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.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/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/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/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/remote.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/scrapers/video/AdultFilmdatabase.gif
+%%DATADIR%%/system/scrapers/video/Excalibur.jpg
+%%DATADIR%%/system/scrapers/video/Excalibur.xml
+%%DATADIR%%/system/scrapers/video/adultcdmovies.jpg
+%%DATADIR%%/system/scrapers/video/adultcdmovies.xml
+%%DATADIR%%/system/scrapers/video/adultdvdempire.jpg
+%%DATADIR%%/system/scrapers/video/adultdvdempire.xml
+%%DATADIR%%/system/scrapers/video/adultfilmdatabase.xml
+%%DATADIR%%/system/scrapers/video/jaded.jpg
+%%DATADIR%%/system/scrapers/video/jadedVideo.xml
+%%DATADIR%%/system/scrapers/video/tlaraw.png
+%%DATADIR%%/system/scrapers/video/tlaraw.xml
+%%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/guishader_frag.glsl
+%%DATADIR%%/system/shaders/guishader_frag0.glsl
+%%DATADIR%%/system/shaders/guishader_frag1.glsl
+%%DATADIR%%/system/shaders/guishader_frag2.glsl
+%%DATADIR%%/system/shaders/guishader_frag3.glsl
+%%DATADIR%%/system/shaders/guishader_frag4.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
+@dirrm %%DATADIR%%/userdata/PictureIcon/Picon
+@dirrm %%DATADIR%%/userdata/PictureIcon
+@dirrm %%DATADIR%%/userdata
+@dirrm %%DATADIR%%/system/shaders
+@dirrm %%DATADIR%%/system/scrapers/video
+@dirrm %%DATADIR%%/system/scrapers
+@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
+@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/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
+@dirrm %%DATADIR%%/addons/xbmc.python
+@dirrm %%DATADIR%%/addons/xbmc.metadata
+@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.xbmc.builtin
+@dirrm %%DATADIR%%/addons/visualization.waveform
+@dirrm %%DATADIR%%/addons/visualization.projectm/resources/language/Swedish
+@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/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/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/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/audio
+@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging/aspectratio
+@dirrm %%DATADIR%%/addons/skin.confluence/media/flagging
+@dirrm %%DATADIR%%/addons/skin.confluence/media/LeftRating
+@dirrm %%DATADIR%%/addons/skin.confluence/media/CenterRating
+@dirrm %%DATADIR%%/addons/skin.confluence/media/Apple Movie Trailers
+@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/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/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/Bulgarian
+@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
+@dirrm %%DATADIR%%/addons/skin.confluence
+@dirrm %%DATADIR%%/addons/script.rss.editor/resources/skins/default/media
+@dirrm %%DATADIR%%/addons/script.rss.editor/resources/skins/default/PAL
+@dirrm %%DATADIR%%/addons/script.rss.editor/resources/skins/default/720p
+@dirrm %%DATADIR%%/addons/script.rss.editor/resources/skins/default
+@dirrm %%DATADIR%%/addons/script.rss.editor/resources/skins
+@dirrm %%DATADIR%%/addons/script.rss.editor/resources/lib
+@dirrm %%DATADIR%%/addons/script.rss.editor/resources/language/Hungarian
+@dirrm %%DATADIR%%/addons/script.rss.editor/resources/language/German
+@dirrm %%DATADIR%%/addons/script.rss.editor/resources/language/Finnish
+@dirrm %%DATADIR%%/addons/script.rss.editor/resources/language/English
+@dirrm %%DATADIR%%/addons/script.rss.editor/resources/language
+@dirrm %%DATADIR%%/addons/script.rss.editor/resources
+@dirrm %%DATADIR%%/addons/script.rss.editor
+@dirrm %%DATADIR%%/addons/script.recentlyadded
+@dirrm %%DATADIR%%/addons/screensaver.xbmc.builtin.slideshow/resources/language/Swedish
+@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/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/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/Romanian
+@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.mtv.com
+@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/Romanian
+@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/Romanian
+@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
+@dirrm share/xbmc
+@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 %%DOCSDIR%%
+@dirrmtry share/doc
+@dirrmtry share/applications
+@dirrm lib/xbmc/system/players/dvdplayer
+@dirrm lib/xbmc/system/players/paplayer
+@dirrm lib/xbmc/system/players
+@dirrm lib/xbmc/system/python
+@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/script.module.pysqlite/lib
+@dirrm lib/xbmc/addons/script.module.pysqlite
+@dirrm lib/xbmc/addons/script.module.pil/lib
+@dirrm lib/xbmc/addons/script.module.pil
+@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
+@dirrm lib/xbmc