Gentoo Archives: gentoo-commits

From: Mike Gilbert <floppym@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
Date: Thu, 08 Aug 2019 15:46:39
Message-Id: 1565279151.5b7b57438d3997382c7803c96971c60e51d3774a.floppym@gentoo
1 commit: 5b7b57438d3997382c7803c96971c60e51d3774a
2 Author: Stephan Hartmann <stha09 <AT> googlemail <DOT> com>
3 AuthorDate: Thu Aug 8 08:01:36 2019 +0000
4 Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
5 CommitDate: Thu Aug 8 15:45:51 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5b7b5743
7
8 www-client/chromium: dev channel bump to 77.0.3865.10
9
10 Closes: https://github.com/gentoo/gentoo/pull/12642
11 Package-Manager: Portage-2.3.69, Repoman-2.3.16
12 Signed-off-by: Stephan Hartmann <stha09 <AT> googlemail.com>
13 Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
14
15 www-client/chromium/Manifest | 1 +
16 www-client/chromium/chromium-77.0.3865.10.ebuild | 716 +++++++++++++++++++++
17 www-client/chromium/files/chromium-77-clang.patch | 13 +
18 .../chromium/files/chromium-77-fix-gn-gen.patch | 11 +
19 .../chromium/files/chromium-77-gcc-abstract.patch | 61 ++
20 .../chromium/files/chromium-77-gcc-include.patch | 26 +
21 .../chromium/files/chromium-77-std-string.patch | 130 ++++
22 .../chromium/files/chromium-77-system-hb.patch | 13 +
23 .../chromium/files/chromium-77-system-icu.patch | 20 +
24 .../chromium/files/chromium-unbundle-zlib.patch | 25 +
25 10 files changed, 1016 insertions(+)
26
27 diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
28 index e23e84adab7..2dd3857842e 100644
29 --- a/www-client/chromium/Manifest
30 +++ b/www-client/chromium/Manifest
31 @@ -1 +1,2 @@
32 DIST chromium-76.0.3809.87.tar.xz 728890984 BLAKE2B d09b6b4dd84d6e2ad6a24602296bfab99294ca09c21553312fa55979eb308d1b3a42cc0e31b4e619cd19c0dfc38dda89bca3b5d2787a96b8836d720f0763f124 SHA512 f237cb794bff68cbc2ea3daadea2852df810543873ceaefa4be901702b3578ce7b23a0f083b76373de20e60ea2dc1245c58de0888fb6c72ca465bca0ee0e7c1a
33 +DIST chromium-77.0.3865.10.tar.xz 733122900 BLAKE2B 23b3cf4b8d4ab8e99d2a1ed0ef56c40faaea64f74c359d56e3140c33f1cff5954d73077c0c48851bc6da332b7131770ab2379c5229d674021b7a0596f7c5e8c5 SHA512 d1d76accae2b7877b2ef6b5544b8aee074d55c36e67ff5816a5ddd48a7b7af77d8467341d2a410e899ea0d7e29bcfffd3887460482a3fb6e77ed31888d31f293
34
35 diff --git a/www-client/chromium/chromium-77.0.3865.10.ebuild b/www-client/chromium/chromium-77.0.3865.10.ebuild
36 new file mode 100644
37 index 00000000000..161ff336d96
38 --- /dev/null
39 +++ b/www-client/chromium/chromium-77.0.3865.10.ebuild
40 @@ -0,0 +1,716 @@
41 +# Copyright 1999-2019 Gentoo Authors
42 +# Distributed under the terms of the GNU General Public License v2
43 +
44 +EAPI=7
45 +PYTHON_COMPAT=( python2_7 )
46 +
47 +CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
48 + 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
49 + sv sw ta te th tr uk vi zh-CN zh-TW"
50 +
51 +inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
52 +
53 +DESCRIPTION="Open-source version of Google Chrome web browser"
54 +HOMEPAGE="http://chromium.org/"
55 +SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
56 +
57 +LICENSE="BSD"
58 +SLOT="0"
59 +KEYWORDS="~amd64 ~arm64 ~x86"
60 +IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
61 +RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
62 +REQUIRED_USE="component-build? ( !suid )"
63 +
64 +COMMON_DEPEND="
65 + >=app-accessibility/at-spi2-atk-2.26:2
66 + app-arch/bzip2:=
67 + cups? ( >=net-print/cups-1.3.11:= )
68 + >=dev-libs/atk-2.26
69 + dev-libs/expat:=
70 + dev-libs/glib:2
71 + system-icu? ( >=dev-libs/icu-64:= )
72 + >=dev-libs/libxml2-2.9.4-r3:=[icu]
73 + dev-libs/libxslt:=
74 + dev-libs/nspr:=
75 + >=dev-libs/nss-3.26:=
76 + >=dev-libs/re2-0.2016.11.01:=
77 + gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
78 + >=media-libs/alsa-lib-1.0.19:=
79 + media-libs/fontconfig:=
80 + media-libs/freetype:=
81 + >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
82 + media-libs/libjpeg-turbo:=
83 + media-libs/libpng:=
84 + system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
85 + >=media-libs/openh264-1.6.0:=
86 + pulseaudio? ( media-sound/pulseaudio:= )
87 + system-ffmpeg? (
88 + >=media-video/ffmpeg-4:=
89 + || (
90 + media-video/ffmpeg[-samba]
91 + >=net-fs/samba-4.5.10-r1[-debug(-)]
92 + )
93 + !=net-fs/samba-4.5.12-r0
94 + media-libs/opus:=
95 + )
96 + sys-apps/dbus:=
97 + sys-apps/pciutils:=
98 + virtual/udev
99 + x11-libs/cairo:=
100 + x11-libs/gdk-pixbuf:2
101 + x11-libs/gtk+:3[X]
102 + x11-libs/libX11:=
103 + x11-libs/libXcomposite:=
104 + x11-libs/libXcursor:=
105 + x11-libs/libXdamage:=
106 + x11-libs/libXext:=
107 + x11-libs/libXfixes:=
108 + >=x11-libs/libXi-1.6.0:=
109 + x11-libs/libXrandr:=
110 + x11-libs/libXrender:=
111 + x11-libs/libXScrnSaver:=
112 + x11-libs/libXtst:=
113 + x11-libs/pango:=
114 + app-arch/snappy:=
115 + media-libs/flac:=
116 + >=media-libs/libwebp-0.4.0:=
117 + sys-libs/zlib:=[minizip]
118 + kerberos? ( virtual/krb5 )
119 +"
120 +# For nvidia-drivers blocker, see bug #413637 .
121 +RDEPEND="${COMMON_DEPEND}
122 + !<www-plugins/chrome-binary-plugins-57
123 + x11-misc/xdg-utils
124 + virtual/opengl
125 + virtual/ttf-fonts
126 + selinux? ( sec-policy/selinux-chromium )
127 + tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
128 + widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
129 +"
130 +# dev-vcs/git - https://bugs.gentoo.org/593476
131 +# sys-apps/sandbox - https://crbug.com/586444
132 +DEPEND="${COMMON_DEPEND}
133 +"
134 +BDEPEND="
135 + >=app-arch/gzip-1.7
136 + !arm? (
137 + dev-lang/yasm
138 + )
139 + dev-lang/perl
140 + dev-util/gn
141 + dev-vcs/git
142 + >=dev-util/gperf-3.0.3
143 + >=dev-util/ninja-1.7.2
144 + >=net-libs/nodejs-7.6.0[inspector]
145 + sys-apps/hwids[usb(+)]
146 + >=sys-devel/bison-2.4.3
147 + sys-devel/flex
148 + closure-compile? ( virtual/jre )
149 + virtual/pkgconfig
150 +"
151 +
152 +: ${CHROMIUM_FORCE_CLANG=no}
153 +
154 +if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
155 + BDEPEND+=" >=sys-devel/clang-7"
156 +fi
157 +
158 +if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
159 + EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
160 +fi
161 +
162 +DISABLE_AUTOFORMATTING="yes"
163 +DOC_CONTENTS="
164 +Some web pages may require additional fonts to display properly.
165 +Try installing some of the following packages if some characters
166 +are not displayed properly:
167 +- media-fonts/arphicfonts
168 +- media-fonts/droid
169 +- media-fonts/ipamonafont
170 +- media-fonts/noto
171 +- media-fonts/ja-ipafonts
172 +- media-fonts/takao-fonts
173 +- media-fonts/wqy-microhei
174 +- media-fonts/wqy-zenhei
175 +
176 +To fix broken icons on the Downloads page, you should install an icon
177 +theme that covers the appropriate MIME types, and configure this as your
178 +GTK+ icon theme.
179 +
180 +For native file dialogs in KDE, install kde-apps/kdialog.
181 +"
182 +
183 +PATCHES=(
184 + "${FILESDIR}/chromium-compiler-r10.patch"
185 + "${FILESDIR}/chromium-widevine-r4.patch"
186 + "${FILESDIR}/chromium-fix-char_traits.patch"
187 + "${FILESDIR}/chromium-unbundle-zlib.patch"
188 + "${FILESDIR}/chromium-77-fix-gn-gen.patch"
189 + "${FILESDIR}/chromium-77-system-icu.patch"
190 + "${FILESDIR}/chromium-77-system-hb.patch"
191 + "${FILESDIR}/chromium-77-clang.patch"
192 + "${FILESDIR}/chromium-77-std-string.patch"
193 + "${FILESDIR}/chromium-77-gcc-abstract.patch"
194 + "${FILESDIR}/chromium-77-gcc-include.patch"
195 +)
196 +
197 +pre_build_checks() {
198 + if [[ ${MERGE_TYPE} != binary ]]; then
199 + local -x CPP="$(tc-getCXX) -E"
200 + if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
201 + die "At least gcc 8.0 is required"
202 + fi
203 + fi
204 +
205 + # Check build requirements, bug #541816 and bug #471810 .
206 + CHECKREQS_MEMORY="3G"
207 + CHECKREQS_DISK_BUILD="7G"
208 + if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
209 + CHECKREQS_DISK_BUILD="25G"
210 + if ! use component-build; then
211 + CHECKREQS_MEMORY="16G"
212 + fi
213 + fi
214 + check-reqs_pkg_setup
215 +}
216 +
217 +pkg_pretend() {
218 + pre_build_checks
219 +}
220 +
221 +pkg_setup() {
222 + pre_build_checks
223 +
224 + chromium_suid_sandbox_check_kernel_config
225 +}
226 +
227 +src_prepare() {
228 + # Calling this here supports resumption via FEATURES=keepwork
229 + python_setup
230 +
231 + default
232 +
233 + mkdir -p third_party/node/linux/node-linux-x64/bin || die
234 + ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
235 +
236 + local keeplibs=(
237 + base/third_party/cityhash
238 + base/third_party/dmg_fp
239 + base/third_party/dynamic_annotations
240 + base/third_party/icu
241 + base/third_party/nspr
242 + base/third_party/superfasthash
243 + base/third_party/symbolize
244 + base/third_party/valgrind
245 + base/third_party/xdg_mime
246 + base/third_party/xdg_user_dirs
247 + buildtools/third_party/libc++
248 + buildtools/third_party/libc++abi
249 + chrome/third_party/mozilla_security_manager
250 + courgette/third_party
251 + net/third_party/mozilla_security_manager
252 + net/third_party/nss
253 + net/third_party/quic
254 + net/third_party/uri_template
255 + third_party/abseil-cpp
256 + third_party/angle
257 + third_party/angle/src/common/third_party/base
258 + third_party/angle/src/common/third_party/smhasher
259 + third_party/angle/src/common/third_party/xxhash
260 + third_party/angle/src/third_party/compiler
261 + third_party/angle/src/third_party/libXNVCtrl
262 + third_party/angle/src/third_party/trace_event
263 + third_party/angle/third_party/glslang
264 + third_party/angle/third_party/spirv-headers
265 + third_party/angle/third_party/spirv-tools
266 + third_party/angle/third_party/vulkan-headers
267 + third_party/angle/third_party/vulkan-loader
268 + third_party/angle/third_party/vulkan-tools
269 + third_party/angle/third_party/vulkan-validation-layers
270 + third_party/apple_apsl
271 + third_party/axe-core
272 + third_party/blink
273 + third_party/boringssl
274 + third_party/boringssl/src/third_party/fiat
275 + third_party/boringssl/src/third_party/sike
276 + third_party/boringssl/linux-aarch64/crypto/third_party/sike
277 + third_party/boringssl/linux-x86_64/crypto/third_party/sike
278 + third_party/breakpad
279 + third_party/breakpad/breakpad/src/third_party/curl
280 + third_party/brotli
281 + third_party/cacheinvalidation
282 + third_party/catapult
283 + third_party/catapult/common/py_vulcanize/third_party/rcssmin
284 + third_party/catapult/common/py_vulcanize/third_party/rjsmin
285 + third_party/catapult/third_party/beautifulsoup4
286 + third_party/catapult/third_party/html5lib-python
287 + third_party/catapult/third_party/polymer
288 + third_party/catapult/third_party/six
289 + third_party/catapult/tracing/third_party/d3
290 + third_party/catapult/tracing/third_party/gl-matrix
291 + third_party/catapult/tracing/third_party/jszip
292 + third_party/catapult/tracing/third_party/mannwhitneyu
293 + third_party/catapult/tracing/third_party/oboe
294 + third_party/catapult/tracing/third_party/pako
295 + third_party/ced
296 + third_party/cld_3
297 + third_party/closure_compiler
298 + third_party/crashpad
299 + third_party/crashpad/crashpad/third_party/lss
300 + third_party/crashpad/crashpad/third_party/zlib
301 + third_party/crc32c
302 + third_party/cros_system_api
303 + third_party/dav1d
304 + third_party/dawn
305 + third_party/devscripts
306 + third_party/dom_distiller_js
307 + third_party/emoji-segmenter
308 + third_party/flatbuffers
309 + third_party/flot
310 + third_party/freetype
311 + third_party/glslang
312 + third_party/google_input_tools
313 + third_party/google_input_tools/third_party/closure_library
314 + third_party/google_input_tools/third_party/closure_library/third_party/closure
315 + third_party/googletest
316 + third_party/hunspell
317 + third_party/iccjpeg
318 + third_party/inspector_protocol
319 + third_party/jinja2
320 + third_party/jsoncpp
321 + third_party/jstemplate
322 + third_party/khronos
323 + third_party/leveldatabase
324 + third_party/libXNVCtrl
325 + third_party/libaddressinput
326 + third_party/libaom
327 + third_party/libaom/source/libaom/third_party/vector
328 + third_party/libaom/source/libaom/third_party/x86inc
329 + third_party/libjingle
330 + third_party/libphonenumber
331 + third_party/libsecret
332 + third_party/libsrtp
333 + third_party/libsync
334 + third_party/libudev
335 + third_party/libwebm
336 + third_party/libxml/chromium
337 + third_party/libyuv
338 + third_party/llvm
339 + third_party/lss
340 + third_party/lzma_sdk
341 + third_party/markupsafe
342 + third_party/mesa
343 + third_party/metrics_proto
344 + third_party/modp_b64
345 + third_party/nasm
346 + third_party/node
347 + third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
348 + third_party/one_euro_filter
349 + third_party/openscreen
350 + third_party/openscreen/src/third_party/tinycbor/src/src
351 + third_party/ots
352 + third_party/pdfium
353 + third_party/pdfium/third_party/agg23
354 + third_party/pdfium/third_party/base
355 + third_party/pdfium/third_party/bigint
356 + third_party/pdfium/third_party/freetype
357 + third_party/pdfium/third_party/lcms
358 + third_party/pdfium/third_party/libopenjpeg20
359 + third_party/pdfium/third_party/libpng16
360 + third_party/pdfium/third_party/libtiff
361 + third_party/pdfium/third_party/skia_shared
362 + third_party/perfetto
363 + third_party/pffft
364 + third_party/ply
365 + third_party/polymer
366 + third_party/protobuf
367 + third_party/protobuf/third_party/six
368 + third_party/pyjson5
369 + third_party/qcms
370 + third_party/rnnoise
371 + third_party/s2cellid
372 + third_party/sfntly
373 + third_party/simplejson
374 + third_party/skia
375 + third_party/skia/include/third_party/skcms
376 + third_party/skia/include/third_party/vulkan
377 + third_party/skia/third_party/gif
378 + third_party/skia/third_party/skcms
379 + third_party/skia/third_party/vulkan
380 + third_party/smhasher
381 + third_party/spirv-headers
382 + third_party/SPIRV-Tools
383 + third_party/sqlite
384 + third_party/swiftshader
385 + third_party/swiftshader/third_party/llvm-7.0
386 + third_party/swiftshader/third_party/llvm-subzero
387 + third_party/swiftshader/third_party/subzero
388 + third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
389 + third_party/unrar
390 + third_party/usrsctp
391 + third_party/vulkan
392 + third_party/web-animations-js
393 + third_party/webdriver
394 + third_party/webrtc
395 + third_party/webrtc/common_audio/third_party/fft4g
396 + third_party/webrtc/common_audio/third_party/spl_sqrt_floor
397 + third_party/webrtc/modules/third_party/fft
398 + third_party/webrtc/modules/third_party/g711
399 + third_party/webrtc/modules/third_party/g722
400 + third_party/webrtc/rtc_base/third_party/base64
401 + third_party/webrtc/rtc_base/third_party/sigslot
402 + third_party/widevine
403 + third_party/woff2
404 + third_party/zlib/google
405 + url/third_party/mozilla
406 + v8/src/third_party/siphash
407 + v8/src/third_party/valgrind
408 + v8/src/third_party/utf8-decoder
409 + v8/third_party/inspector_protocol
410 + v8/third_party/v8
411 +
412 + # gyp -> gn leftovers
413 + base/third_party/libevent
414 + third_party/adobe
415 + third_party/speech-dispatcher
416 + third_party/usb_ids
417 + third_party/xdg-utils
418 + third_party/yasm/run_yasm.py
419 + )
420 + if ! use system-ffmpeg; then
421 + keeplibs+=( third_party/ffmpeg third_party/opus )
422 + fi
423 + if ! use system-icu; then
424 + keeplibs+=( third_party/icu )
425 + fi
426 + if ! use system-libvpx; then
427 + keeplibs+=( third_party/libvpx )
428 + keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
429 + fi
430 + if use tcmalloc; then
431 + keeplibs+=( third_party/tcmalloc )
432 + fi
433 +
434 + # Remove most bundled libraries. Some are still needed.
435 + build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
436 +}
437 +
438 +src_configure() {
439 + # Calling this here supports resumption via FEATURES=keepwork
440 + python_setup
441 +
442 + local myconf_gn=""
443 +
444 + # Make sure the build system will use the right tools, bug #340795.
445 + tc-export AR CC CXX NM
446 +
447 + if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
448 + # Force clang since gcc is pretty broken at the moment.
449 + CC=${CHOST}-clang
450 + CXX=${CHOST}-clang++
451 + strip-unsupported-flags
452 + fi
453 +
454 + if tc-is-clang; then
455 + myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
456 + else
457 + myconf_gn+=" is_clang=false"
458 + fi
459 +
460 + # Define a custom toolchain for GN
461 + myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
462 +
463 + if tc-is-cross-compiler; then
464 + tc-export BUILD_{AR,CC,CXX,NM}
465 + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
466 + myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
467 + else
468 + myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
469 + fi
470 +
471 + # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
472 + myconf_gn+=" is_debug=false"
473 +
474 + # Component build isn't generally intended for use by end users. It's mostly useful
475 + # for development and debugging.
476 + myconf_gn+=" is_component_build=$(usex component-build true false)"
477 +
478 + # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
479 + myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
480 +
481 + myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
482 +
483 + # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
484 + myconf_gn+=" enable_nacl=false"
485 +
486 + # Use system-provided libraries.
487 + # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
488 + # TODO: use_system_hunspell (upstream changes needed).
489 + # TODO: use_system_libsrtp (bug #459932).
490 + # TODO: use_system_protobuf (bug #525560).
491 + # TODO: use_system_ssl (http://crbug.com/58087).
492 + # TODO: use_system_sqlite (http://crbug.com/22208).
493 +
494 + # libevent: https://bugs.gentoo.org/593458
495 + local gn_system_libraries=(
496 + flac
497 + fontconfig
498 + freetype
499 + # Need harfbuzz_from_pkgconfig target
500 + #harfbuzz-ng
501 + libdrm
502 + libjpeg
503 + libpng
504 + libwebp
505 + libxml
506 + libxslt
507 + openh264
508 + re2
509 + snappy
510 + yasm
511 + zlib
512 + )
513 + if use system-ffmpeg; then
514 + gn_system_libraries+=( ffmpeg opus )
515 + fi
516 + if use system-icu; then
517 + gn_system_libraries+=( icu )
518 + fi
519 + if use system-libvpx; then
520 + gn_system_libraries+=( libvpx )
521 + fi
522 + build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
523 +
524 + # See dependency logic in third_party/BUILD.gn
525 + myconf_gn+=" use_system_harfbuzz=true"
526 +
527 + # Optional dependencies.
528 + myconf_gn+=" closure_compile=$(usex closure-compile true false)"
529 + myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
530 + myconf_gn+=" enable_widevine=$(usex widevine true false)"
531 + myconf_gn+=" use_cups=$(usex cups true false)"
532 + myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
533 + myconf_gn+=" use_kerberos=$(usex kerberos true false)"
534 + myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
535 +
536 + # TODO: link_pulseaudio=true for GN.
537 +
538 + myconf_gn+=" fieldtrial_testing_like_official_build=true"
539 +
540 + # Never use bundled gold binary. Disable gold linker flags for now.
541 + # Do not use bundled clang.
542 + # Trying to use gold results in linker crash.
543 + myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
544 +
545 + # Disable forced lld, bug 641556
546 + myconf_gn+=" use_lld=false"
547 +
548 + ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
549 + myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
550 + myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
551 +
552 + # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
553 + # Note: these are for Gentoo use ONLY. For your own distribution,
554 + # please get your own set of keys. Feel free to contact chromium@g.o
555 + # for more info.
556 + local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
557 + local google_default_client_id="329227923882.apps.googleusercontent.com"
558 + local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
559 + myconf_gn+=" google_api_key=\"${google_api_key}\""
560 + myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
561 + myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
562 +
563 + local myarch="$(tc-arch)"
564 +
565 + # Avoid CFLAGS problems, bug #352457, bug #390147.
566 + if ! use custom-cflags; then
567 + replace-flags "-Os" "-O2"
568 + strip-flags
569 +
570 + # Prevent linker from running out of address space, bug #471810 .
571 + if use x86; then
572 + filter-flags "-g*"
573 + fi
574 +
575 + # Prevent libvpx build failures. Bug 530248, 544702, 546984.
576 + if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
577 + filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
578 + fi
579 + fi
580 +
581 + if [[ $myarch = amd64 ]] ; then
582 + myconf_gn+=" target_cpu=\"x64\""
583 + ffmpeg_target_arch=x64
584 + elif [[ $myarch = x86 ]] ; then
585 + myconf_gn+=" target_cpu=\"x86\""
586 + ffmpeg_target_arch=ia32
587 +
588 + # This is normally defined by compiler_cpu_abi in
589 + # build/config/compiler/BUILD.gn, but we patch that part out.
590 + append-flags -msse2 -mfpmath=sse -mmmx
591 + elif [[ $myarch = arm64 ]] ; then
592 + myconf_gn+=" target_cpu=\"arm64\""
593 + ffmpeg_target_arch=arm64
594 + elif [[ $myarch = arm ]] ; then
595 + myconf_gn+=" target_cpu=\"arm\""
596 + ffmpeg_target_arch=$(usex neon arm-neon arm)
597 + else
598 + die "Failed to determine target arch, got '$myarch'."
599 + fi
600 +
601 + # Make sure that -Werror doesn't get added to CFLAGS by the build system.
602 + # Depending on GCC version the warnings are different and we don't want
603 + # the build to fail because of that.
604 + myconf_gn+=" treat_warnings_as_errors=false"
605 +
606 + # Disable fatal linker warnings, bug 506268.
607 + myconf_gn+=" fatal_linker_warnings=false"
608 +
609 + # Bug 491582.
610 + export TMPDIR="${WORKDIR}/temp"
611 + mkdir -p -m 755 "${TMPDIR}" || die
612 +
613 + # https://bugs.gentoo.org/654216
614 + addpredict /dev/dri/ #nowarn
615 +
616 + #if ! use system-ffmpeg; then
617 + if false; then
618 + local build_ffmpeg_args=""
619 + if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
620 + build_ffmpeg_args+=" --disable-asm"
621 + fi
622 +
623 + # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
624 + einfo "Configuring bundled ffmpeg..."
625 + pushd third_party/ffmpeg > /dev/null || die
626 + chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
627 + --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
628 + chromium/scripts/copy_config.sh || die
629 + chromium/scripts/generate_gn.py || die
630 + popd > /dev/null || die
631 + fi
632 +
633 + einfo "Configuring Chromium..."
634 + set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
635 + echo "$@"
636 + "$@" || die
637 +}
638 +
639 +src_compile() {
640 + # Final link uses lots of file descriptors.
641 + ulimit -n 2048
642 +
643 + # Calling this here supports resumption via FEATURES=keepwork
644 + python_setup
645 +
646 + #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
647 +
648 + # Build mksnapshot and pax-mark it.
649 + local x
650 + for x in mksnapshot v8_context_snapshot_generator; do
651 + if tc-is-cross-compiler; then
652 + eninja -C out/Release "host/${x}"
653 + pax-mark m "out/Release/host/${x}"
654 + else
655 + eninja -C out/Release "${x}"
656 + pax-mark m "out/Release/${x}"
657 + fi
658 + done
659 +
660 + # Even though ninja autodetects number of CPUs, we respect
661 + # user's options, for debugging with -j 1 or any other reason.
662 + eninja -C out/Release chrome chromedriver
663 + use suid && eninja -C out/Release chrome_sandbox
664 +
665 + pax-mark m out/Release/chrome
666 +}
667 +
668 +src_install() {
669 + local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
670 + exeinto "${CHROMIUM_HOME}"
671 + doexe out/Release/chrome
672 +
673 + if use suid; then
674 + newexe out/Release/chrome_sandbox chrome-sandbox
675 + fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
676 + fi
677 +
678 + doexe out/Release/chromedriver
679 +
680 + local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
681 + sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
682 + doexe chromium-launcher.sh
683 +
684 + # It is important that we name the target "chromium-browser",
685 + # xdg-utils expect it; bug #355517.
686 + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
687 + # keep the old symlink around for consistency
688 + dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
689 +
690 + dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
691 +
692 + # Allow users to override command-line options, bug #357629.
693 + insinto /etc/chromium
694 + newins "${FILESDIR}/chromium.default" "default"
695 +
696 + pushd out/Release/locales > /dev/null || die
697 + chromium_remove_language_paks
698 + popd
699 +
700 + insinto "${CHROMIUM_HOME}"
701 + doins out/Release/*.bin
702 + doins out/Release/*.pak
703 + doins out/Release/*.so
704 +
705 + if ! use system-icu; then
706 + doins out/Release/icudtl.dat
707 + fi
708 +
709 + doins -r out/Release/locales
710 + doins -r out/Release/resources
711 +
712 + if [[ -d out/Release/swiftshader ]]; then
713 + insinto "${CHROMIUM_HOME}/swiftshader"
714 + doins out/Release/swiftshader/*.so
715 + fi
716 +
717 + # Install icons and desktop entry.
718 + local branding size
719 + for size in 16 24 32 48 64 128 256 ; do
720 + case ${size} in
721 + 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
722 + *) branding="chrome/app/theme/chromium" ;;
723 + esac
724 + newicon -s ${size} "${branding}/product_logo_${size}.png" \
725 + chromium-browser.png
726 + done
727 +
728 + local mime_types="text/html;text/xml;application/xhtml+xml;"
729 + mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
730 + mime_types+="x-scheme-handler/ftp;" # bug #412185
731 + mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
732 + make_desktop_entry \
733 + chromium-browser \
734 + "Chromium" \
735 + chromium-browser \
736 + "Network;WebBrowser" \
737 + "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
738 + sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
739 +
740 + # Install GNOME default application entry (bug #303100).
741 + insinto /usr/share/gnome-control-center/default-apps
742 + newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
743 +
744 + readme.gentoo_create_doc
745 +}
746 +
747 +pkg_postrm() {
748 + xdg_icon_cache_update
749 + xdg_desktop_database_update
750 +}
751 +
752 +pkg_postinst() {
753 + xdg_icon_cache_update
754 + xdg_desktop_database_update
755 + readme.gentoo_print_elog
756 +}
757
758 diff --git a/www-client/chromium/files/chromium-77-clang.patch b/www-client/chromium/files/chromium-77-clang.patch
759 new file mode 100644
760 index 00000000000..a57b5a458a4
761 --- /dev/null
762 +++ b/www-client/chromium/files/chromium-77-clang.patch
763 @@ -0,0 +1,13 @@
764 +diff --git a/base/location.h b/base/location.h
765 +index c07e747..924db1c 100644
766 +--- a/base/location.h
767 ++++ b/base/location.h
768 +@@ -18,7 +18,7 @@
769 +
770 + namespace base {
771 +
772 +-#if defined(__has_builtin)
773 ++#if defined(__clang__)
774 + // Clang allows detection of these builtins.
775 + #define SUPPORTS_LOCATION_BUILTINS \
776 + (__has_builtin(__builtin_FUNCTION) && __has_builtin(__builtin_FILE) && \
777
778 diff --git a/www-client/chromium/files/chromium-77-fix-gn-gen.patch b/www-client/chromium/files/chromium-77-fix-gn-gen.patch
779 new file mode 100644
780 index 00000000000..2c5f128cbc9
781 --- /dev/null
782 +++ b/www-client/chromium/files/chromium-77-fix-gn-gen.patch
783 @@ -0,0 +1,11 @@
784 +--- a/third_party/blink/tools/BUILD.gn
785 ++++ b/third_party/blink/tools/BUILD.gn
786 +@@ -11,7 +11,7 @@ action("build_wpt_metadata") {
787 + rebase_path("$root_out_dir/wpt_expectations_metadata"),
788 + ]
789 + outputs = [
790 +- "$root_out_dir/wpt_expectations_metadata/",
791 ++ "$root_out_dir/wpt_expectations_metadata",
792 + ]
793 + data = [
794 + # Include the blinkpy tools to access expectations data
795
796 diff --git a/www-client/chromium/files/chromium-77-gcc-abstract.patch b/www-client/chromium/files/chromium-77-gcc-abstract.patch
797 new file mode 100644
798 index 00000000000..6d77299ee6c
799 --- /dev/null
800 +++ b/www-client/chromium/files/chromium-77-gcc-abstract.patch
801 @@ -0,0 +1,61 @@
802 +From f08cb0022527081c078e8b96062e6c9b4fbda151 Mon Sep 17 00:00:00 2001
803 +From: Jose Dapena Paz <jose.dapena@×××.com>
804 +Date: Fri, 26 Jul 2019 16:48:06 +0000
805 +Subject: [PATCH] BinaryUploadService: change parameter passing that cannot afford abstract class
806 +
807 +The method UploadForDeepScanning gets a Request as parameter. But Request is an
808 +abstract class, so GCC will not allow that declaration (polimorphycs should be
809 +passed by reference). Use std::unique_ptr so BinaryUploadService can assume
810 +ownership.
811 +
812 +Bug: 819294
813 +Change-Id: I9e8c75cc92b01abd704d9049b0421555377da5ba
814 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713550
815 +Reviewed-by: Daniel Rubery <drubery@××××××××.org>
816 +Commit-Queue: José Dapena Paz <jose.dapena@×××.com>
817 +Cr-Commit-Position: refs/heads/master@{#681333}
818 +---
819 +
820 +diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
821 +index 6430c89..4e90487 100644
822 +--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
823 ++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.cc
824 +@@ -10,7 +10,7 @@
825 + namespace safe_browsing {
826 +
827 + void BinaryUploadService::UploadForDeepScanning(
828 +- BinaryUploadService::Request request) {
829 ++ std::unique_ptr<BinaryUploadService::Request> request) {
830 + DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
831 + NOTREACHED();
832 + }
833 +diff --git a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
834 +index d2dfd83..9b6f395 100644
835 +--- a/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
836 ++++ b/chrome/browser/safe_browsing/download_protection/binary_upload_service.h
837 +@@ -5,6 +5,8 @@
838 + #ifndef CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
839 + #define CHROME_BROWSER_SAFE_BROWSING_DOWNLOAD_PROTECTION_BINARY_UPLOAD_SERVICE_H_
840 +
841 ++#include <memory>
842 ++
843 + #include "base/callback.h"
844 + #include "components/safe_browsing/proto/webprotect.pb.h"
845 +
846 +@@ -40,6 +42,7 @@
847 + public:
848 + // |callback| will run on the UI thread.
849 + explicit Request(Callback callback);
850 ++ virtual ~Request() = default;
851 + Request(const Request&) = delete;
852 + Request& operator=(const Request&) = delete;
853 +
854 +@@ -67,7 +70,7 @@
855 + // Upload the given file contents for deep scanning. The results will be
856 + // returned asynchronously by calling |request|'s |callback|. This must be
857 + // called on the UI thread.
858 +- void UploadForDeepScanning(Request request);
859 ++ void UploadForDeepScanning(std::unique_ptr<Request> request);
860 + };
861 +
862 + } // namespace safe_browsing
863
864 diff --git a/www-client/chromium/files/chromium-77-gcc-include.patch b/www-client/chromium/files/chromium-77-gcc-include.patch
865 new file mode 100644
866 index 00000000000..391f48fd2d9
867 --- /dev/null
868 +++ b/www-client/chromium/files/chromium-77-gcc-include.patch
869 @@ -0,0 +1,26 @@
870 +From 8c747a9c14ed4905f60f6680e2e09e33ea34163e Mon Sep 17 00:00:00 2001
871 +From: Jose Dapena Paz <jose.dapena@×××.com>
872 +Date: Fri, 26 Jul 2019 16:18:17 +0000
873 +Subject: [PATCH] IWYU: include <memory> in one_euro_filter.h as it uses std::unique_ptr
874 +
875 +Bug: 819294
876 +Change-Id: Ie1530f7046b0c8eb76e26adca530fa57c67ed876
877 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1720637
878 +Reviewed-by: Ella Ge <eirage@××××××××.org>
879 +Commit-Queue: José Dapena Paz <jose.dapena@×××.com>
880 +Cr-Commit-Position: refs/heads/master@{#681321}
881 +---
882 +
883 +diff --git a/third_party/one_euro_filter/src/one_euro_filter.h b/third_party/one_euro_filter/src/one_euro_filter.h
884 +index 7f8d15b..a8cd0ab 100644
885 +--- a/third_party/one_euro_filter/src/one_euro_filter.h
886 ++++ b/third_party/one_euro_filter/src/one_euro_filter.h
887 +@@ -1,6 +1,8 @@
888 + #ifndef ONE_EURO_ONE_EURO_FILTER_H_
889 + #define ONE_EURO_ONE_EURO_FILTER_H_
890 +
891 ++#include <memory>
892 ++
893 + #include "low_pass_filter.h"
894 +
895 + namespace one_euro_filter {
896
897 diff --git a/www-client/chromium/files/chromium-77-std-string.patch b/www-client/chromium/files/chromium-77-std-string.patch
898 new file mode 100644
899 index 00000000000..f921f1aac94
900 --- /dev/null
901 +++ b/www-client/chromium/files/chromium-77-std-string.patch
902 @@ -0,0 +1,130 @@
903 +From 74138b9febd37eac0fc26b8efb110014a83a52c6 Mon Sep 17 00:00:00 2001
904 +From: Jeremy Roman <jbroman@××××××××.org>
905 +Date: Wed, 07 Aug 2019 13:26:48 +0000
906 +Subject: [PATCH] WTF: Make LinkedHashSet understand values for which memset initialization would be bad.
907 +
908 +Includes a unit test which fails before, and uses this to fix FontCacheKeyTraits.
909 +
910 +Bug: 980025
911 +Change-Id: If41f97444c7fd37b9b95d6dadaf3da5689079e9e
912 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739948
913 +Reviewed-by: Kentaro Hara <haraken@××××××××.org>
914 +Reviewed-by: Yutaka Hirano <yhirano@××××××××.org>
915 +Commit-Queue: Jeremy Roman <jbroman@××××××××.org>
916 +Cr-Commit-Position: refs/heads/master@{#684731}
917 +---
918 +
919 +diff --git a/third_party/blink/renderer/platform/fonts/font_cache_key.h b/third_party/blink/renderer/platform/fonts/font_cache_key.h
920 +index 0efc8fb..90063cb 100644
921 +--- a/third_party/blink/renderer/platform/fonts/font_cache_key.h
922 ++++ b/third_party/blink/renderer/platform/fonts/font_cache_key.h
923 +@@ -133,6 +133,10 @@
924 +
925 + struct FontCacheKeyTraits : WTF::SimpleClassHashTraits<FontCacheKey> {
926 + STATIC_ONLY(FontCacheKeyTraits);
927 ++
928 ++ // std::string's empty state need not be zero in all implementations,
929 ++ // and it is held within FontFaceCreationParams.
930 ++ static const bool kEmptyValueIsZero = false;
931 + };
932 +
933 + } // namespace blink
934 +diff --git a/third_party/blink/renderer/platform/wtf/linked_hash_set.h b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
935 +index b35b6e9..77e524c 100644
936 +--- a/third_party/blink/renderer/platform/wtf/linked_hash_set.h
937 ++++ b/third_party/blink/renderer/platform/wtf/linked_hash_set.h
938 +@@ -146,6 +146,11 @@
939 + LinkedHashSetNodeBase* next)
940 + : LinkedHashSetNodeBase(prev, next), value_(value) {}
941 +
942 ++ LinkedHashSetNode(ValueArg&& value,
943 ++ LinkedHashSetNodeBase* prev,
944 ++ LinkedHashSetNodeBase* next)
945 ++ : LinkedHashSetNodeBase(prev, next), value_(std::move(value)) {}
946 ++
947 + LinkedHashSetNode(LinkedHashSetNode&& other)
948 + : LinkedHashSetNodeBase(std::move(other)),
949 + value_(std::move(other.value_)) {}
950 +@@ -445,10 +450,13 @@
951 +
952 + // The slot is empty when the next_ field is zero so it's safe to zero
953 + // the backing.
954 +- static const bool kEmptyValueIsZero = true;
955 ++ static const bool kEmptyValueIsZero = ValueTraits::kEmptyValueIsZero;
956 +
957 + static const bool kHasIsEmptyValueFunction = true;
958 + static bool IsEmptyValue(const Node& node) { return !node.next_; }
959 ++ static Node EmptyValue() {
960 ++ return Node(ValueTraits::EmptyValue(), nullptr, nullptr);
961 ++ }
962 +
963 + static const int kDeletedValue = -1;
964 +
965 +diff --git a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
966 +index 4c3f899..cd1be00 100644
967 +--- a/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
968 ++++ b/third_party/blink/renderer/platform/wtf/list_hash_set_test.cc
969 +@@ -487,6 +487,7 @@
970 + };
971 +
972 + struct Complicated {
973 ++ Complicated() : Complicated(0) {}
974 + Complicated(int value) : simple_(value) { objects_constructed_++; }
975 +
976 + Complicated(const Complicated& other) : simple_(other.simple_) {
977 +@@ -495,9 +496,6 @@
978 +
979 + Simple simple_;
980 + static int objects_constructed_;
981 +-
982 +- private:
983 +- Complicated() = delete;
984 + };
985 +
986 + int Complicated::objects_constructed_ = 0;
987 +@@ -731,4 +729,45 @@
988 +
989 + } // anonymous namespace
990 +
991 ++// A unit type which objects to its state being initialized wrong.
992 ++struct InvalidZeroValue {
993 ++ InvalidZeroValue() = default;
994 ++ InvalidZeroValue(WTF::HashTableDeletedValueType) : deleted_(true) {}
995 ++ ~InvalidZeroValue() { CHECK(ok_); }
996 ++ bool IsHashTableDeletedValue() const { return deleted_; }
997 ++
998 ++ bool ok_ = true;
999 ++ bool deleted_ = false;
1000 ++};
1001 ++
1002 ++template <>
1003 ++struct HashTraits<InvalidZeroValue> : SimpleClassHashTraits<InvalidZeroValue> {
1004 ++ static const bool kEmptyValueIsZero = false;
1005 ++};
1006 ++
1007 ++template <>
1008 ++struct DefaultHash<InvalidZeroValue> {
1009 ++ struct Hash {
1010 ++ static unsigned GetHash(const InvalidZeroValue&) { return 0; }
1011 ++ static bool Equal(const InvalidZeroValue&, const InvalidZeroValue&) {
1012 ++ return true;
1013 ++ }
1014 ++ };
1015 ++};
1016 ++
1017 ++template <typename Set>
1018 ++class ListOrLinkedHashSetInvalidZeroTest : public testing::Test {};
1019 ++
1020 ++using InvalidZeroValueSetTypes =
1021 ++ testing::Types<ListHashSet<InvalidZeroValue>,
1022 ++ ListHashSet<InvalidZeroValue, 1>,
1023 ++ LinkedHashSet<InvalidZeroValue>>;
1024 ++TYPED_TEST_SUITE(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValueSetTypes);
1025 ++
1026 ++TYPED_TEST(ListOrLinkedHashSetInvalidZeroTest, InvalidZeroValue) {
1027 ++ using Set = TypeParam;
1028 ++ Set set;
1029 ++ set.insert(InvalidZeroValue());
1030 ++}
1031 ++
1032 + } // namespace WTF
1033
1034 diff --git a/www-client/chromium/files/chromium-77-system-hb.patch b/www-client/chromium/files/chromium-77-system-hb.patch
1035 new file mode 100644
1036 index 00000000000..9cea0fac6c5
1037 --- /dev/null
1038 +++ b/www-client/chromium/files/chromium-77-system-hb.patch
1039 @@ -0,0 +1,13 @@
1040 +diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn
1041 +index 37d8e33..6610cc6 100644
1042 +--- a/third_party/harfbuzz-ng/BUILD.gn
1043 ++++ b/third_party/harfbuzz-ng/BUILD.gn
1044 +@@ -16,7 +16,7 @@ if (use_system_harfbuzz) {
1045 + "//third_party:freetype_harfbuzz",
1046 + "//third_party/freetype:freetype_source",
1047 + ]
1048 +- packages = [ "harfbuzz" ]
1049 ++ packages = [ "harfbuzz", "harfbuzz-subset" ]
1050 + }
1051 + } else {
1052 + config("harfbuzz_config") {
1053
1054 diff --git a/www-client/chromium/files/chromium-77-system-icu.patch b/www-client/chromium/files/chromium-77-system-icu.patch
1055 new file mode 100644
1056 index 00000000000..1f848d7ee2b
1057 --- /dev/null
1058 +++ b/www-client/chromium/files/chromium-77-system-icu.patch
1059 @@ -0,0 +1,20 @@
1060 +diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
1061 +index 4450e40..9ca36dd 100644
1062 +--- a/build/linux/unbundle/icu.gn
1063 ++++ b/build/linux/unbundle/icu.gn
1064 +@@ -96,6 +96,7 @@ shim_headers("icui18n_shim") {
1065 + "unicode/fpositer.h",
1066 + "unicode/gender.h",
1067 + "unicode/gregocal.h",
1068 ++ "unicode/listformatter.h",
1069 + "unicode/measfmt.h",
1070 + "unicode/measunit.h",
1071 + "unicode/measure.h",
1072 +@@ -178,7 +179,6 @@ shim_headers("icuuc_shim") {
1073 + "unicode/icudataver.h",
1074 + "unicode/icuplug.h",
1075 + "unicode/idna.h",
1076 +- "unicode/listformatter.h",
1077 + "unicode/localpointer.h",
1078 + "unicode/locdspnm.h",
1079 + "unicode/locid.h",
1080
1081 diff --git a/www-client/chromium/files/chromium-unbundle-zlib.patch b/www-client/chromium/files/chromium-unbundle-zlib.patch
1082 new file mode 100644
1083 index 00000000000..d6c45ad816d
1084 --- /dev/null
1085 +++ b/www-client/chromium/files/chromium-unbundle-zlib.patch
1086 @@ -0,0 +1,25 @@
1087 +From e1bbdec720a333937bd1b990ae0f7ee97db0d3b0 Mon Sep 17 00:00:00 2001
1088 +From: Your Name <you@×××××××.com>
1089 +Date: Fri, 28 Jun 2019 15:56:23 +0000
1090 +Subject: [PATCH] update zlib
1091 +
1092 +---
1093 + third_party/perfetto/gn/BUILD.gn | 2 +-
1094 + 1 file changed, 1 insertion(+), 1 deletion(-)
1095 +
1096 +diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
1097 +index c951f5f..297eee3 100644
1098 +--- a/third_party/perfetto/gn/BUILD.gn
1099 ++++ b/third_party/perfetto/gn/BUILD.gn
1100 +@@ -200,7 +200,7 @@ group("zlib") {
1101 + "//buildtools:zlib",
1102 + ]
1103 + } else if (build_with_chromium) {
1104 +- public_configs = [ "//third_party/zlib:zlib_config" ]
1105 ++ public_configs = [ "//third_party/zlib:system_zlib" ]
1106 + public_deps = [
1107 + "//third_party/zlib",
1108 + ]
1109 +--
1110 +2.21.0
1111 +