From f9c4097bea82f3c47a00f6207394e140305a0f11 Mon Sep 17 00:00:00 2001 From: Tomas Groth Christensen Date: Sat, 2 Feb 2013 09:59:56 +0100 Subject: [PATCH] Added xbmc-rbp, and made xbmc-rbp and xbmc-rbp-git provide/conflict xbmc to make it easier to build addon packages. --- alarm/xbmc-rbp/PKGBUILD | 84 +++++++++ ...1-texturepacker-hostflags-and-rework.patch | 169 ++++++++++++++++++ aur/xbmc-rbp-git/PKGBUILD | 4 +- 3 files changed, 256 insertions(+), 1 deletion(-) create mode 100644 alarm/xbmc-rbp/PKGBUILD create mode 100644 alarm/xbmc-rbp/xbmc-ae04d99-321-texturepacker-hostflags-and-rework.patch diff --git a/alarm/xbmc-rbp/PKGBUILD b/alarm/xbmc-rbp/PKGBUILD new file mode 100644 index 000000000..6c39af99f --- /dev/null +++ b/alarm/xbmc-rbp/PKGBUILD @@ -0,0 +1,84 @@ +# Contributor tomasgroth at yahoo.dk +# Contributor WarheadsSE +pkgname=xbmc-rbp +pkgver=12.0 +pkgrel=1 +buildarch=16 + +pkgdesc="A software media player and entertainment hub for digital media for the Raspberry Pi" +arch=('armv6h') +url="http://xbmc.org" +license=('GPL' 'custom') +depends=('hicolor-icon-theme' 'fribidi' 'lzo2' 'smbclient' 'libtiff' 'libva' 'libpng' 'libcdio' 'yajl' 'libmysqlclient' 'libjpeg-turbo' 'libsamplerate' 'libssh' 'libmicrohttpd' 'sdl_image' 'python2' 'libass' 'libmpeg2' 'libmad' 'libmodplug' 'jasper' 'rtmpdump' 'unzip' 'xorg-xdpyinfo' 'libbluray' 'libnfs' 'afpfs-ng' 'libshairport' 'avahi' 'bluez' 'tinyxml' 'raspberrypi-firmware' 'libcec-rpi' 'libplist' 'swig' 'taglib') + +makedepends=('boost' 'cmake' 'gperf' 'nasm' 'zip' 'udisks' 'upower' 'bluez' 'git' 'autoconf' 'openjdk6') +optdepends=( + 'lirc: remote controller support' + 'udisks: automount external drives' + 'upower: used to trigger suspend functionality' + 'unrar: access compressed files without unpacking them' +) +provides=("xbmc") +conflicts=("xbmc") +source=(http://mirrors.xbmc.org/releases/source/xbmc-12.0.tar.gz xbmc-ae04d99-321-texturepacker-hostflags-and-rework.patch) + +md5sums=('a79128b9d094a046947bfd9bb4550809' + 'fc6a925a09ba1b13d84daf1121b42ab9') + +_prefix=/usr + +build() { + cd "${srcdir}/xbmc-${pkgver}" + + # fix lsb_release dependency + sed -i -e 's:/usr/bin/lsb_release -d:cat /etc/arch-release:' xbmc/utils/SystemInfo.cpp + + # Patch to fix TexturePacker build. + patch -i ${srcdir}/xbmc-ae04d99-321-texturepacker-hostflags-and-rework.patch -p1 + + # Bootstrapping XBMC + ./bootstrap + + # Configuring XBMC + export PYTHON_VERSION=2 # external python v2 + # we need to compile for armv6 instead of armv5 to avoid problems compiling assembler code + export CFLAGS="-O3 -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -mabi=aapcs-linux -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I/opt/vc/include/ -I/opt/vc/include/IL -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux" + export CXXFLAGS="-O3 -mcpu=arm1176jzf-s -mtune=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -mabi=aapcs-linux -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -I/opt/vc/include/ -I/opt/vc/include/IL -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux" + export LDFLAGS="$LDFLAGS -L/opt/vc/lib" +# export MAKEFLAGS="-j1" + ./configure --prefix=$_prefix --exec-prefix=$_prefix \ + --enable-gles --disable-sdl --disable-x11 --disable-xrandr --disable-openmax \ + --disable-optical-drive --disable-dvdcss --disable-joystick --disable-debug \ + --disable-crystalhd --disable-vtbdecoder --disable-vaapi --disable-vdpau \ + --disable-pulse --disable-projectm --with-platform=raspberry-pi --enable-optimizations \ + --enable-libcec --enable-player=omxplayer + + make +} + +package() { + cd "${srcdir}/${_gitname}" + # Running make install + make DESTDIR="${pkgdir}" install + + # run feh with python2 + sed -i -e 's/python/python2/g' ${pkgdir}${_prefix}/bin/xbmc + + # Remove checks that doesn't apply to the raspberry pi + head -n 171 "${pkgdir}${_prefix}/share/xbmc/FEH.py" > "${pkgdir}${_prefix}/share/xbmc/FEH.py.new" + mv "${pkgdir}${_prefix}/share/xbmc/FEH.py.new" "${pkgdir}${_prefix}/share/xbmc/FEH.py" + + # lsb_release fix + sed -i -e 's/which lsb_release > \/dev\/null/\[ -f \/etc\/arch-release ]/g' "${pkgdir}${_prefix}/bin/xbmc" + sed -i -e "s/lsb_release -a 2> \/dev\/null | sed -e 's\/\^\/ \/'/cat \/etc\/arch-release/g" "${pkgdir}${_prefix}/bin/xbmc" + + # Tools + install -D -m 0755 "${srcdir}/${_gitname}/tools/TexturePacker/TexturePacker" "${pkgdir}${_prefix}/share/xbmc/" + + # Licenses + install -d -m 0755 "${pkgdir}${_prefix}/share/licenses/${pkgname}" + for licensef in LICENSE.GPL copying.txt; do + mv "${pkgdir}${_prefix}/share/doc/xbmc/${licensef}" "${pkgdir}${_prefix}/share/licenses/${pkgname}" + done + +} diff --git a/alarm/xbmc-rbp/xbmc-ae04d99-321-texturepacker-hostflags-and-rework.patch b/alarm/xbmc-rbp/xbmc-ae04d99-321-texturepacker-hostflags-and-rework.patch new file mode 100644 index 000000000..113e0f79e --- /dev/null +++ b/alarm/xbmc-rbp/xbmc-ae04d99-321-texturepacker-hostflags-and-rework.patch @@ -0,0 +1,169 @@ +diff -Naur xbmc-frodo-0ff0d2e/configure.in xbmc-frodo-0ff0d2e.patch/configure.in +--- xbmc-frodo-0ff0d2e/configure.in 2012-10-11 15:45:44.000000000 +0200 ++++ xbmc-frodo-0ff0d2e.patch/configure.in 2012-10-11 16:49:08.872850880 +0200 +@@ -452,6 +452,12 @@ + [use_texturepacker=$enableval], + [use_texturepacker=auto]) + ++AC_ARG_WITH([texturepacker-root], ++ [AS_HELP_STRING([--with-texturepacker-root], ++ [root dir to search for librarys and includes if building native TexturePacker (default is \$prefix)])], ++ [use_texturepacker_root=$withval], ++ [use_texturepacker_root=$prefix]) ++ + AC_ARG_WITH([lirc-device], + [AS_HELP_STRING([--with-lirc-device=file], + [specify the default LIRC device (default is /dev/lircd)])], +@@ -2000,13 +2006,13 @@ + + USE_TEXTUREPACKER_NATIVE=0 + if test "x$use_texturepacker" != "xno"; then +- final_message="$final_message\n TexturePacker:Yes" + USE_TEXTUREPACKER=1 +- if test "x$use_texturepacker_native" = "xyes"; then ++ if test "x$cross_compiling" = "xyes"; then + USE_TEXTUREPACKER_NATIVE=1 +- if [[ ! -d "$USE_TEXTUREPACKER_NATIVE_ROOT" ]]; then +- USE_TEXTUREPACKER_NATIVE_ROOT= +- fi ++ USE_TEXTUREPACKER_NATIVE_ROOT="$use_texturepacker_root" ++ final_message="$final_message\n TexturePacker:Native ($USE_TEXTUREPACKER_NATIVE_ROOT)" ++ else ++ final_message="$final_message\n TexturePacker:Yes" + fi + else + final_message="$final_message\n TexturePacker:No" +diff -Naur xbmc-frodo-0ff0d2e/lib/libsquish/Makefile.in xbmc-frodo-0ff0d2e.patch/lib/libsquish/Makefile.in +--- xbmc-frodo-0ff0d2e/lib/libsquish/Makefile.in 2012-10-11 15:47:26.000000000 +0200 ++++ xbmc-frodo-0ff0d2e.patch/lib/libsquish/Makefile.in 2012-10-11 16:49:08.873850900 +0200 +@@ -11,26 +11,25 @@ + singlecolourfit.cpp \ + squish.cpp + +-CXXFLAGS+=-I. +- +-LIB=libsquish.a +- +-ifeq (@USE_TEXTUREPACKER_NATIVE@,1) +-NATIVE_LIB=libsquish-native.so +-CLEAN_FILES+=$(NATIVE_LIB) ++LIB = libsquish.a ++NATIVE_LIB = libsquish-native.so ++CLEAN_FILES += $(NATIVE_LIB) ++ ++HOST_CXX ?= g++ ++CXXFLAGS += -I. ++HOST_CXXFLAGS += -I. + + ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) +-NATIVE_ARCH=@DARWIN_NATIVE_ARCH@ ++ HOST_CXXFLAGS += @DARWIN_NATIVE_ARCH@ + endif + +-all: $(LIB) $(NATIVE_LIB) ++$(LIB): $(SRCS) + # TexturePacker links to libsquish and needs to run on build system, so make a native flavor. + $(NATIVE_LIB): $(SRCS) + ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) +- g++ $(NATIVE_ARCH) -I. $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@ ++ $(HOST_CXX) $(HOST_CXXFLAGS) $(SRCS) -dynamiclib -install_name `pwd`/libsquish-native.so -o $@ + else +- g++ -I. $(SRCS) -shared -fPIC -Wl,-soname,`pwd`/libsquish-native.so -o $@ +-endif ++ $(HOST_CXX) $(HOST_CXXFLAGS) $(SRCS) -shared -fPIC -Wl,-soname,`pwd`/libsquish-native.so -o $@ + endif + + include ../../Makefile.include +diff -Naur xbmc-frodo-0ff0d2e/tools/TexturePacker/Makefile.in xbmc-frodo-0ff0d2e.patch/tools/TexturePacker/Makefile.in +--- xbmc-frodo-0ff0d2e/tools/TexturePacker/Makefile.in 2012-10-11 15:47:05.000000000 +0200 ++++ xbmc-frodo-0ff0d2e.patch/tools/TexturePacker/Makefile.in 2012-10-11 16:49:08.874850920 +0200 +@@ -1,56 +1,54 @@ +-DEFINES += -D_LINUX -DUSE_LZO_PACKING ++DEFINES += -D_LINUX -DUSE_LZO_PACKING + ifneq ($(or $(findstring powerpc,@ARCH@),$(findstring ppc, @ARCH@)),) +-DEFINES += -DHOST_BIGENDIAN ++DEFINES += -DHOST_BIGENDIAN + endif + +-CXXFLAGS+= \ ++SRCS = \ ++ md5.cpp \ ++ SDL_anigif.cpp \ ++ XBTFWriter.cpp \ ++ XBMCTex.cpp \ ++ @abs_top_srcdir@/xbmc/guilib/XBTF.cpp ++ ++TARGET = TexturePacker ++CLEAN_FILES = $(TARGET) ++ ++all: $(TARGET) ++ ++HOST_CXX ?= g++ ++HOST_ROOT_PATH = @USE_TEXTUREPACKER_NATIVE_ROOT@ ++ ++LIBS += -lSDL_image -lSDL -llzo2 ++LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish ++HOST_LIBS += -L$(HOST_ROOT_PATH)/lib -lSDL_image -lSDL -llzo2 ++HOST_LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish-native ++ ++CXXFLAGS += \ + -I. \ + -I@abs_top_srcdir@/lib \ + -I@abs_top_srcdir@/xbmc \ + -I@abs_top_srcdir@/xbmc/linux + +-RPATH=-Wl,-rpath=$(NATIVE_ROOT_PATH)/lib ++HOST_CXXFLAGS += \ ++ -I. \ ++ -I@abs_top_srcdir@/lib \ ++ -I@abs_top_srcdir@/xbmc \ ++ -I@abs_top_srcdir@/xbmc/linux \ ++ -I$(HOST_ROOT_PATH)/include ++ ++RPATH=-Wl,-rpath=$(HOST_ROOT_PATH)/lib + +-ifeq (@USE_TEXTUREPACKER_NATIVE@,1) +-NATIVE_ROOT_PATH=@USE_TEXTUREPACKER_NATIVE_ROOT@ +-ifdef NATIVE_ROOT_PATH + ifeq ($(findstring Darwin,$(shell uname -s)),Darwin) + DEFINES += -DTARGET_DARWIN + NATIVE_ARCH=@DARWIN_NATIVE_ARCH@ + RPATH= + endif +-NATIVE_CXXFLAGS+= -I. \ +- -I$(NATIVE_ROOT_PATH)/include \ +- -I@abs_top_srcdir@/lib \ +- -I@abs_top_srcdir@/xbmc \ +- -I@abs_top_srcdir@/xbmc/linux +-NATIVE_LIBS += -L$(NATIVE_ROOT_PATH)/lib +-endif +-NATIVE_LIBS += -lSDL_image -lSDL -llzo2 +-NATIVE_LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish-native +-else +-LIBS += -L@abs_top_srcdir@/lib/libsquish -lsquish +-endif +- +-LIBS += -lSDL_image -lSDL -llzo2 +- +-SRCS = \ +- md5.cpp \ +- SDL_anigif.cpp \ +- XBTFWriter.cpp \ +- XBMCTex.cpp \ +- @abs_top_srcdir@/xbmc/guilib/XBTF.cpp +- +- +-TARGET = TexturePacker +-CLEAN_FILES=$(TARGET) +- +-all: $(TARGET) + + ifeq (@USE_TEXTUREPACKER_NATIVE@,1) + # TexturePacker run native on build system, build it with native tools + $(TARGET): $(SRCS) @abs_top_srcdir@/xbmc/guilib/XBTF.h +- g++ $(DEFINES) $(NATIVE_ARCH) $(NATIVE_CXXFLAGS) $(SRCS) $(NATIVE_LIBS) $(RPATH) -o $(TARGET) ++ make -C @abs_top_srcdir@/lib/libsquish libsquish-native.so ++ $(HOST_CXX) $(DEFINES) $(NATIVE_ARCH) $(HOST_CXXFLAGS) $(SRCS) $(HOST_LIBS) $(RPATH) -o $(TARGET) + clean: + rm -f $(TARGET) + else diff --git a/aur/xbmc-rbp-git/PKGBUILD b/aur/xbmc-rbp-git/PKGBUILD index 6a2c50df0..cfbf65541 100644 --- a/aur/xbmc-rbp-git/PKGBUILD +++ b/aur/xbmc-rbp-git/PKGBUILD @@ -1,7 +1,7 @@ # Contributor tomasgroth at yahoo.dk # Contributor WarheadsSE pkgname=xbmc-rbp-git -pkgver=20130121 +pkgver=20130202 pkgrel=1 buildarch=16 @@ -18,6 +18,8 @@ optdepends=( 'upower: used to trigger suspend functionality' 'unrar: access compressed files without unpacking them' ) +provides=("xbmc") +conflicts=("xbmc") source=(xbmc-ae04d99-321-texturepacker-hostflags-and-rework.patch) md5sums=('fc6a925a09ba1b13d84daf1121b42ab9')