aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrei Gherzan <andrei@gherzan.ro>2014-08-17 17:58:03 +0200
committerTim Orling <TicoTimo@gmail.com>2014-08-19 07:53:04 -0700
commit38be0597b9ce799a5f373e980d7761e354c258a8 (patch)
tree7431dd7bdab7e5a1702abcb73a4f8be236eeb5a6
parent5f532a928c7df863a3f0d32db3918c8f7d227e2b (diff)
downloadmeta-openembedded-contrib-38be0597b9ce799a5f373e980d7761e354c258a8.tar.gz
meta-openembedded-contrib-38be0597b9ce799a5f373e980d7761e354c258a8.tar.bz2
meta-openembedded-contrib-38be0597b9ce799a5f373e980d7761e354c258a8.zip
xbmc: Update to v13.1
* refactor dependencies * remove already merged patches * define PACKAGECONFIG for different configurations * have above PACKAGECONFIG values activated by default * various cleanups and refactoring * use internal ffmpeg - there are some known issues while compiling with external libav * define --with-arch to be passed to internal ffmpeg configuration script * add support for qemuarm Tested on Fedora 20 host using poky + meta-oe master: 1. build only qemux86 2. build only qemuarm 3. build and runtime test raspberrypi - (patches to come). This patch depends on two other patches: http://lists.openembedded.org/pipermail/openembedded-devel/2014-August/097729.html http://lists.openembedded.org/pipermail/openembedded-devel/2014-August/097730.html Signed-off-by: Andrei Gherzan <andrei@gherzan.ro> Change-Id: I538f4907a9d1dd5df31648bfb60a18cacfed9d69 Signed-off-by: Tim Orling <TicoTimo@gmail.com>
-rw-r--r--meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch118
-rw-r--r--meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch82
-rw-r--r--meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-Support-for-qemuarm.patch104
-rw-r--r--meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch43
-rw-r--r--meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch32
-rw-r--r--meta-multimedia/recipes-mediacentre/xbmc/xbmc_13.1.bb114
-rw-r--r--meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb99
7 files changed, 313 insertions, 279 deletions
diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch
index e0a4037bc5..d3ae75e1c4 100644
--- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch
+++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch
@@ -24,74 +24,68 @@ The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails wi
make[1]: *** [Atomics.o] Error 1
make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+9a10c48710df79118e39e9b3bb0a15bf1fe694d1/git/xbmc/threads'
make: *** [xbmc/threads/threads.a] Error 2
----
- xbmc/threads/Atomics.cpp | 8 --------
- 1 files changed, 0 insertions(+), 8 deletions(-)
-diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp
-index 5b09f18..0a98a7e 100644
---- a/xbmc/threads/Atomics.cpp
-+++ b/xbmc/threads/Atomics.cpp
-@@ -194,14 +194,12 @@ long AtomicIncrement(volatile long* pAddr)
- {
+Index: git/xbmc/threads/Atomics.cpp
+===================================================================
+--- git.orig/xbmc/threads/Atomics.cpp
++++ git/xbmc/threads/Atomics.cpp
+@@ -168,14 +166,12 @@ long AtomicIncrement(volatile long* pAdd
+ #elif defined(__arm__) && !defined(__ARM_ARCH_5__)
register long val;
asm volatile (
-- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
- "1: \n"
- "ldrex %0, [%1] \n" // (val = *pAddr)
- "add %0, #1 \n" // (val += 1)
- "strex r1, %0, [%1] \n"
- "cmp r1, #0 \n"
- "bne 1b \n"
-- "dmb ish \n" // Memory barrier.
- : "=&r" (val)
- : "r"(pAddr)
- : "r1"
-@@ -273,14 +271,12 @@ long AtomicAdd(volatile long* pAddr, long amount)
- {
+- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
+ "1: \n"
+ "ldrex %0, [%1] \n" // (val = *pAddr)
+ "add %0, #1 \n" // (val += 1)
+ "strex r1, %0, [%1] \n"
+ "cmp r1, #0 \n"
+ "bne 1b \n"
+- "dmb ish \n" // Memory barrier.
+ : "=&r" (val)
+ : "r"(pAddr)
+ : "r1"
+@@ -246,14 +242,12 @@ long AtomicAdd(volatile long* pAddr, lon
+ #elif defined(__arm__) && !defined(__ARM_ARCH_5__)
register long val;
asm volatile (
-- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
- "1: \n"
- "ldrex %0, [%1] \n" // (val = *pAddr)
- "add %0, %2 \n" // (val += amount)
- "strex r1, %0, [%1] \n"
- "cmp r1, #0 \n"
- "bne 1b \n"
-- "dmb ish \n" // Memory barrier.
- : "=&r" (val)
- : "r"(pAddr), "r"(amount)
- : "r1"
-@@ -351,14 +347,12 @@ long AtomicDecrement(volatile long* pAddr)
- {
+- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
+ "1: \n"
+ "ldrex %0, [%1] \n" // (val = *pAddr)
+ "add %0, %2 \n" // (val += amount)
+ "strex r1, %0, [%1] \n"
+ "cmp r1, #0 \n"
+ "bne 1b \n"
+- "dmb ish \n" // Memory barrier.
+ : "=&r" (val)
+ : "r"(pAddr), "r"(amount)
+ : "r1"
+@@ -324,14 +318,12 @@ long AtomicDecrement(volatile long* pAdd
+ #elif defined(__arm__)
register long val;
asm volatile (
-- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
- "1: \n"
- "ldrex %0, [%1] \n" // (val = *pAddr)
- "sub %0, #1 \n" // (val -= 1)
- "strex r1, %0, [%1] \n"
- "cmp r1, #0 \n"
- "bne 1b \n"
-- "dmb ish \n" // Memory barrier.
- : "=&r" (val)
- : "r"(pAddr)
- : "r1"
-@@ -431,14 +425,12 @@ long AtomicSubtract(volatile long* pAddr, long amount)
- {
+- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
+ "1: \n"
+ "ldrex %0, [%1] \n" // (val = *pAddr)
+ "sub %0, #1 \n" // (val -= 1)
+ "strex r1, %0, [%1] \n"
+ "cmp r1, #0 \n"
+ "bne 1b \n"
+- "dmb ish \n" // Memory barrier.
+ : "=&r" (val)
+ : "r"(pAddr)
+ : "r1"
+@@ -403,14 +395,12 @@ long AtomicSubtract(volatile long* pAddr
+ #elif defined(__arm__)
register long val;
asm volatile (
-- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
- "1: \n"
- "ldrex %0, [%1] \n" // (val = *pAddr)
- "sub %0, %2 \n" // (val -= amount)
- "strex r1, %0, [%1] \n"
- "cmp r1, #0 \n"
- "bne 1b \n"
-- "dmb ish \n" // Memory barrier.
- : "=&r" (val)
- : "r"(pAddr), "r"(amount)
- : "r1"
---
-1.7.2.5
-
+- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
+ "1: \n"
+ "ldrex %0, [%1] \n" // (val = *pAddr)
+ "sub %0, %2 \n" // (val -= amount)
+ "strex r1, %0, [%1] \n"
+ "cmp r1, #0 \n"
+ "bne 1b \n"
+- "dmb ish \n" // Memory barrier.
+ : "=&r" (val)
+ : "r"(pAddr), "r"(amount)
+ : "r1"
diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch
index 629017b7b4..f93fa9ea66 100644
--- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch
+++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch
@@ -16,54 +16,50 @@ The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails wi
make[1]: *** [Atomics.o] Error 1
make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+92bab651e2253d172879995b50985645b77fecd2/git/xbmc/threads'
make: *** [xbmc/threads/threads.a] Error 2
----
- xbmc/threads/Atomics.cpp | 33 ++++++++++++++++-----------------
- 1 files changed, 16 insertions(+), 17 deletions(-)
-
-diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp
-index 0a98a7e..0967eb2 100644
---- a/xbmc/threads/Atomics.cpp
-+++ b/xbmc/threads/Atomics.cpp
-@@ -49,23 +49,22 @@ long cas(volatile long *pAddr, long expectedVal, long swapVal)
- #elif defined(__arm__)
- long cas(volatile long* pAddr, long expectedVal, long swapVal)
- {
+Index: git/xbmc/threads/Atomics.cpp
+===================================================================
+--- git.orig/xbmc/threads/Atomics.cpp
++++ git/xbmc/threads/Atomics.cpp
+@@ -43,24 +43,24 @@ long cas(volatile long *pAddr, long expe
+ : "cc", "memory"); /* Clobbers */
+ return prev;
+
+-#elif defined(__arm__)
- register long prev;
- asm volatile (
-- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
-- "1: \n"
-- "ldrex %0, [%1] \n" // Load the current value of *pAddr(%1) into prev (%0) and lock pAddr,
-- "cmp %0, %2 \n" // Verify that the current value (%0) == old value (%2)
-- "bne 2f \n" // Bail if the two values are not equal [not as expected]
-- "strex r1, %3, [%1] \n"
-- "cmp r1, #0 \n"
-- "bne 1b \n"
-- "dmb ish \n" // Memory barrier.
-- "2: \n"
-- : "=&r" (prev)
-- : "r"(pAddr), "r"(expectedVal),"r"(swapVal)
-- : "r1"
-- );
+- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
+- "1: \n"
+- "ldrex %0, [%1] \n" // Load the current value of *pAddr(%1) into prev (%0) and lock pAddr,
+- "cmp %0, %2 \n" // Verify that the current value (%0) == old value (%2)
+- "bne 2f \n" // Bail if the two values are not equal [not as expected]
+- "strex r1, %3, [%1] \n"
+- "cmp r1, #0 \n"
+- "bne 1b \n"
+- "dmb ish \n" // Memory barrier.
+- "2: \n"
+- : "=&r" (prev)
+- : "r"(pAddr), "r"(expectedVal),"r"(swapVal)
+- : "r1"
+- );
- return prev;
-+ return(__sync_val_compare_and_swap(pAddr, expectedVal, swapVal));
++//#elif defined(__arm__)
+// register long prev;
+// asm volatile (
-+// "1: \n"
-+// "ldrex %0, [%1] \n" /* Load the current value of *pAddr(%1) into prev (%0) and lock pAddr, */
-+// "cmp %0, %2 \n" /* Verify that the current value (%0) == old value (%2) */
-+// "bne 2f \n" /* Bail if the two values are not equal [not as expected] */
-+// "strex r1, %3, [%1] \n"
-+// "cmp r1, #0 \n"
-+// "bne 1b \n"
-+// "2: "
-+// : "=&r" (prev)
-+// : "r"(pAddr), "r"(expectedVal),"r"(swapVal)
-+// : "r1"
-+// );
++// "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
++// "1: \n"
++// "ldrex %0, [%1] \n" // Load the current value of *pAddr(%1) into prev (%0) and lock pAddr,
++// "cmp %0, %2 \n" // Verify that the current value (%0) == old value (%2)
++// "bne 2f \n" // Bail if the two values are not equal [not as expected]
++// "strex r1, %3, [%1] \n"
++// "cmp r1, #0 \n"
++// "bne 1b \n"
++// "dmb ish \n" // Memory barrier.
++// "2: \n"
++// : "=&r" (prev)
++// : "r"(pAddr), "r"(expectedVal),"r"(swapVal)
++// : "r1"
++// );
+// return prev;
- }
#elif defined(__mips__)
---
-1.7.2.5
-
+ // TODO:
diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-Support-for-qemuarm.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-Support-for-qemuarm.patch
new file mode 100644
index 0000000000..48f3d2975d
--- /dev/null
+++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-Support-for-qemuarm.patch
@@ -0,0 +1,104 @@
+From 54ce0e5fef8d8f4a374eb9df68c22781f989b52d Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei.gherzan@windriver.com>
+Date: Sun, 17 Aug 2014 14:47:36 +0200
+Subject: [PATCH] Add support for qemuarm
+
+Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com>
+
+Upstream-Status: Inappropriate [OE specific]
+
+---
+ configure.in | 17 +++++++++++++++++
+ m4/xbmc_arch.m4 | 3 +++
+ xbmc/utils/MathUtils.h | 6 ++++--
+ 3 files changed, 24 insertions(+), 2 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index a195d00..6e2d432 100644
+--- a/configure.in
++++ b/configure.in
+@@ -231,6 +231,12 @@ AC_ARG_ENABLE([neon],
+ [use_neon=$enableval],
+ [use_neon=no])
+
++AC_ARG_ENABLE([vfp],
++ [AS_HELP_STRING([--enable-vfp],
++ [enable vfp passing to ffmpeg (default is yes)])],
++ [use_vfp=$enableval],
++ [use_vfp=yes])
++
+ AC_ARG_ENABLE([optimizations],
+ [AS_HELP_STRING([--enable-optimizations],
+ [enable optimization (default is yes)])],
+@@ -750,6 +756,11 @@ case $use_platform in
+ CXXFLAGS="$CXXFLAGS"
+ ffmpeg_target_os=linux
+ ;;
++ qemuarm)
++ use_arch="arm"
++ use_neon=no
++ use_vfp=no
++ ;;
+ esac
+
+ XBMC_SETUP_ARCH_DEFINES()
+@@ -2757,6 +2768,11 @@ XB_CONFIG_MODULE([lib/ffmpeg], [
+ else
+ ffmpg_config="$ffmpg_config --disable-neon"
+ fi
++ if test "$use_vfp" = "yes"; then
++ ffmpg_config="$ffmpg_config --enable-vfp"
++ else
++ ffmpg_config="$ffmpg_config --disable-vfp"
++ fi
+ else
+ ffmpg_config="$ffmpg_config --disable-amd3dnow"
+ fi
+@@ -2815,6 +2831,7 @@ XB_CONFIG_MODULE([lib/ffmpeg], [
+ `if test "$use_arch" != "no"; then echo --arch=$use_arch; fi`\
+ `if test "$use_cpu" != "no"; then echo --cpu=$use_cpu; fi`\
+ `if test "$use_neon" = "yes"; then echo --enable-neon; else echo --disable-neon; fi`\
++ `if test "$use_vfp" = "yes"; then echo --enable-vfp; else echo --disable-vfp; fi`\
+ --target-os=$ffmpeg_target_os \
+ --disable-muxers \
+ --enable-muxer=spdif \
+diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4
+index 5bcdd81..f349cb2 100644
+--- a/m4/xbmc_arch.m4
++++ b/m4/xbmc_arch.m4
+@@ -47,5 +47,8 @@ case $use_platform in
+ raspberry-pi)
+ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI")
+ ;;
++ qemuarm)
++ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_QEMUARM")
++ ;;
+ esac
+ ])
+diff --git a/xbmc/utils/MathUtils.h b/xbmc/utils/MathUtils.h
+index 96af9f4..69fd058 100644
+--- a/xbmc/utils/MathUtils.h
++++ b/xbmc/utils/MathUtils.h
+@@ -36,7 +36,8 @@
+ defined(__powerpc__) || \
+ (defined(TARGET_DARWIN_IOS) && defined(__llvm__)) || \
+ (defined(TARGET_ANDROID) && defined(__arm__)) || \
+- defined(TARGET_RASPBERRY_PI)
++ defined(TARGET_RASPBERRY_PI) || \
++ defined(TARGET_QEMUARM)
+ #define DISABLE_MATHUTILS_ASM_ROUND_INT
+ #endif
+
+@@ -44,7 +45,8 @@
+ defined(__powerpc__) || \
+ (defined(TARGET_DARWIN) && defined(__llvm__)) || \
+ (defined(TARGET_ANDROID) && defined(__arm__)) || \
+- defined(TARGET_RASPBERRY_PI)
++ defined(TARGET_RASPBERRY_PI) || \
++ defined(TARGET_QEMUARM)
+ #define DISABLE_MATHUTILS_ASM_TRUNCATE_INT
+ #endif
+
+--
+1.9.3
+
diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch
deleted file mode 100644
index 345e20ee19..0000000000
--- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From fd8f73826240aae543a41a2bfeea0056e2fe594d Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Mon, 11 Mar 2013 11:04:29 +0100
-Subject: [PATCH] configure: cope with ld-is-gold DISTRO_FEATURE
-
-Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
----
-
-Upstream-Stature: backport
-
- configure.in | 12 +++++++-----
- 1 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index ef94683..c8b459b 100755
---- a/configure.in
-+++ b/configure.in
-@@ -18,9 +18,14 @@ tolower(){
- # check for library basenames
- AC_DEFUN([XB_FIND_SONAME],
- [
-+ #set -x
- if [[ "$host_vendor" != "apple" ]]; then
- AC_MSG_CHECKING([for lib$2 soname])
- $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
-+ if [[ -z $$1_FILENAME ]]; then
-+ #try gold linker syntax
-+ $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "$2")
-+ fi
- if [[ ! -z $$1_FILENAME ]]; then
- $1_SONAME=$(objdump -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
- fi
-@@ -55,6 +60,7 @@ AC_DEFUN([XB_FIND_SONAME],
- AC_MSG_RESULT([$$1_SONAME])
- AC_SUBST($1_SONAME)
- fi
-+ #set +x
- ])
-
- # Function to push and pop libs and includes for a command
---
-1.7.7.6
-
diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch
deleted file mode 100644
index 5c1405982e..0000000000
--- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From cfd851660a594801a591e80dc820c65cb7bd7836 Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Sat, 6 Oct 2012 06:40:03 -0300
-Subject: [PATCH] configure.in: Avoid running code or we break cross-compile
-
-Upstream-Status: Backport [similar change done for 12.0]
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- configure.in | 6 +-----
- 1 files changed, 1 insertions(+), 5 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index ef94683..d7efcb0 100755
---- a/configure.in
-+++ b/configure.in
-@@ -1246,11 +1246,7 @@ if test "$use_external_ffmpeg" = "yes"; then
- AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
-
- # Disable vdpau support if external libavcodec doesn't have it
-- AC_RUN_IFELSE(
-- AC_LANG_PROGRAM([[#include <libavcodec/avcodec.h>]],
-- [[avcodec_register_all();
-- AVCodec *codec = avcodec_find_decoder_by_name("vc1_vdpau");
-- return (codec) ? 0 : 1;]]),,
-+ AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],,
- [if test "x$use_vdpau" = "xyes"; then
- AC_MSG_ERROR($ffmpeg_vdpau_not_supported)
- else
---
-1.7.2.5
-
diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_13.1.bb b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_13.1.bb
new file mode 100644
index 0000000000..9a46d50aaf
--- /dev/null
+++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_13.1.bb
@@ -0,0 +1,114 @@
+SUMMARY = "XBMC Media Center"
+DESCRIPTION = "XBMC is an award-winning free and open source (GPL) software \
+media player and entertainment hub that can be installed on Linux, OSX, \
+Windows, iOS, and Android, featuring a 10-foot user interface for use with \
+televisions and remote controls."
+HOMEPAGE = "http://xbmc.org/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=6eb631b6da7fdb01508a80213ffc35ff"
+
+DEPENDS = "yajl libxmu fribidi mpeg2dec curl python libmodplug libmicrohttpd \
+ sqlite3 libcdio libpcre boost lzo taglib libtinyxml jasper libass \
+ libmad jpeg libsamplerate0 libvorbis tiff libxslt libgpg-error \
+ libsdl virtual/egl swig-native gperf-native unzip-native zip-native"
+
+DEPENDS_append_arm = " cmake-native"
+DEPENDS_append_x86 = " nasm-native"
+
+CODENAME = "Gotham"
+SRCREV = "84725b0b1df072aecd26a55b82ef50ec828e595b"
+SRC_URI = "git://github.com/xbmc/xbmc.git;branch=${CODENAME} \
+ file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \
+ file://0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch \
+ file://0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch \
+ file://0004-Support-for-qemuarm.patch"
+
+inherit autotools-brokensep gettext python-dir
+
+S = "${WORKDIR}/git"
+
+# Don't activate texturepacker as it needs libsdl-image-native. Due to some issues
+# with qemu we use the host's libsdl on which libsdl-image-native depends.
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'opengl', 'opengl', 'opengles2', d)} \
+ sdl airplay ssh libusb libcec samba mysql avahi xrandr x11 joystick \
+ mid rtmp libmp3lame optical-drive debug"
+
+PACKAGECONFIG[opengl] = "--enable-gl,--enable-gles,glew"
+PACKAGECONFIG[opengles2] = "--enable-gles,--enable-gl,"
+PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl-mixer libsdl-image"
+PACKAGECONFIG[airplay] = "--enable-airplay,--disable-airplay,libplist"
+PACKAGECONFIG[ssh] = "--enable-ssh,--disable-ssh,libssh"
+PACKAGECONFIG[libcec] = "--enable-libcec,--disable-libcec,libcec"
+PACKAGECONFIG[libusb] = "--enable-libusb,--disable-libusb,libusb"
+PACKAGECONFIG[samba] = "--enable-samba,--disable-samba,samba"
+PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5"
+PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
+PACKAGECONFIG[xrandr] = "--enable-xrandr,--disable-xrandr,libxrandr"
+PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,"
+PACKAGECONFIG[joystick] = "--enable-joystick,--disable-joystick,"
+PACKAGECONFIG[texturepacker] = "--enable-texturepacker,--disable-texturepacker,libsdl-image-native"
+PACKAGECONFIG[mid] = "--enable-mid,--disable-mid,"
+PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump"
+PACKAGECONFIG[optical-drive] = "--enable-optical-drive,--disable-optical-drive,libcdio"
+PACKAGECONFIG[libmp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame"
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,"
+
+EXTRA_OECONF_append_qemuarm = " --with-platform=qemuarm "
+
+EXTRA_OECONF_append = " \
+ --enable-external-libraries \
+ --with-arch=${TARGET_ARCH} \
+ "
+
+FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math"
+BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
+
+EXTRA_OECONF_append_armv7a = "--with-cpu=cortex-a8"
+
+CACHED_CONFIGUREVARS += " \
+ ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \
+"
+
+# for python modules
+export HOST_SYS
+export BUILD_SYS
+export STAGING_LIBDIR
+export STAGING_INCDIR
+export PYTHON_DIR
+
+do_configure() {
+ sh bootstrap
+ oe_runconf
+}
+
+# On ARM don't run GL/X11 tests in xbmc shell wrapper as xbmc uses GLES
+do_configure_prepend_arm() {
+ sed -i '/FEH.py/ s/$/ --no-test/' ${S}/tools/Linux/xbmc.sh.in
+}
+
+FILES_${PN} += " \
+ ${datadir}/xsessions \
+ ${datadir}/icons"
+FILES_${PN}-dbg += " \
+ ${libdir}/xbmc/.debug \
+ ${libdir}/xbmc/*/.debug \
+ ${libdir}/xbmc/*/*/.debug \
+ ${libdir}/xbmc/*/*/*/.debug \
+ "
+
+# XBMC uses some kind of dlopen() method for libcec so we need to add it manually.
+# XBMC wrapper calls xdpyinfo.
+# OpenGL builds need glxinfo, that's in mesa-demos.
+# service.py and other python tools need a couple of additional modules.
+RRECOMMENDS_${PN}_append = " \
+ libcec \
+ libcurl \
+ ${@base_contains('DISTRO_FEATURES', 'x11', 'xdpyinfo', '', d)} \
+ ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-demos', '', d)} \
+ python python-stringold python-codecs python-re python-lang python-netclient\
+ "
+
+RRECOMMENDS_${PN}_append_libc-glibc = " \
+ glibc-charmap-ibm850 glibc-charmap-utf-8 \
+ glibc-gconv-ibm85 glibc-gconv-utf-32 \
+ "
diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
deleted file mode 100644
index 4b65152db5..0000000000
--- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
+++ /dev/null
@@ -1,99 +0,0 @@
-SUMMARY = "XBMC Media Center"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=6eb631b6da7fdb01508a80213ffc35ff"
-
-DEPENDS = "libusb1 libcec libplist expat yajl gperf-native libxmu fribidi mpeg2dec ffmpeg samba fontconfig curl python libass libmodplug libmicrohttpd wavpack libmms cmake-native libsdl-image libsdl-mixer virtual/egl mysql5 sqlite3 libmms faad2 libcdio libpcre boost lzo enca avahi libsamplerate0 libxinerama libxrandr libxtst bzip2 virtual/libsdl jasper zip-native zlib libtinyxml libmad"
-#require recipes/egl/egl.inc
-
-
-SRCREV = "82388d55dae79cbb2e486e307e23202e76a43efa"
-
-# multiple issues
-PNBLACKLIST[xbmc] = "/usr/include/c++/ctime:70:11: error: '::gmtime' has not been declared"
-
-PV = "11.0+gitr${SRCPV}"
-PR = "r14"
-SRC_URI = "git://github.com/xbmc/xbmc.git;branch=Eden \
- file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \
- file://0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch \
- file://0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch \
- file://0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch \
- file://configure.in-Avoid-running-code.patch \
-"
-
-inherit autotools gettext python-dir
-
-S = "${WORKDIR}/git"
-
-# breaks compilation
-CCACHE = ""
-
-CACHED_CONFIGUREVARS += " \
- ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \
-"
-
-PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'opengl', 'opengl', 'openglesv2', d)}"
-PACKAGECONFIG[opengl] = "--enable-gl,--enable-gles,glew"
-PACKAGECONFIG[openglesv2] = "--enable-gles,--enable-gl,"
-
-EXTRA_OECONF = " \
- --disable-rpath \
- --enable-libusb \
- --enable-airplay \
- --disable-optical-drive \
- --enable-external-libraries \
- ${@base_contains('DISTRO_FEATURES', 'opengl', '--enable-gl', '--enable-gles', d)} \
-"
-
-FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math"
-BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
-
-EXTRA_OECONF_append_armv7a = "--cpu=cortex-a8"
-
-# for python modules
-export HOST_SYS
-export BUILD_SYS
-export STAGING_LIBDIR
-export STAGING_INCDIR
-export PYTHON_DIR
-
-do_configure() {
- sh bootstrap
- oe_runconf
-}
-
-PARALLEL_MAKE = ""
-
-do_compile_prepend() {
- for i in $(find . -name "Makefile") ; do
- sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' $i
- done
-
- for i in $(find . -name "*.mak*" -o -name "Makefile") ; do
- sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${libdir}:g' $i
- done
-}
-
-INSANE_SKIP_${PN} = "rpaths"
-
-# on ARM architectures xbmc will use GLES which will make the regular wrapper fail, so start it directly
-do_install_append_arm() {
- sed -i -e 's:Exec=xbmc:Exec=${libdir}/xbmc/xbmc.bin:g' ${D}${datadir}/applications/xbmc.desktop
-}
-
-FILES_${PN} += "${datadir}/xsessions ${datadir}/icons"
-FILES_${PN}-dbg += "${libdir}/xbmc/.debug ${libdir}/xbmc/*/.debug ${libdir}/xbmc/*/*/.debug ${libdir}/xbmc/*/*/*/.debug"
-
-# xbmc uses some kind of dlopen() method for libcec so we need to add it manually
-# OpenGL builds need glxinfo, that's in mesa-demos
-RRECOMMENDS_${PN}_append = " libcec \
- python \
- python-lang \
- python-re \
- python-netclient \
- libcurl \
- xdpyinfo \
- ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-demos', '', d)} \
-"
-RRECOMMENDS_${PN}_append_libc-glibc = " glibc-charmap-ibm850 glibc-gconv-ibm850"