Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 406215 - media-tv/xbmc-11.0 with media-video/libav-0.6.5+ fails to build
Summary: media-tv/xbmc-11.0 with media-video/libav-0.6.5+ fails to build
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Xbox project
URL:
Whiteboard:
Keywords:
: 408495 (view as bug list)
Depends on:
Blocks:
 
Reported: 2012-02-28 20:49 UTC by Ben Kohler
Modified: 2012-03-30 18:55 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log for xbmc-11.0_beta3 against libav-0.8 (build.log,221.16 KB, text/plain)
2012-02-28 20:50 UTC, Ben Kohler
Details
ffmpeg patch (xbmc-11.0-ffmpeg10.patch,1.02 KB, patch)
2012-03-20 15:12 UTC, Tomáš Chvátal (RETIRED)
Details | Diff
libav patch (xbmc-11.0-libav.patch,3.12 KB, patch)
2012-03-20 15:13 UTC, Tomáš Chvátal (RETIRED)
Details | Diff
ffmpeg patch (0001-Add-support-for-new-ffmpeg-10-11-api.patch,1.17 KB, patch)
2012-03-23 11:29 UTC, Tomáš Chvátal (RETIRED)
Details | Diff
libav patch (0002-Add-support-for-libav-api-as-it-sligthly-differ.patch,3.52 KB, patch)
2012-03-23 11:29 UTC, Tomáš Chvátal (RETIRED)
Details | Diff
libav-ffmpeg-includes.patch (0001-Ensure-we-include-proper-header-on-ffmpeg.patch,1.50 KB, text/plain)
2012-03-30 08:05 UTC, Tomáš Chvátal (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ben Kohler gentoo-dev 2012-02-28 20:49:41 UTC
xbmc-11.0_beta3 depends on >=virtual/ffmpeg-0.6[encode], but for users of libav this is not specific enough.  Out of the 3 non-masked versions, only one works:

=media-video/libav-0.6.5 BAD
=media-video/libav-0.7.4 GOOD
=media-video/libav-0.8 BAD

For users of true media-video/ffmpeg, both of the unmasked versions in portage work fine:

=media-video/ffmpeg-0.7.8 GOOD
=media-video/ffmpeg-0.10 GOOD




Reproducible: Always

Steps to Reproduce:
1. emerge =libav-0.8
2. emerge =xbmc-11.0_beta3
Comment 1 Ben Kohler gentoo-dev 2012-02-28 20:50:25 UTC
Created attachment 303635 [details]
build.log for xbmc-11.0_beta3 against libav-0.8
Comment 2 Ben Kohler gentoo-dev 2012-02-29 03:07:12 UTC
Soon after reporting here, I realized upstream has released 11.0_rc1, I have tested all the same ffmpeg & libav versions against xbmc-11.0_rc1 and the results are the same as _beta3.
Comment 3 SpanKY gentoo-dev 2012-03-01 04:47:11 UTC
should be reported to the xbmc trac instead of here ...
Comment 4 Ben Kohler gentoo-dev 2012-03-01 14:46:39 UTC
As far as I can tell, upstream has no interest in supporting or maintaining compatibility with libav
Comment 5 SpanKY gentoo-dev 2012-03-01 17:23:13 UTC
can't say that i do either :p

maybe i'll just change the dep to require ffmpeg explicitly
Comment 6 Ben Kohler gentoo-dev 2012-03-01 17:29:11 UTC
As much as I hate to see media-video/ffmpeg forced for xbmc when the rest of the media apps in portage are happy with the virtual and letting users choose libav instead, realistically libav is just not really a viable alternative on (current) xbmc.

Maybe if you force the ffmpeg dep it will get someone fired up enough to write the proper patches for libav and push them upstream =)
Comment 7 SpanKY gentoo-dev 2012-03-19 00:08:57 UTC
*** Bug 408495 has been marked as a duplicate of this bug. ***
Comment 8 Tomáš Chvátal (RETIRED) gentoo-dev 2012-03-19 11:02:39 UTC
Hmm, I thought that patch I applied should fix it, but instead it borked it for ffmpeg. Lets see what I can do about making it work.
Comment 9 Tomáš Chvátal (RETIRED) gentoo-dev 2012-03-20 15:12:58 UTC
Created attachment 305995 [details, diff]
ffmpeg patch

This fixes the build against future ffmpegs (same api as libav has now).
Comment 10 Tomáš Chvátal (RETIRED) gentoo-dev 2012-03-20 15:13:53 UTC
Created attachment 305997 [details, diff]
libav patch

This fixes the build against libav conditionaly keeping while keeping in mind different api for libav and ffmpeg.

Tested with ffmpeg-10 and libav-8
Comment 11 Tomáš Chvátal (RETIRED) gentoo-dev 2012-03-20 15:14:46 UTC
Both patches can be upstreamed I hope.
Comment 12 SpanKY gentoo-dev 2012-03-23 04:53:35 UTC
what do you mean "can be upstreamed" ?  have you posted trac items for them ?

if xbmc builds against ffmpeg and libav, and you clean up the patches [1], then should be fine to commit

[1] http://dev.gentoo.org/~vapier/clean-patches
Comment 13 Alexis Ballier gentoo-dev 2012-03-23 07:58:59 UTC
(In reply to comment #12)
> what do you mean "can be upstreamed" ?  have you posted trac items for them ?

fwiw: i think they want pull requests on github for submitting patches instead of posting them to trac.
Comment 14 Tomáš Chvátal (RETIRED) gentoo-dev 2012-03-23 11:28:35 UTC
ffmpeg patch:
https://github.com/xbmc/xbmc/pull/805

libav patch:
https://github.com/xbmc/xbmc/pull/806
Comment 15 Tomáš Chvátal (RETIRED) gentoo-dev 2012-03-23 11:29:10 UTC
Created attachment 306407 [details, diff]
ffmpeg patch

Git formated patch that contain all the info desired.
Comment 16 Tomáš Chvátal (RETIRED) gentoo-dev 2012-03-23 11:29:32 UTC
Created attachment 306409 [details, diff]
libav patch

Git formated patch that contain all the info desired.
Comment 17 SpanKY gentoo-dev 2012-03-29 16:20:15 UTC
unfortunately, this still breaks ffmpeg-0.10 (at least for me)

/var/tmp/portage/media-tv/xbmc-11.0/work/xbmc-11.0/lib/DllAvFilter.h: In member function ‘virtual int DllAvFilter::av_vsrc_buffer_add_frame(AVFilterContext*, AVFrame*, int)’:
/var/tmp/portage/media-tv/xbmc-11.0/work/xbmc-11.0/lib/DllAvFilter.h:180:108: error: ‘::av_vsrc_buffer_add_frame’ has not been declared
make[1]: *** [LinuxRendererGL.o] Error 1
Comment 18 Tomáš Chvátal (RETIRED) gentoo-dev 2012-03-29 18:41:21 UTC
(In reply to comment #17)
> unfortunately, this still breaks ffmpeg-0.10 (at least for me)
> 
> /var/tmp/portage/media-tv/xbmc-11.0/work/xbmc-11.0/lib/DllAvFilter.h: In
> member function ‘virtual int
> DllAvFilter::av_vsrc_buffer_add_frame(AVFilterContext*, AVFrame*, int)’:
> /var/tmp/portage/media-tv/xbmc-11.0/work/xbmc-11.0/lib/DllAvFilter.h:180:108:
> error: ‘::av_vsrc_buffer_add_frame’ has not been declared
> make[1]: *** [LinuxRendererGL.o] Error 1

Aha,  you are right, it is just tiny include problem, let me think about it :)
Comment 19 Michael Perlov 2012-03-29 22:48:32 UTC
As workaround it is possible to build xbmc with EXTRA_ECONF="--disable-external-ffmpeg", maybe to add USE-flag "external-ffmpeg" or something similar to choose?
Comment 20 Tomáš Chvátal (RETIRED) gentoo-dev 2012-03-30 08:05:23 UTC
Created attachment 307173 [details]
libav-ffmpeg-includes.patch

The commit to be aplied on top of the libav patch that should fix the include issue in the ffmpeg.
Comment 21 SpanKY gentoo-dev 2012-03-30 18:55:58 UTC
(In reply to comment #19)

no.  we do not support bundling of libraries.

(In reply to comment #20)

thanks, this one works.  added to cvs then.