LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
-IUSE="component-build cups gconf gnome-keyring gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-libvpx +tcmalloc widevine"
+IUSE="component-build cups gconf gnome-keyring +gtk3 +hangouts kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-libvpx +tcmalloc widevine"
RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
# Native Client binaries are compiled with different set of flags, bug #452066.
COMMON_DEPEND="
app-arch/bzip2:=
cups? ( >=net-print/cups-1.3.11:= )
- >=dev-libs/elfutils-0.149
dev-libs/expat:=
dev-libs/glib:2
dev-libs/icu:=
- >=dev-libs/jsoncpp-0.5.0-r1:=
- dev-libs/libxml2:=[icu]
dev-libs/libxslt:=
dev-libs/nspr:=
>=dev-libs/nss-3.14.3:=
>=media-libs/alsa-lib-1.0.19:=
media-libs/fontconfig:=
media-libs/freetype:=
- >=media-libs/harfbuzz-1.3.1:=[icu(+)]
- media-libs/libexif:=
+ >=media-libs/harfbuzz-1.4.2:=
media-libs/libjpeg-turbo:=
media-libs/libpng:=
system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
- media-libs/speex:=
pulseaudio? ( media-sound/pulseaudio:= )
system-ffmpeg? ( >=media-video/ffmpeg-3:= )
sys-apps/dbus:=
sys-apps/pciutils:=
- >=sys-libs/libcap-2.22:=
virtual/udev
x11-libs/cairo:=
x11-libs/gdk-pixbuf:2
- x11-libs/libdrm
x11-libs/libX11:=
x11-libs/libXcomposite:=
x11-libs/libXcursor:=
x11-libs/libXext:=
x11-libs/libXfixes:=
>=x11-libs/libXi-1.6.0:=
- x11-libs/libXinerama:=
x11-libs/libXrandr:=
x11-libs/libXrender:=
x11-libs/libXScrnSaver:=
widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
"
# dev-vcs/git - https://bugs.gentoo.org/593476
+# sys-apps/sandbox - https://crbug.com/586444
DEPEND="${COMMON_DEPEND}
>=app-arch/gzip-1.7
!arm? (
dev-lang/yasm
)
dev-lang/perl
- dev-perl/JSON
>=dev-util/gperf-3.0.3
dev-util/ninja
net-libs/nodejs
sys-apps/hwids[usb(+)]
+ tcmalloc? ( !<sys-apps/sandbox-2.11 )
>=sys-devel/bison-2.4.3
sys-devel/flex
virtual/pkgconfig
dev-vcs/git
- x11-libs/gtk+:2
- x11-libs/gtk+:3
$(python_gen_any_dep '
dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
>=dev-python/beautifulsoup-4.3.2:4[${PYTHON_USEDEP}]
- media-fonts/wqy-microhei
- media-fonts/wqy-zenhei
-Depending on your desktop environment, you may need
-to install additional packages to get icons on the Downloads page.
-
-For KDE, the required package is kde-frameworks/oxygen-icons.
-
-For other desktop environments, try one of the following:
-- x11-themes/gnome-icon-theme
-- x11-themes/tango-icon-theme
+To fix broken icons on the Downloads page, you should install an icon
+theme that covers the appropriate MIME types, and configure this as your
+GTK+ icon theme.
"
pre_build_checks() {
"${FILESDIR}/${PN}-FORTIFY_SOURCE.patch"
"${FILESDIR}/skia-avx2.patch"
"${FILESDIR}/${PN}-dma-buf-r1.patch"
- "${FILESDIR}/${PN}-system-ffmpeg-r5.patch"
- "${FILESDIR}/${PN}-system-libjpeg-r1.patch"
+ "${FILESDIR}/${PN}-system-ffmpeg-r6.patch"
+ "${FILESDIR}/${PN}-system-icu-r1.patch"
)
default
third_party/libudev
third_party/libusb
third_party/libwebm
- third_party/libxml/chromium
+ third_party/libxml
third_party/libyuv
third_party/lss
third_party/lzma_sdk
third_party/pdfium/third_party/bigint
third_party/pdfium/third_party/freetype
third_party/pdfium/third_party/lcms2-2.6
- third_party/pdfium/third_party/libjpeg
third_party/pdfium/third_party/libopenjpeg20
third_party/pdfium/third_party/libpng16
third_party/pdfium/third_party/libtiff
third_party/skia
third_party/smhasher
third_party/sqlite
+ third_party/swiftshader
+ third_party/swiftshader/third_party/llvm-subzero
+ third_party/swiftshader/third_party/pnacl-subzero
third_party/tcmalloc
third_party/usrsctp
third_party/web-animations-js
# for development and debugging.
myconf_gn+=" is_component_build=$(usex component-build true false)"
+ myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+
# Disable nacl, we can't build without pnacl (http://crbug.com/269560).
myconf_gn+=" enable_nacl=false"
# TODO: use_system_hunspell (upstream changes needed).
# TODO: use_system_libsrtp (bug #459932).
# TODO: use_system_libusb (http://crbug.com/266149).
+ # TODO: xml (bug #616818).
# TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
# TODO: use_system_protobuf (bug #525560).
# TODO: use_system_ssl (http://crbug.com/58087).
libjpeg
libpng
libwebp
- libxml
libxslt
re2
snappy
touch chrome/test/data/webui/i18n_process_css_test.html || die
einfo "Configuring Chromium..."
- # TODO: bootstrapped gn binary hangs when using tcmalloc with portage's sandbox.
- tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn} use_allocator=\"none\"" || die
- myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
+ tools/gn/bootstrap/bootstrap.py -v --no-clean --gn-gen-args "${myconf_gn}" || die
out/Release/gn gen --args="${myconf_gn}" out/Release || die
}
--- /dev/null
+--- a/media/ffmpeg/ffmpeg_common.h.orig 2017-04-07 18:17:22.623538889 +0000
++++ b/media/ffmpeg/ffmpeg_common.h 2017-04-07 18:18:16.780656283 +0000
+@@ -23,10 +23,12 @@
+
+ // Include FFmpeg header files.
+ extern "C" {
++#if !defined(USE_SYSTEM_FFMPEG)
+ // Disable deprecated features which result in spammy compile warnings. This
+ // list of defines must mirror those in the 'defines' section of FFmpeg's
+ // BUILD.gn file or the headers below will generate different structures!
+ #define FF_API_CONVERGENCE_DURATION 0
++#endif // !defined(USE_SYSTEM_FFMPEG)
+ // Upstream libavcodec/utils.c still uses the deprecated
+ // av_dup_packet(), causing deprecation warnings.
+ // The normal fix for such things is to disable the feature as below,
+@@ -40,7 +42,9 @@
+ MSVC_PUSH_DISABLE_WARNING(4244);
+ #include <libavcodec/avcodec.h>
+ #include <libavformat/avformat.h>
++#if !defined(USE_SYSTEM_FFMPEG)
+ #include <libavformat/internal.h>
++#endif // !defined(USE_SYSTEM_FFMPEG)
+ #include <libavformat/avio.h>
+ #include <libavutil/avutil.h>
+ #include <libavutil/imgutils.h>
+--- a/media/filters/ffmpeg_demuxer.cc.orig 2017-04-07 18:15:14.776901183 +0000
++++ b/media/filters/ffmpeg_demuxer.cc 2017-04-07 18:15:54.813727201 +0000
+@@ -1223,6 +1223,7 @@
+ // If no estimate is found, the stream entry will be kInfiniteDuration.
+ std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams,
+ kInfiniteDuration);
++#if !defined(USE_SYSTEM_FFMPEG)
+ const AVFormatInternal* internal = format_context->internal;
+ if (internal && internal->packet_buffer &&
+ format_context->start_time != static_cast<int64_t>(AV_NOPTS_VALUE)) {
+@@ -1246,6 +1247,7 @@
+ packet_buffer = packet_buffer->next;
+ }
+ }
++#endif // !defined(USE_SYSTEM_FFMPEG)
+
+ std::unique_ptr<MediaTracks> media_tracks(new MediaTracks());
+