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