diff options
Diffstat (limited to 'meta-multimedia')
4 files changed, 274 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 @@ | |||
1 | From 0dce5a2abd9f42876616c35772a4d71c5399543c Mon Sep 17 00:00:00 2001 | ||
2 | From: Koen Kooi <koen@dominion.thruhere.net> | ||
3 | Date: Sat, 17 Dec 2011 11:38:15 +0100 | ||
4 | Subject: [PATCH 1/4] configure: don't run python distutils to find STAGING_INCDIR/python, it is not safe for per-machine sysroots | ||
5 | |||
6 | Signed-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 | |||
11 | diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 | ||
12 | index 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 | -- | ||
30 | 1.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 @@ | |||
1 | From 7b2a8a7869d257cba35f53f6d877877c29cdac27 Mon Sep 17 00:00:00 2001 | ||
2 | From: Paul Menzel <paulepanter@users.sourceforge.net> | ||
3 | Date: Sun, 14 Aug 2011 21:53:47 +0200 | ||
4 | Subject: [PATCH 2/4] Revert "fixed:[ios] Add memory barriers to atomic Add/Subtract and Increment/Decrement functions to ensure synchronized accesses." | ||
5 | |||
6 | This reverts commit 9a10c48710df79118e39e9b3bb0a15bf1fe694d1. | ||
7 | |||
8 | The 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 | |||
31 | diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp | ||
32 | index 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 | -- | ||
96 | 1.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 @@ | |||
1 | From aaae1616a09d359b52e929f944ca0ceb4bb7f831 Mon Sep 17 00:00:00 2001 | ||
2 | From: Paul Menzel <paulepanter@users.sourceforge.net> | ||
3 | Date: Sun, 14 Aug 2011 21:55:09 +0200 | ||
4 | Subject: [PATCH 3/4] Revert "fixed:[ios] Add memory barriers to cas() assembly to ensure alignment of memory accesses." | ||
5 | |||
6 | This reverts commit 92bab651e2253d172879995b50985645b77fecd2. | ||
7 | |||
8 | The 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 | |||
23 | diff --git a/xbmc/threads/Atomics.cpp b/xbmc/threads/Atomics.cpp | ||
24 | index 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 | -- | ||
68 | 1.7.2.5 | ||
69 | |||
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..f0ce7cf15 --- /dev/null +++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb | |||
@@ -0,0 +1,77 @@ | |||
1 | DESCRIPTION = "XBMC Media Center" | ||
2 | |||
3 | LICENSE = "GPLv2" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=6eb631b6da7fdb01508a80213ffc35ff" | ||
5 | |||
6 | 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" | ||
7 | #require recipes/egl/egl.inc | ||
8 | |||
9 | SRCREV = "82388d55dae79cbb2e486e307e23202e76a43efa" | ||
10 | |||
11 | PV = "11.0" | ||
12 | PR = "r14" | ||
13 | PR_append = "+gitr${SRCPV}" | ||
14 | SRC_URI = "git://github.com/xbmc/xbmc.git;branch=eden;protocol=git \ | ||
15 | file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \ | ||
16 | file://0002-Revert-fixed-ios-Add-memory-barriers-to-atomic-Add-S.patch \ | ||
17 | file://0003-Revert-fixed-ios-Add-memory-barriers-to-cas-assembly.patch \ | ||
18 | " | ||
19 | |||
20 | inherit autotools gettext python-dir | ||
21 | |||
22 | S = "${WORKDIR}/git" | ||
23 | |||
24 | EXTRA_OECONF = " \ | ||
25 | --disable-rpath \ | ||
26 | --enable-gles \ | ||
27 | --enable-libusb \ | ||
28 | --enable-airplay \ | ||
29 | --disable-optical-drive \ | ||
30 | --enable-external-libraries \ | ||
31 | " | ||
32 | |||
33 | # for python modules | ||
34 | export HOST_SYS | ||
35 | export BUILD_SYS | ||
36 | export STAGING_LIBDIR | ||
37 | export STAGING_INCDIR | ||
38 | export PYTHON_DIR | ||
39 | |||
40 | do_configure() { | ||
41 | sh bootstrap | ||
42 | oe_runconf | ||
43 | } | ||
44 | |||
45 | PARALLEL_MAKE = "" | ||
46 | |||
47 | do_compile_prepend() { | ||
48 | |||
49 | sed -i -e 's:-rpath \$(libdir)::g' lib/libid3tag/libid3tag/Makefile | ||
50 | |||
51 | for i in $(find . -name "Makefile") ; do | ||
52 | sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${STAGING_LIBDIR}:g' $i | ||
53 | done | ||
54 | |||
55 | for i in $(find . -name "*.mak*") ; do | ||
56 | sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir)::g' $i | ||
57 | done | ||
58 | sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir)::g' ${S}/Makefile | ||
59 | } | ||
60 | |||
61 | # on ARM architectures xbmc will use GLES which will make the regular wrapper fail, so start it directly | ||
62 | do_install_append_arm() { | ||
63 | sed -i -e 's:Exec=xbmc:Exec=${libdir}/xbmc/xbmc.bin:g' ${D}${datadir}/applications/xbmc.desktop | ||
64 | } | ||
65 | |||
66 | FILES_${PN} += "${datadir}/xsessions ${datadir}/icons" | ||
67 | FILES_${PN}-dbg += "${libdir}/xbmc/.debug ${libdir}/xbmc/*/.debug ${libdir}/xbmc/*/*/.debug ${libdir}/xbmc/*/*/*/.debug" | ||
68 | |||
69 | # xbmc uses some kind of dlopen() method for libcec so we need to add it manually | ||
70 | RRECOMMENDS_${PN}_append = " libcec \ | ||
71 | python \ | ||
72 | python-lang \ | ||
73 | python-re \ | ||
74 | " | ||
75 | RRECOMMENDS_${PN}_append_libc-glibc = " glibc-charmap-ibm850 glibc-gconv-ibm850" | ||
76 | |||
77 | |||