Gentoo Archives: gentoo-commits

From: Stephan Hartmann <sultan@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: www-client/chromium/files/, www-client/chromium/
Date: Wed, 08 Sep 2021 20:00:30
Message-Id: 1631131212.602fbae37ad841fc5f6467cde41b9efdbe506174.sultan@gentoo
1 commit: 602fbae37ad841fc5f6467cde41b9efdbe506174
2 Author: Stephan Hartmann <sultan <AT> gentoo <DOT> org>
3 AuthorDate: Wed Sep 8 20:00:12 2021 +0000
4 Commit: Stephan Hartmann <sultan <AT> gentoo <DOT> org>
5 CommitDate: Wed Sep 8 20:00:12 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=602fbae3
7
8 www-client/chromium: security cleanup
9
10 Bug: https://bugs.gentoo.org/811348
11 Closes: https://bugs.gentoo.org/698974
12 Package-Manager: Portage-3.0.20, Repoman-3.0.3
13 Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>
14
15 www-client/chromium/Manifest | 4 -
16 www-client/chromium/chromium-92.0.4515.159.ebuild | 958 ---------------------
17 .../files/chromium-92-EnumTable-crash.patch | 71 --
18 .../files/chromium-92-crashpad-consent.patch | 46 -
19 .../chromium/files/chromium-freetype-2.11.patch | 50 --
20 5 files changed, 1129 deletions(-)
21
22 diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
23 index 124e68ad842..d3cb7f1b180 100644
24 --- a/www-client/chromium/Manifest
25 +++ b/www-client/chromium/Manifest
26 @@ -1,7 +1,4 @@
27 DIST chromium-92-glibc-2.33-patch.tar.xz 12636 BLAKE2B 0621d2135c1a0864374010c36959deda7b612d448e28780bfe8968fcd45363c091a84413eb3c6f560e9f805a421b910f33e9cc023055e7bf7801aa374d41dc80 SHA512 6d9e999c0b18186f2db28a804f9f84f6b472cf2fac33d72a0b09ded3106f43378a6eaf52b316e0b07a3876d9074ba299a285bdf06193553ee81bdbea4bc66294
28 -DIST chromium-92-patchset-7.tar.xz 4004 BLAKE2B 8587663a072eb08abacbc2e54924855f29efefdbec46acf5cb8b0cc40b816b96ba7694c4ab1abe997572a6dbecf94ea27f368a7337263adfff44f2b4b042d862 SHA512 65c8267ab0921719c71d4b03a4315bbb1ceec35ce4794de9dcc6099b2c349baf4782b67316ebb8c9db233630b7fc89fa0baf719f9f0f41eb39972cdeb437e612
29 -DIST chromium-92-ppc64le-1.tar.xz 30416 BLAKE2B e953e3ba1ac0ff4bae437328eb1c52fb3863007ff92db91c6858c8c5f7b4c5c39fb8bf6898c3385c7faa82666f1a18aae7fcb5379b9199e58c5c0526fbd9dbee SHA512 b5a20076a34705c53c56d7763189ebfd860a456ca544a7f0c9ce30c877be92270ea724f1bebb9b597b301def27dde0a672b0c30e16e6abbf958cecfd60b07ec5
30 -DIST chromium-92.0.4515.159.tar.xz 958060524 BLAKE2B df4f06bc18c4c92061db55d098bde0a811f94f72fdf70cf973754e41db507a70274f48ebdcdacd13a787a35559553fa36d861787d4bc94c2cf2320dd06862970 SHA512 d6d563631278e721f38b045c39c9e205fbedefb0666af2f027a2a14c0d04814a96909da17e5b299bf40a94fe54bdfda0a91186983c8f929e7fbc7cdaffab922a
31 DIST chromium-93-patchset-6.tar.xz 6796 BLAKE2B 2688c68becac1187668b459f9827ffca79de6c7ee64299dff20f91cb774af676ec3d95d809b4fc5f7bd663c3b8c904a46ac9cd3ec70a5ce248456dcd48834932 SHA512 eaf0d2bc29c53c7021ccded9c14463bbde2887926c069154c0126ee1bf513bf41a38eeb3dc21023a2e9637ce3e1e541a3b2a79a990bb8becae0da0a04e57c76a
32 DIST chromium-93.0.4577.63.tar.xz 1038816588 BLAKE2B aa0eeea52345c7269e614ecc32710ea6c5b071d24a773040389df38159b1c60c99f5cf0e1c9e753e776aa23e9b58ef2f2e13d8ba448c3789f10fccd364babaad SHA512 b7d85dfe34d9a37e6b4f9b440ba6aaa2778d30f8bda583151dd6e5d2ab9d6136ee1ab321bfc5f59aa10b289c07f72298db11182d06ede8574ac280b2b6d8fa2f
33 DIST chromium-94-patchset-3.tar.xz 5052 BLAKE2B 3946b555d22792023696e85dbdb02a5fc43e39819c3a1a25c782d12771a608b068a7d11f757fa6390e7d295fe9c2b3b8085c31bd79d35edcd882a3f9f66df8dd SHA512 42f7beb412a7e691f35603625cbb316223706891f2a289301e4786ab92cfd4414d2f4a365f7637ba49a28508e18523670e59ae88512bc56afdd79d22f62f407e
34 @@ -9,4 +6,3 @@ DIST chromium-94.0.4606.31.tar.xz 1039757224 BLAKE2B 7c9b940dbea8708d2815a25b669
35 DIST chromium-95-patchset-2.tar.xz 4608 BLAKE2B bf3d17c1aa79b6070f64b3178d056682b61c9fa8414478379e72e346a805eb71b0e9ae649e13c51b933aa5424f038dbe350327989e3c8f237a7a4bfe1740607c SHA512 371de2fade344b230acbb19e5abdce0d30d27f8d85a862d43e97e8b6d20bd6878401df49729ebee26b93c8bbe38c8b9a0a785ef35aa93b28f53c9e4c3b4e5900
36 DIST chromium-95.0.4628.3.tar.xz 1214022616 BLAKE2B 308f1f8411a8963352da4c1464152e750ee7e33d5830a7bcd76d5f9887622dafb17ee0968c27f17270d994a6946508a24cbefab27aeb1f00085236085db5b86c SHA512 32133bd50b98cd33bef6e6d6a5b3d44db8e38ce89a6961f308a656e4c27fe6056645318d1dfb6a8ed23562de76035e4d0b1a908ce0320d159bef3d27a0f19ad8
37 DIST highway-0.12.1.tar.gz 1480579 BLAKE2B 2889f96e33ae4411b14dae2229d86b0581f2044f50d6bb829a83417f0d67f0c9a8c03d552d09a985231ea11e88497fa405efcb85d158b5734b477bec5764a1eb SHA512 d14aeffc80739a5993177fb190ac03998d495004e9c54126c0e0b174c28be52a3f3fe581d8a08db67c34bd00045223d1850e7b384a2e7fe37a8150d7908004cb
38 -DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf
39
40 diff --git a/www-client/chromium/chromium-92.0.4515.159.ebuild b/www-client/chromium/chromium-92.0.4515.159.ebuild
41 deleted file mode 100644
42 index 7e6e71b9a32..00000000000
43 --- a/www-client/chromium/chromium-92.0.4515.159.ebuild
44 +++ /dev/null
45 @@ -1,958 +0,0 @@
46 -# Copyright 2009-2021 Gentoo Authors
47 -# Distributed under the terms of the GNU General Public License v2
48 -
49 -EAPI=7
50 -PYTHON_COMPAT=( python3_{8,9} )
51 -PYTHON_REQ_USE="xml"
52 -
53 -CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
54 - 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
55 - sv sw ta te th tr uk vi zh-CN zh-TW"
56 -
57 -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
58 -
59 -DESCRIPTION="Open-source version of Google Chrome web browser"
60 -HOMEPAGE="https://chromium.org/"
61 -PATCHSET="7"
62 -PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
63 -PPC64LE_PATCHSET="92-ppc64le-1"
64 -SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
65 - https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
66 - https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
67 - https://dev.gentoo.org/~sultan/distfiles/www-client/${PN}/${PN}-92-glibc-2.33-patch.tar.xz
68 - arm64? ( https://github.com/google/highway/archive/refs/tags/0.12.1.tar.gz -> highway-0.12.1.tar.gz )
69 - ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-${PPC64LE_PATCHSET}.tar.xz )"
70 -
71 -LICENSE="BSD"
72 -SLOT="0"
73 -KEYWORDS="amd64 arm64 ~ppc64 ~x86"
74 -IUSE="component-build cups cpu_flags_arm_neon +hangouts headless +js-type-check kerberos official pic +proprietary-codecs pulseaudio screencast selinux +suid +system-ffmpeg +system-icu vaapi wayland widevine"
75 -REQUIRED_USE="
76 - component-build? ( !suid )
77 - screencast? ( wayland )
78 -"
79 -
80 -COMMON_X_DEPEND="
81 - media-libs/mesa:=[gbm(+)]
82 - x11-libs/libX11:=
83 - x11-libs/libXcomposite:=
84 - x11-libs/libXcursor:=
85 - x11-libs/libXdamage:=
86 - x11-libs/libXext:=
87 - x11-libs/libXfixes:=
88 - >=x11-libs/libXi-1.6.0:=
89 - x11-libs/libXrandr:=
90 - x11-libs/libXrender:=
91 - x11-libs/libXtst:=
92 - x11-libs/libxcb:=
93 - x11-libs/libxshmfence:=
94 - vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
95 -"
96 -
97 -COMMON_DEPEND="
98 - app-arch/bzip2:=
99 - cups? ( >=net-print/cups-1.3.11:= )
100 - dev-libs/expat:=
101 - dev-libs/glib:2
102 - >=dev-libs/libxml2-2.9.4-r3:=[icu]
103 - dev-libs/nspr:=
104 - >=dev-libs/nss-3.26:=
105 - >=media-libs/alsa-lib-1.0.19:=
106 - media-libs/fontconfig:=
107 - media-libs/freetype:=
108 - >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
109 - media-libs/libjpeg-turbo:=
110 - media-libs/libpng:=
111 - pulseaudio? ( media-sound/pulseaudio:= )
112 - system-ffmpeg? (
113 - >=media-video/ffmpeg-4.3:=
114 - || (
115 - media-video/ffmpeg[-samba]
116 - >=net-fs/samba-4.5.10-r1[-debug(-)]
117 - )
118 - >=media-libs/opus-1.3.1:=
119 - )
120 - net-misc/curl[ssl]
121 - sys-apps/dbus:=
122 - sys-apps/pciutils:=
123 - virtual/udev
124 - x11-libs/cairo:=
125 - x11-libs/gdk-pixbuf:2
126 - x11-libs/libxkbcommon:=
127 - x11-libs/pango:=
128 - media-libs/flac:=
129 - >=media-libs/libwebp-0.4.0:=
130 - sys-libs/zlib:=[minizip]
131 - kerberos? ( virtual/krb5 )
132 - !headless? (
133 - ${COMMON_X_DEPEND}
134 - >=app-accessibility/at-spi2-atk-2.26:2
135 - >=app-accessibility/at-spi2-core-2.26:2
136 - >=dev-libs/atk-2.26
137 - x11-libs/gtk+:3[X]
138 - wayland? (
139 - dev-libs/wayland:=
140 - screencast? ( media-video/pipewire:0/0.3 )
141 - x11-libs/gtk+:3[wayland,X]
142 - x11-libs/libdrm:=
143 - )
144 - )
145 -"
146 -RDEPEND="${COMMON_DEPEND}
147 - x11-misc/xdg-utils
148 - virtual/opengl
149 - virtual/ttf-fonts
150 - selinux? ( sec-policy/selinux-chromium )
151 -"
152 -DEPEND="${COMMON_DEPEND}
153 -"
154 -# dev-vcs/git - https://bugs.gentoo.org/593476
155 -BDEPEND="
156 - ${PYTHON_DEPS}
157 - >=app-arch/gzip-1.7
158 - app-arch/unzip
159 - dev-lang/perl
160 - dev-lang/python:2.7[xml]
161 - >=dev-util/gn-0.1807
162 - dev-vcs/git
163 - >=dev-util/gperf-3.0.3
164 - >=dev-util/ninja-1.7.2
165 - >=net-libs/nodejs-7.6.0[inspector]
166 - sys-apps/hwids[usb(+)]
167 - >=sys-devel/bison-2.4.3
168 - sys-devel/flex
169 - virtual/pkgconfig
170 - js-type-check? ( virtual/jre )
171 -"
172 -
173 -# These are intended for ebuild maintainer use to force clang if GCC is broken.
174 -: ${CHROMIUM_FORCE_CLANG=no}
175 -: ${CHROMIUM_FORCE_LIBCXX=no}
176 -
177 -if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
178 - BDEPEND+=" >=sys-devel/clang-12"
179 -fi
180 -
181 -if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
182 - RDEPEND+=" >=sys-libs/libcxx-12"
183 - DEPEND+=" >=sys-libs/libcxx-12"
184 -else
185 - COMMON_DEPEND="
186 - app-arch/snappy:=
187 - dev-libs/libxslt:=
188 - >=dev-libs/re2-0.2019.08.01:=
189 - >=media-libs/openh264-1.6.0:=
190 - system-icu? ( >=dev-libs/icu-69.1:= )
191 - "
192 - RDEPEND+="${COMMON_DEPEND}"
193 - DEPEND+="${COMMON_DEPEND}"
194 -fi
195 -
196 -if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
197 - EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
198 -fi
199 -
200 -DISABLE_AUTOFORMATTING="yes"
201 -DOC_CONTENTS="
202 -Some web pages may require additional fonts to display properly.
203 -Try installing some of the following packages if some characters
204 -are not displayed properly:
205 -- media-fonts/arphicfonts
206 -- media-fonts/droid
207 -- media-fonts/ipamonafont
208 -- media-fonts/noto
209 -- media-fonts/ja-ipafonts
210 -- media-fonts/takao-fonts
211 -- media-fonts/wqy-microhei
212 -- media-fonts/wqy-zenhei
213 -
214 -To fix broken icons on the Downloads page, you should install an icon
215 -theme that covers the appropriate MIME types, and configure this as your
216 -GTK+ icon theme.
217 -
218 -For native file dialogs in KDE, install kde-apps/kdialog.
219 -
220 -To make password storage work with your desktop environment you may
221 -have install one of the supported credentials management applications:
222 -- app-crypt/libsecret (GNOME)
223 -- kde-frameworks/kwallet (KDE)
224 -If you have one of above packages installed, but don't want to use
225 -them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
226 -in /etc/chromium/default.
227 -"
228 -
229 -pre_build_checks() {
230 - if [[ ${MERGE_TYPE} != binary ]]; then
231 - local -x CPP="$(tc-getCXX) -E"
232 - if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
233 - die "At least gcc 9.2 is required"
234 - fi
235 - if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
236 - CPP="${CHOST}-clang++ -E"
237 - if ! ver_test "$(clang-major-version)" -ge 12; then
238 - die "At least clang 12 is required"
239 - fi
240 - fi
241 - fi
242 -
243 - # Check build requirements, bug #541816 and bug #471810 .
244 - CHECKREQS_MEMORY="3G"
245 - CHECKREQS_DISK_BUILD="8G"
246 - if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
247 - if use custom-cflags || use component-build; then
248 - CHECKREQS_DISK_BUILD="25G"
249 - fi
250 - if ! use component-build; then
251 - CHECKREQS_MEMORY="16G"
252 - fi
253 - fi
254 - check-reqs_pkg_setup
255 -}
256 -
257 -pkg_pretend() {
258 - pre_build_checks
259 -}
260 -
261 -pkg_setup() {
262 - pre_build_checks
263 -
264 - chromium_suid_sandbox_check_kernel_config
265 -
266 - # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
267 - if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
268 - ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
269 - ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
270 - fi
271 -}
272 -
273 -src_prepare() {
274 - # Calling this here supports resumption via FEATURES=keepwork
275 - python_setup
276 -
277 - local PATCHES=(
278 - "${WORKDIR}/patches"
279 - "${WORKDIR}/sandbox-patches/chromium-syscall_broker.patch"
280 - "${WORKDIR}/sandbox-patches/chromium-fstatat-crash.patch"
281 - "${FILESDIR}/chromium-92-EnumTable-crash.patch"
282 - "${FILESDIR}/chromium-92-crashpad-consent.patch"
283 - "${FILESDIR}/chromium-freetype-2.11.patch"
284 - "${FILESDIR}/chromium-use-oauth2-client-switches-as-default.patch"
285 - "${FILESDIR}/chromium-shim_headers.patch"
286 - )
287 -
288 - if use ppc64; then
289 - eapply "${WORKDIR}/${PN}-ppc64le/xxx-ppc64le-libvpx.patch"
290 - eapply "${WORKDIR}/${PN}-ppc64le/xxx-ppc64le-support.patch"
291 - eapply "${WORKDIR}/${PN}-ppc64le/xxx-ppc64le-swiftshader.patch"
292 - fi
293 -
294 - default
295 -
296 - # this patch needs to be applied after gentoo sandbox patchset
297 - use ppc64 && eapply "${WORKDIR}/${PN}-ppc64le/xxx-ppc64le-sandbox_kernel_stat.patch"
298 -
299 - mkdir -p third_party/node/linux/node-linux-x64/bin || die
300 - ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
301 -
302 - # adjust python interpreter versions
303 - sed -i -e "s|\(^script_executable = \).*|\1\"${EPYTHON}\"|g" .gn || die
304 - sed -i -e "s|python2|python2\.7|g" buildtools/linux64/clang-format || die
305 -
306 - # bundled highway library does not support arm64 with GCC
307 - if use arm64; then
308 - rm -r third_party/highway/src || die
309 - ln -s "${WORKDIR}/highway-0.12.1" third_party/highway/src || die
310 - fi
311 -
312 - local keeplibs=(
313 - base/third_party/cityhash
314 - base/third_party/double_conversion
315 - base/third_party/dynamic_annotations
316 - base/third_party/icu
317 - base/third_party/nspr
318 - base/third_party/superfasthash
319 - base/third_party/symbolize
320 - base/third_party/valgrind
321 - base/third_party/xdg_mime
322 - base/third_party/xdg_user_dirs
323 - buildtools/third_party/libc++
324 - buildtools/third_party/libc++abi
325 - chrome/third_party/mozilla_security_manager
326 - courgette/third_party
327 - net/third_party/mozilla_security_manager
328 - net/third_party/nss
329 - net/third_party/quic
330 - net/third_party/uri_template
331 - third_party/abseil-cpp
332 - third_party/angle
333 - third_party/angle/src/common/third_party/base
334 - third_party/angle/src/common/third_party/smhasher
335 - third_party/angle/src/common/third_party/xxhash
336 - third_party/angle/src/third_party/compiler
337 - third_party/angle/src/third_party/libXNVCtrl
338 - third_party/angle/src/third_party/trace_event
339 - third_party/angle/src/third_party/volk
340 - third_party/apple_apsl
341 - third_party/axe-core
342 - third_party/blink
343 - third_party/boringssl
344 - third_party/boringssl/src/third_party/fiat
345 - third_party/breakpad
346 - third_party/breakpad/breakpad/src/third_party/curl
347 - third_party/brotli
348 - third_party/catapult
349 - third_party/catapult/common/py_vulcanize/third_party/rcssmin
350 - third_party/catapult/common/py_vulcanize/third_party/rjsmin
351 - third_party/catapult/third_party/beautifulsoup4
352 - third_party/catapult/third_party/html5lib-python
353 - third_party/catapult/third_party/polymer
354 - third_party/catapult/third_party/six
355 - third_party/catapult/tracing/third_party/d3
356 - third_party/catapult/tracing/third_party/gl-matrix
357 - third_party/catapult/tracing/third_party/jpeg-js
358 - third_party/catapult/tracing/third_party/jszip
359 - third_party/catapult/tracing/third_party/mannwhitneyu
360 - third_party/catapult/tracing/third_party/oboe
361 - third_party/catapult/tracing/third_party/pako
362 - third_party/ced
363 - third_party/cld_3
364 - third_party/closure_compiler
365 - third_party/crashpad
366 - third_party/crashpad/crashpad/third_party/lss
367 - third_party/crashpad/crashpad/third_party/zlib
368 - third_party/crc32c
369 - third_party/cros_system_api
370 - third_party/dav1d
371 - third_party/dawn
372 - third_party/dawn/third_party/khronos
373 - third_party/dawn/third_party/tint
374 - third_party/depot_tools
375 - third_party/devscripts
376 - third_party/devtools-frontend
377 - third_party/devtools-frontend/src/front_end/third_party/acorn
378 - third_party/devtools-frontend/src/front_end/third_party/axe-core
379 - third_party/devtools-frontend/src/front_end/third_party/chromium
380 - third_party/devtools-frontend/src/front_end/third_party/codemirror
381 - third_party/devtools-frontend/src/front_end/third_party/diff
382 - third_party/devtools-frontend/src/front_end/third_party/i18n
383 - third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
384 - third_party/devtools-frontend/src/front_end/third_party/lighthouse
385 - third_party/devtools-frontend/src/front_end/third_party/lit-html
386 - third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
387 - third_party/devtools-frontend/src/front_end/third_party/marked
388 - third_party/devtools-frontend/src/front_end/third_party/puppeteer
389 - third_party/devtools-frontend/src/front_end/third_party/wasmparser
390 - third_party/devtools-frontend/src/third_party
391 - third_party/dom_distiller_js
392 - third_party/eigen3
393 - third_party/emoji-segmenter
394 - third_party/farmhash
395 - third_party/fdlibm
396 - third_party/fft2d
397 - third_party/flatbuffers
398 - third_party/freetype
399 - third_party/fusejs
400 - third_party/highway
401 - third_party/libgifcodec
402 - third_party/liburlpattern
403 - third_party/libzip
404 - third_party/gemmlowp
405 - third_party/google_input_tools
406 - third_party/google_input_tools/third_party/closure_library
407 - third_party/google_input_tools/third_party/closure_library/third_party/closure
408 - third_party/googletest
409 - third_party/harfbuzz-ng/utils
410 - third_party/hunspell
411 - third_party/iccjpeg
412 - third_party/inspector_protocol
413 - third_party/jinja2
414 - third_party/jsoncpp
415 - third_party/jstemplate
416 - third_party/khronos
417 - third_party/leveldatabase
418 - third_party/libXNVCtrl
419 - third_party/libaddressinput
420 - third_party/libaom
421 - third_party/libaom/source/libaom/third_party/fastfeat
422 - third_party/libaom/source/libaom/third_party/vector
423 - third_party/libaom/source/libaom/third_party/x86inc
424 - third_party/libavif
425 - third_party/libgav1
426 - third_party/libjingle
427 - third_party/libjxl
428 - third_party/libphonenumber
429 - third_party/libsecret
430 - third_party/libsrtp
431 - third_party/libsync
432 - third_party/libudev
433 - third_party/libva_protected_content
434 - third_party/libvpx
435 - third_party/libvpx/source/libvpx/third_party/x86inc
436 - third_party/libwebm
437 - third_party/libx11
438 - third_party/libxcb-keysyms
439 - third_party/libxml/chromium
440 - third_party/libyuv
441 - third_party/llvm
442 - third_party/lottie
443 - third_party/lss
444 - third_party/lzma_sdk
445 - third_party/mako
446 - third_party/markupsafe
447 - third_party/mesa
448 - third_party/metrics_proto
449 - third_party/minigbm
450 - third_party/modp_b64
451 - third_party/nasm
452 - third_party/nearby
453 - third_party/neon_2_sse
454 - third_party/node
455 - third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
456 - third_party/one_euro_filter
457 - third_party/opencv
458 - third_party/openscreen
459 - third_party/openscreen/src/third_party/mozilla
460 - third_party/openscreen/src/third_party/tinycbor/src/src
461 - third_party/ots
462 - third_party/pdfium
463 - third_party/pdfium/third_party/agg23
464 - third_party/pdfium/third_party/base
465 - third_party/pdfium/third_party/bigint
466 - third_party/pdfium/third_party/freetype
467 - third_party/pdfium/third_party/lcms
468 - third_party/pdfium/third_party/libopenjpeg20
469 - third_party/pdfium/third_party/libpng16
470 - third_party/pdfium/third_party/libtiff
471 - third_party/pdfium/third_party/skia_shared
472 - third_party/perfetto
473 - third_party/perfetto/protos/third_party/chromium
474 - third_party/pffft
475 - third_party/ply
476 - third_party/polymer
477 - third_party/private-join-and-compute
478 - third_party/private_membership
479 - third_party/protobuf
480 - third_party/protobuf/third_party/six
481 - third_party/pyjson5
482 - third_party/qcms
483 - third_party/rnnoise
484 - third_party/s2cellid
485 - third_party/securemessage
486 - third_party/shell-encryption
487 - third_party/simplejson
488 - third_party/skia
489 - third_party/skia/include/third_party/skcms
490 - third_party/skia/include/third_party/vulkan
491 - third_party/skia/third_party/skcms
492 - third_party/skia/third_party/vulkan
493 - third_party/smhasher
494 - third_party/sqlite
495 - third_party/swiftshader
496 - third_party/swiftshader/third_party/astc-encoder
497 - third_party/swiftshader/third_party/llvm-subzero
498 - third_party/swiftshader/third_party/marl
499 - third_party/swiftshader/third_party/subzero
500 - third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
501 - third_party/tcmalloc
502 - third_party/tensorflow-text
503 - third_party/tflite
504 - third_party/tflite/src/third_party/eigen3
505 - third_party/tflite/src/third_party/fft2d
506 - third_party/tflite-support
507 - third_party/ruy
508 - third_party/ukey2
509 - third_party/unrar
510 - third_party/usrsctp
511 - third_party/utf
512 - third_party/vulkan
513 - third_party/web-animations-js
514 - third_party/webdriver
515 - third_party/webgpu-cts
516 - third_party/webrtc
517 - third_party/webrtc/common_audio/third_party/ooura
518 - third_party/webrtc/common_audio/third_party/spl_sqrt_floor
519 - third_party/webrtc/modules/third_party/fft
520 - third_party/webrtc/modules/third_party/g711
521 - third_party/webrtc/modules/third_party/g722
522 - third_party/webrtc/rtc_base/third_party/base64
523 - third_party/webrtc/rtc_base/third_party/sigslot
524 - third_party/widevine
525 - third_party/woff2
526 - third_party/wuffs
527 - third_party/x11proto
528 - third_party/xcbproto
529 - third_party/zxcvbn-cpp
530 - third_party/zlib/google
531 - tools/grit/third_party/six
532 - url/third_party/mozilla
533 - v8/src/third_party/siphash
534 - v8/src/third_party/valgrind
535 - v8/src/third_party/utf8-decoder
536 - v8/third_party/inspector_protocol
537 - v8/third_party/v8
538 -
539 - # gyp -> gn leftovers
540 - base/third_party/libevent
541 - third_party/speech-dispatcher
542 - third_party/usb_ids
543 - third_party/xdg-utils
544 - )
545 - if ! use system-ffmpeg; then
546 - keeplibs+=( third_party/ffmpeg third_party/opus )
547 - fi
548 - if ! use system-icu; then
549 - keeplibs+=( third_party/icu )
550 - fi
551 - if use wayland && ! use headless ; then
552 - keeplibs+=( third_party/wayland )
553 - fi
554 - if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
555 - keeplibs+=( third_party/libxml )
556 - keeplibs+=( third_party/libxslt )
557 - keeplibs+=( third_party/openh264 )
558 - keeplibs+=( third_party/re2 )
559 - keeplibs+=( third_party/snappy )
560 - if use system-icu; then
561 - keeplibs+=( third_party/icu )
562 - fi
563 - fi
564 - if use arm64 || use ppc64 ; then
565 - keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
566 - fi
567 - # we need to generate ppc64 stuff because upstream does not ship it yet
568 - # it has to be done before unbundling.
569 - if use ppc64; then
570 - pushd third_party/libvpx >/dev/null || die
571 - mkdir -p source/config/linux/ppc64 || die
572 - ./generate_gni.sh || die
573 - popd >/dev/null || die
574 - fi
575 -
576 - # Remove most bundled libraries. Some are still needed.
577 - build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
578 -
579 - if use js-type-check; then
580 - ln -s "${EPREFIX}"/usr/bin/java third_party/jdk/current/bin/java || die
581 - fi
582 -
583 - # bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
584 - mkdir -p buildtools/third_party/eu-strip/bin || die
585 - ln -s "${EPREFIX}"/bin/true buildtools/third_party/eu-strip/bin/eu-strip || die
586 -}
587 -
588 -src_configure() {
589 - # Calling this here supports resumption via FEATURES=keepwork
590 - python_setup
591 -
592 - local myconf_gn=""
593 -
594 - # Make sure the build system will use the right tools, bug #340795.
595 - tc-export AR CC CXX NM
596 -
597 - if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
598 - # Force clang since gcc is pretty broken at the moment.
599 - CC=${CHOST}-clang
600 - CXX=${CHOST}-clang++
601 - strip-unsupported-flags
602 - fi
603 -
604 - if tc-is-clang; then
605 - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
606 - else
607 - if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
608 - die "Compiling with sys-libs/libcxx requires clang."
609 - fi
610 - myconf_gn+=" is_clang=false"
611 - fi
612 -
613 - # Define a custom toolchain for GN
614 - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
615 -
616 - if tc-is-cross-compiler; then
617 - tc-export BUILD_{AR,CC,CXX,NM}
618 - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
619 - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
620 - else
621 - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
622 - fi
623 -
624 - # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
625 - myconf_gn+=" is_debug=false"
626 -
627 - # Component build isn't generally intended for use by end users. It's mostly useful
628 - # for development and debugging.
629 - myconf_gn+=" is_component_build=$(usex component-build true false)"
630 -
631 - # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
632 - myconf_gn+=" enable_nacl=false"
633 -
634 - # Use system-provided libraries.
635 - # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
636 - # TODO: use_system_hunspell (upstream changes needed).
637 - # TODO: use_system_libsrtp (bug #459932).
638 - # TODO: use_system_protobuf (bug #525560).
639 - # TODO: use_system_ssl (http://crbug.com/58087).
640 - # TODO: use_system_sqlite (http://crbug.com/22208).
641 -
642 - # libevent: https://bugs.gentoo.org/593458
643 - local gn_system_libraries=(
644 - flac
645 - fontconfig
646 - freetype
647 - # Need harfbuzz_from_pkgconfig target
648 - #harfbuzz-ng
649 - libdrm
650 - libjpeg
651 - libpng
652 - libwebp
653 - zlib
654 - )
655 - if use system-ffmpeg; then
656 - gn_system_libraries+=( ffmpeg opus )
657 - fi
658 - if use system-icu; then
659 - gn_system_libraries+=( icu )
660 - fi
661 - if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
662 - # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
663 - gn_system_libraries+=( libxml )
664 - gn_system_libraries+=( libxslt )
665 - gn_system_libraries+=( openh264 )
666 - gn_system_libraries+=( re2 )
667 - gn_system_libraries+=( snappy )
668 - fi
669 - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
670 -
671 - # See dependency logic in third_party/BUILD.gn
672 - myconf_gn+=" use_system_harfbuzz=true"
673 -
674 - # Disable deprecated libgnome-keyring dependency, bug #713012
675 - myconf_gn+=" use_gnome_keyring=false"
676 -
677 - # Optional dependencies.
678 - myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
679 - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
680 - myconf_gn+=" enable_widevine=$(usex widevine true false)"
681 - myconf_gn+=" use_cups=$(usex cups true false)"
682 - myconf_gn+=" use_kerberos=$(usex kerberos true false)"
683 - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
684 - myconf_gn+=" use_vaapi=$(usex vaapi true false)"
685 - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
686 -
687 - # TODO: link_pulseaudio=true for GN.
688 -
689 - myconf_gn+=" fieldtrial_testing_like_official_build=true"
690 -
691 - # Never use bundled gold binary. Disable gold linker flags for now.
692 - # Do not use bundled clang.
693 - # Trying to use gold results in linker crash.
694 - myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
695 -
696 - # Disable forced lld, bug 641556
697 - myconf_gn+=" use_lld=false"
698 -
699 - # Disable pseudolocales, only used for testing
700 - myconf_gn+=" enable_pseudolocales=false"
701 -
702 - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
703 - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
704 - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
705 -
706 - # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
707 - # Note: these are for Gentoo use ONLY. For your own distribution,
708 - # please get your own set of keys. Feel free to contact chromium@g.o
709 - # for more info. The OAuth2 credentials, however, have been left out.
710 - # Those OAuth2 credentials have been broken for quite some time anyway.
711 - # Instead we apply a patch to use the --oauth2-client-id= and
712 - # --oauth2-client-secret= switches for setting GOOGLE_DEFAULT_CLIENT_ID and
713 - # GOOGLE_DEFAULT_CLIENT_SECRET at runtime. This allows signing into
714 - # Chromium without baked-in values.
715 - local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
716 - myconf_gn+=" google_api_key=\"${google_api_key}\""
717 - local myarch="$(tc-arch)"
718 -
719 - # Avoid CFLAGS problems, bug #352457, bug #390147.
720 - if ! use custom-cflags; then
721 - replace-flags "-Os" "-O2"
722 - strip-flags
723 -
724 - # Debug info section overflows without component build
725 - # Prevent linker from running out of address space, bug #471810 .
726 - if ! use component-build || use x86; then
727 - filter-flags "-g*"
728 - fi
729 -
730 - # Prevent libvpx build failures. Bug 530248, 544702, 546984.
731 - if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
732 - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
733 - fi
734 - fi
735 -
736 - if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
737 - append-flags -stdlib=libc++
738 - append-ldflags -stdlib=libc++
739 - fi
740 -
741 - if [[ $myarch = amd64 ]] ; then
742 - myconf_gn+=" target_cpu=\"x64\""
743 - ffmpeg_target_arch=x64
744 - elif [[ $myarch = x86 ]] ; then
745 - myconf_gn+=" target_cpu=\"x86\""
746 - ffmpeg_target_arch=ia32
747 -
748 - # This is normally defined by compiler_cpu_abi in
749 - # build/config/compiler/BUILD.gn, but we patch that part out.
750 - append-flags -msse2 -mfpmath=sse -mmmx
751 - elif [[ $myarch = arm64 ]] ; then
752 - myconf_gn+=" target_cpu=\"arm64\""
753 - ffmpeg_target_arch=arm64
754 - elif [[ $myarch = arm ]] ; then
755 - myconf_gn+=" target_cpu=\"arm\""
756 - ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
757 - elif [[ $myarch = ppc64 ]] ; then
758 - myconf_gn+=" target_cpu=\"ppc64\""
759 - ffmpeg_target_arch=ppc64
760 - else
761 - die "Failed to determine target arch, got '$myarch'."
762 - fi
763 -
764 - # Make sure that -Werror doesn't get added to CFLAGS by the build system.
765 - # Depending on GCC version the warnings are different and we don't want
766 - # the build to fail because of that.
767 - myconf_gn+=" treat_warnings_as_errors=false"
768 -
769 - # Disable fatal linker warnings, bug 506268.
770 - myconf_gn+=" fatal_linker_warnings=false"
771 -
772 - # Bug 491582.
773 - export TMPDIR="${WORKDIR}/temp"
774 - mkdir -p -m 755 "${TMPDIR}" || die
775 -
776 - # https://bugs.gentoo.org/654216
777 - addpredict /dev/dri/ #nowarn
778 -
779 - #if ! use system-ffmpeg; then
780 - if false; then
781 - local build_ffmpeg_args=""
782 - if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
783 - build_ffmpeg_args+=" --disable-asm"
784 - fi
785 -
786 - # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
787 - einfo "Configuring bundled ffmpeg..."
788 - pushd third_party/ffmpeg > /dev/null || die
789 - chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
790 - --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
791 - chromium/scripts/copy_config.sh || die
792 - chromium/scripts/generate_gn.py || die
793 - popd > /dev/null || die
794 - fi
795 -
796 - # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
797 - append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
798 -
799 - # highway/libjxl relies on this with arm64
800 - if use arm64 && tc-is-gcc; then
801 - append-cxxflags -flax-vector-conversions
802 - fi
803 -
804 - # highway/libjxl fail on ppc64 without extra patches, disable for now.
805 - use ppc64 && myconf_gn+=" enable_jxl_decoder=false"
806 -
807 - # Disable unknown warning message from clang.
808 - tc-is-clang && append-flags -Wno-unknown-warning-option
809 -
810 - # Explicitly disable ICU data file support for system-icu builds.
811 - if use system-icu; then
812 - myconf_gn+=" icu_use_data_file=false"
813 - fi
814 -
815 - # Enable ozone wayland and/or headless support
816 - myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
817 - myconf_gn+=" ozone_platform_headless=true"
818 - if use wayland || use headless; then
819 - if use headless; then
820 - myconf_gn+=" ozone_platform=\"headless\""
821 - myconf_gn+=" use_x11=false"
822 - else
823 - myconf_gn+=" ozone_platform_wayland=true"
824 - myconf_gn+=" use_system_libdrm=true"
825 - myconf_gn+=" use_system_minigbm=true"
826 - myconf_gn+=" use_xkbcommon=true"
827 - myconf_gn+=" ozone_platform=\"wayland\""
828 - fi
829 - fi
830 -
831 - # Enable official builds
832 - myconf_gn+=" is_official_build=$(usex official true false)"
833 - myconf_gn+=" use_thin_lto=false"
834 - if use official; then
835 - # Allow building against system libraries in official builds
836 - sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
837 - tools/generate_shim_headers/generate_shim_headers.py || die
838 - # Disable CFI: unsupported for GCC, requires clang+lto+lld
839 - myconf_gn+=" is_cfi=false"
840 - # Disable PGO, because profile data is only compatible with >=clang-11
841 - myconf_gn+=" chrome_pgo_phase=0"
842 - fi
843 -
844 - einfo "Configuring Chromium..."
845 - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
846 - echo "$@"
847 - "$@" || die
848 -}
849 -
850 -src_compile() {
851 - # Final link uses lots of file descriptors.
852 - ulimit -n 2048
853 -
854 - # Calling this here supports resumption via FEATURES=keepwork
855 - python_setup
856 -
857 - # https://bugs.gentoo.org/717456
858 - # don't inherit PYTHONPATH from environment, bug #789021
859 - local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0"
860 -
861 - #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
862 -
863 - # Build mksnapshot and pax-mark it.
864 - local x
865 - for x in mksnapshot v8_context_snapshot_generator; do
866 - if tc-is-cross-compiler; then
867 - eninja -C out/Release "host/${x}"
868 - pax-mark m "out/Release/host/${x}"
869 - else
870 - eninja -C out/Release "${x}"
871 - pax-mark m "out/Release/${x}"
872 - fi
873 - done
874 -
875 - # Even though ninja autodetects number of CPUs, we respect
876 - # user's options, for debugging with -j 1 or any other reason.
877 - eninja -C out/Release chrome chromedriver
878 - use suid && eninja -C out/Release chrome_sandbox
879 -
880 - pax-mark m out/Release/chrome
881 -
882 - mv out/Release/chromedriver{.unstripped,} || die
883 -
884 - # Build manpage; bug #684550
885 - sed -e 's|@@PACKAGE@@|chromium-browser|g;
886 - s|@@MENUNAME@@|Chromium|g;' \
887 - chrome/app/resources/manpage.1.in > \
888 - out/Release/chromium-browser.1 || die
889 -
890 - # Build desktop file; bug #706786
891 - sed -e 's|@@MENUNAME@@|Chromium|g;
892 - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
893 - s|@@PACKAGE@@|chromium-browser|g;
894 - s|\(^Exec=\)/usr/bin/|\1|g;' \
895 - chrome/installer/linux/common/desktop.template > \
896 - out/Release/chromium-browser-chromium.desktop || die
897 -}
898 -
899 -src_install() {
900 - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
901 - exeinto "${CHROMIUM_HOME}"
902 - doexe out/Release/chrome
903 -
904 - if use suid; then
905 - newexe out/Release/chrome_sandbox chrome-sandbox
906 - fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
907 - fi
908 -
909 - doexe out/Release/chromedriver
910 - doexe out/Release/crashpad_handler
911 -
912 - local sedargs=( -e
913 - "s:/usr/lib/:/usr/$(get_libdir)/:g;
914 - s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
915 - s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
916 - )
917 - sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
918 - doexe chromium-launcher.sh
919 -
920 - # It is important that we name the target "chromium-browser",
921 - # xdg-utils expect it; bug #355517.
922 - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
923 - # keep the old symlink around for consistency
924 - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
925 -
926 - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
927 -
928 - # Allow users to override command-line options, bug #357629.
929 - insinto /etc/chromium
930 - newins "${FILESDIR}/chromium.default" "default"
931 -
932 - pushd out/Release/locales > /dev/null || die
933 - chromium_remove_language_paks
934 - popd
935 -
936 - insinto "${CHROMIUM_HOME}"
937 - doins out/Release/*.bin
938 - doins out/Release/*.pak
939 - (
940 - shopt -s nullglob
941 - local files=(out/Release/*.so out/Release/*.so.[0-9])
942 - [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
943 - )
944 -
945 - if ! use system-icu; then
946 - doins out/Release/icudtl.dat
947 - fi
948 -
949 - doins -r out/Release/locales
950 - doins -r out/Release/resources
951 -
952 - if [[ -d out/Release/swiftshader ]]; then
953 - insinto "${CHROMIUM_HOME}/swiftshader"
954 - doins out/Release/swiftshader/*.so
955 - fi
956 -
957 - # Install icons
958 - local branding size
959 - for size in 16 24 32 48 64 128 256 ; do
960 - case ${size} in
961 - 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
962 - *) branding="chrome/app/theme/chromium" ;;
963 - esac
964 - newicon -s ${size} "${branding}/product_logo_${size}.png" \
965 - chromium-browser.png
966 - done
967 -
968 - # Install desktop entry
969 - domenu out/Release/chromium-browser-chromium.desktop
970 -
971 - # Install GNOME default application entry (bug #303100).
972 - insinto /usr/share/gnome-control-center/default-apps
973 - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
974 -
975 - # Install manpage; bug #684550
976 - doman out/Release/chromium-browser.1
977 - dosym chromium-browser.1 /usr/share/man/man1/chromium.1
978 -
979 - readme.gentoo_create_doc
980 -}
981 -
982 -pkg_postrm() {
983 - xdg_icon_cache_update
984 - xdg_desktop_database_update
985 -}
986 -
987 -pkg_postinst() {
988 - xdg_icon_cache_update
989 - xdg_desktop_database_update
990 - readme.gentoo_print_elog
991 -
992 - if use vaapi; then
993 - elog "VA-API is disabled by default at runtime. You have to enable it"
994 - elog "by adding --enable-features=VaapiVideoDecoder to CHROMIUM_FLAGS"
995 - elog "in /etc/chromium/default."
996 - fi
997 - if use screencast; then
998 - elog "Screencast is disabled by default at runtime. Either enable it"
999 - elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
1000 - elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
1001 - elog "to CHROMIUM_FLAGS in /etc/chromium/default."
1002 - fi
1003 -}
1004
1005 diff --git a/www-client/chromium/files/chromium-92-EnumTable-crash.patch b/www-client/chromium/files/chromium-92-EnumTable-crash.patch
1006 deleted file mode 100644
1007 index 7fb7360e026..00000000000
1008 --- a/www-client/chromium/files/chromium-92-EnumTable-crash.patch
1009 +++ /dev/null
1010 @@ -1,71 +0,0 @@
1011 -diff --git a/components/cast_channel/enum_table.h b/components/cast_channel/enum_table.h
1012 -index e3130c7..2ad16ea 100644
1013 ---- a/components/cast_channel/enum_table.h
1014 -+++ b/components/cast_channel/enum_table.h
1015 -@@ -212,7 +212,7 @@ class
1016 -
1017 - template <typename E>
1018 - friend class EnumTable;
1019 -- DISALLOW_COPY_AND_ASSIGN(GenericEnumTableEntry);
1020 -+ DISALLOW_ASSIGN(GenericEnumTableEntry);
1021 - };
1022 -
1023 - // Yes, these constructors really needs to be inlined. Even though they look
1024 -@@ -250,8 +250,7 @@ class EnumTable {
1025 - // Constructor for regular entries.
1026 - constexpr Entry(E value, base::StringPiece str)
1027 - : GenericEnumTableEntry(static_cast<int32_t>(value), str) {}
1028 --
1029 -- DISALLOW_COPY_AND_ASSIGN(Entry);
1030 -+ DISALLOW_ASSIGN(Entry);
1031 - };
1032 -
1033 - static_assert(sizeof(E) <= sizeof(int32_t),
1034 -@@ -306,15 +305,14 @@ class EnumTable {
1035 - if (is_sorted_) {
1036 - const std::size_t index = static_cast<std::size_t>(value);
1037 - if (ANALYZER_ASSUME_TRUE(index < data_.size())) {
1038 -- const auto& entry = data_.begin()[index];
1039 -+ const auto& entry = data_[index];
1040 - if (ANALYZER_ASSUME_TRUE(entry.has_str()))
1041 - return entry.str();
1042 - }
1043 - return absl::nullopt;
1044 - }
1045 - return GenericEnumTableEntry::FindByValue(
1046 -- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
1047 -- data_.size(), static_cast<int32_t>(value));
1048 -+ &data_[0], data_.size(), static_cast<int32_t>(value));
1049 - }
1050 -
1051 - // This overload of GetString is designed for cases where the argument is a
1052 -@@ -342,8 +340,7 @@ class EnumTable {
1053 - // enum value directly.
1054 - absl::optional<E> GetEnum(base::StringPiece str) const {
1055 - auto* entry = GenericEnumTableEntry::FindByString(
1056 -- reinterpret_cast<const GenericEnumTableEntry*>(data_.begin()),
1057 -- data_.size(), str);
1058 -+ &data_[0], data_.size(), str);
1059 - return entry ? static_cast<E>(entry->value) : absl::optional<E>();
1060 - }
1061 -
1062 -@@ -358,7 +355,7 @@ class EnumTable {
1063 - // Align the data on a cache line boundary.
1064 - alignas(64)
1065 - #endif
1066 -- std::initializer_list<Entry> data_;
1067 -+ const std::vector<Entry> data_;
1068 - bool is_sorted_;
1069 -
1070 - constexpr EnumTable(std::initializer_list<Entry> data, bool is_sorted)
1071 -@@ -370,8 +367,8 @@ class EnumTable {
1072 -
1073 - for (std::size_t i = 0; i < data.size(); i++) {
1074 - for (std::size_t j = i + 1; j < data.size(); j++) {
1075 -- const Entry& ei = data.begin()[i];
1076 -- const Entry& ej = data.begin()[j];
1077 -+ const Entry& ei = data[i];
1078 -+ const Entry& ej = data[j];
1079 - DCHECK(ei.value != ej.value)
1080 - << "Found duplicate enum values at indices " << i << " and " << j;
1081 - DCHECK(!(ei.has_str() && ej.has_str() && ei.str() == ej.str()))
1082
1083 diff --git a/www-client/chromium/files/chromium-92-crashpad-consent.patch b/www-client/chromium/files/chromium-92-crashpad-consent.patch
1084 deleted file mode 100644
1085 index 956d19eee23..00000000000
1086 --- a/www-client/chromium/files/chromium-92-crashpad-consent.patch
1087 +++ /dev/null
1088 @@ -1,46 +0,0 @@
1089 -From dad7c5dc4504aa66c39f2a38b3c563d18dd1395a Mon Sep 17 00:00:00 2001
1090 -From: Andrey Lushnikov <lushnikov@××××××××.org>
1091 -Date: Mon, 12 Jul 2021 18:47:01 +0000
1092 -Subject: [PATCH] Respect stat collection consent for crashpad user metrics collection
1093 -
1094 -With this patch, crashpad will no longer collect metrics if there is no
1095 -user consent for stats collections.
1096 -
1097 -This is a follow-up to the discussion in https://crrev.com/c/2923889
1098 -
1099 -BUG=1210598
1100 -
1101 -Change-Id: I1eceaa10f9d09f95b74cb4a2d2eac03008ec5b40
1102 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2999433
1103 -Reviewed-by: Mark Mentovai <mark@××××××××.org>
1104 -Reviewed-by: Greg Thompson <grt@××××××××.org>
1105 -Commit-Queue: Andrey Lushnikov <lushnikov@××××××××.org>
1106 -Cr-Commit-Position: refs/heads/master@{#900573}
1107 ----
1108 -
1109 -diff --git a/chrome/app/chrome_crash_reporter_client.cc b/chrome/app/chrome_crash_reporter_client.cc
1110 -index cd9a053..b34ad0d 100644
1111 ---- a/chrome/app/chrome_crash_reporter_client.cc
1112 -+++ b/chrome/app/chrome_crash_reporter_client.cc
1113 -@@ -144,6 +144,8 @@
1114 - #if defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS)
1115 - bool ChromeCrashReporterClient::GetCrashMetricsLocation(
1116 - base::FilePath* metrics_dir) {
1117 -+ if (!GetCollectStatsConsent())
1118 -+ return false;
1119 - return base::PathService::Get(chrome::DIR_USER_DATA, metrics_dir);
1120 - }
1121 - #endif // defined(OS_MAC) || defined(OS_LINUX) || defined(OS_CHROMEOS)
1122 -diff --git a/chrome/app/chrome_crash_reporter_client_win.cc b/chrome/app/chrome_crash_reporter_client_win.cc
1123 -index 474bf8e..2a66a3aa 100644
1124 ---- a/chrome/app/chrome_crash_reporter_client_win.cc
1125 -+++ b/chrome/app/chrome_crash_reporter_client_win.cc
1126 -@@ -160,6 +160,8 @@
1127 -
1128 - bool ChromeCrashReporterClient::GetCrashMetricsLocation(
1129 - std::wstring* metrics_dir) {
1130 -+ if (!GetCollectStatsConsent())
1131 -+ return false;
1132 - install_static::GetUserDataDirectory(metrics_dir, nullptr);
1133 - return !metrics_dir->empty();
1134 - }
1135
1136 diff --git a/www-client/chromium/files/chromium-freetype-2.11.patch b/www-client/chromium/files/chromium-freetype-2.11.patch
1137 deleted file mode 100644
1138 index aee6dc82e98..00000000000
1139 --- a/www-client/chromium/files/chromium-freetype-2.11.patch
1140 +++ /dev/null
1141 @@ -1,50 +0,0 @@
1142 ---- a/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp
1143 -+++ b/third_party/skia/src/ports/SkFontHost_FreeType_common.cpp
1144 -@@ -712,7 +712,11 @@ void colrv1_draw_paint(SkCanvas* canvas,
1145 - canvas->drawPaint(colrPaint);
1146 - break;
1147 - }
1148 -+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
1149 -+ case FT_COLR_PAINTFORMAT_TRANSFORM:
1150 -+#else
1151 - case FT_COLR_PAINTFORMAT_TRANSFORMED:
1152 -+#endif
1153 - case FT_COLR_PAINTFORMAT_TRANSLATE:
1154 - case FT_COLR_PAINTFORMAT_ROTATE:
1155 - case FT_COLR_PAINTFORMAT_SKEW:
1156 -@@ -759,10 +763,17 @@ void colrv1_transform(SkCanvas* canvas, FT_Face face, FT_COLR_Paint colrv1_paint
1157 - SkMatrix transform;
1158 -
1159 - switch (colrv1_paint.format) {
1160 -+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
1161 -+ case FT_COLR_PAINTFORMAT_TRANSFORM: {
1162 -+ transform = ToSkMatrix(colrv1_paint.u.transform.affine);
1163 -+ break;
1164 -+ }
1165 -+#else
1166 - case FT_COLR_PAINTFORMAT_TRANSFORMED: {
1167 - transform = ToSkMatrix(colrv1_paint.u.transformed.affine);
1168 - break;
1169 - }
1170 -+#endif
1171 - case FT_COLR_PAINTFORMAT_TRANSLATE: {
1172 - transform = SkMatrix::Translate(
1173 - SkFixedToScalar(colrv1_paint.u.translate.dx),
1174 -@@ -880,10 +891,17 @@ bool colrv1_traverse_paint(SkCanvas* canvas,
1175 - traverse_result = colrv1_start_glyph(canvas, palette, face, paint.u.colr_glyph.glyphID,
1176 - FT_COLOR_NO_ROOT_TRANSFORM);
1177 - break;
1178 -+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 11
1179 -+ case FT_COLR_PAINTFORMAT_TRANSFORM:
1180 -+ colrv1_transform(canvas, face, paint);
1181 -+ traverse_result = colrv1_traverse_paint(canvas, palette, face,
1182 -+ paint.u.transform.paint, visited_set);
1183 -+#else
1184 - case FT_COLR_PAINTFORMAT_TRANSFORMED:
1185 - colrv1_transform(canvas, face, paint);
1186 - traverse_result = colrv1_traverse_paint(canvas, palette, face,
1187 - paint.u.transformed.paint, visited_set);
1188 -+#endif
1189 - break;
1190 - case FT_COLR_PAINTFORMAT_TRANSLATE:
1191 - colrv1_transform(canvas, face, paint);