added community/xmbc for armv7h

This commit is contained in:
Kevin Mihelich 2012-06-08 19:57:07 -04:00
parent b6c8e8bd37
commit b76c75dbc5
4 changed files with 334 additions and 0 deletions

69
community/xbmc/ChangeLog Normal file
View file

@ -0,0 +1,69 @@
2010-04-10 BlackEagle <ike DOT devolder AT gmail DOT com>
* 9.11-15 :
Made it back compliant with FHS ( thx pierre for pointing that out )
namcap checked and modified to fit its needs as far as it was possible
2009-03-07 [vEX] <niechift.dot.vex.at.gmail.dot.com>
* 8.10-10 :
Try and fix some autoconf issues (thanks Gentoo ebuild).
2009-02-08 [vEX] <niechift.dot.vex.at.gmail.dot.com>
* 8.10-9 :
Replace some libtool 'ltmain.sh' scripts with the one from libtool
installed with Arch.
Make sure XBMCTex isn't linked to OpenGL libraries or it will segfault
on systems using the nvidia driver.
2009-01-30 [vEX] <niechift.dot.vex.at.gmail.dot.com>
* 8.10-8 :
Fix some include's so that gcc 4.3.x is happy, shouldn't complain about
undefined '::realloc' anymore.
Remove Mac OS X specific files.
2009-01-25 [vEX] <niechift.dot.vex.at.gmail.dot.com>
* 8.10-7 :
Moved libcdio, pmount, smbclient and unrar to optdepends.
Removed unneeded dependency on sdl_gfx.
Removed dependency on libpng as sdl_image depends on it.
2008-12-14 [vEX] <niechift.dot.vex.at.gmail.dot.com>
* 8.10-6 :
Added libpng to dependency list.
Added gawk to dependency list.
Removed '--disable-mms' and '--enable-halmount' configure flags as they
are not mentioned as supported in the configure script.
2008-12-06 [vEX] <niechift.dot.vex.at.gmail.dot.com>
* 8.10-5 :
Added libmad to the dependency list.
Streamripper 1.64.0+ does not include tre anymore, removed streamripper
and added tre instead.
Removed subversion from makedepends.
2008-12-06 [vEX] <niechift.dot.vex.at.gmail.dot.com>
* 8.10-4 :
Fix permissions for some more scripts, ffmpeg/texi2doc.pl should not
fail any longer.
2008-12-05 [vEX] <niechift.dot.vex.at.gmail.dot.com>
* 8.10-3 :
Added lirc to the optdepends array.
2008-11-26 [vEX] <niechift.dot.vex.at.gmail.dot.com>
* 8.10-2 :
Added install file which informs users that a display depth of at
least 24-bit is required.
2008-11-17 [vEX] <niechift.dot.vex.at.gmail.dot.com>
* 8.10-1 :
Initial package, based on previous work by Zeqadious.

115
community/xbmc/PKGBUILD Normal file
View file

@ -0,0 +1,115 @@
# $Id: PKGBUILD 71695 2012-06-01 13:05:36Z dreisner $
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Brad Fanella <bradfanella@archlinux.us>
# Contributor: [vEX] <niechift.dot.vex.at.gmail.dot.com>
# Contributor: Zeqadious <zeqadious.at.gmail.dot.com>
# Contributor: BlackIkeEagle < ike DOT devolder AT gmail DOT com >
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - --disable-vdpau, remove from makedepends
# - specify our C/CXXFLAGS in configure
# - patch to remove very wrong XBMC code trying to assert its own ARM CFLAGS, MathUtils.h ARM fix
# - commented TexturePacker install, doesn't appear to want to build
buildarch=4
_prefix=/usr
pkgname=xbmc
pkgver=11.0
pkgrel=4
pkgdesc="A software media player and entertainment hub for digital media"
arch=('i686' 'x86_64')
url="http://xbmc.org"
license=('GPL' 'custom')
depends=('libpulse' 'hicolor-icon-theme' 'fribidi' 'lzo2' 'smbclient' 'libtiff' 'libva' 'libpng' 'libcdio' 'yajl' 'libmysqlclient' 'libjpeg-turbo' 'libsamplerate' 'glew' 'libssh' 'libmicrohttpd' 'libxrandr' 'sdl_mixer' 'sdl_image' 'python2' 'libass' 'libmpeg2' 'libmad' 'libmodplug' 'jasper' 'rtmpdump' 'unzip' 'mesa-demos' 'xorg-xdpyinfo' 'libbluray' 'libnfs' 'afpfs-ng' 'libshairport' 'avahi' 'bluez')
makedepends=('boost' 'cmake' 'gperf' 'nasm' 'libxinerama' 'zip' 'libcec' 'udisks' 'upower' 'bluez')
optdepends=(
'libcec: support for Pulse-Eight USB-CEC adapter'
'xvba-video: accelerated video playback for amd cards'
'pulseaudio: pulseaudio support'
'lirc: remote controller support'
'udisks: automount external drives'
'upower: used to trigger suspend functionality'
'unrar: access compressed files without unpacking them'
)
install="${pkgname}.install"
source=("http://mirrors.xbmc.org/releases/source/xbmc-$pkgver.tar.gz"
"alarm.patch")
sha256sums=('1fe5d310c16138f26e2b13bc545604e95f48ace6c8636f23e77da402cd7b0b19'
'6e4934e8d1bf82890679eca2fa78b3bc5942feedd9c012728a8d04c59be1651d')
build() {
cd "${srcdir}/xbmc-$pkgver"
# fix retard code
patch -p1 -i "${srcdir}/alarm.patch"
# fix lsb_release dependency
sed -i -e 's:/usr/bin/lsb_release -d:cat /etc/arch-release:' xbmc/utils/SystemInfo.cpp
# Bootstrapping XBMC
./bootstrap
# Configuring XBMC
export PYTHON_VERSION=2 # external python v2
./configure --prefix=$_prefix --exec-prefix=$_prefix \
--disable-debug \
--enable-optimizations \
--enable-gl \
--enable-sdl \
--enable-vaapi \
--disable-vdpau \
--enable-xvba \
--enable-joystick \
--enable-xrandr \
--enable-rsxs \
--enable-projectm \
--enable-x11 \
--enable-pulse \
--enable-rtmp \
--enable-samba \
--enable-nfs \
--enable-afpclient \
--enable-airplay \
--enable-airtunes \
--enable-ffmpeg-libvorbis \
--enable-dvdcss \
--disable-hal \
--enable-avahi \
--enable-webserver \
--enable-optical-drive \
--enable-libbluray \
--enable-texturepacker \
--enable-udev \
--enable-libusb \
--enable-libcec \
--enable-external-libraries \
--disable-external-ffmpeg \
CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}"
# Now (finally) build
make
}
package() {
cd "${srcdir}/xbmc-$pkgver"
# Running make install
make DESTDIR="${pkgdir}" install
# run feh with python2
sed -i -e 's/python/python2/g' ${pkgdir}${_prefix}/bin/xbmc
# 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}/xbmc-$pkgver/xbmc-xrandr" "${pkgdir}${_prefix}/share/xbmc/xbmc-xrandr"
#install -D -m 0755 "${srcdir}/xbmc-$pkgver/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
}

135
community/xbmc/alarm.patch Normal file
View file

@ -0,0 +1,135 @@
diff -urN a/configure b/configure
--- a/configure 2012-03-24 13:06:47.000000000 -0600
+++ b/configure 2012-06-08 14:37:25.504009179 -0600
@@ -15984,38 +15984,9 @@
LIBS="$LIBS -framework ApplicationServices"
fi
elif test "$use_arch" = "arm"; then
- CFLAGS="$CFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
- CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
- FFMPEG_EXTRACFLAGS="-mfloat-abi=softfp"
- if test "$use_tegra" = "yes"; then
- # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="-mfpu=vfpv3-d16"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int foo;
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
- CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
- FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
- use_cpu=cortex-a9
-else
- CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
- CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
- use_cpu=cortex-a8
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- else
- # Compile for ARMv7a architecture, CortexA8 cpu and check for enabled NEON coprocessor
- CFLAGS="$CFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
- CXXFLAGS="$CXXFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
- if test "$use_neon" = "yes"; then
- CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
- CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
- FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
- fi
- fi
+ CFLAGS="$CFLAGS"
+ CXXFLAGS="$CXXFLAGS"
+ FFMPEG_EXTRACFLAGS=""
fi
# Checks for library functions.
diff -urN a/configure.in b/configure.in
--- a/configure.in 2012-03-21 16:07:50.000000000 -0600
+++ b/configure.in 2012-06-08 14:46:52.687054825 -0600
@@ -572,32 +572,9 @@
LIBS="$LIBS -framework ApplicationServices"
fi
elif test "$use_arch" = "arm"; then
- CFLAGS="$CFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
- CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp -mno-apcs-stack-check"
- FFMPEG_EXTRACFLAGS="-mfloat-abi=softfp"
- if test "$use_tegra" = "yes"; then
- # Compile for ARMv7a architecture, need to test gcc for vfpv3-d16 support
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="-mfpu=vfpv3-d16"
- AC_COMPILE_IFELSE(
- [AC_LANG_SOURCE([int foo;])],
- [ CFLAGS="$SAVE_CFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
- CXXFLAGS="$CXXFLAGS -Wno-psabi -Wa,-march=armv7a -mtune=cortex-a9 -mfpu=vfpv3-d16 -mthumb-interwork"
- FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mtune=cortex-a9 -mfpu=vfpv3-d16"
- use_cpu=cortex-a9],
- [ CFLAGS="$SAVE_CFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
- CXXFLAGS="$CXXFLAGS -Wa,-march=armv6 -mtune=cortex-a8 -mthumb-interwork"
- use_cpu=cortex-a8])
- else
- # Compile for ARMv7a architecture, CortexA8 cpu and check for enabled NEON coprocessor
- CFLAGS="$CFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
- CXXFLAGS="$CXXFLAGS -Wa,-march=armv7a -mcpu=cortex-a8"
- if test "$use_neon" = "yes"; then
- CFLAGS="$CFLAGS -mfpu=neon -mvectorize-with-neon-quad"
- CXXFLAGS="$CXXFLAGS -mfpu=neon -mvectorize-with-neon-quad"
- FFMPEG_EXTRACFLAGS="$FFMPEG_EXTRACFLAGS -mfpu=neon"
- fi
- fi
+ CFLAGS="$CFLAGS"
+ CXXFLAGS="$CXXFLAGS"
+ FFMPEG_EXTRACFLAGS=""
fi
# Checks for library functions.
diff -urN a/xbmc/utils/MathUtils.h b/xbmc/utils/MathUtils.h
--- a/xbmc/utils/MathUtils.h 2012-03-21 16:07:50.000000000 -0600
+++ b/xbmc/utils/MathUtils.h 2012-06-08 15:43:59.044891727 -0600
@@ -63,46 +63,8 @@
sar i, 1
}
#else
-#if defined(__powerpc__) || defined(__ppc__)
+#if defined(__powerpc__) || defined(__ppc__) || defined(__arm__)
i = floor(x + round_to_nearest);
-#elif defined(__arm__)
- // From 'ARM®v7-M Architecture Reference Manual' page A7-569:
- // "The floating-point to integer operation (vcvt) [normally] uses the Round towards Zero rounding mode"
- // Because of this...we must use some less-than-straightforward logic to perform this operation without
- // changing the rounding mode flags
-
- /* The assembly below implements the following logic:
- if (x < 0)
- inc = -0.5f
- else
- inc = 0.5f
- int_val = trunc(x+inc);
- err = x - int_val;
- if (err == 0.5f)
- int_val++;
- return int_val;
- */
-
- __asm__ __volatile__ (
- "vmov.F64 d1,%[rnd_val] \n\t" // Copy round_to_nearest into a working register (d1 = 0.5)
- "fcmpezd %P[value] \n\t" // Check value against zero (value == 0?)
- "fmstat \n\t" // Copy the floating-point status flags into the general-purpose status flags
- "it mi \n\t"
- "vnegmi.F64 d1, d1 \n\t" // if N-flag is set, negate round_to_nearest (if (value < 0) d1 = -1 * d1)
- "vadd.F64 d1,%P[value],d1 \n\t" // Add round_to_nearest to value, store result in working register (d1 += value)
- "vcvt.S32.F64 s3,d1 \n\t" // Truncate(round towards zero) (s3 = (int)d1)
- "vmov %[result],s3 \n\t" // Store the integer result in a general-purpose register (result = s3)
- "vcvt.F64.S32 d1,s3 \n\t" // Convert back to floating-point (d1 = (double)s3)
- "vsub.F64 d1,%P[value],d1 \n\t" // Calculate the error (d1 = value - d1)
- "vmov.F64 d2,%[rnd_val] \n\t" // d2 = 0.5;
- "fcmped d1, d2 \n\t" // (d1 == 0.5?)
- "fmstat \n\t" // Copy the floating-point status flags into the general-purpose status flags
- "it eq \n\t"
- "addeq %[result],#1 \n\t" // (if (d1 == d2) result++;)
- : [result] "=r"(i) // Outputs
- : [rnd_val] "Dv" (round_to_nearest), [value] "w"(x) // Inputs
- : "d1", "d2", "s3" // Clobbers
- );
#else
__asm__ __volatile__ (
"fadd %%st\n\t"

View file

@ -0,0 +1,15 @@
post_install() {
[[ $(type -p gtk-update-icon-cache) ]] && /usr/bin/gtk-update-icon-cache -qtf usr/share/icons/hicolor
[[ $(type -p update-desktop-database) ]] && /usr/bin/update-desktop-database -q usr/share/applications
/bin/true
}
post_upgrade() {
post_install $1
/bin/true
}
post_remove() {
post_install $1
/bin/true
}