Patchwork [meta-oe,meta-multimedia,1/6] xbmc: first try at making it build for non-GLES platforms

login
register
mail settings
Submitter Koen Kooi
Date Dec. 21, 2012, 2 p.m.
Message ID <1356098450-27475-1-git-send-email-koen@dominion.thruhere.net>
Download mbox | patch
Permalink /patch/41473/
State Changes Requested, archived
Headers show

Comments

Koen Kooi - Dec. 21, 2012, 2 p.m.
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
---
 .../recipes-mediacentre/xbmc/xbmc_git.bb           |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)
ml@communistcode.co.uk - Dec. 22, 2012, 2:05 p.m.
Hi Koen,

On 12/21/12 14:00, Koen Kooi wrote:
> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
> ---
>   .../recipes-mediacentre/xbmc/xbmc_git.bb           |    7 ++++---
>   1 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
> index 74bf710..6331306 100644
> --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
> +++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
> @@ -3,13 +3,13 @@ DESCRIPTION = "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"
> +DEPENDS = "libmad 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"
>   #require recipes/egl/egl.inc
>   
>   SRCREV = "82388d55dae79cbb2e486e307e23202e76a43efa"
>   
>

I don't know how closely you follow XBMC, but there is a new release 
just round the corner, so it may be worth working with the beta builds 
rather than doing lots of work on an older version.

I'm sure you know what you're doing, but just a heads up in case the 
news had slipped past you!

Cheers,
Jack.
Koen Kooi - Dec. 22, 2012, 3:29 p.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Op 22-12-12 15:05, Jack Mitchell schreef:
> Hi Koen,
> 
> On 12/21/12 14:00, Koen Kooi wrote:
>> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> --- 
>> .../recipes-mediacentre/xbmc/xbmc_git.bb           |    7 ++++--- 1
>> files changed, 4 insertions(+), 3 deletions(-)
>> 
>> diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb 
>> b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb index
>> 74bf710..6331306 100644 ---
>> a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb +++
>> b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb @@ -3,13 +3,13
>> @@ DESCRIPTION = "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" +DEPENDS = "libmad 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" #require recipes/egl/egl.inc SRCREV =
>> "82388d55dae79cbb2e486e307e23202e76a43efa"
>> 
> 
> I don't know how closely you follow XBMC, but there is a new release
> just round the corner, so it may be worth working with the beta builds
> rather than doing lots of work on an older version.
> 
> I'm sure you know what you're doing, but just a heads up in case the news
> had slipped past you!

That new release introduces a number of problems:

* more external libraries needed, none of them friendly to crosscompiling
* issues when using gold as linker
* Incompatibility with external libav
* python detection is broken in crossbuilds

And more. I do want to get the new version working since I need the PVR
addons to work, but that is a lot more work than cleaning up this
known-working version.

The patches I'm sending are part of my xmas vacation project to get my xbmc
setup streamlined and using the FRI2 ELC giveaway as frontend. The backend
portion is done (tvheadend + oscam), now it's time for frontend (xbmc + pvr
addon) and middleware (transcoding.
Ross has impeccable timing with his upnp work as well :)

regards,

Koen

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: GPGTools - http://gpgtools.org

iD8DBQFQ1dHZMkyGM64RGpERAtPrAKCsl3BUmq6AyGntF1UWKCYRTe7RFACgqDUD
yxGw+4SKqTE6ebVw9COcm6E=
=kL17
-----END PGP SIGNATURE-----
Martin Jansa - Dec. 23, 2012, 12:32 p.m.
On Fri, Dec 21, 2012 at 03:00:45PM +0100, Koen Kooi wrote:
> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
> ---
>  .../recipes-mediacentre/xbmc/xbmc_git.bb           |    7 ++++---
>  1 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
> index 74bf710..6331306 100644
> --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
> +++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
> @@ -3,13 +3,13 @@ DESCRIPTION = "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"
> +DEPENDS = "libmad 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"
>  #require recipes/egl/egl.inc
>  
>  SRCREV = "82388d55dae79cbb2e486e307e23202e76a43efa"
>  
>  PV = "11.0"
> -PR = "r14"
> +PR = "r15"
>  PR_append = "+gitr${SRCPV}"
>  SRC_URI = "git://github.com/xbmc/xbmc.git;branch=eden;protocol=git \
>             file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \
> @@ -26,13 +26,14 @@ CACHED_CONFIGUREVARS += " \
>   ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \
>  "
>  
> +
>  EXTRA_OECONF = " \
>   --disable-rpath \
> - --enable-gles \
>   --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"

Here it fails on libmad detection:
| configure:21352: checking for libmad soname
| configure:21378: result: no
| configure:21381: error: Unable to determine soname of libmad library
Koen Kooi - Dec. 23, 2012, 7:34 p.m.
Op 23 dec. 2012, om 13:32 heeft Martin Jansa <martin.jansa@gmail.com> het volgende geschreven:

> On Fri, Dec 21, 2012 at 03:00:45PM +0100, Koen Kooi wrote:
>> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
>> ---
>> .../recipes-mediacentre/xbmc/xbmc_git.bb           |    7 ++++---
>> 1 files changed, 4 insertions(+), 3 deletions(-)
>> 
>> diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
>> index 74bf710..6331306 100644
>> --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
>> +++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
>> @@ -3,13 +3,13 @@ DESCRIPTION = "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"
>> +DEPENDS = "libmad 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"
>> #require recipes/egl/egl.inc
>> 
>> SRCREV = "82388d55dae79cbb2e486e307e23202e76a43efa"
>> 
>> PV = "11.0"
>> -PR = "r14"
>> +PR = "r15"
>> PR_append = "+gitr${SRCPV}"
>> SRC_URI = "git://github.com/xbmc/xbmc.git;branch=eden;protocol=git \
>>            file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \
>> @@ -26,13 +26,14 @@ CACHED_CONFIGUREVARS += " \
>>  ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \
>> "
>> 
>> +
>> EXTRA_OECONF = " \
>>  --disable-rpath \
>> - --enable-gles \
>>  --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"
> 
> Here it fails on libmad detection:
> | configure:21352: checking for libmad soname
> | configure:21378: result: no
> | configure:21381: error: Unable to determine soname of libmad library

Which architecture? I saw this on x86, but not on armv7a. It should be fixed either way, though :)

regards,

Koen
Martin Jansa - Dec. 23, 2012, 7:36 p.m.
On Sun, Dec 23, 2012 at 08:34:05PM +0100, Koen Kooi wrote:
> 
> Op 23 dec. 2012, om 13:32 heeft Martin Jansa <martin.jansa@gmail.com> het volgende geschreven:
> 
> > On Fri, Dec 21, 2012 at 03:00:45PM +0100, Koen Kooi wrote:
> >> Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
> >> ---
> >> .../recipes-mediacentre/xbmc/xbmc_git.bb           |    7 ++++---
> >> 1 files changed, 4 insertions(+), 3 deletions(-)
> >> 
> >> diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
> >> index 74bf710..6331306 100644
> >> --- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
> >> +++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
> >> @@ -3,13 +3,13 @@ DESCRIPTION = "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"
> >> +DEPENDS = "libmad 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"
> >> #require recipes/egl/egl.inc
> >> 
> >> SRCREV = "82388d55dae79cbb2e486e307e23202e76a43efa"
> >> 
> >> PV = "11.0"
> >> -PR = "r14"
> >> +PR = "r15"
> >> PR_append = "+gitr${SRCPV}"
> >> SRC_URI = "git://github.com/xbmc/xbmc.git;branch=eden;protocol=git \
> >>            file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \
> >> @@ -26,13 +26,14 @@ CACHED_CONFIGUREVARS += " \
> >>  ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \
> >> "
> >> 
> >> +
> >> EXTRA_OECONF = " \
> >>  --disable-rpath \
> >> - --enable-gles \
> >>  --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"
> > 
> > Here it fails on libmad detection:
> > | configure:21352: checking for libmad soname
> > | configure:21378: result: no
> > | configure:21381: error: Unable to determine soname of libmad library
> 
> Which architecture? I saw this on x86, but not on armv7a. It should be fixed either way, though :)

armv5te (qemuarm).

Cheers,

Patch

diff --git a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
index 74bf710..6331306 100644
--- a/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
+++ b/meta-multimedia/recipes-mediacentre/xbmc/xbmc_git.bb
@@ -3,13 +3,13 @@  DESCRIPTION = "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"
+DEPENDS = "libmad 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"
 #require recipes/egl/egl.inc
 
 SRCREV = "82388d55dae79cbb2e486e307e23202e76a43efa"
 
 PV = "11.0"
-PR = "r14"
+PR = "r15"
 PR_append = "+gitr${SRCPV}"
 SRC_URI = "git://github.com/xbmc/xbmc.git;branch=eden;protocol=git \
            file://0001-configure-don-t-run-python-distutils-to-find-STAGING.patch \
@@ -26,13 +26,14 @@  CACHED_CONFIGUREVARS += " \
  ac_cv_path_PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python" \
 "
 
+
 EXTRA_OECONF = " \
  --disable-rpath \
- --enable-gles \
  --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"