Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 321159 - www-client/chromium-9999: fails to compile using the latest trunk
Summary: www-client/chromium-9999: fails to compile using the latest trunk
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Bernard Cafarelli
URL:
Whiteboard:
Keywords:
Depends on: 323609
Blocks:
  Show dependency tree
 
Reported: 2010-05-23 10:58 UTC by Robin Hallabro-Kokko
Modified: 2010-06-23 14:52 UTC (History)
8 users (show)

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


Attachments
The 500 last lines from the build log. (build-500.log,588.53 KB, text/plain)
2010-05-23 12:09 UTC, Robin Hallabro-Kokko
Details
patch disables using system ffmpeg and enables SSE2 (chromium-9999.patch,1.83 KB, patch)
2010-05-24 12:23 UTC, wbrana
Details | Diff
patch disables using system ffmpeg and enables SSE2 (chromium-9999.ebuild.patch,2.10 KB, patch)
2010-05-29 11:15 UTC, wbrana
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Robin Hallabro-Kokko 2010-05-23 10:58:00 UTC
After trying to update my live build of Chromium, the compilation fails as of latest trunk (r48000) due to the recent implementation of VP8.

Reproducible: Always

Steps to Reproduce:
1. Try to update chromium (emerge -v =www-client/chromium-9999)
2. Wait a bit for the compilation to fail.
Actual Results:  
Fails to compile.

media/filters/ffmpeg_demuxer.cc: In member function 'void media::FFmpegDemuxer::InitializeTask(media::DataSource*, media::FilterCallback*)':
media/filters/ffmpeg_demuxer.cc:414: error: 'CODEC_ID_VP8' was not declared in this scope
make: *** [out/Release/obj.target/media/media/filters/ffmpeg_demuxer.o] Error 1

Expected Results:  
A successful compilation.

emerge --info:

Portage 2.2_rc67 (default/linux/x86/2008.0, gcc-4.4.3, glibc-2.11-r1, 2.6.34-rc7-zen1 i686)
=================================================================
System uname: Linux-2.6.34-rc7-zen1-i686-Intel-R-_Core-TM-2_CPU_E8500_@_3.16GHz-with-gentoo-2.1.6
Timestamp of tree: Sat, 22 May 2010 11:55:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:     4.0_p35
dev-lang/python:     2.6.5-r2, 3.1.2-r3
dev-util/ccache:     2.4-r8
sys-apps/baselayout: 2.1.6
sys-apps/openrc:     0.6.0
sys-apps/sandbox:    2.2
sys-devel/autoconf:  2.65
sys-devel/automake:  1.10.3, 1.11.1
sys-devel/binutils:  2.20.1
sys-devel/gcc:       4.4.3, 4.5.0
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6b
virtual/os-headers:  2.6.32
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="* -@EULA"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer -fno-math-errno -w"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-march=native -O2 -pipe -fomit-frame-pointer -fno-math-errno -w"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests ccache distlocks fixpackages news nodoc noinfo noman paralell-fetch parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://mirror.mdfnet.se/mirror/gentoo http://ftp.df.lth.se/pub/gentoo/"
LDFLAGS="-Wl,-O1 -Bdirect -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--enable-new-dtags -Wl,-z,now -Wl,--sort-common -ldl"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage/x11 /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X alac alsa bzip2 cdr cli crypt custom-cflags cxx dri dvd dvdr dvdread encode fortran gdbm gif gpm iconv jpeg lame mad minimal mmx modules mp3 mpeg mudflap ncurses nptl nptlonly ogg openmp pam pcre png pppd python readline reflection session spl sse sse2 ssse3 sysfs tcpd threads truetype unicode vorbis win32codecs x86 xml xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="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 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" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="radeon" 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, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 niogic 2010-05-23 11:32:26 UTC
Someone told me he had a similar problem with CCACHE (#321127).
Try to disable it.
Comment 2 cyrillic 2010-05-23 12:02:06 UTC
I get the same error, and I don't use ccache.
Comment 3 Robin Hallabro-Kokko 2010-05-23 12:06:42 UTC
(In reply to comment #1)
> Someone told me he had a similar problem with CCACHE (#321127).
> Try to disable it.
> 

Disabled ccache and still failing. Attaching build log in case anyone is interested.
Comment 4 Robin Hallabro-Kokko 2010-05-23 12:09:30 UTC
Created attachment 232563 [details]
The 500 last lines from the build log.

The file is about 5.5M on it's own, stripping down to 500 lines.
Comment 5 Daniel Douglas 2010-05-24 03:59:54 UTC
If I had to take a guess it would be a missing include. Is that defined in one of these files (someone who knows C++)?

smorgbox chromium-9999 # grep -r "CODEC_ID_VP8" .
./media/filters/ffmpeg_demuxer.cc:      if (kDemuxerIsWebm && (stream->codec->codec_id != CODEC_ID_VP8 &&
./third_party/ffmpeg/source/patched-ffmpeg-mt/libavformat/matroskaenc.c:    CODEC_ID_VP8,
./third_party/ffmpeg/source/patched-ffmpeg-mt/libavformat/riff.c:    { CODEC_ID_VP8,          MKTAG('V', 'P', '8', '0') },
./third_party/ffmpeg/source/patched-ffmpeg-mt/libavformat/matroska.c:    {"V_VP8"            , CODEC_ID_VP8},
./third_party/ffmpeg/source/patched-ffmpeg-mt/libavcodec/avcodec.h:    CODEC_ID_VP8,
./third_party/ffmpeg/source/patched-ffmpeg-mt/libavcodec/libvpxenc.c:  CODEC_ID_VP8,
./third_party/ffmpeg/source/patched-ffmpeg-mt/libavcodec/libvpxdec.c:  CODEC_ID_VP8,

Or should CODEC_ID_VP8 be a string value instead?

That if block at line 414 doesn't actually look too important... like it's just checking for some corner case. Might just try commenting it out until they sort things out upstream.
Comment 6 wbrana 2010-05-24 07:31:46 UTC
Chromium needs modified ffmpeg. It doesn't build against system ffmpeg.
USE="-ffmpeg" should fix build.
Comment 7 Robin Hallabro-Kokko 2010-05-24 08:49:53 UTC
(In reply to comment #6)
> Chromium needs modified ffmpeg. It doesn't build against system ffmpeg.
> USE="-ffmpeg" should fix build.
> 

That use flag is no longer shipped with the ebuild. ffmpeg is a hard dependency. I guess we could merge the ffmpeg parts of an older ebuild and see what happens.
Comment 8 He Zhitong 2010-05-24 10:56:36 UTC
(In reply to comment #5)
> If I had to take a guess it would be a missing include. Is that defined in one
> of these files (someone who knows C++)?
> 
> smorgbox chromium-9999 # grep -r "CODEC_ID_VP8" .
> ./media/filters/ffmpeg_demuxer.cc:      if (kDemuxerIsWebm &&
> (stream->codec->codec_id != CODEC_ID_VP8 &&
> ./third_party/ffmpeg/source/patched-ffmpeg-mt/libavformat/matroskaenc.c:   
> CODEC_ID_VP8,
> ./third_party/ffmpeg/source/patched-ffmpeg-mt/libavformat/riff.c:    {
> CODEC_ID_VP8,          MKTAG('V', 'P', '8', '0') },
> ./third_party/ffmpeg/source/patched-ffmpeg-mt/libavformat/matroska.c:   
> {"V_VP8"            , CODEC_ID_VP8},
> ./third_party/ffmpeg/source/patched-ffmpeg-mt/libavcodec/avcodec.h:   
> CODEC_ID_VP8,
> ./third_party/ffmpeg/source/patched-ffmpeg-mt/libavcodec/libvpxenc.c: 
> CODEC_ID_VP8,
> ./third_party/ffmpeg/source/patched-ffmpeg-mt/libavcodec/libvpxdec.c: 
> CODEC_ID_VP8,
> 
> Or should CODEC_ID_VP8 be a string value instead?
> 
> That if block at line 414 doesn't actually look too important... like it's just
> checking for some corner case. Might just try commenting it out until they sort
> things out upstream.
> 

CODEC_ID_VP8 is defined as enum type in <libavcodec/avcodec.h>,
which is located in /usr/include/libavcodec/avcodec.h and is much different to $(chromium_src_dir)/third_party/ffmpeg/source/patched-ffmpeg-mt/libavcodec/avcodec.h

upgrade ffmpeg to svn version(media-video/ffmpeg-9999-r1) should fix build.

$ grep CODEC_ID_VP8 ffmpeg/trunk/libavcodec/avcodec.h 
    CODEC_ID_VP8,
Comment 9 wbrana 2010-05-24 12:23:29 UTC
Created attachment 232705 [details, diff]
patch disables using system ffmpeg and enables SSE2
Comment 10 Mike Gilbert gentoo-dev 2010-05-24 23:19:09 UTC
I can confirm that upgrading to the latest ffmpeg SVN resolves the build error.  However, until ffmpeg actually includes a VP8 implementation, webm videos aren't going to play.
Comment 11 wbrana 2010-05-29 11:15:26 UTC
Created attachment 233383 [details, diff]
patch disables using system ffmpeg and enables SSE2

VP8 should work with this patch
Comment 12 fkhp 2010-05-30 04:10:26 UTC
the latest ebuild could be put in the portage.
Comment 13 Bernard Cafarelli gentoo-dev 2010-06-01 20:22:07 UTC
I'm reluctant to switching back to bundled ffmpeg (even if it's "only" -9999 version), Pawel what do you think?

For now to at least fix compilation, I've bumped chromium-9999 depend on >=ffmpeg-9999, and vp8 read support should come after bug #320817. When it is fixed (and a new snapshot of ffmpeg added in tree), we can update the deps and close this bug
Comment 14 vekin 2010-06-03 12:23:12 UTC
media/media/filters/audio_renderer_algorithm_default.o media/filters/audio_renderer_algorithm_default.cc
media/ffmpeg/file_protocol.cc:86: error: invalid conversion from ‘int (*)(URLContext*, unsigned char*, int)’ to ‘int (*)(URLContext*, const unsigned char*, int)’
make: *** [out/Release/obj.target/media/media/ffmpeg/file_protocol.o] Error 1
make: *** Waiting for unfinished jobs....
 * ERROR: www-client/chromium-9999 failed:

Not sure if this is relevant to this bug but I tried to use x264 git and ffmpeg-9999 and it failed for me.
Comment 15 Mike Gilbert gentoo-dev 2010-06-04 04:31:15 UTC
(In reply to comment #14)

That's a different problem. I opened a bug upstream, with a working patch.

http://crbug.com/45821
Comment 16 Maciej Piechotka 2010-06-06 16:30:37 UTC
It should depend on bug #320817 (I don't have rights to add it).
Comment 17 Bernard Cafarelli gentoo-dev 2010-06-14 23:05:50 UTC
Updating dep bug, this needs libvpx but also system ffmpeg supporting libvpx ;)
Comment 18 Piotrek Juzwiak 2010-06-16 00:32:12 UTC
(In reply to comment #17)
> Updating dep bug, this needs libvpx but also system ffmpeg supporting libvpx ;)
> 

I am not sure but the latest trunk needs gnome-keyring.
Comment 19 Bernard Cafarelli gentoo-dev 2010-06-23 14:52:49 UTC
SSE2 support was recently added by Phajdan (as well as gnome-keyring), and I've just updated -9999 to depend on >=ffmpeg-0.6 with vpx enabled.

So looks like everything is fixed here :) Thanks everyone for the reports and suggestions