diff options
author | decke <decke@FreeBSD.org> | 2010-12-30 04:39:31 +0800 |
---|---|---|
committer | decke <decke@FreeBSD.org> | 2010-12-30 04:39:31 +0800 |
commit | c2368a1555688c93c8de05c6f16f581b11c9898e (patch) | |
tree | 598565d8077e924457fad8b59cb69d1a4d2d4a4e /multimedia | |
parent | d54564cfab7751fd92fb537b4d0a0f4cb96d14bf (diff) | |
download | freebsd-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')
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 |