diff options
-rw-r--r-- | multimedia/xbmc/README | 24 | ||||
-rw-r--r-- | multimedia/xbmc/doinst.sh | 4 | ||||
-rw-r--r-- | multimedia/xbmc/patches/fix-wrapper_c.patch | 11 | ||||
-rw-r--r-- | multimedia/xbmc/patches/jpegint_h.patch | 17 | ||||
-rw-r--r-- | multimedia/xbmc/patches/xbmc-9.11-wavpack.patch | 44 | ||||
-rw-r--r-- | multimedia/xbmc/patches/xbmc-lib64.patch | 38 | ||||
-rw-r--r-- | multimedia/xbmc/slack-desc | 19 | ||||
-rw-r--r-- | multimedia/xbmc/xbmc.SlackBuild | 158 | ||||
-rw-r--r-- | multimedia/xbmc/xbmc.info | 10 |
9 files changed, 325 insertions, 0 deletions
diff --git a/multimedia/xbmc/README b/multimedia/xbmc/README new file mode 100644 index 000000000000..24814e35dbbd --- /dev/null +++ b/multimedia/xbmc/README @@ -0,0 +1,24 @@ +XBMC is an award winning media center application for Linux, Mac OS X, +Windows and XBox. The ultimate hub for all your media, XBMC is easy to +use, looks slick, and has a large helpful community. XBMC supports +viewing and playing a vast library of audio, video and image formats. +XBMC has a sophisticated library management system that allows you to +organize all your media to give you quick and immediate access. + +XBMC requires libsamplerate, faad2, libmms and enca. + +Optional: vobcopy, lirc, faac, SDL_gfx, pulseaudio, cwiid, pybluez, +lightblue, libvdpau and avahi. Starting with version 9.11 XBMC can +be built with additional system libraries which are ffmpeg, libmpeg2, +libdca (aka libdts), a52dec (aka liba52) and libass (all available +at slackbuilds.org). These additional system libraries have to be +manually added to xbmc.SlackBuild. Look inside the slackbuild for +addtional information. + +In order to use a Wii remote with XBMC pass USE_WII=yes to the +slackbuild. This now makes cwiid a build requirement and also requires +pybluez or lightblue for bluetooth support. + +Some plugins to use are available at: +http://code.google.com/p/xbmc-addons/ +http://www.xbmcscripts.com/ diff --git a/multimedia/xbmc/doinst.sh b/multimedia/xbmc/doinst.sh new file mode 100644 index 000000000000..4e8ba7071dea --- /dev/null +++ b/multimedia/xbmc/doinst.sh @@ -0,0 +1,4 @@ +if [ -x /usr/bin/update-desktop-database ]; then + /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1 +fi + diff --git a/multimedia/xbmc/patches/fix-wrapper_c.patch b/multimedia/xbmc/patches/fix-wrapper_c.patch new file mode 100644 index 000000000000..cb019b98da9b --- /dev/null +++ b/multimedia/xbmc/patches/fix-wrapper_c.patch @@ -0,0 +1,11 @@ +Index: /trunk/xbmc/cores/DllLoader/exports/wrapper.c
+===================================================================
+--- xbmc/cores/DllLoader/exports/wrapper.c (revision 23049)
++++ xbmc/cores/DllLoader/exports/wrapper.c (revision 25862)
+@@ -77,5 +77,5 @@
+ int dll_fseek64(FILE *stream, off64_t offset, int origin);
+ long dll_ftell(FILE *stream);
+-off64_t ftell64(FILE *stream);
++off64_t dll_ftell64(FILE *stream);
+ void dll_rewind(FILE* stream);
+ int dll_fgetpos(FILE* stream, fpos_t* pos);
diff --git a/multimedia/xbmc/patches/jpegint_h.patch b/multimedia/xbmc/patches/jpegint_h.patch new file mode 100644 index 000000000000..61e8d78c03f5 --- /dev/null +++ b/multimedia/xbmc/patches/jpegint_h.patch @@ -0,0 +1,17 @@ +diff -Naur XBMC.orig/xbmc/lib/cximage-6.0/tiff/tif_ojpeg.c XBMC/xbmc/lib/cximage-6.0/tiff/tif_ojpeg.c +--- XBMC.orig/xbmc/lib/cximage-6.0/tiff/tif_ojpeg.c 2009-05-26 22:38:28.000000000 +0000 ++++ XBMC/xbmc/lib/cximage-6.0/tiff/tif_ojpeg.c 2009-09-08 00:55:37.000000000 +0000 +@@ -31,11 +31,9 @@ + #endif
+ #define JPEG_INTERNALS /* Include "jpegint.h" for "DSTATE_*" symbols */
+ #undef INLINE
+-#ifdef _LINUX +-#include <jpeglib.h>
+-#else ++#ifdef _LINUX
+ #include "../jpeg/jpeglib.h"
+-#endif ++#endif
+ #undef JPEG_INTERNALS
+
+ /* Hack for Microsoft's Wang Imaging for Windows output files */
diff --git a/multimedia/xbmc/patches/xbmc-9.11-wavpack.patch b/multimedia/xbmc/patches/xbmc-9.11-wavpack.patch new file mode 100644 index 000000000000..ac2f5211c0bf --- /dev/null +++ b/multimedia/xbmc/patches/xbmc-9.11-wavpack.patch @@ -0,0 +1,44 @@ +fix from upstream trunk + +http://xbmc.org/trac/ticket/8185 + +Index: trunk/xbmc/cores/paplayer/DllWAVPack.h +=================================================================== +--- xbmc/cores/paplayer/DllWAVPack.h (revision 22927) ++++ xbmc/cores/paplayer/DllWAVPack.h (revision 25321) +@@ -58,7 +58,7 @@ + virtual int WavpackGetReducedChannels (WavpackContext *wpc)=0; + virtual int WavpackGetFloatNormExp (WavpackContext *wpc)=0; +- virtual int WavpackGetMD5Sum (WavpackContext *wpc, uchar data [16])=0; ++ virtual int WavpackGetMD5Sum (WavpackContext *wpc, unsigned char data [16])=0; + virtual uint32_t WavpackGetWrapperBytes (WavpackContext *wpc)=0; +- virtual uchar *WavpackGetWrapperData (WavpackContext *wpc)=0; ++ virtual unsigned char *WavpackGetWrapperData (WavpackContext *wpc)=0; + virtual void WavpackFreeWrapper (WavpackContext *wpc)=0; + virtual void WavpackSeekTrailingWrapper (WavpackContext *wpc)=0; +@@ -77,5 +77,5 @@ + virtual int WavpackSetConfiguration (WavpackContext *wpc, WavpackConfig *config, uint32_t total_samples)=0; + virtual int WavpackAddWrapper (WavpackContext *wpc, void *data, uint32_t bcount)=0; +- virtual int WavpackStoreMD5Sum (WavpackContext *wpc, uchar data [16])=0; ++ virtual int WavpackStoreMD5Sum (WavpackContext *wpc, unsigned char data [16])=0; + virtual int WavpackPackInit (WavpackContext *wpc)=0; + virtual int WavpackPackSamples (WavpackContext *wpc, int32_t *sample_buffer, uint32_t sample_count)=0; +@@ -133,9 +133,9 @@ + virtual int WavpackGetFloatNormExp (WavpackContext *wpc) + { return ::WavpackGetFloatNormExp (wpc); } +- virtual int WavpackGetMD5Sum (WavpackContext *wpc, uchar data [16]) ++ virtual int WavpackGetMD5Sum (WavpackContext *wpc, unsigned char data [16]) + { return ::WavpackGetMD5Sum (wpc, data); } + virtual uint32_t WavpackGetWrapperBytes (WavpackContext *wpc) + { return ::WavpackGetWrapperBytes (wpc); } +- virtual uchar *WavpackGetWrapperData (WavpackContext *wpc) ++ virtual unsigned char *WavpackGetWrapperData (WavpackContext *wpc) + { return ::WavpackGetWrapperData (wpc); } + virtual void WavpackFreeWrapper (WavpackContext *wpc) +@@ -171,5 +171,5 @@ + virtual int WavpackAddWrapper (WavpackContext *wpc, void *data, uint32_t bcount) + { return ::WavpackAddWrapper (wpc, data, bcount); } +- virtual int WavpackStoreMD5Sum (WavpackContext *wpc, uchar data [16]) ++ virtual int WavpackStoreMD5Sum (WavpackContext *wpc, unsigned char data [16]) + { return ::WavpackStoreMD5Sum (wpc, data); } + virtual int WavpackPackInit (WavpackContext *wpc) diff --git a/multimedia/xbmc/patches/xbmc-lib64.patch b/multimedia/xbmc/patches/xbmc-lib64.patch new file mode 100644 index 000000000000..2b1856fb54fa --- /dev/null +++ b/multimedia/xbmc/patches/xbmc-lib64.patch @@ -0,0 +1,38 @@ +diff -Naur xbmc-9.11.orig/xbmc/FileSystem/Makefile xbmc-9.11/xbmc/FileSystem/Makefile +--- xbmc-9.11.orig/xbmc/FileSystem/Makefile 2009-10-10 13:00:16.000000000 +0000 ++++ xbmc-9.11/xbmc/FileSystem/Makefile 2009-12-31 16:37:12.000000000 +0000 +@@ -1,4 +1,4 @@ +-INCLUDES=-I. -I../ -I../cores -I../linux -I../../guilib -I../lib/UnrarXLib -I../utils -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include ++INCLUDES=-I. -I../ -I../cores -I../linux -I../../guilib -I../lib/UnrarXLib -I../utils -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib64/dbus-1.0/include -I/usr/lib64/glib-2.0/include + INCLUDES+=-I../lib/libcdio/libcdio/include + + CXXFLAGS+=-D__STDC_FORMAT_MACROS \ +diff -Naur xbmc-9.11.orig/xbmc/Makefile xbmc-9.11/xbmc/Makefile +--- xbmc-9.11.orig/xbmc/Makefile 2009-10-26 12:04:25.000000000 +0000 ++++ xbmc-9.11/xbmc/Makefile 2009-12-31 16:37:12.000000000 +0000 +@@ -1,4 +1,4 @@ +-INCLUDES+=-I. -Ilinux -Icores -I../guilib -Iutils -IFileSystem -I/usr/include/freetype2 -Icores/dvdplayer -Icores/ffmpeg ++INCLUDES+=-I. -Ilinux -Icores -I../guilib -Iutils -IFileSystem -I/usr/include/freetype2 -Icores/dvdplayer -Icores/ffmpeg -I/usr/lib64/dbus-1.0/include -I/usr/lib64/glib-2.0/include + + INCLUDES+=-Ilib/libUPnP/Platinum/Source/Core \ + -Ilib/libUPnP/Platinum/Source/Platinum \ +diff -Naur xbmc-9.11.orig/xbmc/linux/Makefile.in xbmc-9.11/xbmc/linux/Makefile.in +--- xbmc-9.11.orig/xbmc/linux/Makefile.in 2009-10-12 10:36:28.000000000 +0000 ++++ xbmc-9.11/xbmc/linux/Makefile.in 2009-12-31 16:37:12.000000000 +0000 +@@ -1,6 +1,6 @@ + ARCH=@ARCH@ + +-INCLUDES=-I. -I.. -I../../guilib -I../utils -I../cores -I../FileSystem ++INCLUDES=-I. -I.. -I../../guilib -I../utils -I../cores -I../FileSystem -I/usr/lib64/dbus-1.0/include -I/usr/lib64/glib-2.0/include + ifeq ($(findstring osx,$(ARCH)), osx) + INCLUDES+=-I../osx + endif +diff -Naur xbmc-9.11.orig/xbmc/utils/Makefile xbmc-9.11/xbmc/utils/Makefile +--- xbmc-9.11.orig/xbmc/utils/Makefile 2009-10-28 01:59:14.000000000 +0000 ++++ xbmc-9.11/xbmc/utils/Makefile 2009-12-31 16:37:12.000000000 +0000 +@@ -1,4 +1,4 @@ +-INCLUDES=-I. -I.. -I../../ -I../linux -I../cores -I../../guilib ++INCLUDES=-I. -I.. -I../../ -I../linux -I../cores -I../../guilib -I/usr/lib64/dbus-1.0/include -I/usr/lib64/glib-2.0/include + + SRCS=AlarmClock.cpp \ + Archive.cpp \ diff --git a/multimedia/xbmc/slack-desc b/multimedia/xbmc/slack-desc new file mode 100644 index 000000000000..a219c67764b1 --- /dev/null +++ b/multimedia/xbmc/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' on +# the right side marks the last column you can put a character in. You must make +# exactly 11 lines for the formatting to be correct. It's also customary to +# leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +xbmc: XBMC (Multi-platform Media Center) +xbmc: +xbmc: XBMC is an award winning media center application for Linux, Mac OS X, +xbmc: Windows and XBox. The ultimate hub for all your media, XBMC is easy to +xbmc: use, looks slick, and has a large helpful community. XBMC supports +xbmc: viewing and playing a vast library of audio, video and image formats. +xbmc: XBMC has a sophisticated library management system that allows you to +xbmc: organize all your media to give you quick and immediate access. +xbmc: +xbmc: Homepage: http://xbmc.org/ +xbmc: diff --git a/multimedia/xbmc/xbmc.SlackBuild b/multimedia/xbmc/xbmc.SlackBuild new file mode 100644 index 000000000000..0aa640bf23e2 --- /dev/null +++ b/multimedia/xbmc/xbmc.SlackBuild @@ -0,0 +1,158 @@ +#!/bin/sh + +# Slackware build script for XBMC + +# Copyright 2009-2010 Larry Hajali <larryhaja[at]gmail[dot]com> +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED ''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 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. + +PRGNAM=xbmc +VERSION=${VERSION:-9.11} +ARCH=${ARCH:-i486} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +# Let's get rid of the lsb_release dependency. +sed -i 's|/usr/bin/lsb_release -d|/bin/cat /etc/slackware-version|' \ + xbmc/utils/SystemInfo.cpp + +# Fix a hardcoded python2.5 install path in the EventClients Makefile. +PYVER=$(python -c 'import sys; print sys.version[:3]') +sed -i "s|lib/python2.5|lib${LIBDIRSUFFIX}/python${PYVER}|g" \ + tools/EventClients/Makefile + +# Patch to use XBMC's jpegint.h because of a missing header file in Slackware. +# Fix lib64 compatibility. +patch -p1 < $CWD/patches/jpegint_h.patch +patch -p1 < $CWD/patches/xbmc-lib64.patch +# Fixes from upstream not included in stable release. +patch -p0 < $CWD/patches/fix-wrapper_c.patch +patch -p0 < $CWD/patches/xbmc-9.11-wavpack.patch + +# Create configure scripts. +[ ! -x bootstrap ] && chmod +x bootstrap +./bootstrap + +# XBMC doesn't use a consistent --libdir so we need to provide +# some missing includes. +EXTRA_INCLUDES="\ + -I/usr/lib${LIBDIRSUFFIX}/dbus-1.0/include \ + -I/usr/lib${LIBDIRSUFFIX}/glib-2.0/include" + +# Here are some additional flags that can be manually added to configure +# so XBMC will use system libraries instead of shipped libraries. +# --enable-external-ffmpeg * to use system ffmpeg +# --enable-external-liba52 * to use system liba52 library +# comes with a52dec +# --enable-external-libdts * to use system DTS Coherent Acoustics decoder +# also known as libdca +# --enable-external-libmpeg2 * to use system mpeg-2 and mpeg-1 decoder +# --enable-external-libass * to use system subtitle renderer +# --enable-external-libraries * to enable all optional system libraries +CFLAGS="$SLKCFLAGS $EXTRA_INCLUDES" \ +CXXFLAGS="$SLKCFLAGS $EXTRA_INCLUDES" \ +./configure \ + --prefix=/usr \ + --enable-vdpau \ + --enable-xrandr \ + --enable-ccache \ + --disable-debug \ + --enable-gl \ + --enable-pulse \ + --enable-faac \ + --enable-dvdcss \ + --enable-mid \ + --enable-avahi \ + --enable-joystick \ + --enable-goom \ + --enable-external-libogg \ + --enable-external-libwavpack \ + --enable-external-python \ + --build=$ARCH-slackware-linux + +make + +# Wii controller usage. Default is no. +if ! [ "${USE_WII:-no}" = "no" ]; then + make eventclients prefix=$PKG/usr installdir=/usr WII_EXTRA_OPTS="-DCWIID_OLD" +fi + +make install install-livedatas prefix=$PKG/usr + +# Fix executable permissions. +chmod 0755 $PKG/usr/bin/* + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +# Install manpages. +mkdir -p $PKG/usr/man/man1 +install -m 0644 \ + docs/manpages/{diskmounter,runXBMC,xbmc.bin,xbmc,xbmc-standalone,xbmc-send,setAlsaVolumes,installXBMC}.1 \ + $PKG/usr/man/man1 +if ! [ "${USE_WII:-no}" = "no" ]; then + install -m 0644 docs/manpages/{xbmc-j2meremote,xbmc-ps3remote,xbmc-wiiremote}.1 \ + $PKG/usr/man/man1 +fi +gzip -9 $PKG/usr/man/man?/*.? + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a \ + copying.txt keymapping.txt LICENSE.GPL README.linux tools/EventClients/README.txt \ + $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +rm -f $PKG/usr/share/xbmc/{README.linux,LICENSE.GPL,*.txt} + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/multimedia/xbmc/xbmc.info b/multimedia/xbmc/xbmc.info new file mode 100644 index 000000000000..db8fe5fb16ef --- /dev/null +++ b/multimedia/xbmc/xbmc.info @@ -0,0 +1,10 @@ +PRGNAM="xbmc" +VERSION="9.11" +HOMEPAGE="http://xbmc.org/" +DOWNLOAD="http://downloads.sourceforge.net/xbmc/xbmc-9.11.tar.gz" +MD5SUM="9a68ac1e2f44a54cc3803fcdb1265767" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +MAINTAINER="Larry Hajali" +EMAIL="larryhaja[at]gmail[dot]com" +APPROVED="Erik Hanson" |