Gentoo Archives: gentoo-commits

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