x86_64-pc-linux-gnu-g++ -MMD -MF obj/third_party/webrtc/modules/video_coding/webrtc_vp8/vp8_impl.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DDISABLE_NACL -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DWEBRTC_RESTRICT_LOGGING -DEXPAT_RELATIVE_PATH -DHAVE_SCTP -DENABLE_EXTERNAL_AUTH -DHAVE_SRTP -DHAVE_WEBRTC_VIDEO -DHAVE_WEBRTC_VOICE -DLOGGING_INSIDE_WEBRTC -DUSE_WEBRTC_DEV_BRANCH -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DGTEST_RELATIVE_PATH -DNO_MAIN_THREAD_WRAPPING -DNO_SOUND_SYSTEM -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -I../.. -Igen -I../../third_party/webrtc_overrides -I../../third_party -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -Igen/shim_headers/libjpeg_shim -Igen/shim_headers/libvpx_shim -I../../third_party/webrtc/common_video/include -I../../third_party/webrtc/common_video/libyuv/include -I../../third_party/libyuv/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -m64 -march=x86-64 -pthread -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -g0 -fvisibility=hidden -fvisibility-inlines-hidden -std=gnu++11 -Wno-narrowing -fno-rtti -fno-exceptions -O2 -pipe -march=native -fno-delete-null-pointer-checks -c ../../third_party/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc -o obj/third_party/webrtc/modules/video_coding/webrtc_vp8/vp8_impl.o In file included from /usr/include/vpx/vpx_encoder.h:32:0, from ../../third_party/webrtc/modules/video_coding/codecs/vp8/vp8_impl.h:21, from ../../third_party/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc:11: ../../third_party/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc: In member function ‘virtual int webrtc::VP8DecoderImpl::Decode(const webrtc::EncodedImage&, bool, const webrtc::RTPFragmentationHeader*, const webrtc::CodecSpecificInfo*, int64_t)’: ../../third_party/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc:1150:35: error: ‘VPXD_GET_LAST_QUANTIZER’ was not declared in this scope vpx_codec_control(decoder_, VPXD_GET_LAST_QUANTIZER, &qp); ^ ../../third_party/webrtc/modules/video_coding/codecs/vp8/vp8_impl.cc:1150:7: error: ‘vpx_codec_control_VPXD_GET_LAST_QUANTIZER’ was not declared in this scope vpx_codec_control(decoder_, VPXD_GET_LAST_QUANTIZER, &qp); ^ This is with libvpx-1.6.1 .
Created attachment 499590 [details] build.log for amd64 keyword stabilized re-test package.use.mask profile entry led me to this bug suspected keywording on libvpx-1.6.1 performed followup test using stable Updated testing result: amd64 keyword-stablized media-libs/libvpx-1.5.0 amd64 keyword-stablized www-client/chromium-62.0.3202.62 chromium with USE +system-libpx still fails to build vpx_codec_control() error persists, same as above. (attached build.log.xz)
Will this ever work? If I understand it correctly, libvpx is developed inside the chromium project. Even the latest release (1.6.1) is far behind the bundled code. So wouldn't it be better to drop the system-libvpx option? To me it seems not worth the grief, especially since the library is not that big.
I just made an ebuild libvpx-9999 by modifying the existing one to have at the top... ``` DESCRIPTION="WebM VP8 and VP9 Codec SDK" HOMEPAGE="http://www.webmproject.org" if [[ ${PV} == *9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://chromium.googlesource.com/webm/${PN}.git" elif [[ ${PV} == *pre* ]]; then SRC_URI="mirror://gentoo/${P}.tar.bz2" KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux" else SRC_URI="http://webm.googlecode.com/files/${PN}-v${PV}.tar.bz2" KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux" S="${WORKDIR}/${PN}-v${PV}" fi SRC_URI="${SRC_URI} test? ( mirror://gentoo/${PN}-testdata-${LIBVPX_TESTDATA_VER}.tar.bz2 )" ``` And unmasked the use flag profile/package.use.mask/04-lmc:>=www-client/chromium-63.0.3239.132 -system-libvpx Maybe the libvpx guys can add a 9999 ebuild and you could modify the gentoo ebuild to rquire libvpx-9999 to solve this problem. Works for me. Firefox/ffmpeg and others can use libvpx-9999 without any problems too. It doesn't look like google is going to release a libvpx anytime soon. This bug has been open a year so seems like the best solution for those who want to have less duplicated libraries. Luke
Created attachment 517706 [details] Updated libvpx 1.7.0 ebuild needed to fix this bug.
There is already released the libvpx 1.7.0 version on upstream that is fully compatible with latest chromium ebuild from the portage tree. I've attached the updated ebuild on previous comment.
should not the use mask be removed now?
# Pawel Hajdan jr <phajdan.jr@gentoo.org> (2017-03-02) # Known build issue with system libvpx: # https://bugs.gentoo.org/show_bug.cgi?id=611394 >=www-client/chromium-58.0.3026.3 system-libvpx
USE=system-libvpx was removed.