summaryrefslogtreecommitdiffstats
path: root/meta-multimedia/recipes-mediacentre
diff options
context:
space:
mode:
authorTudor Florea <tudor.florea@enea.com>2015-10-08 22:51:41 +0200
committerTudor Florea <tudor.florea@enea.com>2015-10-08 22:51:41 +0200
commit1219bf8a90a7bf8cd3a5363551ef635d51e8fc8e (patch)
treea21a5fc103bb3bd65ecd85ed22be5228fc54e447 /meta-multimedia/recipes-mediacentre
downloadmeta-openembedded-1219bf8a90a7bf8cd3a5363551ef635d51e8fc8e.tar.gz
initial commit for Enea Linux 5.0 arm
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'meta-multimedia/recipes-mediacentre')
-rw-r--r--meta-multimedia/recipes-mediacentre/xbmc/xbmc/0001-configure-don-t-run-python-distutils-to-find-STAGING.patch31
-rw-r--r--meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch97
-rw-r--r--meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch69
-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_git.bb99
6 files changed, 371 insertions, 0 deletions
diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0001-configure-don-t-run-python-distutils-to-find-STAGING.patch b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0001-configure-don-t-run-python-distutils-to-find-STAGING.patch
new file mode 100644
index 000000000..dfc3959a1
--- /dev/null
+++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0001-configure-don-t-run-python-distutils-to-find-STAGING.patch
@@ -0,0 +1,31 @@
1From 0dce5a2abd9f42876616c35772a4d71c5399543c Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Sat, 17 Dec 2011 11:38:15 +0100
4Subject: [PATCH 1/4] configure: don't run python distutils to find STAGING_INCDIR/python, it is not safe for per-machine sysroots
5
6Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
7---
8 m4/ax_python_devel.m4 | 7 +------
9 1 files changed, 1 insertions(+), 6 deletions(-)
10
11diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4
12index adbd207..dee70f6 100644
13--- a/m4/ax_python_devel.m4
14+++ b/m4/ax_python_devel.m4
15@@ -151,12 +151,7 @@ $ac_distutils_result])
16 #
17 AC_MSG_CHECKING([for Python include path])
18 if test -z "$PYTHON_CPPFLAGS"; then
19- python_path=`$PYTHON -c "import distutils.sysconfig; \
20- print (distutils.sysconfig.get_python_inc ());"`
21- if test -n "${python_path}"; then
22- python_path="-I$python_path"
23- fi
24- PYTHON_CPPFLAGS=$python_path
25+ PYTHON_CPPFLAGS="-I${STAGING_INCDIR}/${PYTHON_DIR}"
26 fi
27 AC_MSG_RESULT([$PYTHON_CPPFLAGS])
28 AC_SUBST([PYTHON_CPPFLAGS])
29--
301.7.2.5
31
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
new file mode 100644
index 000000000..e0a4037bc
--- /dev/null
+++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch
@@ -0,0 +1,97 @@
1From 7b2a8a7869d257cba35f53f6d877877c29cdac27 Mon Sep 17 00:00:00 2001
2From: Paul Menzel <paulepanter@users.sourceforge.net>
3Date: Sun, 14 Aug 2011 21:53:47 +0200
4Subject: [PATCH 2/4] Revert "fixed:[ios] Add memory barriers to atomic Add/Subtract and Increment/Decrement functions to ensure synchronized accesses."
5
6This reverts commit 9a10c48710df79118e39e9b3bb0a15bf1fe694d1.
7
8The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails with the following error.
9
10 make -C xbmc/threads
11 make[1]: Entering directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+9a10c48710df79118e39e9b3bb0a15bf1fe694d1/git/xbmc/threads'
12 CPP Atomics.o
13 /tmp/ccIzTm3L.s: Assembler messages:
14 /tmp/ccIzTm3L.s:40: Error: garbage following instruction -- `dmb ish'
15 /tmp/ccIzTm3L.s:48: Error: garbage following instruction -- `dmb ish'
16 /tmp/ccIzTm3L.s:76: Error: garbage following instruction -- `dmb ish'
17 /tmp/ccIzTm3L.s:83: Error: garbage following instruction -- `dmb ish'
18 /tmp/ccIzTm3L.s:111: Error: garbage following instruction -- `dmb ish'
19 /tmp/ccIzTm3L.s:118: Error: garbage following instruction -- `dmb ish'
20 /tmp/ccIzTm3L.s:145: Error: garbage following instruction -- `dmb ish'
21 /tmp/ccIzTm3L.s:152: Error: garbage following instruction -- `dmb ish'
22 /tmp/ccIzTm3L.s:180: Error: garbage following instruction -- `dmb ish'
23 /tmp/ccIzTm3L.s:187: Error: garbage following instruction -- `dmb ish'
24 make[1]: *** [Atomics.o] Error 1
25 make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+9a10c48710df79118e39e9b3bb0a15bf1fe694d1/git/xbmc/threads'
26 make: *** [xbmc/threads/threads.a] Error 2
27---
28 xbmc/threads/Atomics.cpp | 8 --------
29 1 files changed, 0 insertions(+), 8 deletions(-)
30
31diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp
32index 5b09f18..0a98a7e 100644
33--- a/xbmc/threads/Atomics.cpp
34+++ b/xbmc/threads/Atomics.cpp
35@@ -194,14 +194,12 @@ long AtomicIncrement(volatile long* pAddr)
36 {
37 register long val;
38 asm volatile (
39- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
40 "1: \n"
41 "ldrex %0, [%1] \n" // (val = *pAddr)
42 "add %0, #1 \n" // (val += 1)
43 "strex r1, %0, [%1] \n"
44 "cmp r1, #0 \n"
45 "bne 1b \n"
46- "dmb ish \n" // Memory barrier.
47 : "=&r" (val)
48 : "r"(pAddr)
49 : "r1"
50@@ -273,14 +271,12 @@ long AtomicAdd(volatile long* pAddr, long amount)
51 {
52 register long val;
53 asm volatile (
54- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
55 "1: \n"
56 "ldrex %0, [%1] \n" // (val = *pAddr)
57 "add %0, %2 \n" // (val += amount)
58 "strex r1, %0, [%1] \n"
59 "cmp r1, #0 \n"
60 "bne 1b \n"
61- "dmb ish \n" // Memory barrier.
62 : "=&r" (val)
63 : "r"(pAddr), "r"(amount)
64 : "r1"
65@@ -351,14 +347,12 @@ long AtomicDecrement(volatile long* pAddr)
66 {
67 register long val;
68 asm volatile (
69- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
70 "1: \n"
71 "ldrex %0, [%1] \n" // (val = *pAddr)
72 "sub %0, #1 \n" // (val -= 1)
73 "strex r1, %0, [%1] \n"
74 "cmp r1, #0 \n"
75 "bne 1b \n"
76- "dmb ish \n" // Memory barrier.
77 : "=&r" (val)
78 : "r"(pAddr)
79 : "r1"
80@@ -431,14 +425,12 @@ long AtomicSubtract(volatile long* pAddr, long amount)
81 {
82 register long val;
83 asm volatile (
84- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
85 "1: \n"
86 "ldrex %0, [%1] \n" // (val = *pAddr)
87 "sub %0, %2 \n" // (val -= amount)
88 "strex r1, %0, [%1] \n"
89 "cmp r1, #0 \n"
90 "bne 1b \n"
91- "dmb ish \n" // Memory barrier.
92 : "=&r" (val)
93 : "r"(pAddr), "r"(amount)
94 : "r1"
95--
961.7.2.5
97
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
new file mode 100644
index 000000000..629017b7b
--- /dev/null
+++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch
@@ -0,0 +1,69 @@
1From aaae1616a09d359b52e929f944ca0ceb4bb7f831 Mon Sep 17 00:00:00 2001
2From: Paul Menzel <paulepanter@users.sourceforge.net>
3Date: Sun, 14 Aug 2011 21:55:09 +0200
4Subject: [PATCH 3/4] Revert "fixed:[ios] Add memory barriers to cas() assembly to ensure alignment of memory accesses."
5
6This reverts commit 92bab651e2253d172879995b50985645b77fecd2.
7
8The build (OpenEmbedded `angstrom-2010.x` for `MACHINE = "beagleboard") fails with the following error.
9
10 CPP Atomics.o
11 make[1]: Entering directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+92bab651e2253d172879995b50985645b77fecd2/git/xbmc/windows'
12 CPP GUIMediaWindow.o
13 /tmp/ccrsywuV.s: Assembler messages:
14 /tmp/ccrsywuV.s:40: Error: garbage following instruction -- `dmb ish'
15 /tmp/ccrsywuV.s:48: Error: garbage following instruction -- `dmb ish'
16 make[1]: *** [Atomics.o] Error 1
17 make[1]: Leaving directory `/oe/build-angstrom-next/angstrom-dev/work/armv7a-angstrom-linux-gnueabi/xbmc-10.05-r11+gitr0+92bab651e2253d172879995b50985645b77fecd2/git/xbmc/threads'
18 make: *** [xbmc/threads/threads.a] Error 2
19---
20 xbmc/threads/Atomics.cpp | 33 ++++++++++++++++-----------------
21 1 files changed, 16 insertions(+), 17 deletions(-)
22
23diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp
24index 0a98a7e..0967eb2 100644
25--- a/xbmc/threads/Atomics.cpp
26+++ b/xbmc/threads/Atomics.cpp
27@@ -49,23 +49,22 @@ long cas(volatile long *pAddr, long expectedVal, long swapVal)
28 #elif defined(__arm__)
29 long cas(volatile long* pAddr, long expectedVal, long swapVal)
30 {
31- register long prev;
32- asm volatile (
33- "dmb ish \n" // Memory barrier. Make sure all memory accesses appearing before this complete before any that appear after
34- "1: \n"
35- "ldrex %0, [%1] \n" // Load the current value of *pAddr(%1) into prev (%0) and lock pAddr,
36- "cmp %0, %2 \n" // Verify that the current value (%0) == old value (%2)
37- "bne 2f \n" // Bail if the two values are not equal [not as expected]
38- "strex r1, %3, [%1] \n"
39- "cmp r1, #0 \n"
40- "bne 1b \n"
41- "dmb ish \n" // Memory barrier.
42- "2: \n"
43- : "=&r" (prev)
44- : "r"(pAddr), "r"(expectedVal),"r"(swapVal)
45- : "r1"
46- );
47- return prev;
48+ return(__sync_val_compare_and_swap(pAddr, expectedVal, swapVal));
49+// register long prev;
50+// asm volatile (
51+// "1: \n"
52+// "ldrex %0, [%1] \n" /* Load the current value of *pAddr(%1) into prev (%0) and lock pAddr, */
53+// "cmp %0, %2 \n" /* Verify that the current value (%0) == old value (%2) */
54+// "bne 2f \n" /* Bail if the two values are not equal [not as expected] */
55+// "strex r1, %3, [%1] \n"
56+// "cmp r1, #0 \n"
57+// "bne 1b \n"
58+// "2: "
59+// : "=&r" (prev)
60+// : "r"(pAddr), "r"(expectedVal),"r"(swapVal)
61+// : "r1"
62+// );
63+// return prev;
64 }
65
66 #elif defined(__mips__)
67--
681.7.2.5
69
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
new file mode 100644
index 000000000..345e20ee1
--- /dev/null
+++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch
@@ -0,0 +1,43 @@
1From fd8f73826240aae543a41a2bfeea0056e2fe594d Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Mon, 11 Mar 2013 11:04:29 +0100
4Subject: [PATCH] configure: cope with ld-is-gold DISTRO_FEATURE
5
6Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
7---
8
9Upstream-Stature: backport
10
11 configure.in | 12 +++++++-----
12 1 files changed, 7 insertions(+), 5 deletions(-)
13
14diff --git a/configure.in b/configure.in
15index ef94683..c8b459b 100755
16--- a/configure.in
17+++ b/configure.in
18@@ -18,9 +18,14 @@ tolower(){
19 # check for library basenames
20 AC_DEFUN([XB_FIND_SONAME],
21 [
22+ #set -x
23 if [[ "$host_vendor" != "apple" ]]; then
24 AC_MSG_CHECKING([for lib$2 soname])
25 $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-M 2>/dev/null | grep "^LOAD.*$2" | awk '{V=2; print $V}')
26+ if [[ -z $$1_FILENAME ]]; then
27+ #try gold linker syntax
28+ $1_FILENAME=$($CC -nostdlib -o /dev/null $LDFLAGS -l$2 -Wl,-t 3>&1 1>&2 2>&3 | grep "$2")
29+ fi
30 if [[ ! -z $$1_FILENAME ]]; then
31 $1_SONAME=$(objdump -p $$1_FILENAME | grep "SONAME.*$2" | awk '{V=2; print $V}')
32 fi
33@@ -55,6 +60,7 @@ AC_DEFUN([XB_FIND_SONAME],
34 AC_MSG_RESULT([$$1_SONAME])
35 AC_SUBST($1_SONAME)
36 fi
37+ #set +x
38 ])
39
40 # Function to push and pop libs and includes for a command
41--
421.7.7.6
43
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
new file mode 100644
index 000000000..5c1405982
--- /dev/null
+++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc/configure.in-Avoid-running-code.patch
@@ -0,0 +1,32 @@
1From cfd851660a594801a591e80dc820c65cb7bd7836 Mon Sep 17 00:00:00 2001
2From: Otavio Salvador <otavio@ossystems.com.br>
3Date: Sat, 6 Oct 2012 06:40:03 -0300
4Subject: [PATCH] configure.in: Avoid running code or we break cross-compile
5
6Upstream-Status: Backport [similar change done for 12.0]
7
8Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
9---
10 configure.in | 6 +-----
11 1 files changed, 1 insertions(+), 5 deletions(-)
12
13diff --git a/configure.in b/configure.in
14index ef94683..d7efcb0 100755
15--- a/configure.in
16+++ b/configure.in
17@@ -1246,11 +1246,7 @@ if test "$use_external_ffmpeg" = "yes"; then
18 AC_DEFINE([USE_EXTERNAL_FFMPEG], [1], [Whether to use external FFmpeg libraries.])
19
20 # Disable vdpau support if external libavcodec doesn't have it
21- AC_RUN_IFELSE(
22- AC_LANG_PROGRAM([[#include <libavcodec/avcodec.h>]],
23- [[avcodec_register_all();
24- AVCodec *codec = avcodec_find_decoder_by_name("vc1_vdpau");
25- return (codec) ? 0 : 1;]]),,
26+ AC_CHECK_LIB([avcodec], [ff_vdpau_vc1_decode_picture],,
27 [if test "x$use_vdpau" = "xyes"; then
28 AC_MSG_ERROR($ffmpeg_vdpau_not_supported)
29 else
30--
311.7.2.5
32
diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
new file mode 100644
index 000000000..17db7b51e
--- /dev/null
+++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
@@ -0,0 +1,99 @@
1SUMMARY = "XBMC Media Center"
2
3LICENSE = "GPLv2"
4LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=6eb631b6da7fdb01508a80213ffc35ff"
5
6DEPENDS = "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"
7#require recipes/egl/egl.inc
8
9
10SRCREV = "82388d55dae79cbb2e486e307e23202e76a43efa"
11
12# multiple issues
13PNBLACKLIST[xbmc] ?= "/usr/include/c++/ctime:70:11: error: '::gmtime' has not been declared"
14
15PV = "11.0+gitr${SRCPV}"
16PR = "r14"
17SRC_URI = "git://github.com/xbmc/xbmc.git;branch=Eden \
18 file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \
19 file://0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch \
20 file://0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch \
21 file://0004-configure-cope-with-ld-is-gold-DISTRO_FEATURE.patch \
22 file://configure.in-Avoid-running-code.patch \
23"
24
25inherit autotools gettext python-dir
26
27S = "${WORKDIR}/git"
28
29# breaks compilation
30CCACHE = ""
31
32CACHED_CONFIGUREVARS += " \
33 ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \
34"
35
36PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'opengl', 'opengl', 'openglesv2', d)}"
37PACKAGECONFIG[opengl] = "--enable-gl,--enable-gles,glew"
38PACKAGECONFIG[openglesv2] = "--enable-gles,--enable-gl,"
39
40EXTRA_OECONF = " \
41 --disable-rpath \
42 --enable-libusb \
43 --enable-airplay \
44 --disable-optical-drive \
45 --enable-external-libraries \
46 ${@base_contains('DISTRO_FEATURES', 'opengl', '--enable-gl', '--enable-gles', d)} \
47"
48
49FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math"
50BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
51
52EXTRA_OECONF_append_armv7a = "--cpu=cortex-a8"
53
54# for python modules
55export HOST_SYS
56export BUILD_SYS
57export STAGING_LIBDIR
58export STAGING_INCDIR
59export PYTHON_DIR
60
61do_configure() {
62 sh bootstrap
63 oe_runconf
64}
65
66PARALLEL_MAKE = ""
67
68do_compile_prepend() {
69 for i in $(find . -name "Makefile") ; do
70 sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' $i
71 done
72
73 for i in $(find . -name "*.mak*" -o -name "Makefile") ; do
74 sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${libdir}:g' $i
75 done
76}
77
78INSANE_SKIP_${PN} = "rpaths"
79
80# on ARM architectures xbmc will use GLES which will make the regular wrapper fail, so start it directly
81do_install_append_arm() {
82 sed -i -e 's:Exec=xbmc:Exec=${libdir}/xbmc/xbmc.bin:g' ${D}${datadir}/applications/xbmc.desktop
83}
84
85FILES_${PN} += "${datadir}/xsessions ${datadir}/icons"
86FILES_${PN}-dbg += "${libdir}/xbmc/.debug ${libdir}/xbmc/*/.debug ${libdir}/xbmc/*/*/.debug ${libdir}/xbmc/*/*/*/.debug"
87
88# xbmc uses some kind of dlopen() method for libcec so we need to add it manually
89# OpenGL builds need glxinfo, that's in mesa-demos
90RRECOMMENDS_${PN}_append = " libcec \
91 python \
92 python-lang \
93 python-re \
94 python-netclient \
95 libcurl \
96 xdpyinfo \
97 ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-demos', '', d)} \
98"
99RRECOMMENDS_${PN}_append_libc-glibc = " glibc-charmap-ibm850 glibc-gconv-ibm850"