From b4928b094cbb4b18c7794e3c2e8f6fd9cd3841f3 Mon Sep 17 00:00:00 2001 From: Larry Hajali Date: Mon, 14 Jun 2010 14:32:26 -0500 Subject: multimedia/xbmc: Added (Multi-platform Media Center) Signed-off-by: Erik Hanson --- multimedia/xbmc/README | 25 +++ multimedia/xbmc/doinst.sh | 4 + multimedia/xbmc/patches/fix-wrapper_c.patch | 11 ++ multimedia/xbmc/patches/jpegint_h.patch | 17 ++ multimedia/xbmc/patches/xbmc-9.11-libpng14.patch | 89 ++++++++++ ...9.11-use-cdio-system-headers-on-non-win32.patch | 129 +++++++++++++++ multimedia/xbmc/patches/xbmc-9.11-wavpack.patch | 44 +++++ multimedia/xbmc/patches/xbmc-lib64.patch | 38 +++++ multimedia/xbmc/slack-desc | 19 +++ multimedia/xbmc/xbmc.SlackBuild | 180 +++++++++++++++++++++ multimedia/xbmc/xbmc.info | 10 ++ 11 files changed, 566 insertions(+) create mode 100644 multimedia/xbmc/README create mode 100644 multimedia/xbmc/doinst.sh create mode 100644 multimedia/xbmc/patches/fix-wrapper_c.patch create mode 100644 multimedia/xbmc/patches/jpegint_h.patch create mode 100644 multimedia/xbmc/patches/xbmc-9.11-libpng14.patch create mode 100644 multimedia/xbmc/patches/xbmc-9.11-use-cdio-system-headers-on-non-win32.patch create mode 100644 multimedia/xbmc/patches/xbmc-9.11-wavpack.patch create mode 100644 multimedia/xbmc/patches/xbmc-lib64.patch create mode 100644 multimedia/xbmc/slack-desc create mode 100644 multimedia/xbmc/xbmc.SlackBuild create mode 100644 multimedia/xbmc/xbmc.info (limited to 'multimedia') diff --git a/multimedia/xbmc/README b/multimedia/xbmc/README new file mode 100644 index 0000000000000..91e8644d08d00 --- /dev/null +++ b/multimedia/xbmc/README @@ -0,0 +1,25 @@ +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 faad2, libmms and enca. + +Optional: vobcopy, lirc, faac, SDL_gfx, 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) libass and python (all available +at slackbuilds.org or included in Slackware). Look inside the slackbuild +for addtional information to turn these options on. + +Optional: pulseaudio (not available at slackbuilds.org) + +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 0000000000000..4e8ba7071dea7 --- /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 0000000000000..cb019b98da9b3 --- /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 0000000000000..61e8d78c03f52 --- /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 +-#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-libpng14.patch b/multimedia/xbmc/patches/xbmc-9.11-libpng14.patch new file mode 100644 index 0000000000000..d3b236329a261 --- /dev/null +++ b/multimedia/xbmc/patches/xbmc-9.11-libpng14.patch @@ -0,0 +1,89 @@ +diff -Nur xbmc-9.11.orig/xbmc/lib/cximage-6.0/CxImage/ximapng.cpp xbmc-9.11/xbmc/lib/cximage-6.0/CxImage/ximapng.cpp +--- xbmc-9.11.orig/xbmc/lib/cximage-6.0/CxImage/ximapng.cpp 2008-07-18 23:40:53.000000000 +0300 ++++ xbmc-9.11/xbmc/lib/cximage-6.0/CxImage/ximapng.cpp 2010-01-20 21:55:11.000000000 +0200 +@@ -142,9 +142,9 @@ + if (info_ptr->num_trans!=0){ //palette transparency + if (info_ptr->num_trans==1){ + if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE){ +- info.nBkgndIndex = info_ptr->trans_values.index; ++ info.nBkgndIndex = info_ptr->trans_color.index; + } else{ +- info.nBkgndIndex = info_ptr->trans_values.gray>>nshift; ++ info.nBkgndIndex = info_ptr->trans_color.gray>>nshift; + } + } + if (info_ptr->num_trans>1){ +@@ -152,7 +152,7 @@ + if (pal){ + DWORD ip; + for (ip=0;ipnum_trans);ip++) +- pal[ip].rgbReserved=info_ptr->trans[ip]; ++ pal[ip].rgbReserved=info_ptr->trans_alpha[ip]; + for (ip=info_ptr->num_trans;iptrans_values.red>>nshift); +- info.nBkgndColor.rgbGreen = (BYTE)(info_ptr->trans_values.green>>nshift); +- info.nBkgndColor.rgbBlue = (BYTE)(info_ptr->trans_values.blue>>nshift); ++ info.nBkgndColor.rgbRed = (BYTE)(info_ptr->trans_color.red>>nshift); ++ info.nBkgndColor.rgbGreen = (BYTE)(info_ptr->trans_color.green>>nshift); ++ info.nBkgndColor.rgbBlue = (BYTE)(info_ptr->trans_color.blue>>nshift); + info.nBkgndColor.rgbReserved = 0; + info.nBkgndIndex = 0; + } +@@ -417,12 +417,12 @@ + if (info.nBkgndIndex >= 0){ + info_ptr->num_trans = 1; + info_ptr->valid |= PNG_INFO_tRNS; +- info_ptr->trans = trans; +- info_ptr->trans_values.index = (BYTE)info.nBkgndIndex; +- info_ptr->trans_values.red = tc.rgbRed; +- info_ptr->trans_values.green = tc.rgbGreen; +- info_ptr->trans_values.blue = tc.rgbBlue; +- info_ptr->trans_values.gray = info_ptr->trans_values.index; ++ info_ptr->trans_alpha = trans; ++ info_ptr->trans_color.index = (BYTE)info.nBkgndIndex; ++ info_ptr->trans_color.red = tc.rgbRed; ++ info_ptr->trans_color.green = tc.rgbGreen; ++ info_ptr->trans_color.blue = tc.rgbBlue; ++ info_ptr->trans_color.gray = info_ptr->trans_color.index; + + // the transparency indexes start from 0 for non grayscale palette + if (!bGrayScale && head.biClrUsed && info.nBkgndIndex) +@@ -443,7 +443,7 @@ + trans[ip]=GetPaletteColor((BYTE)ip).rgbReserved; + info_ptr->num_trans = (WORD)nc; + info_ptr->valid |= PNG_INFO_tRNS; +- info_ptr->trans = trans; ++ info_ptr->trans_alpha = trans; + } + + // copy the palette colors +diff -Nur xbmc-9.11.orig/xbmc/screensavers/rsxs-0.9/src/pngimage.cc xbmc-9.11/xbmc/screensavers/rsxs-0.9/src/pngimage.cc +--- xbmc-9.11.orig/xbmc/screensavers/rsxs-0.9/src/pngimage.cc 2008-07-30 23:35:38.000000000 +0300 ++++ xbmc-9.11/xbmc/screensavers/rsxs-0.9/src/pngimage.cc 2010-01-20 22:21:01.000000000 +0200 +@@ -65,7 +65,7 @@ + (png_get_color_type(png, pngInfo) == PNG_COLOR_TYPE_GRAY) && + png_get_bit_depth(png, pngInfo) < 8 + ) +- png_set_gray_1_2_4_to_8(png); ++ png_set_expand_gray_1_2_4_to_8(png); + if (png_get_valid(png, pngInfo, PNG_INFO_tRNS)) + png_set_tRNS_to_alpha(png); + if (fullColor) +diff -Nur xbmc-9.11.orig/xbmc/visualizations/Goom/goom2k4-0/src/pngload.c xbmc-9.11/xbmc/visualizations/Goom/goom2k4-0/src/pngload.c +--- xbmc-9.11.orig/xbmc/visualizations/Goom/goom2k4-0/src/pngload.c 2008-08-04 05:05:51.000000000 +0300 ++++ xbmc-9.11/xbmc/visualizations/Goom/goom2k4-0/src/pngload.c 2010-01-20 22:16:23.000000000 +0200 +@@ -94,7 +94,7 @@ + png_set_palette_to_rgb (png_ptr); + + if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) +- png_set_gray_1_2_4_to_8 (png_ptr); ++ png_set_expand_gray_1_2_4_to_8 (png_ptr); + else if (color_type == PNG_COLOR_TYPE_GRAY || + color_type == PNG_COLOR_TYPE_GRAY_ALPHA) + png_set_gray_to_rgb (png_ptr); diff --git a/multimedia/xbmc/patches/xbmc-9.11-use-cdio-system-headers-on-non-win32.patch b/multimedia/xbmc/patches/xbmc-9.11-use-cdio-system-headers-on-non-win32.patch new file mode 100644 index 0000000000000..2f29b37f5cc57 --- /dev/null +++ b/multimedia/xbmc/patches/xbmc-9.11-use-cdio-system-headers-on-non-win32.patch @@ -0,0 +1,129 @@ +diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp +index 9097519..9b6418d 100644 +--- a/xbmc/Application.cpp ++++ b/xbmc/Application.cpp +@@ -236,7 +236,11 @@ + #endif + + #ifdef HAS_DVD_DRIVE ++#ifdef _WIN32 + #include "lib/libcdio/logging.h" ++#else ++#include ++#endif + #endif + + #ifdef HAS_HAL +diff --git a/xbmc/FileSystem/Makefile b/xbmc/FileSystem/Makefile +index 782d57a..1e524ed 100644 +--- a/xbmc/FileSystem/Makefile ++++ b/xbmc/FileSystem/Makefile +@@ -1,5 +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 -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 --git a/xbmc/FileSystem/cdioSupport.cpp b/xbmc/FileSystem/cdioSupport.cpp +index 00e5fdd..21a0b67 100644 +--- a/xbmc/FileSystem/cdioSupport.cpp ++++ b/xbmc/FileSystem/cdioSupport.cpp +@@ -26,7 +26,7 @@ + #include "cdioSupport.h" + #include "utils/SingleLock.h" + #include "utils/log.h" +-#ifndef _LINUX ++#ifdef _WIN32 + #include "lib/libcdio/logging.h" + #include "lib/libcdio/util.h" + #include "lib/libcdio/mmc.h" +diff --git a/xbmc/FileSystem/iso9660.cpp b/xbmc/FileSystem/iso9660.cpp +index 6e1633f..58fbc50 100644 +--- a/xbmc/FileSystem/iso9660.cpp ++++ b/xbmc/FileSystem/iso9660.cpp +@@ -44,7 +44,7 @@ ISO9660 + #include "utils/CharsetConverter.h" + + #include "DetectDVDType.h" // for MODE2_DATA_SIZE etc. +-#ifdef _LINUX ++#ifndef _WIN32 + #include + #else + #include "lib/libcdio/bytesex.h" // for from_723 & from_733 +diff --git a/xbmc/Makefile b/xbmc/Makefile +index abfbdcb..f55381a 100644 +--- a/xbmc/Makefile ++++ b/xbmc/Makefile +@@ -8,8 +8,6 @@ INCLUDES+=-Ilib/libUPnP/Platinum/Source/Core \ + -Ilib/libUPnP/Neptune/Source/System/Posix \ + -Ilib/libUPnP/Neptune/Source/Core + +-INCLUDES+=-Ilib/libcdio/libcdio/include +- + SRCS=Application.cpp \ + CueDocument.cpp \ + GUISettings.cpp \ +diff --git a/xbmc/cdrip/CDDAReader.cpp b/xbmc/cdrip/CDDAReader.cpp +index c8b37b2..e3e9c0b 100644 +--- a/xbmc/cdrip/CDDAReader.cpp ++++ b/xbmc/cdrip/CDDAReader.cpp +@@ -24,7 +24,11 @@ + #ifdef HAS_CDDA_RIPPER + + #include "CDDAReader.h" ++#ifdef _WIN32 + #include "lib/libcdio/cdio.h" ++#else ++#include ++#endif + #include "utils/log.h" + + #define SECTOR_COUNT 52 +diff --git a/xbmc/cores/paplayer/AC3CDDACodec.cpp b/xbmc/cores/paplayer/AC3CDDACodec.cpp +index 20cded7..f2a077a 100644 +--- a/xbmc/cores/paplayer/AC3CDDACodec.cpp ++++ b/xbmc/cores/paplayer/AC3CDDACodec.cpp +@@ -22,7 +22,11 @@ + #include "system.h" + #include "AC3CDDACodec.h" + #ifdef HAS_AC3_CDDA_CODEC ++#ifdef _WIN32 + #include "lib/libcdio/sector.h" ++#else ++#include ++#endif + + AC3CDDACodec::AC3CDDACodec() : AC3Codec() + { +diff --git a/xbmc/cores/paplayer/CDDAcodec.cpp b/xbmc/cores/paplayer/CDDAcodec.cpp +index ca8f1be..42460dc 100644 +--- a/xbmc/cores/paplayer/CDDAcodec.cpp ++++ b/xbmc/cores/paplayer/CDDAcodec.cpp +@@ -20,7 +20,11 @@ + */ + + #include "CDDAcodec.h" ++#ifdef _WIN32 + #include "lib/libcdio/sector.h" ++#else ++#include ++#endif + + #define SECTOR_COUNT 55 // max. sectors that can be read at once + #define MAX_BUFFER_SIZE 2*SECTOR_COUNT*CDIO_CD_FRAMESIZE_RAW +diff --git a/xbmc/cores/paplayer/DTSCDDACodec.cpp b/xbmc/cores/paplayer/DTSCDDACodec.cpp +index e64cc2e..9bc46c6 100644 +--- a/xbmc/cores/paplayer/DTSCDDACodec.cpp ++++ b/xbmc/cores/paplayer/DTSCDDACodec.cpp +@@ -22,7 +22,11 @@ + #include "system.h" + #include "DTSCDDACodec.h" + #ifdef HAS_DTS_CODEC ++#ifdef _WIN32 + #include "lib/libcdio/sector.h" ++#else ++#include ++#endif + + DTSCDDACodec::DTSCDDACodec() : DTSCodec() + { 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 0000000000000..ac2f5211c0bfe --- /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 0000000000000..2b1856fb54fa1 --- /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 0000000000000..437f52db536f9 --- /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 0000000000000..a397d8a93d792 --- /dev/null +++ b/multimedia/xbmc/xbmc.SlackBuild @@ -0,0 +1,180 @@ +#!/bin/sh + +# Slackware build script for XBMC + +# Copyright 2009-2010 Larry Hajali +# 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=9.11 +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +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" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +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 +patch -p1 < $CWD/patches/xbmc-9.11-libpng14.patch +patch -p1 < $CWD/patches/xbmc-9.11-use-cdio-system-headers-on-non-win32.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 \ + -I/usr/include/SDL" + +# 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-python * to use system python +# --enable-external-libraries * to enable all optional system libraries +ENABLE_OPTS="\ + --enable-external-libogg \ + --enable-external-libwavpack" +[ "${EXT_FFMPEG:-no}" == "yes" ] && ENABLE_OPTS="$ENABLE_OPTS --enable-external-ffmpeg" +[ "${EXT_A52DEC:-no}" == "yes" ] && ENABLE_OPTS="$ENABLE_OPTS --enable-external-liba52" +[ "${EXT_DTS:-no}" == "yes" ] && ENABLE_OPTS="$ENABLE_OPTS --enable-external-libdts" +[ "${EXT_MPEG2:-no}" == "yes" ] && ENABLE_OPTS="$ENABLE_OPTS --enable-external-libmpeg2" +[ "${EXT_ASS:-no}" == "yes" ] && ENABLE_OPTS="$ENABLE_OPTS --enable-external-libass" +[ "${EXT_PYTHON:-no}" == "yes" ] && ENABLE_OPTS="$ENABLE_OPTS --enable-external-python" +[ "${EXT_ALL:-no}" == "yes" ] && ENABLE_OPTS="--enable-external-libraries" + +CFLAGS="$SLKCFLAGS $EXTRA_INCLUDES" \ +CXXFLAGS="$SLKCFLAGS $EXTRA_INCLUDES" \ +./configure \ + --prefix=/usr \ + --enable-vdpau \ + --enable-xrandr \ + --enable-ccache \ + --disable-debug \ + --enable-gl \ + --enable-faac \ + --enable-dvdcss \ + --enable-mid \ + --enable-avahi \ + --enable-joystick \ + --enable-goom \ + $ENABLE_OPTS \ + --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 0000000000000..db8fe5fb16ef8 --- /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" -- cgit v1.2.3