Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 540930

Summary: media-tv/xbmc-13.2-r1: compilation failure due to libav_hacks.h when compiling against libav-11.2
Product: Gentoo Linux Reporter: DaggyStyle <daggs>
Component: Current packagesAssignee: Gentoo Xbox project <xbox>
Status: RESOLVED WONTFIX    
Severity: normal CC: media-video, spookyghost
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: build log
patch to fix the issue

Description DaggyStyle 2015-02-21 19:54:09 UTC
xbmc-13.2-r1 fails to compile against libav-11.2 with the following error:
libav_hacks.h:31:2: error: #error "You should not enable libav hacks when building against FFmpeg."


emerge --info libav xbmc:
Portage 2.2.17 (python 2.7.9-final-0, default/linux/amd64/13.0/desktop/kde, gcc-4.8.3, glibc-2.20-r2, 3.19.0-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-3.19.0-gentoo-x86_64-Intel-R-_Core-TM-_i7-2600_CPU_@_3.40GHz-with-gentoo-2.2
KiB Mem:    16136204 total,   4202228 free
KiB Swap:   16777212 total,  16777212 free
Timestamp of repository gentoo: Sat, 21 Feb 2015 14:15:01 +0000
sh bash 4.2_p53
ld GNU ld (Gentoo 2.25 p1.0) 2.25
app-shells/bash:          4.2_p53::gentoo
dev-java/java-config:     2.2.0::gentoo
dev-lang/perl:            5.20.1-r4::gentoo
dev-lang/python:          2.7.9-r2::gentoo, 3.3.5-r1::gentoo, 3.4.2::gentoo
dev-util/cmake:           3.1.0::gentoo-zh
dev-util/pkgconfig:       0.28-r2::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.13.11::gentoo
sys-apps/sandbox:         2.6-r1::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69::gentoo
sys-devel/automake:       1.11.6-r1::gentoo, 1.12.6::gentoo, 1.13.4::gentoo
sys-devel/binutils:       2.25::gentoo
sys-devel/gcc:            4.6.4::gentoo, 4.8.3::gentoo, 4.9.2::gentoo
sys-devel/gcc-config:     1.7.3::gentoo
sys-devel/libtool:        2.4.6::gentoo
sys-devel/make:           4.0-r1::gentoo
sys-kernel/linux-headers: 3.19::gentoo (virtual/os-headers)
sys-libs/glibc:           2.20-r2::gentoo
Repositories:

gentoo
    location: /mnt/portage/tree/official
    sync-type: rsync
    sync-uri: rsync://mirror.hamakor.org.il/gentoo-portage
    priority: -1000

gentoo-zh
    location: /var/lib/layman/gentoo-zh
    masters: gentoo
    priority: 0

x11
    location: /var/lib/layman/x11
    masters: gentoo
    priority: 1

tox-overlay
    location: /var/lib/layman/tox-overlay
    masters: gentoo
    priority: 2

kde
    location: /var/lib/layman/kde
    masters: gentoo
    priority: 3

Utopia_Platinia
    location: /usr/local/portage
    masters: Utopia_Platinia gentoo
    priority: 4

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA FraunhoferFDK dlj-1.1 skype-4.0.0.7-copyright Broadcom PUEL googleearth LOKI-EULA AdobeFlash-11.x RTCW-ETEULA ut2003 MakeMKV-EULA Q3AEULA TeamViewer"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -msse4.1"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-march=native -O2 -pipe -msse4.1"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going --quiet-build=n"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://mirror.isoc.org.il/gentoo/ ftp://ftp.halifax.rwth-aachen.de/gentoo/"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j9"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS="--timeout=180"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac acl acpi aio alsa amd64 amr audiofile avx bash-completion berkdb bidi branding bzip2 c++0x cairo cdda cdparanoia cdr cjk cleartype cli consolekit cracklib crypt css cups curl cxx dbus declarative device-mapper dga dri drm dts dv dvb dvd dvdr dvdread edb emboss encode exif faad fam ffmpeg firefox flac ftp gallium gdbm gif glamor gphoto2 gpm gtk iconv icq icu id3tag imagemagick java javascript jpeg jpeg2k kde kipi lame lcms ldap libav libnotify lua lzma mad matroska mmx mng modules mp3 mp4 mpeg mtp multilib nas ncurses nls nptl nsplugin ogg openal openexr opengl openmp oss pam pango pcre pdf perl phonon php plasma png policykit ppds private-headers python qt3support qt4 quicktime readline real samba scanner sdl semantic-desktop session smp sndfile spell srt sse sse2 sse3 sse4_1 sse4_2 ssl ssse3 startup-notification svg tcpd theora threads tiff truetype udev udisks udisks2 unicode upower usb v4l v4l2 vaapi vcd vdpau vorbis vpx wavpack wifi wma wxwidgets x264 xcb xcomposite xinerama xml xosd xrandr xscreensaver xv xvid xvmc zlib" ABI_X86="64" ALSA_CARDS="hda-intel usb-audio" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc efi-64" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en he es" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2 python3_3" QEMU_SOFTMMU_TARGETS="x86_64" QEMU_USER_TARGETS="x86_64" RUBY_TARGETS="ruby19 ruby20" SANE_BACKENDS="hp" USERLAND="GNU" VIDEO_CARDS="vesa v4l radeon r600 i915 intel i965" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

media-video/libav-11.2::gentoo was built with the following:
USE="X aac alsa amr bzip2 encode gpl hardcoded-tables jpeg2k mp3 network oss sdl ssl theora threads truetype v4l vaapi vdpau vorbis vpx wavpack x264 xvid zlib (-altivec) -bindist -cdio -cpudetection -custom-cflags -debug -doc -faac -fdk -fontconfig -frei0r -gsm -ieee1394 -jack (-neon) -openssl -opus -pic (-pulseaudio) -rtmp -schroedinger -speex -static-libs -test -tools (-vis) -webp -x265" ABI_X86="64 -32 -x32" CPU_FLAGS_X86="avx mmx mmxext ssse3 -3dnow -3dnowext -avx2"


media-tv/xbmc-12.3::gentoo was built with the following:
USE="X alsa css java opengl projectm rsxs samba sdl sse sse2 udisks usb vaapi vdpau xrandr -airplay (-altivec) -avahi -bluetooth -bluray -caps -cec -debug -gles -goom -joystick -midi (-mysql) (-neon) -nfs -profile (-pulseaudio) -pvr -rtmp -sftp -upnp (-upower) -webserver" ABI_X86="64" PYTHON_TARGETS="python2_7"

Reproducible: Always
Comment 1 DaggyStyle 2015-02-21 19:54:32 UTC
Created attachment 397160 [details]
build log
Comment 2 Spooky Ghost 2015-03-07 17:51:57 UTC
I had the same error with libav-10.5 however removing the libav hacks configure option from the ebuild allowed the build to complete succesfully.  xbmc starts but I haven't tested all the functionality.
Comment 3 DaggyStyle 2015-03-13 12:31:50 UTC
Created attachment 398798 [details, diff]
patch to fix the issue

xbmc-13.2 depends on at least libav-10_alpha which imho doesn't requires enabling libav-compat.

thus this patch should if it.
Comment 4 Alexis Ballier gentoo-dev 2015-03-13 12:51:20 UTC
i doubt xbmc can work with libav without libav-compat switch; though, i also think xbmc-13 does not use neither ffmpeg nor libav but its bundled security-hazard ffmpeg 1.2 version...
Comment 5 DaggyStyle 2015-03-14 15:09:17 UTC
(In reply to Alexis Ballier from comment #4)
> i doubt xbmc can work with libav without libav-compat switch; though, i also
> think xbmc-13 does not use neither ffmpeg nor libav but its bundled
> security-hazard ffmpeg 1.2 version...

it seems like passing --with-ffmpeg=/some/path to the configure call forces xbmc to use external ffmpeg/libav, see: https://github.com/xbmc/xbmc/blob/0733361677d8e657e8c6c164577f6d2aae5766fd/configure.in#L1774
Comment 6 SpanKY gentoo-dev 2015-03-14 21:09:55 UTC
(In reply to DaggyStyle from comment #5)

it's not really worth the time trying to hack xbmc apart.  kodi has already made external library usage possible and that's in the tree.
Comment 7 DaggyStyle 2015-03-15 18:23:23 UTC
(In reply to SpanKY from comment #6)
> (In reply to DaggyStyle from comment #5)
> 
> it's not really worth the time trying to hack xbmc apart.  kodi has already
> made external library usage possible and that's in the tree.

that would have been great if kodi wasn't hardcode dep against media-video/ffmpeg, see:
dagg@NCC-5001-D ~ $ equery d media-video/ffmpeg
 * These packages depend on media-video/ffmpeg:
...
media-tv/kodi-14.1 (>=media-video/ffmpeg-2.4[encode])
                   (media-video/ffmpeg[vdpau])
Comment 8 SpanKY gentoo-dev 2015-03-16 04:54:47 UTC
(In reply to DaggyStyle from comment #7)

that's irrelevant to this bug.  see the other bug open on the topic.

going to punt as no more work is being done on xbmc.