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/
Date: Tue, 01 Jun 2021 20:46:19
Message-Id: 1622580372.93557a7ee3ccb58f8ebe78188d2b36a5299157b6.sultan@gentoo
1 commit: 93557a7ee3ccb58f8ebe78188d2b36a5299157b6
2 Author: Stephan Hartmann <sultan <AT> gentoo <DOT> org>
3 AuthorDate: Tue Jun 1 20:45:54 2021 +0000
4 Commit: Stephan Hartmann <sultan <AT> gentoo <DOT> org>
5 CommitDate: Tue Jun 1 20:46:12 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=93557a7e
7
8 www-client/chromium: security cleanup
9
10 Bug: https://bugs.gentoo.org/792084
11 Package-Manager: Portage-3.0.18, Repoman-3.0.2
12 Signed-off-by: Stephan Hartmann <sultan <AT> gentoo.org>
13
14 www-client/chromium/Manifest | 3 -
15 www-client/chromium/chromium-90.0.4430.212.ebuild | 931 ----------------------
16 www-client/chromium/metadata.xml | 1 -
17 3 files changed, 935 deletions(-)
18
19 diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
20 index d4488f5bb80..d96cf735521 100644
21 --- a/www-client/chromium/Manifest
22 +++ b/www-client/chromium/Manifest
23 @@ -1,10 +1,7 @@
24 -DIST chromium-90-patchset-7.tar.xz 3892 BLAKE2B 3ba169baaaf74b548749be3f845f505256cc9573f798e10929b5d1f0f534d739e657e3fa134c78ec3f7987a3b89adfc4bee0d1a6585ad8fe4bdc3ffd1181042c SHA512 5e1aa834ee5668ee40fc3af5cda7325da710dd1a0dea7ce535e89e36fd7d321db63d520a9b6ce6372ed941473dff18d1276316567af810c18e1478a04d3f23f8
25 -DIST chromium-90.0.4430.212.tar.xz 917430448 BLAKE2B dbea5515a62c3f3a12596da6d77cad106d377ddda8956da81b8fe8c0c1e3bfa90ba82bca8c1c4fd95282ee0c00a5f3f5206a05728043eb967395a8cf8bda960d SHA512 7cd300d22725e3457b9e3347fb34d6f5728c91aa178d6960d4243bc80122c446890c2276334a01f9c81a43479339e9e266c3bbb040081a22c521b3c4250850f5
26 DIST chromium-91-patchset-6.tar.xz 4280 BLAKE2B 18887953453133589cfc5df58d24725047235fac3652cc7af7bd117fbc94aa9a2e1b1dd3147f772f84d8fa3e7b5b77159abc1e408d7b24b065bb1f12cebbfb2f SHA512 49b4aaedfbb1fa5629dbb453bb74f5735c05b14407ea3d2bb1eaee9686e03661a3c471357d085ab839dff16df92d71dae3a6f17486c017a79a836c1d8780a250
27 DIST chromium-91-ppc64le-5.tar.xz 28988 BLAKE2B 7c574626546c9b8c67879277a9b06b95b51111fef7697b7edab5548b4372a73c56a5771dc3ab6126535477493d7415e3e9b3b446cb4faa7b095a56cafaaab2fb SHA512 637433ce28b9f1e41696d1027f1bb5858fc5bdef94121deb34a9eafd58c651af4b84c103f3319151c0b708ad8da1756eff14025979dc46797d20cc95afb3d3bc
28 DIST chromium-91.0.4472.77.tar.xz 949848268 BLAKE2B 6d32b7334399325046f4b6c8d2a766b2f42ff7cc74adf68da880113ebede13dbbeb52c2f7ffcdea8c8934ec16f2161300a0b727cec112463def5eb6e772fafec SHA512 06113c3627c1ccd390f078a52e0eaaf9c1d7178d568d6d2e37c96e1eb09fc0e872ac2b2d7ebe55e4da87eebee4965816bbba2f6ea53047f86cd5d0ad1d260a25
29 DIST chromium-92-patchset-6.tar.xz 3764 BLAKE2B a7149940b1371e4bd295e6038b87cc13f4edf8d8ed286d9d8d0e63144c2546de39564fc203a4b2e185267e46398efd0414c1f695ee31c78d33a6cd8d7b434016 SHA512 2f104901271d42762ea27f7c8a017307bde7348ec6b84d0c85875a07bf3783ba43bdb886fb3c6376753b6a14102b495a28bdc7adc611992440d2c1345aea035b
30 DIST chromium-92.0.4515.20.tar.xz 962353324 BLAKE2B 3b56948a34c5938649af3dbc0d9036ed1a0b8f067cb1b2fcee6d0ccc55a503efb373f26eedabc1c2a6e789a16eb0e83055c85ab1bb55f4d9f8dafe267a894ae5 SHA512 46cfbffa58ca049a336311940c81292354ccf4fc6032ce0ecb6822b6ecfe3b3d17fa2092ef688f11b82eface85c2084e046264ca847e7d110a4980c1c2b132f3
31 -DIST chromium-ppc64le-3f575325dcc3bdfc419824518bac6d4c38241859.tar.xz 28880 BLAKE2B 60390c938cbe329867a721f061750cd49a1ed0b48808181f4a85fd0f369f6061619f4f5a3023f9890a11a21ce5d60f87f74374eb1250a2a7100bf7c7eff15df7 SHA512 594bd170c2da4dc2b6bfd3a8aed31ca6acd67a5fb4ee7c4fa8a63439feb46df003aba79118bfd54a4e01ba18f1d329e760894e169915c266118414ad62b7c3ae
32 DIST highway-0.12.1.tar.gz 1480579 BLAKE2B 2889f96e33ae4411b14dae2229d86b0581f2044f50d6bb829a83417f0d67f0c9a8c03d552d09a985231ea11e88497fa405efcb85d158b5734b477bec5764a1eb SHA512 d14aeffc80739a5993177fb190ac03998d495004e9c54126c0e0b174c28be52a3f3fe581d8a08db67c34bd00045223d1850e7b384a2e7fe37a8150d7908004cb
33 DIST setuptools-44.1.0.zip 858569 BLAKE2B f59f154e121502a731e51294ccd293d60ffccadacf51e23b53bf7ceba38858948b86783238061136c827ac3373ea7ea8e6253d4bb53f3f1dd69284568ec65a68 SHA512 4dfb0f42d334b835758e865a26ecd1e725711fa2b9c38ddc273b8b3849fba04527bc97436d11ba1e98f1a42922aa0f0b9032e32998273c705fac6e10735eacbf
34
35 diff --git a/www-client/chromium/chromium-90.0.4430.212.ebuild b/www-client/chromium/chromium-90.0.4430.212.ebuild
36 deleted file mode 100644
37 index f9beb83ae94..00000000000
38 --- a/www-client/chromium/chromium-90.0.4430.212.ebuild
39 +++ /dev/null
40 @@ -1,931 +0,0 @@
41 -# Copyright 2009-2021 Gentoo Authors
42 -# Distributed under the terms of the GNU General Public License v2
43 -
44 -EAPI=7
45 -PYTHON_COMPAT=( python2_7 )
46 -PYTHON_REQ_USE="xml"
47 -
48 -CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
49 - 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
50 - sv sw ta te th tr uk vi zh-CN zh-TW"
51 -
52 -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
53 -
54 -DESCRIPTION="Open-source version of Google Chrome web browser"
55 -HOMEPAGE="https://chromium.org/"
56 -PATCHSET="7"
57 -PATCHSET_NAME="chromium-$(ver_cut 1)-patchset-${PATCHSET}"
58 -# ppc64le patchet origin: https://github.com/void-linux/void-packages/tree/master/srcpkgs/chromium/patches
59 -PPC64LE_COMMIT="3f575325dcc3bdfc419824518bac6d4c38241859"
60 -SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
61 - https://files.pythonhosted.org/packages/ed/7b/bbf89ca71e722b7f9464ebffe4b5ee20a9e5c9a555a56e2d3914bb9119a6/setuptools-44.1.0.zip
62 - https://github.com/stha09/chromium-patches/releases/download/${PATCHSET_NAME}/${PATCHSET_NAME}.tar.xz
63 - ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-ppc64le-${PPC64LE_COMMIT}.tar.xz )"
64 -
65 -LICENSE="BSD"
66 -SLOT="0"
67 -KEYWORDS="~ppc64"
68 -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 +tcmalloc vaapi wayland widevine"
69 -REQUIRED_USE="
70 - component-build? ( !suid )
71 - screencast? ( wayland )
72 -"
73 -
74 -COMMON_X_DEPEND="
75 - media-libs/mesa:=[gbm]
76 - x11-libs/libX11:=
77 - x11-libs/libXcomposite:=
78 - x11-libs/libXcursor:=
79 - x11-libs/libXdamage:=
80 - x11-libs/libXext:=
81 - x11-libs/libXfixes:=
82 - >=x11-libs/libXi-1.6.0:=
83 - x11-libs/libXrandr:=
84 - x11-libs/libXrender:=
85 - x11-libs/libXtst:=
86 - x11-libs/libxcb:=
87 - x11-libs/libxshmfence:=
88 - vaapi? ( >=x11-libs/libva-2.7:=[X,drm] )
89 -"
90 -
91 -COMMON_DEPEND="
92 - app-arch/bzip2:=
93 - cups? ( >=net-print/cups-1.3.11:= )
94 - dev-libs/expat:=
95 - dev-libs/glib:2
96 - >=dev-libs/libxml2-2.9.4-r3:=[icu]
97 - dev-libs/nspr:=
98 - >=dev-libs/nss-3.26:=
99 - >=media-libs/alsa-lib-1.0.19:=
100 - media-libs/fontconfig:=
101 - media-libs/freetype:=
102 - >=media-libs/harfbuzz-2.4.0:0=[icu(-)]
103 - media-libs/libjpeg-turbo:=
104 - media-libs/libpng:=
105 - pulseaudio? ( media-sound/pulseaudio:= )
106 - system-ffmpeg? (
107 - >=media-video/ffmpeg-4.3:=
108 - || (
109 - media-video/ffmpeg[-samba]
110 - >=net-fs/samba-4.5.10-r1[-debug(-)]
111 - )
112 - >=media-libs/opus-1.3.1:=
113 - )
114 - sys-apps/dbus:=
115 - sys-apps/pciutils:=
116 - virtual/udev
117 - x11-libs/cairo:=
118 - x11-libs/gdk-pixbuf:2
119 - x11-libs/libxkbcommon:=
120 - x11-libs/pango:=
121 - media-libs/flac:=
122 - >=media-libs/libwebp-0.4.0:=
123 - sys-libs/zlib:=[minizip]
124 - kerberos? ( virtual/krb5 )
125 - !headless? (
126 - ${COMMON_X_DEPEND}
127 - >=app-accessibility/at-spi2-atk-2.26:2
128 - >=app-accessibility/at-spi2-core-2.26:2
129 - >=dev-libs/atk-2.26
130 - x11-libs/gtk+:3[X]
131 - wayland? (
132 - dev-libs/wayland:=
133 - screencast? ( media-video/pipewire:0/0.3 )
134 - x11-libs/gtk+:3[wayland,X]
135 - x11-libs/libdrm:=
136 - )
137 - )
138 -"
139 -# For nvidia-drivers blocker, see bug #413637 .
140 -RDEPEND="${COMMON_DEPEND}
141 - x11-misc/xdg-utils
142 - virtual/opengl
143 - virtual/ttf-fonts
144 - selinux? ( sec-policy/selinux-chromium )
145 - tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
146 -"
147 -DEPEND="${COMMON_DEPEND}
148 -"
149 -# dev-vcs/git - https://bugs.gentoo.org/593476
150 -BDEPEND="
151 - ${PYTHON_DEPS}
152 - >=app-arch/gzip-1.7
153 - app-arch/unzip
154 - dev-lang/perl
155 - >=dev-util/gn-0.1807
156 - dev-vcs/git
157 - >=dev-util/gperf-3.0.3
158 - >=dev-util/ninja-1.7.2
159 - >=net-libs/nodejs-7.6.0[inspector]
160 - sys-apps/hwids[usb(+)]
161 - >=sys-devel/bison-2.4.3
162 - sys-devel/flex
163 - virtual/pkgconfig
164 - js-type-check? ( virtual/jre )
165 -"
166 -
167 -# These are intended for ebuild maintainer use to force clang if GCC is broken.
168 -: ${CHROMIUM_FORCE_CLANG=no}
169 -: ${CHROMIUM_FORCE_LIBCXX=no}
170 -
171 -if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
172 - BDEPEND+=" >=sys-devel/clang-12"
173 -fi
174 -
175 -if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
176 - RDEPEND+=" >=sys-libs/libcxx-12"
177 - DEPEND+=" >=sys-libs/libcxx-12"
178 -else
179 - COMMON_DEPEND="
180 - app-arch/snappy:=
181 - dev-libs/libxslt:=
182 - >=dev-libs/re2-0.2019.08.01:=
183 - >=media-libs/openh264-1.6.0:=
184 - system-icu? ( >=dev-libs/icu-68.1:= )
185 - "
186 - RDEPEND+="${COMMON_DEPEND}"
187 - DEPEND+="${COMMON_DEPEND}"
188 -fi
189 -
190 -if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
191 - EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
192 -fi
193 -
194 -DISABLE_AUTOFORMATTING="yes"
195 -DOC_CONTENTS="
196 -Some web pages may require additional fonts to display properly.
197 -Try installing some of the following packages if some characters
198 -are not displayed properly:
199 -- media-fonts/arphicfonts
200 -- media-fonts/droid
201 -- media-fonts/ipamonafont
202 -- media-fonts/noto
203 -- media-fonts/ja-ipafonts
204 -- media-fonts/takao-fonts
205 -- media-fonts/wqy-microhei
206 -- media-fonts/wqy-zenhei
207 -
208 -To fix broken icons on the Downloads page, you should install an icon
209 -theme that covers the appropriate MIME types, and configure this as your
210 -GTK+ icon theme.
211 -
212 -For native file dialogs in KDE, install kde-apps/kdialog.
213 -
214 -To make password storage work with your desktop environment you may
215 -have install one of the supported credentials management applications:
216 -- app-crypt/libsecret (GNOME)
217 -- kde-frameworks/kwallet (KDE)
218 -If you have one of above packages installed, but don't want to use
219 -them in Chromium, then add --password-store=basic to CHROMIUM_FLAGS
220 -in /etc/chromium/default.
221 -"
222 -
223 -pre_build_checks() {
224 - if [[ ${MERGE_TYPE} != binary ]]; then
225 - local -x CPP="$(tc-getCXX) -E"
226 - if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 9.2; then
227 - die "At least gcc 9.2 is required"
228 - fi
229 - # component build hangs with tcmalloc enabled due to sandbox issue, bug #695976.
230 - if has usersandbox ${FEATURES} && use tcmalloc && use component-build; then
231 - die "Component build with tcmalloc requires FEATURES=-usersandbox."
232 - fi
233 - if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] || tc-is-clang; then
234 - CPP="${CHOST}-clang++ -E"
235 - if ! ver_test "$(clang-major-version)" -ge 12; then
236 - die "At least clang 12 is required"
237 - fi
238 - fi
239 - fi
240 -
241 - # Check build requirements, bug #541816 and bug #471810 .
242 - CHECKREQS_MEMORY="3G"
243 - CHECKREQS_DISK_BUILD="8G"
244 - if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
245 - if use custom-cflags || use component-build; then
246 - CHECKREQS_DISK_BUILD="25G"
247 - fi
248 - if ! use component-build; then
249 - CHECKREQS_MEMORY="16G"
250 - fi
251 - fi
252 - check-reqs_pkg_setup
253 -}
254 -
255 -pkg_pretend() {
256 - pre_build_checks
257 -}
258 -
259 -pkg_setup() {
260 - pre_build_checks
261 -
262 - chromium_suid_sandbox_check_kernel_config
263 -
264 - # nvidia-drivers does not work correctly with Wayland due to unsupported EGLStreams
265 - if use wayland && ! use headless && has_version "x11-drivers/nvidia-drivers"; then
266 - ewarn "Proprietary nVidia driver does not work with Wayland. You can disable"
267 - ewarn "Wayland by setting DISABLE_OZONE_PLATFORM=true in /etc/chromium/default."
268 - fi
269 -}
270 -
271 -src_prepare() {
272 - # Calling this here supports resumption via FEATURES=keepwork
273 - python_setup
274 -
275 - local PATCHES=(
276 - "${WORKDIR}/patches"
277 - "${FILESDIR}/chromium-89-EnumTable-crash.patch"
278 - "${FILESDIR}/chromium-shim_headers.patch"
279 - )
280 -
281 - # seccomp sandbox is broken if compiled against >=sys-libs/glibc-2.33, bug #769989
282 - if has_version -d ">=sys-libs/glibc-2.33"; then
283 - ewarn "Adding experimental glibc-2.33 sandbox patch. Seccomp sandbox might"
284 - ewarn "still not work correctly. In case of issues, try to disable seccomp"
285 - ewarn "sandbox by adding --disable-seccomp-filter-sandbox to CHROMIUM_FLAGS"
286 - ewarn "in /etc/chromium/default."
287 - PATCHES+=(
288 - "${FILESDIR}/chromium-glibc-2.33.patch"
289 - )
290 - fi
291 -
292 - use ppc64 && eapply -p0 "${WORKDIR}/${PN}-ppc64le-${PPC64LE_COMMIT}"
293 -
294 - default
295 -
296 - mkdir -p third_party/node/linux/node-linux-x64/bin || die
297 - ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
298 -
299 - local keeplibs=(
300 - base/third_party/cityhash
301 - base/third_party/double_conversion
302 - base/third_party/dynamic_annotations
303 - base/third_party/icu
304 - base/third_party/nspr
305 - base/third_party/superfasthash
306 - base/third_party/symbolize
307 - base/third_party/valgrind
308 - base/third_party/xdg_mime
309 - base/third_party/xdg_user_dirs
310 - buildtools/third_party/libc++
311 - buildtools/third_party/libc++abi
312 - chrome/third_party/mozilla_security_manager
313 - courgette/third_party
314 - net/third_party/mozilla_security_manager
315 - net/third_party/nss
316 - net/third_party/quic
317 - net/third_party/uri_template
318 - third_party/abseil-cpp
319 - third_party/angle
320 - third_party/angle/src/common/third_party/base
321 - third_party/angle/src/common/third_party/smhasher
322 - third_party/angle/src/common/third_party/xxhash
323 - third_party/angle/src/third_party/compiler
324 - third_party/angle/src/third_party/libXNVCtrl
325 - third_party/angle/src/third_party/trace_event
326 - third_party/angle/src/third_party/volk
327 - third_party/apple_apsl
328 - third_party/axe-core
329 - third_party/blink
330 - third_party/boringssl
331 - third_party/boringssl/src/third_party/fiat
332 - third_party/breakpad
333 - third_party/breakpad/breakpad/src/third_party/curl
334 - third_party/brotli
335 - third_party/catapult
336 - third_party/catapult/common/py_vulcanize/third_party/rcssmin
337 - third_party/catapult/common/py_vulcanize/third_party/rjsmin
338 - third_party/catapult/third_party/beautifulsoup4
339 - third_party/catapult/third_party/html5lib-python
340 - third_party/catapult/third_party/polymer
341 - third_party/catapult/third_party/six
342 - third_party/catapult/tracing/third_party/d3
343 - third_party/catapult/tracing/third_party/gl-matrix
344 - third_party/catapult/tracing/third_party/jpeg-js
345 - third_party/catapult/tracing/third_party/jszip
346 - third_party/catapult/tracing/third_party/mannwhitneyu
347 - third_party/catapult/tracing/third_party/oboe
348 - third_party/catapult/tracing/third_party/pako
349 - third_party/ced
350 - third_party/cld_3
351 - third_party/closure_compiler
352 - third_party/crashpad
353 - third_party/crashpad/crashpad/third_party/lss
354 - third_party/crashpad/crashpad/third_party/zlib
355 - third_party/crc32c
356 - third_party/cros_system_api
357 - third_party/dav1d
358 - third_party/dawn
359 - third_party/dawn/third_party/khronos
360 - third_party/depot_tools
361 - third_party/devscripts
362 - third_party/devtools-frontend
363 - third_party/devtools-frontend/src/front_end/third_party/acorn
364 - third_party/devtools-frontend/src/front_end/third_party/axe-core
365 - third_party/devtools-frontend/src/front_end/third_party/chromium
366 - third_party/devtools-frontend/src/front_end/third_party/codemirror
367 - third_party/devtools-frontend/src/front_end/third_party/fabricjs
368 - third_party/devtools-frontend/src/front_end/third_party/i18n
369 - third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
370 - third_party/devtools-frontend/src/front_end/third_party/lighthouse
371 - third_party/devtools-frontend/src/front_end/third_party/lit-html
372 - third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
373 - third_party/devtools-frontend/src/front_end/third_party/marked
374 - third_party/devtools-frontend/src/front_end/third_party/puppeteer
375 - third_party/devtools-frontend/src/front_end/third_party/wasmparser
376 - third_party/devtools-frontend/src/third_party
377 - third_party/dom_distiller_js
378 - third_party/eigen3
379 - third_party/emoji-segmenter
380 - third_party/farmhash
381 - third_party/fdlibm
382 - third_party/fft2d
383 - third_party/flatbuffers
384 - third_party/freetype
385 - third_party/fusejs
386 - third_party/libgifcodec
387 - third_party/liburlpattern
388 - third_party/libzip
389 - third_party/gemmlowp
390 - third_party/google_input_tools
391 - third_party/google_input_tools/third_party/closure_library
392 - third_party/google_input_tools/third_party/closure_library/third_party/closure
393 - third_party/googletest
394 - third_party/harfbuzz-ng/utils
395 - third_party/hunspell
396 - third_party/iccjpeg
397 - third_party/inspector_protocol
398 - third_party/jinja2
399 - third_party/jsoncpp
400 - third_party/jstemplate
401 - third_party/khronos
402 - third_party/leveldatabase
403 - third_party/libXNVCtrl
404 - third_party/libaddressinput
405 - third_party/libaom
406 - third_party/libaom/source/libaom/third_party/fastfeat
407 - third_party/libaom/source/libaom/third_party/vector
408 - third_party/libaom/source/libaom/third_party/x86inc
409 - third_party/libavif
410 - third_party/libgav1
411 - third_party/libjingle
412 - third_party/libphonenumber
413 - third_party/libsecret
414 - third_party/libsrtp
415 - third_party/libsync
416 - third_party/libudev
417 - third_party/libva_protected_content
418 - third_party/libvpx
419 - third_party/libvpx/source/libvpx/third_party/x86inc
420 - third_party/libwebm
421 - third_party/libx11
422 - third_party/libxcb-keysyms
423 - third_party/libxml/chromium
424 - third_party/libyuv
425 - third_party/llvm
426 - third_party/lottie
427 - third_party/lss
428 - third_party/lzma_sdk
429 - third_party/mako
430 - third_party/markupsafe
431 - third_party/mesa
432 - third_party/metrics_proto
433 - third_party/minigbm
434 - third_party/modp_b64
435 - third_party/nasm
436 - third_party/nearby
437 - third_party/neon_2_sse
438 - third_party/node
439 - third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
440 - third_party/one_euro_filter
441 - third_party/opencv
442 - third_party/openscreen
443 - third_party/openscreen/src/third_party/mozilla
444 - third_party/openscreen/src/third_party/tinycbor/src/src
445 - third_party/ots
446 - third_party/pdfium
447 - third_party/pdfium/third_party/agg23
448 - third_party/pdfium/third_party/base
449 - third_party/pdfium/third_party/bigint
450 - third_party/pdfium/third_party/freetype
451 - third_party/pdfium/third_party/lcms
452 - third_party/pdfium/third_party/libopenjpeg20
453 - third_party/pdfium/third_party/libpng16
454 - third_party/pdfium/third_party/libtiff
455 - third_party/pdfium/third_party/skia_shared
456 - third_party/perfetto
457 - third_party/perfetto/protos/third_party/chromium
458 - third_party/pffft
459 - third_party/ply
460 - third_party/polymer
461 - third_party/private-join-and-compute
462 - third_party/private_membership
463 - third_party/protobuf
464 - third_party/protobuf/third_party/six
465 - third_party/pyjson5
466 - third_party/qcms
467 - third_party/rnnoise
468 - third_party/s2cellid
469 - third_party/schema_org
470 - third_party/securemessage
471 - third_party/shell-encryption
472 - third_party/simplejson
473 - third_party/skia
474 - third_party/skia/include/third_party/skcms
475 - third_party/skia/include/third_party/vulkan
476 - third_party/skia/third_party/skcms
477 - third_party/skia/third_party/vulkan
478 - third_party/smhasher
479 - third_party/sqlite
480 - third_party/swiftshader
481 - third_party/swiftshader/third_party/astc-encoder
482 - third_party/swiftshader/third_party/llvm-subzero
483 - third_party/swiftshader/third_party/marl
484 - third_party/swiftshader/third_party/subzero
485 - third_party/swiftshader/third_party/SPIRV-Headers/include/spirv/unified1
486 - third_party/tensorflow-text
487 - third_party/tflite
488 - third_party/tflite/src/third_party/eigen3
489 - third_party/tflite/src/third_party/fft2d
490 - third_party/tflite-support
491 - third_party/tint
492 - third_party/ruy
493 - third_party/ukey2
494 - third_party/unrar
495 - third_party/usrsctp
496 - third_party/utf
497 - third_party/vulkan
498 - third_party/web-animations-js
499 - third_party/webdriver
500 - third_party/webrtc
501 - third_party/webrtc/common_audio/third_party/ooura
502 - third_party/webrtc/common_audio/third_party/spl_sqrt_floor
503 - third_party/webrtc/modules/third_party/fft
504 - third_party/webrtc/modules/third_party/g711
505 - third_party/webrtc/modules/third_party/g722
506 - third_party/webrtc/rtc_base/third_party/base64
507 - third_party/webrtc/rtc_base/third_party/sigslot
508 - third_party/widevine
509 - third_party/woff2
510 - third_party/wuffs
511 - third_party/x11proto
512 - third_party/xcbproto
513 - third_party/zxcvbn-cpp
514 - third_party/zlib/google
515 - tools/grit/third_party/six
516 - url/third_party/mozilla
517 - v8/src/third_party/siphash
518 - v8/src/third_party/valgrind
519 - v8/src/third_party/utf8-decoder
520 - v8/third_party/inspector_protocol
521 - v8/third_party/v8
522 -
523 - # gyp -> gn leftovers
524 - base/third_party/libevent
525 - third_party/speech-dispatcher
526 - third_party/usb_ids
527 - third_party/xdg-utils
528 - )
529 - if ! use system-ffmpeg; then
530 - keeplibs+=( third_party/ffmpeg third_party/opus )
531 - fi
532 - if ! use system-icu; then
533 - keeplibs+=( third_party/icu )
534 - fi
535 - if use tcmalloc; then
536 - keeplibs+=( third_party/tcmalloc )
537 - fi
538 - if use wayland && ! use headless ; then
539 - keeplibs+=( third_party/wayland )
540 - fi
541 - if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
542 - keeplibs+=( third_party/libxml )
543 - keeplibs+=( third_party/libxslt )
544 - keeplibs+=( third_party/openh264 )
545 - keeplibs+=( third_party/re2 )
546 - keeplibs+=( third_party/snappy )
547 - if use system-icu; then
548 - keeplibs+=( third_party/icu )
549 - fi
550 - fi
551 - if use arm64 || use ppc64 ; then
552 - keeplibs+=( third_party/swiftshader/third_party/llvm-10.0 )
553 - fi
554 - # we need to generate ppc64 stuff because upstream does not ship it yet
555 - # it has to be done before unbundling.
556 - if use ppc64; then
557 - pushd third_party/libvpx >/dev/null || die
558 - mkdir -p source/config/linux/ppc64 || die
559 - ./generate_gni.sh || die
560 - popd >/dev/null || die
561 - fi
562 -
563 - # Remove most bundled libraries. Some are still needed.
564 - build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
565 -}
566 -
567 -src_configure() {
568 - # Calling this here supports resumption via FEATURES=keepwork
569 - python_setup
570 -
571 - local myconf_gn=""
572 -
573 - # Make sure the build system will use the right tools, bug #340795.
574 - tc-export AR CC CXX NM
575 -
576 - if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
577 - # Force clang since gcc is pretty broken at the moment.
578 - CC=${CHOST}-clang
579 - CXX=${CHOST}-clang++
580 - strip-unsupported-flags
581 - fi
582 -
583 - if tc-is-clang; then
584 - myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
585 - else
586 - if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
587 - die "Compiling with sys-libs/libcxx requires clang."
588 - fi
589 - myconf_gn+=" is_clang=false"
590 - fi
591 -
592 - # Define a custom toolchain for GN
593 - myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
594 -
595 - if tc-is-cross-compiler; then
596 - tc-export BUILD_{AR,CC,CXX,NM}
597 - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
598 - myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
599 - else
600 - myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
601 - fi
602 -
603 - # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
604 - myconf_gn+=" is_debug=false"
605 -
606 - # Component build isn't generally intended for use by end users. It's mostly useful
607 - # for development and debugging.
608 - myconf_gn+=" is_component_build=$(usex component-build true false)"
609 -
610 - myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
611 -
612 - # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
613 - myconf_gn+=" enable_nacl=false"
614 -
615 - # Use system-provided libraries.
616 - # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
617 - # TODO: use_system_hunspell (upstream changes needed).
618 - # TODO: use_system_libsrtp (bug #459932).
619 - # TODO: use_system_protobuf (bug #525560).
620 - # TODO: use_system_ssl (http://crbug.com/58087).
621 - # TODO: use_system_sqlite (http://crbug.com/22208).
622 -
623 - # libevent: https://bugs.gentoo.org/593458
624 - local gn_system_libraries=(
625 - flac
626 - fontconfig
627 - freetype
628 - # Need harfbuzz_from_pkgconfig target
629 - #harfbuzz-ng
630 - libdrm
631 - libjpeg
632 - libpng
633 - libwebp
634 - zlib
635 - )
636 - if use system-ffmpeg; then
637 - gn_system_libraries+=( ffmpeg opus )
638 - fi
639 - if use system-icu; then
640 - gn_system_libraries+=( icu )
641 - fi
642 - if [[ ${CHROMIUM_FORCE_LIBCXX} != yes ]]; then
643 - # unbundle only without libc++, because libc++ is not fully ABI compatible with libstdc++
644 - gn_system_libraries+=( libxml )
645 - gn_system_libraries+=( libxslt )
646 - gn_system_libraries+=( openh264 )
647 - gn_system_libraries+=( re2 )
648 - gn_system_libraries+=( snappy )
649 - fi
650 - build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
651 -
652 - # See dependency logic in third_party/BUILD.gn
653 - myconf_gn+=" use_system_harfbuzz=true"
654 -
655 - # Disable deprecated libgnome-keyring dependency, bug #713012
656 - myconf_gn+=" use_gnome_keyring=false"
657 -
658 - # Optional dependencies.
659 - myconf_gn+=" enable_js_type_check=$(usex js-type-check true false)"
660 - myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
661 - myconf_gn+=" enable_widevine=$(usex widevine true false)"
662 - myconf_gn+=" use_cups=$(usex cups true false)"
663 - myconf_gn+=" use_kerberos=$(usex kerberos true false)"
664 - myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
665 - myconf_gn+=" use_vaapi=$(usex vaapi true false)"
666 - myconf_gn+=" rtc_use_pipewire=$(usex screencast true false) rtc_pipewire_version=\"0.3\""
667 -
668 - # TODO: link_pulseaudio=true for GN.
669 -
670 - myconf_gn+=" fieldtrial_testing_like_official_build=true"
671 -
672 - # Never use bundled gold binary. Disable gold linker flags for now.
673 - # Do not use bundled clang.
674 - # Trying to use gold results in linker crash.
675 - myconf_gn+=" use_gold=false use_sysroot=false use_custom_libcxx=false"
676 -
677 - # Disable forced lld, bug 641556
678 - myconf_gn+=" use_lld=false"
679 -
680 - ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
681 - myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
682 - myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
683 -
684 - # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
685 - # Note: these are for Gentoo use ONLY. For your own distribution,
686 - # please get your own set of keys. Feel free to contact chromium@g.o
687 - # for more info.
688 - local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
689 - local google_default_client_id="329227923882.apps.googleusercontent.com"
690 - local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
691 - myconf_gn+=" google_api_key=\"${google_api_key}\""
692 - myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
693 - myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
694 - local myarch="$(tc-arch)"
695 -
696 - # Avoid CFLAGS problems, bug #352457, bug #390147.
697 - if ! use custom-cflags; then
698 - replace-flags "-Os" "-O2"
699 - strip-flags
700 -
701 - # Debug info section overflows without component build
702 - # Prevent linker from running out of address space, bug #471810 .
703 - if ! use component-build || use x86; then
704 - filter-flags "-g*"
705 - fi
706 -
707 - # Prevent libvpx build failures. Bug 530248, 544702, 546984.
708 - if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
709 - filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2 -mno-fma -mno-fma4
710 - fi
711 - fi
712 -
713 - if [[ ${CHROMIUM_FORCE_LIBCXX} == yes ]]; then
714 - append-flags -stdlib=libc++
715 - append-ldflags -stdlib=libc++
716 - fi
717 -
718 - if [[ $myarch = amd64 ]] ; then
719 - myconf_gn+=" target_cpu=\"x64\""
720 - ffmpeg_target_arch=x64
721 - elif [[ $myarch = x86 ]] ; then
722 - myconf_gn+=" target_cpu=\"x86\""
723 - ffmpeg_target_arch=ia32
724 -
725 - # This is normally defined by compiler_cpu_abi in
726 - # build/config/compiler/BUILD.gn, but we patch that part out.
727 - append-flags -msse2 -mfpmath=sse -mmmx
728 - elif [[ $myarch = arm64 ]] ; then
729 - myconf_gn+=" target_cpu=\"arm64\""
730 - ffmpeg_target_arch=arm64
731 - elif [[ $myarch = arm ]] ; then
732 - myconf_gn+=" target_cpu=\"arm\""
733 - ffmpeg_target_arch=$(usex cpu_flags_arm_neon arm-neon arm)
734 - elif [[ $myarch = ppc64 ]] ; then
735 - myconf_gn+=" target_cpu=\"ppc64\""
736 - ffmpeg_target_arch=ppc64
737 - else
738 - die "Failed to determine target arch, got '$myarch'."
739 - fi
740 -
741 - # Make sure that -Werror doesn't get added to CFLAGS by the build system.
742 - # Depending on GCC version the warnings are different and we don't want
743 - # the build to fail because of that.
744 - myconf_gn+=" treat_warnings_as_errors=false"
745 -
746 - # Disable fatal linker warnings, bug 506268.
747 - myconf_gn+=" fatal_linker_warnings=false"
748 -
749 - # Bug 491582.
750 - export TMPDIR="${WORKDIR}/temp"
751 - mkdir -p -m 755 "${TMPDIR}" || die
752 -
753 - # https://bugs.gentoo.org/654216
754 - addpredict /dev/dri/ #nowarn
755 -
756 - #if ! use system-ffmpeg; then
757 - if false; then
758 - local build_ffmpeg_args=""
759 - if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
760 - build_ffmpeg_args+=" --disable-asm"
761 - fi
762 -
763 - # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
764 - einfo "Configuring bundled ffmpeg..."
765 - pushd third_party/ffmpeg > /dev/null || die
766 - chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
767 - --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
768 - chromium/scripts/copy_config.sh || die
769 - chromium/scripts/generate_gn.py || die
770 - popd > /dev/null || die
771 - fi
772 -
773 - # Chromium relies on this, but was disabled in >=clang-10, crbug.com/1042470
774 - append-cxxflags $(test-flags-CXX -flax-vector-conversions=all)
775 -
776 - # Disable unknown warning message from clang.
777 - tc-is-clang && append-flags -Wno-unknown-warning-option
778 -
779 - # Explicitly disable ICU data file support for system-icu builds.
780 - if use system-icu; then
781 - myconf_gn+=" icu_use_data_file=false"
782 - fi
783 -
784 - # Enable ozone wayland and/or headless support
785 - if use wayland || use headless; then
786 - myconf_gn+=" use_ozone=true ozone_auto_platforms=false"
787 - myconf_gn+=" ozone_platform_headless=true"
788 - if use headless; then
789 - myconf_gn+=" ozone_platform=\"headless\""
790 - myconf_gn+=" use_x11=false"
791 - else
792 - myconf_gn+=" ozone_platform_wayland=true"
793 - myconf_gn+=" use_system_libdrm=true"
794 - myconf_gn+=" use_system_minigbm=true"
795 - myconf_gn+=" use_xkbcommon=true"
796 - myconf_gn+=" ozone_platform=\"wayland\""
797 - fi
798 - else
799 - myconf_gn+=" use_ozone=false"
800 - fi
801 -
802 - # Enable official builds
803 - myconf_gn+=" is_official_build=$(usex official true false)"
804 - if use official; then
805 - # Allow building against system libraries in official builds
806 - sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
807 - tools/generate_shim_headers/generate_shim_headers.py || die
808 - # Disable CFI: unsupported for GCC, requires clang+lto+lld
809 - myconf_gn+=" is_cfi=false"
810 - # Disable PGO, because profile data is only compatible with >=clang-11
811 - myconf_gn+=" chrome_pgo_phase=0"
812 - fi
813 -
814 - einfo "Configuring Chromium..."
815 - set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
816 - echo "$@"
817 - "$@" || die
818 -}
819 -
820 -src_compile() {
821 - # Final link uses lots of file descriptors.
822 - ulimit -n 2048
823 -
824 - # Calling this here supports resumption via FEATURES=keepwork
825 - python_setup
826 -
827 - # https://bugs.gentoo.org/717456
828 - # don't inherit PYTHONPATH from environment, bug #789021
829 - local -x PYTHONPATH="${WORKDIR}/setuptools-44.1.0"
830 -
831 - #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
832 -
833 - # Build mksnapshot and pax-mark it.
834 - local x
835 - for x in mksnapshot v8_context_snapshot_generator; do
836 - if tc-is-cross-compiler; then
837 - eninja -C out/Release "host/${x}"
838 - pax-mark m "out/Release/host/${x}"
839 - else
840 - eninja -C out/Release "${x}"
841 - pax-mark m "out/Release/${x}"
842 - fi
843 - done
844 -
845 - # Even though ninja autodetects number of CPUs, we respect
846 - # user's options, for debugging with -j 1 or any other reason.
847 - eninja -C out/Release chrome chromedriver
848 - use suid && eninja -C out/Release chrome_sandbox
849 -
850 - pax-mark m out/Release/chrome
851 -
852 - # Build manpage; bug #684550
853 - sed -e 's|@@PACKAGE@@|chromium-browser|g;
854 - s|@@MENUNAME@@|Chromium|g;' \
855 - chrome/app/resources/manpage.1.in > \
856 - out/Release/chromium-browser.1 || die
857 -
858 - # Build desktop file; bug #706786
859 - sed -e 's|@@MENUNAME@@|Chromium|g;
860 - s|@@USR_BIN_SYMLINK_NAME@@|chromium-browser|g;
861 - s|@@PACKAGE@@|chromium-browser|g;
862 - s|\(^Exec=\)/usr/bin/|\1|g;' \
863 - chrome/installer/linux/common/desktop.template > \
864 - out/Release/chromium-browser-chromium.desktop || die
865 -}
866 -
867 -src_install() {
868 - local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
869 - exeinto "${CHROMIUM_HOME}"
870 - doexe out/Release/chrome
871 -
872 - if use suid; then
873 - newexe out/Release/chrome_sandbox chrome-sandbox
874 - fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
875 - fi
876 -
877 - doexe out/Release/chromedriver
878 -
879 - local sedargs=( -e
880 - "s:/usr/lib/:/usr/$(get_libdir)/:g;
881 - s:@@OZONE_AUTO_SESSION@@:$(usex wayland true false):g;
882 - s:@@FORCE_OZONE_PLATFORM@@:$(usex headless true false):g"
883 - )
884 - sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r6.sh" > chromium-launcher.sh || die
885 - doexe chromium-launcher.sh
886 -
887 - # It is important that we name the target "chromium-browser",
888 - # xdg-utils expect it; bug #355517.
889 - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
890 - # keep the old symlink around for consistency
891 - dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
892 -
893 - dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
894 -
895 - # Allow users to override command-line options, bug #357629.
896 - insinto /etc/chromium
897 - newins "${FILESDIR}/chromium.default" "default"
898 -
899 - pushd out/Release/locales > /dev/null || die
900 - chromium_remove_language_paks
901 - popd
902 -
903 - insinto "${CHROMIUM_HOME}"
904 - doins out/Release/*.bin
905 - doins out/Release/*.pak
906 - (
907 - shopt -s nullglob
908 - local files=(out/Release/*.so out/Release/*.so.[0-9])
909 - [[ ${#files[@]} -gt 0 ]] && doins "${files[@]}"
910 - )
911 -
912 - if ! use system-icu; then
913 - doins out/Release/icudtl.dat
914 - fi
915 -
916 - doins -r out/Release/locales
917 - doins -r out/Release/resources
918 -
919 - if [[ -d out/Release/swiftshader ]]; then
920 - insinto "${CHROMIUM_HOME}/swiftshader"
921 - doins out/Release/swiftshader/*.so
922 - fi
923 -
924 - # Install icons
925 - local branding size
926 - for size in 16 24 32 48 64 128 256 ; do
927 - case ${size} in
928 - 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
929 - *) branding="chrome/app/theme/chromium" ;;
930 - esac
931 - newicon -s ${size} "${branding}/product_logo_${size}.png" \
932 - chromium-browser.png
933 - done
934 -
935 - # Install desktop entry
936 - domenu out/Release/chromium-browser-chromium.desktop
937 -
938 - # Install GNOME default application entry (bug #303100).
939 - insinto /usr/share/gnome-control-center/default-apps
940 - newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
941 -
942 - # Install manpage; bug #684550
943 - doman out/Release/chromium-browser.1
944 - dosym chromium-browser.1 /usr/share/man/man1/chromium.1
945 -
946 - readme.gentoo_create_doc
947 -}
948 -
949 -pkg_postrm() {
950 - xdg_icon_cache_update
951 - xdg_desktop_database_update
952 -}
953 -
954 -pkg_postinst() {
955 - xdg_icon_cache_update
956 - xdg_desktop_database_update
957 - readme.gentoo_print_elog
958 -
959 - if use vaapi; then
960 - elog "VA-API is disabled by default at runtime. Either enable it"
961 - elog "by navigating to chrome://flags/#enable-accelerated-video-decode"
962 - elog "inside Chromium or add --enable-accelerated-video-decode"
963 - elog "to CHROMIUM_FLAGS in /etc/chromium/default."
964 - fi
965 - if use screencast; then
966 - elog "Screencast is disabled by default at runtime. Either enable it"
967 - elog "by navigating to chrome://flags/#enable-webrtc-pipewire-capturer"
968 - elog "inside Chromium or add --enable-webrtc-pipewire-capturer"
969 - elog "to CHROMIUM_FLAGS in /etc/chromium/default."
970 - fi
971 -}
972
973 diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
974 index ede03e58287..ba8e49021da 100644
975 --- a/www-client/chromium/metadata.xml
976 +++ b/www-client/chromium/metadata.xml
977 @@ -17,7 +17,6 @@
978 <flag name="suid">Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels</flag>
979 <flag name="system-ffmpeg">Use system ffmpeg instead of the bundled one</flag>
980 <flag name="system-icu">Use system icu instead of the bundled one</flag>
981 - <flag name="tcmalloc">Use bundled tcmalloc instead of system malloc</flag>
982 <flag name="widevine">Unsupported closed-source DRM capability (required by Netflix VOD)</flag>
983 </use>
984 </pkgmetadata>