Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 489534 - media-video/vlc-2.1.0: fail to build against libav.
Summary: media-video/vlc-2.1.0: fail to build against libav.
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Tom Wijsman (TomWij) (RETIRED)
URL:
Whiteboard:
Keywords:
: 489622 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-10-27 03:02 UTC by Alexandre
Modified: 2013-11-10 14:52 UTC (History)
4 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexandre 2013-10-27 03:02:56 UTC
vlc-2.1.0 ask for libavutil >=0.52.4 and libavcodec >= 54.36.0.

configure: error: libavutil >= 0.52.4 and libavcodec >= 54.36.0 are required for VDPAU decoding.

Thanks!

Reproducible: Always




Portage 2.2.7 (default/linux/amd64/13.0/desktop/kde, gcc-4.8.1, glibc-2.17, 3.10.17-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-3.10.17-gentoo-x86_64-Intel-R-_Pentium-R-_Dual_CPU_T3400_@_2.16GHz-with-gentoo-2.2
KiB Mem:     2821700 total,    357800 free
KiB Swap:    1048572 total,    980696 free
Timestamp of tree: Sun, 27 Oct 2013 01:45:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
ccache version 3.1.9 [enabled]
app-shells/bash:          4.2_p45
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.5-r4, 3.3.2-r2
dev-util/ccache:          3.1.9-r3
dev-util/cmake:           2.8.12
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.3
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.12.6, 1.14
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.8.1-r1
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.10 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo sunrise privacychain
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer -g0"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -march=native -pipe -fomit-frame-pointer -g0"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs candy ccache config-protect-if-modified distlocks ebuild-locks fail-clean fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS=" ftp://gentoo.c3sl.ufpr.br/gentoo/ http://gentoo.c3sl.ufpr.br/ ftp://ftp.las.ic.unicamp.br/pub/gentoo/ http://www.las.ic.unicamp.br/pub/gentoo/ ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ http://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ "
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
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"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/sunrise /usr/local/portage"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage/"
USE="X a52 aac acl acpi alsa amd64 berkdb branding bzip2 cairo caps cdda cdr cli consolekit cracklib crypt css cups custom-cflags custom-optimization cxx dbus declarative dga dri dts dvd dvdr emboss encode exif fam ffmpeg firefox flac gdbm gif gnutls gpm gstreamer gtk iconv infinality jpeg kde kipi lame lcms libnotify lzma lzo mad minimal mmx mng modules mp3 mp4 mpeg mudflap multilib ncurses networkmanager nls nptl nvidia offensive ogg opengl openmp openvg pam pango pcre pdf phonon plasma png policykit ppds pulseaudio qt3support qt4 quicktime readline samba sdl semantic-desktop session spell sse sse2 ssl ssse3 startup-notification svg syslog tcpd theora threads tiff truetype udev udisks unicode upower usb v4l vaapi vdpau vim-syntax vorbis vpx wavpack wxwidgets x264 xcb xcomposite xml xscreensaver xv xvid zlib" ABI_X86="64" ALSA_CARDS="hda-intel loopback" 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" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" 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 ubx" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" 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"
USE_PYTHON="2.7"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2013-10-27 07:07:17 UTC
Can you try again with =media-video/libav-9.10 and let me know if that works?

Thank you very much in advance.
Comment 2 Guillaume Castagnino 2013-10-27 10:44:13 UTC
This error IS with libav-9.10
Comment 3 Derk W te Bokkel 2013-10-27 11:03:21 UTC
if you turn off the vdpau flag it builds .. i.e. -vdpau ..
seems current libav versions are less than what is required .. (other than the 9999's)
Comment 4 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2013-10-27 13:24:51 UTC
If we look for the last commit in the 2.1.0 tag (shortlog, page 2) that changes the libav hash, we find this commit:

http://git.videolan.org/?p=vlc/vlc-2.1.git;a=commit;h=c1844c967204754c6652d237ce8057abd668d055

If we look at the diff, we end up finding b1f9cdc37ff5d5b391d2cd9af737ab4e5a0fc1c0 which appears to be present in the 9.9 and the 9.10 tag:

http://git.libav.org/?p=libav.git&a=search&h=refs%2Ftags%2Fv9.10&st=commit&s=b1f9cdc37ff5d5b391d2cd9af737ab4e5a0fc1c0

So, 9.10 should definitely be the right version as it should fit those requirements. However, somehow that still doesn't appear so; so, we need to dig down further on what the error is trying to exactly tell us.

Since it now says that both versions need to be higher than a certain restriction; we don't yet know which one of both fails, so it would be nice to figure that out first.

For libav-9.10, I have found the following:

http://git.libav.org/?p=libav.git;a=blob;f=libavutil/version.h;h=1dbb11ca21e8e3484e7e1cdb2e1373fd0358bd90;hb=bb81b2b2e06abbf713094f8b77b4cbd550c02503

#define LIBAVUTIL_VERSION_MAJOR 52
#define LIBAVUTIL_VERSION_MINOR  3
#define LIBAVUTIL_VERSION_MICRO  0

http://git.libav.org/?p=libav.git;a=blob;f=libavcodec/version.h;h=348ce99f2ad1adfcc670b822e17b043d372c945d;hb=bb81b2b2e06abbf713094f8b77b4cbd550c02503

#define LIBAVCODEC_VERSION_MAJOR 54
#define LIBAVCODEC_VERSION_MINOR 35
#define LIBAVCODEC_VERSION_MICRO  0

As you can clearly see, 52.3.0 < 52.4.0 and 54.35.0 < 54.36.0 for libavcodec; so, indeed, 2.1.0 appears to need libav-9999. :S

http://git.libav.org/?p=libav.git;a=blob;f=libavutil/version.h;hb=HEAD

#define LIBAVUTIL_VERSION_MAJOR 52
#define LIBAVUTIL_VERSION_MINOR 16
#define LIBAVUTIL_VERSION_MICRO  0

http://git.libav.org/?p=libav.git;a=blob;f=libavcodec/version.h;hb=HEAD

#define LIBAVCODEC_VERSION_MAJOR 55
#define LIBAVCODEC_VERSION_MINOR 22
#define LIBAVCODEC_VERSION_MICRO  0

Just as I thought, 52.16.0 > 52.4.0 and 55.22.0 > 54.36.0.

Just to check the ffmpeg side; on ffmpeg-1.2.4 I get 52.18.100 and 54.92.100 respectively using pkgconfig; so, ffmpeg doesn't seem to have this problem.

As a result of this, I am going to add a blocker:

    vdpau? ( !<media-libs/libav-9.11 )

I'm afraid you'll have to either use 9999 or await upstream to bring out a new version of libav, as I don't think anything can be done on the vlc side; an alternative could be to temporarily use ffmpeg.

+  27 Oct 2013; Tom Wijsman <TomWij@gentoo.org> vlc-2.1.0.ebuild,
+  vlc-2.1.9999.ebuild, vlc-9999.ebuild:
+  Restrict libav to version >=9.11 when using vdpau USE flag, see bug #489534
+  comment #4 for details; reported by Alexandre, Guillame Castagnino and Dark W
+  te Bokkel.

Thank you for reporting this and helping to the new version's quality.
Comment 5 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2013-10-27 13:27:22 UTC
Just a small update, I've mentioned media-libs/libav, but have corrected this to be media-video/libav before committing when checking for it to be a visible ATOM:

- vdpau? ( >=x11-libs/libvdpau-0.6:0 )
+ vdpau? ( >=x11-libs/libvdpau-0.6:0 !<media-video/libav-9.11 )
Comment 6 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2013-11-10 14:52:20 UTC
*** Bug 489622 has been marked as a duplicate of this bug. ***