Gentoo Archives: gentoo-commits

From: "Paweł Hajdan" <phajdan.jr@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
Date: Sun, 29 Nov 2015 21:45:06
Message-Id: 1448833490.a88a8ea88c3e2d4ea99cf2fab97329795f290ca8.phajdan.jr@gentoo
1 commit: a88a8ea88c3e2d4ea99cf2fab97329795f290ca8
2 Author: Pawel Hajdan, Jr <phajdan.jr <AT> gentoo <DOT> org>
3 AuthorDate: Sun Nov 29 21:43:19 2015 +0000
4 Commit: Paweł Hajdan <phajdan.jr <AT> gentoo <DOT> org>
5 CommitDate: Sun Nov 29 21:44:50 2015 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a88a8ea8
7
8 www-client/chromium: dev channel bump (48.0.2564.10)
9
10 Package-Manager: portage-2.2.20.1
11
12 www-client/chromium/Manifest | 3 +-
13 www-client/chromium/chromium-48.0.2552.0.ebuild | 654 ---------------------
14 ....2547.0.ebuild => chromium-48.0.2564.10.ebuild} | 168 +++---
15 www-client/chromium/files/chromium-rpath-r0.patch | 72 +++
16 .../chromium/files/chromium-system-ffmpeg-r1.patch | 50 ++
17 5 files changed, 225 insertions(+), 722 deletions(-)
18
19 diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
20 index ed6dd3a..2e2d528 100644
21 --- a/www-client/chromium/Manifest
22 +++ b/www-client/chromium/Manifest
23 @@ -1,6 +1,5 @@
24 DIST chromium-46.0.2490.86-lite.tar.xz 275908972 SHA256 bc8cc67e9b197e6aebe977b3af70ea57041c020c93a13264515a0dac81937bc6 SHA512 63a23aca030c86be8f12a16884b17e2c3e8c97fd580ea989e34465f9fa91378aeb11c6718e969e0a640e2a8cb0a8999b1ca003409a0436a84dfba500a58f0160 WHIRLPOOL 60a9d4bb5c62d3a781ef0ed0731782fc039a58d0e514cc2e17fb36fdd070894159c4aff7d3711471c2af56d401ef334feb2148eeb08da3601017cf3e6ac07522
25 DIST chromium-47.0.2526.49-lite.tar.xz 317398984 SHA256 32fe2246fc25542475c9702853eef9299f097ddeeea7700f275965189da8ac8f SHA512 8d927c564d39182ff35f3089164cfacee12a81d6e46cd349e114ba97ad5a8d807dc24873ef1eccef36a9a75f83a7bb83552d89da4cb6141933ce1e0c07187963 WHIRLPOOL a99a3abc6698bb32dfaff2674e816431178653187cebcfacfdf549bd862e93dcd47405f484d2784ead2be5fb722dff2c88eaaac2aeae2d35a55af4ab87ac1f11
26 DIST chromium-47.0.2526.58-lite.tar.xz 317393916 SHA256 86cf7abde8056ab22215f7651eaab29fc0c1dcbc9dfa57dd40409418b800551d SHA512 555fad79cbcd967ecf4b001d703c9fee3b9506e7e7cec9ad59a200ebb7cd39b75fc764d1a52662c328381b97cbf08438f521a04d6bffba48da1adc54b29597eb WHIRLPOOL e75ba2c6353ae24a0ae3175bec544404145ed66f602ea8d46671da7792645272f51e71a728ca3c398d1a35da651e8545a65e927cd4f1d5b418d9c1d72442ebb8
27 -DIST chromium-48.0.2547.0-lite.tar.xz 306282056 SHA256 cfbdce75bd8904d4a43d5bc7acc82481bfe840c17894294cb0b3d79c2386cee2 SHA512 706c7e6699b7e07a819d29c88a678c62507251cb08ccd4516e2ce847519a34356d49762037a3fefac8adff39f1f9b7c0a6284fa455ffccd98e6074d1ac346d1f WHIRLPOOL 7694f443375dfdc17c90fd4b6c603b210b5e34ad39cfbe93ee9bcdebf0d5600f389b5ffd54fd3438460ffa88e4d456ad20e5b0553582b8ce0389f2bd7c7e15f5
28 -DIST chromium-48.0.2552.0-lite.tar.xz 306545148 SHA256 ab72fd1e4ff9c2d2d8d931e12ba52395044cd136f1927c1cdb137fdef9dd0ad1 SHA512 1133d4670133ff9a18a2fbad08fcfb5cb2f28e9df092417ca17c0f5360767fa597eb85a0f55de7e2dc06e90a55068410da890664cc1bd071cc85631acebad16d WHIRLPOOL e13788bb8c21a06fc81c0bc2dfe03b13e19089eb8c59301c92666ec7745ac65a527f5a1179c9633194c63b562a2958154b0afc8c173e2a4db59eefada85580e0
29 DIST chromium-48.0.2560.0.tar.xz 395160400 SHA256 d2c1b9ad53dcaa08302d1dbfa74dc5d003c3c62ce1cd4b6eaf05d274d1af462b SHA512 422b09b0cfafc8761d6addb178b065a7de8f72d0c312b2288a991916536c06403a819b4ec6e3bc37ff0c2fd1ba8b8929f4e43b57a732a03bd5531208cc48e10f WHIRLPOOL 76bff863a212de3a74696e83924f9b5d4c70c045b9d309b0d25267458228761eee4505e2f5b93ac037358f14bc704a41ae03970c7f2ba96192a738fec611dae8
30 +DIST chromium-48.0.2564.10.tar.xz 432060420 SHA256 1902d75d49d46c32a8c33f6de53c9253a63a364b85eb4ada1e8a9ba7c0f523d0 SHA512 7753dc19a50c862211c10975b3ad64a0408e3645df7b0ea548f8437c4c5380ad0bb350920eb8c6791e0685ae7ec921c6be720e337a17dffe4b73c56b74a2bc9a WHIRLPOOL a9ccb2872ad639886288581e1c7d9244f16965ef924395531701289cc69c5a9dfdc4a25175151d27b150acc8e4398c8d91ca5f8f3e623c3c85c8b99d913c4f00
31
32 diff --git a/www-client/chromium/chromium-48.0.2552.0.ebuild b/www-client/chromium/chromium-48.0.2552.0.ebuild
33 deleted file mode 100644
34 index 7c51aa4..0000000
35 --- a/www-client/chromium/chromium-48.0.2552.0.ebuild
36 +++ /dev/null
37 @@ -1,654 +0,0 @@
38 -# Copyright 1999-2015 Gentoo Foundation
39 -# Distributed under the terms of the GNU General Public License v2
40 -# $Id$
41 -
42 -EAPI="5"
43 -PYTHON_COMPAT=( python2_7 )
44 -
45 -CHROMIUM_LANGS="am ar bg bn ca cs da de el en_GB es es_LA et fa fi fil fr gu he
46 - hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt_BR pt_PT ro ru sk sl sr
47 - sv sw ta te th tr uk vi zh_CN zh_TW"
48 -
49 -inherit check-reqs chromium eutils flag-o-matic multilib multiprocessing pax-utils \
50 - portability python-any-r1 readme.gentoo toolchain-funcs versionator virtualx
51 -
52 -DESCRIPTION="Open-source version of Google Chrome web browser"
53 -HOMEPAGE="http://chromium.org/"
54 -SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}-lite.tar.xz"
55 -
56 -LICENSE="BSD hotwording? ( no-source-code )"
57 -SLOT="0"
58 -KEYWORDS="~amd64 ~arm ~x86"
59 -IUSE="cups gnome gnome-keyring gtk3 +hangouts hidpi hotwording kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
60 -RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
61 -
62 -# Native Client binaries are compiled with different set of flags, bug #452066.
63 -QA_FLAGS_IGNORED=".*\.nexe"
64 -
65 -# Native Client binaries may be stripped by the build system, which uses the
66 -# right tools for it, bug #469144 .
67 -QA_PRESTRIPPED=".*\.nexe"
68 -
69 -RDEPEND=">=app-accessibility/speech-dispatcher-0.8:=
70 - app-arch/bzip2:=
71 - app-arch/snappy:=
72 - cups? ( >=net-print/cups-1.3.11:= )
73 - >=dev-libs/elfutils-0.149
74 - dev-libs/expat:=
75 - dev-libs/glib:=
76 - >=dev-libs/icu-55.1:=
77 - >=dev-libs/jsoncpp-0.5.0-r1:=
78 - >=dev-libs/libevent-1.4.13:=
79 - dev-libs/libxml2:=[icu]
80 - dev-libs/libxslt:=
81 - dev-libs/nspr:=
82 - >=dev-libs/nss-3.14.3:=
83 - dev-libs/re2:=
84 - gnome? ( >=gnome-base/gconf-2.24.0:= )
85 - gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
86 - >=media-libs/alsa-lib-1.0.19:=
87 - media-libs/flac:=
88 - media-libs/fontconfig:=
89 - media-libs/freetype:=
90 - media-libs/harfbuzz:=[icu(+)]
91 - media-libs/libexif:=
92 - >=media-libs/libjpeg-turbo-1.2.0-r1:=
93 - media-libs/libpng:0=
94 - >=media-libs/libwebp-0.4.0:=
95 - media-libs/speex:=
96 - pulseaudio? ( media-sound/pulseaudio:= )
97 - system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:=[opus,vorbis,vpx] )
98 - sys-apps/dbus:=
99 - sys-apps/pciutils:=
100 - >=sys-libs/libcap-2.22:=
101 - sys-libs/zlib:=[minizip]
102 - virtual/udev
103 - x11-libs/cairo:=
104 - x11-libs/gdk-pixbuf:=
105 - gtk3? ( x11-libs/gtk+:3= )
106 - !gtk3? ( x11-libs/gtk+:2= )
107 - x11-libs/libdrm
108 - x11-libs/libX11:=
109 - x11-libs/libXcomposite:=
110 - x11-libs/libXcursor:=
111 - x11-libs/libXdamage:=
112 - x11-libs/libXext:=
113 - x11-libs/libXfixes:=
114 - >=x11-libs/libXi-1.6.0:=
115 - x11-libs/libXinerama:=
116 - x11-libs/libXrandr:=
117 - x11-libs/libXrender:=
118 - x11-libs/libXScrnSaver:=
119 - x11-libs/libXtst:=
120 - x11-libs/pango:=
121 - kerberos? ( virtual/krb5 )"
122 -DEPEND="${RDEPEND}
123 - !arm? (
124 - dev-lang/yasm
125 - )
126 - dev-lang/perl
127 - dev-perl/JSON
128 - >=dev-util/gperf-3.0.3
129 - dev-util/ninja
130 - sys-apps/hwids[usb(+)]
131 - >=sys-devel/bison-2.4.3
132 - sys-devel/flex
133 - virtual/pkgconfig"
134 -
135 -# For nvidia-drivers blocker, see bug #413637 .
136 -RDEPEND+="
137 - !=www-client/chromium-9999
138 - !<www-plugins/chrome-binary-plugins-37
139 - x11-misc/xdg-utils
140 - virtual/opengl
141 - virtual/ttf-fonts
142 - selinux? ( sec-policy/selinux-chromium )
143 - tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
144 - widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )"
145 -
146 -# Python dependencies. The DEPEND part needs to be kept in sync
147 -# with python_check_deps.
148 -DEPEND+=" $(python_gen_any_dep '
149 - dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]
150 - dev-python/beautifulsoup:4[${PYTHON_USEDEP}]
151 - dev-python/html5lib[${PYTHON_USEDEP}]
152 - dev-python/jinja[${PYTHON_USEDEP}]
153 - dev-python/ply[${PYTHON_USEDEP}]
154 - dev-python/simplejson[${PYTHON_USEDEP}]
155 -')"
156 -python_check_deps() {
157 - has_version "dev-python/beautifulsoup:python-2[${PYTHON_USEDEP}]" && \
158 - has_version "dev-python/beautifulsoup:4[${PYTHON_USEDEP}]" && \
159 - has_version "dev-python/html5lib[${PYTHON_USEDEP}]" && \
160 - has_version "dev-python/jinja[${PYTHON_USEDEP}]" && \
161 - has_version "dev-python/ply[${PYTHON_USEDEP}]" && \
162 - has_version "dev-python/simplejson[${PYTHON_USEDEP}]"
163 -}
164 -
165 -if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
166 - EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
167 -fi
168 -
169 -DISABLE_AUTOFORMATTING="yes"
170 -DOC_CONTENTS="
171 -Some web pages may require additional fonts to display properly.
172 -Try installing some of the following packages if some characters
173 -are not displayed properly:
174 -- media-fonts/arphicfonts
175 -- media-fonts/bitstream-cyberbit
176 -- media-fonts/droid
177 -- media-fonts/ipamonafont
178 -- media-fonts/ja-ipafonts
179 -- media-fonts/takao-fonts
180 -- media-fonts/wqy-microhei
181 -- media-fonts/wqy-zenhei
182 -
183 -Depending on your desktop environment, you may need
184 -to install additional packages to get icons on the Downloads page.
185 -
186 -For KDE, the required package is kde-frameworks/oxygen-icons.
187 -
188 -For other desktop environments, try one of the following:
189 -- x11-themes/gnome-icon-theme
190 -- x11-themes/tango-icon-theme
191 -"
192 -
193 -pkg_pretend() {
194 - if [[ $(tc-getCC)$ == *gcc* ]] && \
195 - [[ $(gcc-major-version)$(gcc-minor-version) -lt 48 ]]; then
196 - die 'At least gcc 4.8 is required, see bugs: #535730, #525374, #518668.'
197 - fi
198 -
199 - # Check build requirements, bug #541816 and bug #471810 .
200 - CHECKREQS_MEMORY="3G"
201 - CHECKREQS_DISK_BUILD="5G"
202 - eshopts_push -s extglob
203 - if is-flagq '-g?(gdb)?([1-9])'; then
204 - CHECKREQS_DISK_BUILD="25G"
205 - fi
206 - eshopts_pop
207 - check-reqs_pkg_pretend
208 -}
209 -
210 -pkg_setup() {
211 - if [[ "${SLOT}" == "0" ]]; then
212 - CHROMIUM_SUFFIX=""
213 - else
214 - CHROMIUM_SUFFIX="-${SLOT}"
215 - fi
216 - CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser${CHROMIUM_SUFFIX}"
217 -
218 - # Make sure the build system will use the right python, bug #344367.
219 - python-any-r1_pkg_setup
220 -
221 - chromium_suid_sandbox_check_kernel_config
222 -}
223 -
224 -src_prepare() {
225 - # if ! use arm; then
226 - # mkdir -p out/Release/gen/sdk/toolchain || die
227 - # # Do not preserve SELinux context, bug #460892 .
228 - # cp -a --no-preserve=context /usr/$(get_libdir)/nacl-toolchain-newlib \
229 - # out/Release/gen/sdk/toolchain/linux_x86_newlib || die
230 - # touch out/Release/gen/sdk/toolchain/linux_x86_newlib/stamp.untar || die
231 - # fi
232 -
233 - epatch "${FILESDIR}/${PN}-system-ffmpeg-r0.patch"
234 - epatch "${FILESDIR}/${PN}-system-jinja-r7.patch"
235 - epatch "${FILESDIR}/chromium-widevine-r1.patch"
236 -
237 - epatch_user
238 -
239 - local conditional_bundled_libraries=""
240 - if ! use system-ffmpeg; then
241 - conditional_bundled_libraries+=" third_party/ffmpeg"
242 - fi
243 -
244 - # Remove most bundled libraries. Some are still needed.
245 - build/linux/unbundle/remove_bundled_libraries.py \
246 - ${conditional_bundled_libraries} \
247 - 'base/third_party/dmg_fp' \
248 - 'base/third_party/dynamic_annotations' \
249 - 'base/third_party/icu' \
250 - 'base/third_party/nspr' \
251 - 'base/third_party/superfasthash' \
252 - 'base/third_party/symbolize' \
253 - 'base/third_party/valgrind' \
254 - 'base/third_party/xdg_mime' \
255 - 'base/third_party/xdg_user_dirs' \
256 - 'breakpad/src/third_party/curl' \
257 - 'chrome/third_party/mozilla_security_manager' \
258 - 'courgette/third_party' \
259 - 'crypto/third_party/nss' \
260 - 'net/third_party/mozilla_security_manager' \
261 - 'net/third_party/nss' \
262 - 'third_party/WebKit' \
263 - 'third_party/analytics' \
264 - 'third_party/angle' \
265 - 'third_party/angle/src/third_party/compiler' \
266 - 'third_party/boringssl' \
267 - 'third_party/brotli' \
268 - 'third_party/cacheinvalidation' \
269 - 'third_party/catapult' \
270 - 'third_party/catapult/third_party/py_vulcanize' \
271 - 'third_party/catapult/third_party/py_vulcanize/third_party/rcssmin' \
272 - 'third_party/catapult/third_party/py_vulcanize/third_party/rjsmin' \
273 - 'third_party/catapult/tracing/third_party/components/polymer' \
274 - 'third_party/catapult/tracing/third_party/d3' \
275 - 'third_party/catapult/tracing/third_party/gl-matrix' \
276 - 'third_party/catapult/tracing/third_party/jszip' \
277 - 'third_party/cld_2' \
278 - 'third_party/cros_system_api' \
279 - 'third_party/cython/python_flags.py' \
280 - 'third_party/devscripts' \
281 - 'third_party/dom_distiller_js' \
282 - 'third_party/dom_distiller_js/dist/proto_gen/third_party/dom_distiller_js' \
283 - 'third_party/fips181' \
284 - 'third_party/flot' \
285 - 'third_party/google_input_tools' \
286 - 'third_party/google_input_tools/third_party/closure_library' \
287 - 'third_party/google_input_tools/third_party/closure_library/third_party/closure' \
288 - 'third_party/hunspell' \
289 - 'third_party/iccjpeg' \
290 - 'third_party/jstemplate' \
291 - 'third_party/khronos' \
292 - 'third_party/leveldatabase' \
293 - 'third_party/libXNVCtrl' \
294 - 'third_party/libaddressinput' \
295 - 'third_party/libjingle' \
296 - 'third_party/libphonenumber' \
297 - 'third_party/libsecret' \
298 - 'third_party/libsrtp' \
299 - 'third_party/libudev' \
300 - 'third_party/libusb' \
301 - 'third_party/libvpx_new' \
302 - 'third_party/libvpx_new/source/libvpx/third_party/x86inc' \
303 - 'third_party/libxml/chromium' \
304 - 'third_party/libwebm' \
305 - 'third_party/libyuv' \
306 - 'third_party/lss' \
307 - 'third_party/lzma_sdk' \
308 - 'third_party/mesa' \
309 - 'third_party/modp_b64' \
310 - 'third_party/mojo' \
311 - 'third_party/mt19937ar' \
312 - 'third_party/npapi' \
313 - 'third_party/openmax_dl' \
314 - 'third_party/opus' \
315 - 'third_party/ots' \
316 - 'third_party/pdfium' \
317 - 'third_party/pdfium/third_party/agg23' \
318 - 'third_party/pdfium/third_party/base' \
319 - 'third_party/pdfium/third_party/bigint' \
320 - 'third_party/pdfium/third_party/freetype' \
321 - 'third_party/pdfium/third_party/lcms2-2.6' \
322 - 'third_party/pdfium/third_party/libjpeg' \
323 - 'third_party/pdfium/third_party/libopenjpeg20' \
324 - 'third_party/pdfium/third_party/zlib_v128' \
325 - 'third_party/polymer' \
326 - 'third_party/protobuf' \
327 - 'third_party/qcms' \
328 - 'third_party/sfntly' \
329 - 'third_party/skia' \
330 - 'third_party/smhasher' \
331 - 'third_party/sqlite' \
332 - 'third_party/tcmalloc' \
333 - 'third_party/usrsctp' \
334 - 'third_party/web-animations-js' \
335 - 'third_party/webdriver' \
336 - 'third_party/webrtc' \
337 - 'third_party/widevine' \
338 - 'third_party/x86inc' \
339 - 'third_party/zlib/google' \
340 - 'url/third_party/mozilla' \
341 - 'v8/src/third_party/fdlibm' \
342 - 'v8/src/third_party/valgrind' \
343 - --do-remove || die
344 -}
345 -
346 -src_configure() {
347 - local myconf=""
348 -
349 - # Never tell the build system to "enable" SSE2, it has a few unexpected
350 - # additions, bug #336871.
351 - myconf+=" -Ddisable_sse2=1"
352 -
353 - # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
354 - myconf+=" -Ddisable_nacl=1"
355 -
356 - # Disable glibc Native Client toolchain, we don't need it (bug #417019).
357 - # myconf+=" -Ddisable_glibc=1"
358 -
359 - # TODO: also build with pnacl
360 - # myconf+=" -Ddisable_pnacl=1"
361 -
362 - # It would be awkward for us to tar the toolchain and get it untarred again
363 - # during the build.
364 - # myconf+=" -Ddisable_newlib_untar=1"
365 -
366 - # Make it possible to remove third_party/adobe.
367 - echo > "${T}/flapper_version.h" || die
368 - myconf+=" -Dflapper_version_h_file=${T}/flapper_version.h"
369 -
370 - # Use system-provided libraries.
371 - # TODO: use_system_hunspell (upstream changes needed).
372 - # TODO: use_system_libsrtp (bug #459932).
373 - # TODO: use_system_libusb (http://crbug.com/266149).
374 - # TODO: use_system_libvpx (http://crbug.com/494939).
375 - # TODO: use_system_opus (https://code.google.com/p/webrtc/issues/detail?id=3077).
376 - # TODO: use_system_protobuf (bug #525560).
377 - # TODO: use_system_ssl (http://crbug.com/58087).
378 - # TODO: use_system_sqlite (http://crbug.com/22208).
379 - myconf+="
380 - -Duse_system_bzip2=1
381 - -Duse_system_ffmpeg=$(usex system-ffmpeg 1 0)
382 - -Duse_system_flac=1
383 - -Duse_system_harfbuzz=1
384 - -Duse_system_icu=1
385 - -Duse_system_jsoncpp=1
386 - -Duse_system_libevent=1
387 - -Duse_system_libjpeg=1
388 - -Duse_system_libpng=1
389 - -Duse_system_libwebp=1
390 - -Duse_system_libxml=1
391 - -Duse_system_libxslt=1
392 - -Duse_system_minizip=1
393 - -Duse_system_nspr=1
394 - -Duse_system_re2=1
395 - -Duse_system_snappy=1
396 - -Duse_system_speex=1
397 - -Duse_system_xdg_utils=1
398 - -Duse_system_zlib=1"
399 -
400 - # Needed for system icu - we don't need additional data files.
401 - myconf+=" -Dicu_use_data_file_flag=0"
402 -
403 - # TODO: patch gyp so that this arm conditional is not needed.
404 - if ! use arm; then
405 - myconf+="
406 - -Duse_system_yasm=1"
407 - fi
408 -
409 - # Optional dependencies.
410 - # TODO: linux_link_kerberos, bug #381289.
411 - myconf+="
412 - $(gyp_use cups)
413 - $(gyp_use gnome use_gconf)
414 - $(gyp_use gnome-keyring use_gnome_keyring)
415 - $(gyp_use gnome-keyring linux_link_gnome_keyring)
416 - $(gyp_use gtk3)
417 - $(gyp_use hangouts enable_hangout_services_extension)
418 - $(gyp_use hidpi enable_hidpi)
419 - $(gyp_use hotwording enable_hotwording)
420 - $(gyp_use kerberos)
421 - $(gyp_use pulseaudio)
422 - $(gyp_use tcmalloc use_allocator tcmalloc none)
423 - $(gyp_use widevine enable_widevine)"
424 -
425 - # Use explicit library dependencies instead of dlopen.
426 - # This makes breakages easier to detect by revdep-rebuild.
427 - myconf+="
428 - -Dlinux_link_gsettings=1
429 - -Dlinux_link_libpci=1
430 - -Dlinux_link_libspeechd=1
431 - -Dlibspeechd_h_prefix=speech-dispatcher/"
432 -
433 - # TODO: use the file at run time instead of effectively compiling it in.
434 - myconf+="
435 - -Dusb_ids_path=/usr/share/misc/usb.ids"
436 -
437 - # Save space by removing DLOG and DCHECK messages (about 6% reduction).
438 - myconf+="
439 - -Dlogging_like_official_build=1"
440 -
441 - if [[ $(tc-getCC) == *clang* ]]; then
442 - myconf+=" -Dclang=1"
443 - else
444 - myconf+=" -Dclang=0"
445 - fi
446 -
447 - # Never use bundled gold binary. Disable gold linker flags for now.
448 - # Do not use bundled clang.
449 - myconf+="
450 - -Dclang_use_chrome_plugins=0
451 - -Dhost_clang=0
452 - -Dlinux_use_bundled_binutils=0
453 - -Dlinux_use_bundled_gold=0
454 - -Dlinux_use_gold_flags=0"
455 -
456 - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
457 - myconf+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
458 -
459 - # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
460 - # Note: these are for Gentoo use ONLY. For your own distribution,
461 - # please get your own set of keys. Feel free to contact chromium@g.o
462 - # for more info.
463 - myconf+=" -Dgoogle_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
464 - -Dgoogle_default_client_id=329227923882.apps.googleusercontent.com
465 - -Dgoogle_default_client_secret=vgKG0NNv7GoDpbtoFNLxCUXu"
466 -
467 - local myarch="$(tc-arch)"
468 - if [[ $myarch = amd64 ]] ; then
469 - target_arch=x64
470 - ffmpeg_target_arch=x64
471 - elif [[ $myarch = x86 ]] ; then
472 - target_arch=ia32
473 - ffmpeg_target_arch=ia32
474 - elif [[ $myarch = arm ]] ; then
475 - target_arch=arm
476 - ffmpeg_target_arch=$(usex neon arm-neon arm)
477 - # TODO: re-enable NaCl (NativeClient).
478 - local CTARGET=${CTARGET:-${CHOST}}
479 - if [[ $(tc-is-softfloat) == "no" ]]; then
480 -
481 - myconf+=" -Darm_float_abi=hard"
482 - fi
483 - filter-flags "-mfpu=*"
484 - use neon || myconf+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
485 -
486 - if [[ ${CTARGET} == armv[78]* ]]; then
487 - myconf+=" -Darmv7=1"
488 - else
489 - myconf+=" -Darmv7=0"
490 - fi
491 - myconf+=" -Dsysroot=
492 - $(gyp_use neon arm_neon)
493 - -Ddisable_nacl=1"
494 - else
495 - die "Failed to determine target arch, got '$myarch'."
496 - fi
497 -
498 - myconf+=" -Dtarget_arch=${target_arch}"
499 -
500 - # Make sure that -Werror doesn't get added to CFLAGS by the build system.
501 - # Depending on GCC version the warnings are different and we don't want
502 - # the build to fail because of that.
503 - myconf+=" -Dwerror="
504 -
505 - # Disable fatal linker warnings, bug 506268.
506 - myconf+=" -Ddisable_fatal_linker_warnings=1"
507 -
508 - # Avoid CFLAGS problems, bug #352457, bug #390147.
509 - if ! use custom-cflags; then
510 - replace-flags "-Os" "-O2"
511 - strip-flags
512 -
513 - # Prevent linker from running out of address space, bug #471810 .
514 - if use x86; then
515 - filter-flags "-g*"
516 - fi
517 -
518 - # Prevent libvpx build failures. Bug 530248, 544702, 546984.
519 - if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
520 - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
521 - fi
522 - fi
523 -
524 - # Make sure the build system will use the right tools, bug #340795.
525 - tc-export AR CC CXX NM
526 -
527 - # Tools for building programs to be executed on the build system, bug #410883.
528 - if tc-is-cross-compiler; then
529 - export AR_host=$(tc-getBUILD_AR)
530 - export CC_host=$(tc-getBUILD_CC)
531 - export CXX_host=$(tc-getBUILD_CXX)
532 - export NM_host=$(tc-getBUILD_NM)
533 - fi
534 -
535 - # Bug 491582.
536 - export TMPDIR="${WORKDIR}/temp"
537 - mkdir -p -m 755 "${TMPDIR}" || die
538 -
539 - if ! use system-ffmpeg; then
540 - local build_ffmpeg_args=""
541 - if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
542 - build_ffmpeg_args+=" --disable-asm"
543 - fi
544 -
545 - # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
546 - einfo "Configuring bundled ffmpeg..."
547 - pushd third_party/ffmpeg > /dev/null || die
548 - chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
549 - --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
550 - chromium/scripts/copy_config.sh || die
551 - chromium/scripts/generate_gyp.py || die
552 - popd > /dev/null || die
553 - fi
554 -
555 - third_party/libaddressinput/chromium/tools/update-strings.py || die
556 -
557 - touch chrome/test/data/webui/i18n_process_css_test.html || die
558 -
559 - einfo "Configuring Chromium..."
560 - build/linux/unbundle/replace_gyp_files.py ${myconf} || die
561 - egyp_chromium ${myconf} || die
562 -}
563 -
564 -eninja() {
565 - if [[ -z ${NINJAOPTS+set} ]]; then
566 - local jobs=$(makeopts_jobs)
567 - local loadavg=$(makeopts_loadavg)
568 -
569 - if [[ ${MAKEOPTS} == *-j* && ${jobs} != 999 ]]; then
570 - NINJAOPTS+=" -j ${jobs}"
571 - fi
572 - if [[ ${MAKEOPTS} == *-l* && ${loadavg} != 999 ]]; then
573 - NINJAOPTS+=" -l ${loadavg}"
574 - fi
575 - fi
576 - set -- ninja -v ${NINJAOPTS} "$@"
577 - echo "$@"
578 - "$@"
579 -}
580 -
581 -src_compile() {
582 - local ninja_targets="chrome chrome_sandbox chromedriver"
583 -
584 - # Build mksnapshot and pax-mark it.
585 - eninja -C out/Release mksnapshot || die
586 - pax-mark m out/Release/mksnapshot
587 -
588 - # Even though ninja autodetects number of CPUs, we respect
589 - # user's options, for debugging with -j 1 or any other reason.
590 - eninja -C out/Release ${ninja_targets} || die
591 -
592 - pax-mark m out/Release/chrome
593 -}
594 -
595 -src_install() {
596 - exeinto "${CHROMIUM_HOME}"
597 - doexe out/Release/chrome || die
598 -
599 - newexe out/Release/chrome_sandbox chrome-sandbox || die
600 - fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
601 -
602 - doexe out/Release/chromedriver || die
603 - use widevine && doexe out/Release/libwidevinecdmadapter.so
604 -
605 - # if ! use arm; then
606 - # doexe out/Release/nacl_helper{,_bootstrap} || die
607 - # insinto "${CHROMIUM_HOME}"
608 - # doins out/Release/nacl_irt_*.nexe || die
609 - # doins out/Release/libppGoogleNaClPluginChrome.so || die
610 - # fi
611 -
612 - local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
613 - if [[ -n ${CHROMIUM_SUFFIX} ]]; then
614 - sedargs+=(
615 - -e "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g"
616 - -e "s:chromium.desktop:chromium${CHROMIUM_SUFFIX}.desktop:g"
617 - -e "s:plugins:plugins --user-data-dir=\${HOME}/.config/chromium${CHROMIUM_SUFFIX}:"
618 - )
619 - fi
620 - sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
621 - doexe chromium-launcher.sh
622 -
623 - # It is important that we name the target "chromium-browser",
624 - # xdg-utils expect it; bug #355517.
625 - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser${CHROMIUM_SUFFIX} || die
626 - # keep the old symlink around for consistency
627 - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium${CHROMIUM_SUFFIX} || die
628 -
629 - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver${CHROMIUM_SUFFIX} || die
630 -
631 - # Allow users to override command-line options, bug #357629.
632 - dodir /etc/chromium || die
633 - insinto /etc/chromium
634 - newins "${FILESDIR}/chromium.default" "default" || die
635 -
636 - pushd out/Release/locales > /dev/null || die
637 - chromium_remove_language_paks
638 - popd
639 -
640 - insinto "${CHROMIUM_HOME}"
641 - doins out/Release/*.bin || die
642 - doins out/Release/*.pak || die
643 -
644 - doins -r out/Release/locales || die
645 - doins -r out/Release/resources || die
646 -
647 - newman out/Release/chrome.1 chromium${CHROMIUM_SUFFIX}.1 || die
648 - newman out/Release/chrome.1 chromium-browser${CHROMIUM_SUFFIX}.1 || die
649 -
650 - # Install icons and desktop entry.
651 - local branding size
652 - for size in 16 22 24 32 48 64 128 256 ; do
653 - case ${size} in
654 - 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
655 - *) branding="chrome/app/theme/chromium" ;;
656 - esac
657 - newicon -s ${size} "${branding}/product_logo_${size}.png" \
658 - chromium-browser${CHROMIUM_SUFFIX}.png
659 - done
660 -
661 - local mime_types="text/html;text/xml;application/xhtml+xml;"
662 - mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
663 - mime_types+="x-scheme-handler/ftp;" # bug #412185
664 - mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
665 - make_desktop_entry \
666 - chromium-browser${CHROMIUM_SUFFIX} \
667 - "Chromium${CHROMIUM_SUFFIX}" \
668 - chromium-browser${CHROMIUM_SUFFIX} \
669 - "Network;WebBrowser" \
670 - "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
671 - sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
672 -
673 - # Install GNOME default application entry (bug #303100).
674 - if use gnome; then
675 - dodir /usr/share/gnome-control-center/default-apps || die
676 - insinto /usr/share/gnome-control-center/default-apps
677 - newins "${FILESDIR}"/chromium-browser.xml chromium-browser${CHROMIUM_SUFFIX}.xml || die
678 - if [[ "${CHROMIUM_SUFFIX}" != "" ]]; then
679 - sed "s:chromium-browser:chromium-browser${CHROMIUM_SUFFIX}:g" -i \
680 - "${ED}"/usr/share/gnome-control-center/default-apps/chromium-browser${CHROMIUM_SUFFIX}.xml
681 - fi
682 - fi
683 -
684 - readme.gentoo_create_doc
685 -}
686 -
687 -pkg_postinst() {
688 - fdo-mime_desktop_database_update
689 - gnome2_icon_cache_update
690 - readme.gentoo_print_elog
691 -}
692
693 diff --git a/www-client/chromium/chromium-48.0.2547.0.ebuild b/www-client/chromium/chromium-48.0.2564.10.ebuild
694 similarity index 85%
695 rename from www-client/chromium/chromium-48.0.2547.0.ebuild
696 rename to www-client/chromium/chromium-48.0.2564.10.ebuild
697 index 7c51aa4..534859a 100644
698 --- a/www-client/chromium/chromium-48.0.2547.0.ebuild
699 +++ b/www-client/chromium/chromium-48.0.2564.10.ebuild
700 @@ -14,14 +14,16 @@ inherit check-reqs chromium eutils flag-o-matic multilib multiprocessing pax-uti
701
702 DESCRIPTION="Open-source version of Google Chrome web browser"
703 HOMEPAGE="http://chromium.org/"
704 -SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}-lite.tar.xz"
705 +SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
706
707 LICENSE="BSD hotwording? ( no-source-code )"
708 SLOT="0"
709 KEYWORDS="~amd64 ~arm ~x86"
710 -IUSE="cups gnome gnome-keyring gtk3 +hangouts hidpi hotwording kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
711 +IUSE="cups gn gnome gnome-keyring gtk3 +hangouts hidpi hotwording kerberos neon pic +proprietary-codecs pulseaudio selinux +system-ffmpeg +tcmalloc widevine"
712 RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
713
714 +REQUIRED_USE="gn? ( kerberos !system-ffmpeg )"
715 +
716 # Native Client binaries are compiled with different set of flags, bug #452066.
717 QA_FLAGS_IGNORED=".*\.nexe"
718
719 @@ -29,39 +31,27 @@ QA_FLAGS_IGNORED=".*\.nexe"
720 # right tools for it, bug #469144 .
721 QA_PRESTRIPPED=".*\.nexe"
722
723 -RDEPEND=">=app-accessibility/speech-dispatcher-0.8:=
724 +RDEPEND="
725 app-arch/bzip2:=
726 - app-arch/snappy:=
727 cups? ( >=net-print/cups-1.3.11:= )
728 >=dev-libs/elfutils-0.149
729 dev-libs/expat:=
730 dev-libs/glib:=
731 - >=dev-libs/icu-55.1:=
732 >=dev-libs/jsoncpp-0.5.0-r1:=
733 - >=dev-libs/libevent-1.4.13:=
734 - dev-libs/libxml2:=[icu]
735 - dev-libs/libxslt:=
736 dev-libs/nspr:=
737 >=dev-libs/nss-3.14.3:=
738 - dev-libs/re2:=
739 gnome? ( >=gnome-base/gconf-2.24.0:= )
740 gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
741 >=media-libs/alsa-lib-1.0.19:=
742 - media-libs/flac:=
743 media-libs/fontconfig:=
744 media-libs/freetype:=
745 - media-libs/harfbuzz:=[icu(+)]
746 media-libs/libexif:=
747 - >=media-libs/libjpeg-turbo-1.2.0-r1:=
748 - media-libs/libpng:0=
749 - >=media-libs/libwebp-0.4.0:=
750 media-libs/speex:=
751 pulseaudio? ( media-sound/pulseaudio:= )
752 system-ffmpeg? ( >=media-video/ffmpeg-2.7.2:=[opus,vorbis,vpx] )
753 sys-apps/dbus:=
754 sys-apps/pciutils:=
755 >=sys-libs/libcap-2.22:=
756 - sys-libs/zlib:=[minizip]
757 virtual/udev
758 x11-libs/cairo:=
759 x11-libs/gdk-pixbuf:=
760 @@ -81,7 +71,22 @@ RDEPEND=">=app-accessibility/speech-dispatcher-0.8:=
761 x11-libs/libXScrnSaver:=
762 x11-libs/libXtst:=
763 x11-libs/pango:=
764 - kerberos? ( virtual/krb5 )"
765 + kerberos? ( virtual/krb5 )
766 + !gn? (
767 + >=app-accessibility/speech-dispatcher-0.8:=
768 + app-arch/snappy:=
769 + >=dev-libs/icu-55.1:=
770 + >=dev-libs/libevent-1.4.13:=
771 + dev-libs/libxml2:=[icu]
772 + dev-libs/libxslt:=
773 + dev-libs/re2:=
774 + media-libs/flac:=
775 + media-libs/harfbuzz:=[icu(+)]
776 + >=media-libs/libjpeg-turbo-1.2.0-r1:=
777 + media-libs/libpng:0=
778 + >=media-libs/libwebp-0.4.0:=
779 + sys-libs/zlib:=[minizip]
780 + )"
781 DEPEND="${RDEPEND}
782 !arm? (
783 dev-lang/yasm
784 @@ -185,17 +190,12 @@ pkg_setup() {
785 }
786
787 src_prepare() {
788 - # if ! use arm; then
789 - # mkdir -p out/Release/gen/sdk/toolchain || die
790 - # # Do not preserve SELinux context, bug #460892 .
791 - # cp -a --no-preserve=context /usr/$(get_libdir)/nacl-toolchain-newlib \
792 - # out/Release/gen/sdk/toolchain/linux_x86_newlib || die
793 - # touch out/Release/gen/sdk/toolchain/linux_x86_newlib/stamp.untar || die
794 - # fi
795 -
796 - epatch "${FILESDIR}/${PN}-system-ffmpeg-r0.patch"
797 + epatch "${FILESDIR}/${PN}-system-ffmpeg-r1.patch"
798 epatch "${FILESDIR}/${PN}-system-jinja-r7.patch"
799 - epatch "${FILESDIR}/chromium-widevine-r1.patch"
800 + epatch "${FILESDIR}/${PN}-widevine-r1.patch"
801 + epatch "${FILESDIR}/${PN}-last-commit-position-r0.patch"
802 + epatch "${FILESDIR}/${PN}-snapshot-toolchain-r0.patch"
803 + epatch "${FILESDIR}/${PN}-rpath-r0.patch"
804
805 epatch_user
806
807 @@ -203,6 +203,30 @@ src_prepare() {
808 if ! use system-ffmpeg; then
809 conditional_bundled_libraries+=" third_party/ffmpeg"
810 fi
811 + if use gn; then
812 + conditional_bundled_libraries+="
813 + third_party/adobe
814 + third_party/ffmpeg
815 + third_party/flac
816 + third_party/harfbuzz-ng
817 + third_party/icu
818 + third_party/jinja2
819 + third_party/libevent
820 + third_party/libjpeg_turbo
821 + third_party/libpng
822 + third_party/libwebp
823 + third_party/libxml
824 + third_party/libxslt
825 + third_party/markupsafe
826 + third_party/re2
827 + third_party/snappy
828 + third_party/speech-dispatcher
829 + third_party/usb_ids
830 + third_party/xdg-utils
831 + third_party/yasm
832 + third_party/zlib
833 + "
834 + fi
835
836 # Remove most bundled libraries. Some are still needed.
837 build/linux/unbundle/remove_bundled_libraries.py \
838 @@ -307,28 +331,23 @@ src_prepare() {
839 }
840
841 src_configure() {
842 - local myconf=""
843 + local myconf_gyp=""
844 + local myconf_gn=""
845 +
846 + # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
847 + myconf_gn+=" is_debug=false"
848
849 # Never tell the build system to "enable" SSE2, it has a few unexpected
850 # additions, bug #336871.
851 - myconf+=" -Ddisable_sse2=1"
852 + myconf_gyp+=" -Ddisable_sse2=1"
853
854 # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
855 - myconf+=" -Ddisable_nacl=1"
856 -
857 - # Disable glibc Native Client toolchain, we don't need it (bug #417019).
858 - # myconf+=" -Ddisable_glibc=1"
859 -
860 - # TODO: also build with pnacl
861 - # myconf+=" -Ddisable_pnacl=1"
862 -
863 - # It would be awkward for us to tar the toolchain and get it untarred again
864 - # during the build.
865 - # myconf+=" -Ddisable_newlib_untar=1"
866 + myconf_gyp+=" -Ddisable_nacl=1"
867 + myconf_gn+=" enable_nacl=false"
868
869 # Make it possible to remove third_party/adobe.
870 echo > "${T}/flapper_version.h" || die
871 - myconf+=" -Dflapper_version_h_file=${T}/flapper_version.h"
872 + myconf_gyp+=" -Dflapper_version_h_file=${T}/flapper_version.h"
873
874 # Use system-provided libraries.
875 # TODO: use_system_hunspell (upstream changes needed).
876 @@ -339,7 +358,7 @@ src_configure() {
877 # TODO: use_system_protobuf (bug #525560).
878 # TODO: use_system_ssl (http://crbug.com/58087).
879 # TODO: use_system_sqlite (http://crbug.com/22208).
880 - myconf+="
881 + myconf_gyp+="
882 -Duse_system_bzip2=1
883 -Duse_system_ffmpeg=$(usex system-ffmpeg 1 0)
884 -Duse_system_flac=1
885 @@ -361,17 +380,17 @@ src_configure() {
886 -Duse_system_zlib=1"
887
888 # Needed for system icu - we don't need additional data files.
889 - myconf+=" -Dicu_use_data_file_flag=0"
890 + myconf_gyp+=" -Dicu_use_data_file_flag=0"
891
892 # TODO: patch gyp so that this arm conditional is not needed.
893 if ! use arm; then
894 - myconf+="
895 + myconf_gyp+="
896 -Duse_system_yasm=1"
897 fi
898
899 # Optional dependencies.
900 # TODO: linux_link_kerberos, bug #381289.
901 - myconf+="
902 + myconf_gyp+="
903 $(gyp_use cups)
904 $(gyp_use gnome use_gconf)
905 $(gyp_use gnome-keyring use_gnome_keyring)
906 @@ -385,31 +404,35 @@ src_configure() {
907 $(gyp_use tcmalloc use_allocator tcmalloc none)
908 $(gyp_use widevine enable_widevine)"
909
910 + myconf_gn+=" use_cups=$(usex cups true false)"
911 +
912 # Use explicit library dependencies instead of dlopen.
913 # This makes breakages easier to detect by revdep-rebuild.
914 - myconf+="
915 + myconf_gyp+="
916 -Dlinux_link_gsettings=1
917 -Dlinux_link_libpci=1
918 -Dlinux_link_libspeechd=1
919 -Dlibspeechd_h_prefix=speech-dispatcher/"
920
921 # TODO: use the file at run time instead of effectively compiling it in.
922 - myconf+="
923 + myconf_gyp+="
924 -Dusb_ids_path=/usr/share/misc/usb.ids"
925
926 # Save space by removing DLOG and DCHECK messages (about 6% reduction).
927 - myconf+="
928 + myconf_gyp+="
929 -Dlogging_like_official_build=1"
930
931 if [[ $(tc-getCC) == *clang* ]]; then
932 - myconf+=" -Dclang=1"
933 + myconf_gyp+=" -Dclang=1"
934 + myconf_gn+=" is_clang=true"
935 else
936 - myconf+=" -Dclang=0"
937 + myconf_gyp+=" -Dclang=0"
938 + myconf_gn+=" is_clang=false"
939 fi
940
941 # Never use bundled gold binary. Disable gold linker flags for now.
942 # Do not use bundled clang.
943 - myconf+="
944 + myconf_gyp+="
945 -Dclang_use_chrome_plugins=0
946 -Dhost_clang=0
947 -Dlinux_use_bundled_binutils=0
948 @@ -417,13 +440,13 @@ src_configure() {
949 -Dlinux_use_gold_flags=0"
950
951 ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
952 - myconf+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
953 + myconf_gyp+=" -Dproprietary_codecs=1 -Dffmpeg_branding=${ffmpeg_branding}"
954
955 # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
956 # Note: these are for Gentoo use ONLY. For your own distribution,
957 # please get your own set of keys. Feel free to contact chromium@g.o
958 # for more info.
959 - myconf+=" -Dgoogle_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
960 + myconf_gyp+=" -Dgoogle_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc
961 -Dgoogle_default_client_id=329227923882.apps.googleusercontent.com
962 -Dgoogle_default_client_secret=vgKG0NNv7GoDpbtoFNLxCUXu"
963
964 @@ -441,32 +464,33 @@ src_configure() {
965 local CTARGET=${CTARGET:-${CHOST}}
966 if [[ $(tc-is-softfloat) == "no" ]]; then
967
968 - myconf+=" -Darm_float_abi=hard"
969 + myconf_gyp+=" -Darm_float_abi=hard"
970 fi
971 filter-flags "-mfpu=*"
972 - use neon || myconf+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
973 + use neon || myconf_gyp+=" -Darm_fpu=${ARM_FPU:-vfpv3-d16}"
974
975 if [[ ${CTARGET} == armv[78]* ]]; then
976 - myconf+=" -Darmv7=1"
977 + myconf_gyp+=" -Darmv7=1"
978 else
979 - myconf+=" -Darmv7=0"
980 + myconf_gyp+=" -Darmv7=0"
981 fi
982 - myconf+=" -Dsysroot=
983 + myconf_gyp+=" -Dsysroot=
984 $(gyp_use neon arm_neon)
985 -Ddisable_nacl=1"
986 else
987 die "Failed to determine target arch, got '$myarch'."
988 fi
989
990 - myconf+=" -Dtarget_arch=${target_arch}"
991 + myconf_gyp+=" -Dtarget_arch=${target_arch}"
992
993 # Make sure that -Werror doesn't get added to CFLAGS by the build system.
994 # Depending on GCC version the warnings are different and we don't want
995 # the build to fail because of that.
996 - myconf+=" -Dwerror="
997 + myconf_gyp+=" -Dwerror="
998 + myconf_gn+=" treat_warnings_as_errors=false"
999
1000 # Disable fatal linker warnings, bug 506268.
1001 - myconf+=" -Ddisable_fatal_linker_warnings=1"
1002 + myconf_gyp+=" -Ddisable_fatal_linker_warnings=1"
1003
1004 # Avoid CFLAGS problems, bug #352457, bug #390147.
1005 if ! use custom-cflags; then
1006 @@ -499,7 +523,8 @@ src_configure() {
1007 export TMPDIR="${WORKDIR}/temp"
1008 mkdir -p -m 755 "${TMPDIR}" || die
1009
1010 - if ! use system-ffmpeg; then
1011 + # TODO: also do this for GN bundled ffmpeg build.
1012 + if ! use system-ffmpeg && ! use gn; then
1013 local build_ffmpeg_args=""
1014 if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
1015 build_ffmpeg_args+=" --disable-asm"
1016 @@ -520,8 +545,13 @@ src_configure() {
1017 touch chrome/test/data/webui/i18n_process_css_test.html || die
1018
1019 einfo "Configuring Chromium..."
1020 - build/linux/unbundle/replace_gyp_files.py ${myconf} || die
1021 - egyp_chromium ${myconf} || die
1022 + if use gn; then
1023 + tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn}" || die
1024 + out/Release/gn gen --args="${myconf_gn}" out/Release || die
1025 + else
1026 + build/linux/unbundle/replace_gyp_files.py ${myconf_gyp} || die
1027 + egyp_chromium ${myconf_gyp} || die
1028 + fi
1029 }
1030
1031 eninja() {
1032 @@ -544,9 +574,11 @@ eninja() {
1033 src_compile() {
1034 local ninja_targets="chrome chrome_sandbox chromedriver"
1035
1036 - # Build mksnapshot and pax-mark it.
1037 - eninja -C out/Release mksnapshot || die
1038 - pax-mark m out/Release/mksnapshot
1039 + if ! use gn; then
1040 + # Build mksnapshot and pax-mark it.
1041 + eninja -C out/Release mksnapshot || die
1042 + pax-mark m out/Release/mksnapshot
1043 + fi
1044
1045 # Even though ninja autodetects number of CPUs, we respect
1046 # user's options, for debugging with -j 1 or any other reason.
1047 @@ -604,6 +636,10 @@ src_install() {
1048 doins out/Release/*.bin || die
1049 doins out/Release/*.pak || die
1050
1051 + if use gn; then
1052 + doins out/Release/icudtl.dat || die
1053 + fi
1054 +
1055 doins -r out/Release/locales || die
1056 doins -r out/Release/resources || die
1057
1058
1059 diff --git a/www-client/chromium/files/chromium-rpath-r0.patch b/www-client/chromium/files/chromium-rpath-r0.patch
1060 new file mode 100644
1061 index 0000000..244e012
1062 --- /dev/null
1063 +++ b/www-client/chromium/files/chromium-rpath-r0.patch
1064 @@ -0,0 +1,72 @@
1065 +Index: base/BUILD.gn
1066 +diff --git a/base/BUILD.gn b/base/BUILD.gn
1067 +index 9e4270d26009f853e37dc7af883bed4cb43705c8..7d67f62a688b0214bd3eb95a3cd4612bdd273b6d 100644
1068 +--- a/base/BUILD.gn
1069 ++++ b/base/BUILD.gn
1070 +@@ -1562,11 +1562,18 @@ test("base_unittests") {
1071 + if (is_linux) {
1072 + sources -= [ "file_version_info_unittest.cc" ]
1073 + sources += [ "nix/xdg_util_unittest.cc" ]
1074 ++
1075 + deps += [ "//base/test:malloc_wrapper" ]
1076 +
1077 + if (use_glib) {
1078 + configs += [ "//build/config/linux:glib" ]
1079 + }
1080 ++
1081 ++ if (!is_component_build) {
1082 ++ # Set rpath so that we find libmalloc_wrapper.so
1083 ++ # even in a non-component build.
1084 ++ configs += [ "//build/config/gcc:rpath_link" ]
1085 ++ }
1086 + }
1087 +
1088 + if (!is_linux || use_ozone) {
1089 +Index: build/config/gcc/BUILD.gn
1090 +diff --git a/build/config/gcc/BUILD.gn b/build/config/gcc/BUILD.gn
1091 +index b6ab1d4b96ba7ba9a39409006f949569551f92d2..9bc16d9e0d918096cec7124ccf20f145643824b8 100644
1092 +--- a/build/config/gcc/BUILD.gn
1093 ++++ b/build/config/gcc/BUILD.gn
1094 +@@ -20,14 +20,8 @@ config("symbol_visibility_hidden") {
1095 + cflags = [ "-fvisibility=hidden" ]
1096 + }
1097 +
1098 +-# Settings for executables and shared libraries.
1099 +-config("executable_ldconfig") {
1100 +- if (is_android) {
1101 +- ldflags = [
1102 +- "-Bdynamic",
1103 +- "-Wl,-z,nocopyreloc",
1104 +- ]
1105 +- } else {
1106 ++config("rpath_link") {
1107 ++ if (!is_android) {
1108 + # Note: Android doesn't support rpath.
1109 + rpath_link = ""
1110 + if (shlib_subdir != ".") {
1111 +@@ -37,7 +31,25 @@ config("executable_ldconfig") {
1112 + # Want to pass "\$". GN will re-escape as required for ninja.
1113 + "-Wl,-rpath=\$ORIGIN/${rpath_link}",
1114 + "-Wl,-rpath-link=${rpath_link}",
1115 ++ ]
1116 ++ }
1117 ++}
1118 +
1119 ++# Settings for executables and shared libraries.
1120 ++config("executable_ldconfig") {
1121 ++ if (is_android) {
1122 ++ ldflags = [
1123 ++ "-Bdynamic",
1124 ++ "-Wl,-z,nocopyreloc",
1125 ++ ]
1126 ++ } else {
1127 ++ if (is_component_build) {
1128 ++ configs += [ ":rpath_link" ]
1129 ++ }
1130 ++
1131 ++ ldflags = [
1132 ++ # TODO(GYP): Do we need a check on the binutils version here?
1133 ++ #
1134 + # Newer binutils don't set DT_RPATH unless you disable "new" dtags
1135 + # and the new DT_RUNPATH doesn't work without --no-as-needed flag.
1136 + "-Wl,--disable-new-dtags",
1137
1138 diff --git a/www-client/chromium/files/chromium-system-ffmpeg-r1.patch b/www-client/chromium/files/chromium-system-ffmpeg-r1.patch
1139 new file mode 100644
1140 index 0000000..c9f6ce0
1141 --- /dev/null
1142 +++ b/www-client/chromium/files/chromium-system-ffmpeg-r1.patch
1143 @@ -0,0 +1,50 @@
1144 +--- a/media/ffmpeg/ffmpeg_common.h 2015-11-27 12:01:56.155462264 +0000
1145 ++++ b/media/ffmpeg/ffmpeg_common.h 2015-11-27 12:03:03.348846300 +0000
1146 +@@ -19,10 +19,6 @@
1147 +
1148 + // Include FFmpeg header files.
1149 + extern "C" {
1150 +-// Disable deprecated features which result in spammy compile warnings. This
1151 +-// list of defines must mirror those in the 'defines' section of BUILD.gn file &
1152 +-// ffmpeg.gyp file or the headers below will generate different structures!
1153 +-#define FF_API_CONVERGENCE_DURATION 0
1154 + // Upstream libavcodec/utils.c still uses the deprecated
1155 + // av_dup_packet(), causing deprecation warnings.
1156 + // The normal fix for such things is to disable the feature as below,
1157 +@@ -36,7 +32,6 @@
1158 + MSVC_PUSH_DISABLE_WARNING(4244);
1159 + #include <libavcodec/avcodec.h>
1160 + #include <libavformat/avformat.h>
1161 +-#include <libavformat/internal.h>
1162 + #include <libavformat/avio.h>
1163 + #include <libavutil/avutil.h>
1164 + #include <libavutil/imgutils.h>
1165 +diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
1166 +index 155e980..7ba327a 100644
1167 +--- a/media/filters/ffmpeg_demuxer.cc
1168 ++++ b/media/filters/ffmpeg_demuxer.cc
1169 +@@ -966,24 +966,6 @@ void FFmpegDemuxer::OnFindStreamInfoDone(const PipelineStatusCB& status_cb,
1170 + // If no estimate is found, the stream entry will be kInfiniteDuration().
1171 + std::vector<base::TimeDelta> start_time_estimates(format_context->nb_streams,
1172 + kInfiniteDuration());
1173 +- const AVFormatInternal* internal = format_context->internal;
1174 +- if (internal && internal->packet_buffer &&
1175 +- format_context->start_time != static_cast<int64>(AV_NOPTS_VALUE)) {
1176 +- struct AVPacketList* packet_buffer = internal->packet_buffer;
1177 +- while (packet_buffer != internal->packet_buffer_end) {
1178 +- DCHECK_LT(static_cast<size_t>(packet_buffer->pkt.stream_index),
1179 +- start_time_estimates.size());
1180 +- const AVStream* stream =
1181 +- format_context->streams[packet_buffer->pkt.stream_index];
1182 +- if (packet_buffer->pkt.pts != static_cast<int64>(AV_NOPTS_VALUE)) {
1183 +- const base::TimeDelta packet_pts =
1184 +- ConvertFromTimeBase(stream->time_base, packet_buffer->pkt.pts);
1185 +- if (packet_pts < start_time_estimates[stream->index])
1186 +- start_time_estimates[stream->index] = packet_pts;
1187 +- }
1188 +- packet_buffer = packet_buffer->next;
1189 +- }
1190 +- }
1191 +
1192 + AVStream* audio_stream = NULL;
1193 + AudioDecoderConfig audio_config;