From d57c18568201eb44a7aad6fbfba10b26425e4156 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Tue, 14 Dec 2010 22:47:44 +0100 Subject: [PATCH] Added xbmc-9.11 build template. Finally! --- ...use_cdio_system_headers_on_non_win32.patch | 130 +++++++++++++++++ srcpkgs/xbmc/patches/xbmc-9.11-libpng14.patch | 92 ++++++++++++ srcpkgs/xbmc/patches/xbmc-9.11-wavpack.patch | 44 ++++++ srcpkgs/xbmc/template | 137 ++++++++++++++++++ 4 files changed, 403 insertions(+) create mode 100644 srcpkgs/xbmc/patches/use_cdio_system_headers_on_non_win32.patch create mode 100644 srcpkgs/xbmc/patches/xbmc-9.11-libpng14.patch create mode 100644 srcpkgs/xbmc/patches/xbmc-9.11-wavpack.patch create mode 100644 srcpkgs/xbmc/template diff --git a/srcpkgs/xbmc/patches/use_cdio_system_headers_on_non_win32.patch b/srcpkgs/xbmc/patches/use_cdio_system_headers_on_non_win32.patch new file mode 100644 index 0000000000..71f3885918 --- /dev/null +++ b/srcpkgs/xbmc/patches/use_cdio_system_headers_on_non_win32.patch @@ -0,0 +1,130 @@ +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 +-INCLUDES+=-I../lib/libcdio/libcdio/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../lib + + 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/srcpkgs/xbmc/patches/xbmc-9.11-libpng14.patch b/srcpkgs/xbmc/patches/xbmc-9.11-libpng14.patch new file mode 100644 index 0000000000..b5af087eb4 --- /dev/null +++ b/srcpkgs/xbmc/patches/xbmc-9.11-libpng14.patch @@ -0,0 +1,92 @@ +http://bugs.gentoo.org/319113 +http://repos.archlinux.org/wsvn/community/xbmc/trunk/libpng14.patch + +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/srcpkgs/xbmc/patches/xbmc-9.11-wavpack.patch b/srcpkgs/xbmc/patches/xbmc-9.11-wavpack.patch new file mode 100644 index 0000000000..4ef0d147f5 --- /dev/null +++ b/srcpkgs/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 +=================================================================== +--- trunk/xbmc/cores/paplayer/DllWAVPack.h (revision 22927) ++++ trunk/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/srcpkgs/xbmc/template b/srcpkgs/xbmc/template new file mode 100644 index 0000000000..738ee12e75 --- /dev/null +++ b/srcpkgs/xbmc/template @@ -0,0 +1,137 @@ +# Template file for 'xbmc' +pkgname=xbmc +version=9.11 +patch_args="-Np1" +distfiles="${SOURCEFORGE_SITE}/$pkgname/$pkgname-$version.tar.gz" +build_style=gnu_configure +short_desc="XBMC Media Center" +configure_args="--disable-external-liba52 --disable-external-libdts +--enable-external-libmpeg2 --enable-external-libogg --enable-goom +--enable-external-libwavpack --disable-external-libass --enable-gl +--disable-external-ffmpeg --disable-debug --disable-external-python" +make_install_target="prefix=${XBPS_DESTDIR}/${pkgname}-${version}/usr install" +maintainer="Juan RP " +checksum=e810aaaf1c380bbe923d9e30e2e472577081b7b893e12a7ef4bb70a911c3db87 +long_desc=" + XBMC is an award-winning free and open source (GPL) software media player + and entertainment hub for digital media. XBMC is available for Linux, OSX, + Windows, and the original Xbox." + +Add_dependency run glibc +Add_dependency run libXmu +Add_dependency run libstdc++ +Add_dependency run libgcc +Add_dependency run libpng +Add_dependency run libjasper +Add_dependency run jpeg +Add_dependency run tiff +Add_dependency run zlib +Add_dependency run libXrandr +Add_dependency run libXrender +Add_dependency run libX11 +Add_dependency run libwavpack +Add_dependency run libmpeg2 +Add_dependency run avahi-libs +Add_dependency run faac +Add_dependency run libpulseaudio +Add_dependency run SDL_image +Add_dependency run SDL_mixer +Add_dependency run libsmbclient +Add_dependency run faad2 +Add_dependency run libssl +Add_dependency run lzo +Add_dependency run libmysqlclient +Add_dependency run MesaLib +Add_dependency run glew +Add_dependency run libmad +Add_dependency run fontconfig +Add_dependency run fribidi +Add_dependency run sqlite +Add_dependency run libpcre +Add_dependency run libcdio +Add_dependency run glib +Add_dependency run freetype +Add_dependency run libogg +Add_dependency run libvorbis +Add_dependency run alsa-lib +Add_dependency run libenca +Add_dependency run libXt +Add_dependency run libXtst +Add_dependency run libXinerama +Add_dependency run libcurl +Add_dependency run dbus-libs +Add_dependency run libhal +Add_dependency run SDL +Add_dependency run libXext + +Add_dependency build pkg-config +Add_dependency build automake +Add_dependency build libXmu-devel +Add_dependency build libstdc++-devel +Add_dependency build libpng-devel +Add_dependency build jasper-devel +Add_dependency build jpeg-devel +Add_dependency build tiff-devel +Add_dependency build zlib-devel +Add_dependency build libXrandr-devel +Add_dependency build libXrender-devel +Add_dependency build libX11-devel +Add_dependency build wavpack-devel +Add_dependency build libmpeg2-devel +Add_dependency build avahi-libs-devel +Add_dependency build faac-devel +Add_dependency build pulseaudio-devel +Add_dependency build SDL_image-devel +Add_dependency build SDL_mixer-devel +Add_dependency build samba-devel +Add_dependency build faad2-devel +Add_dependency build openssl-devel +Add_dependency build lzo-devel +Add_dependency build libmysqlclient-devel +Add_dependency build MesaLib-devel +Add_dependency build glew-devel +Add_dependency build libmad-devel +Add_dependency build fontconfig-devel +Add_dependency build fribidi-devel +Add_dependency build sqlite-devel +Add_dependency build pcre-devel +Add_dependency build libcdio-devel +Add_dependency build glib-devel +Add_dependency build freetype-devel +Add_dependency build libogg-devel +Add_dependency build libvorbis-devel +Add_dependency build alsa-lib-devel +Add_dependency build enca-devel +Add_dependency build libXt-devel +Add_dependency build libXtst-devel +Add_dependency build libXinerama-devel +Add_dependency build libcurl-devel +Add_dependency build dbus-devel +Add_dependency build libhal-devel +Add_dependency build SDL-devel +Add_dependency build libXext-devel + +Add_dependency full desktop-file-utils +Add_dependency full mesa-demos # required glxinfo + +pre_configure() +{ + cd ${wrksrc} && ./bootstrap || return 1 + sed -i -e 's:/usr/bin/lsb_release -d:/bin/true:' xbmc/utils/SystemInfo.cpp + sed -i 's: ftell64: dll_ftell64:' xbmc/cores/DllLoader/exports/wrapper.c + sed -i 's|cinfo.scale_denom = GetJpegScale();|cinfo.scale_denom = GetJpegScale(); cinfo.scale_num = 1;|' \ + xbmc/lib/cximage-6.0/CxImage/ximajpg.cpp +} + +post_install() +{ + # Fix files containing invalid chars "&". + find ${DESTDIR} -type f | while read f; do + if $(echo "$f"|grep -q "&"); then + newf=$(echo "$f"|sed -e "s|&|and|g") + mv "$f" "$newf" + fi + done + # Fix path to xbmc. + sed -i "s#Exec=xbmc#Exec=/usr/bin/xbmc#" ${DESTDIR}/usr/share/applications/xbmc.desktop +}