aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpsyc://loupsycedyglgamf.onion/~lynX <ircs://psyced.org/youbroketheinternet>1984-04-04 00:44:09 +0000
committerpsyc://loupsycedyglgamf.onion/~lynX <ircs://psyced.org/youbroketheinternet>1984-04-04 00:44:09 +0000
commit94e92239f9d5b29e875402b3006cf4dab8bb4278 (patch)
tree782336dcd66dcb8ca2788d6c167e24577c4a9a82
parent3adfcbcb18440504c050c70ef8b26a487c56dddc (diff)
downloadyoubroketheinternet-overlay-94e92239f9d5b29e875402b3006cf4dab8bb4278.tar.gz
youbroketheinternet-overlay-94e92239f9d5b29e875402b3006cf4dab8bb4278.zip
www-client/chromium/chromium-74.0.3729.169.ebuild
-rw-r--r--README7
-rw-r--r--www-client/chromium/Manifest6
-rw-r--r--www-client/chromium/chromium-74.0.3729.169.ebuild706
-rw-r--r--www-client/chromium/files/chromium-browser.xml13
-rw-r--r--www-client/chromium/files/chromium-launcher-r3.sh39
-rw-r--r--www-client/chromium/files/chromium.default5
-rw-r--r--www-client/chromium/metadata.xml18
7 files changed, 794 insertions, 0 deletions
diff --git a/README b/README
index 3c0b486..111554b 100644
--- a/README
+++ b/README
@@ -410,6 +410,13 @@ to Truecrypt's command line syntax. Similar in functionality to Jaromil's
410Tomb, but with support for multiple file systems. Automates creation and 410Tomb, but with support for multiple file systems. Automates creation and
411maintenance of encrypted volumes. A must have for privacy-aware humans. 411maintenance of encrypted volumes. A must have for privacy-aware humans.
412 412
413== www-client/chromium ==
414
415We received a contribution for a recent Chromium that compiles using
416clang. We don't recommend using Chromium as a browser, but if you've
417being doing so anyhow, then you might find this useful. Maybe it does
418not work with USE system-icu.
419
413== www-client/torbrowser == 420== www-client/torbrowser ==
414 421
415By fulfilling most requirements of protocol standards, all web browsers 422By fulfilling most requirements of protocol standards, all web browsers
diff --git a/www-client/chromium/Manifest b/www-client/chromium/Manifest
new file mode 100644
index 0000000..c628528
--- /dev/null
+++ b/www-client/chromium/Manifest
@@ -0,0 +1,6 @@
1AUX chromium-browser.xml 407 BLAKE2B 168d78b0855546ca559cfb51aff0bc85d5e6ae974c25eb76e4a02f6d11659489c6e40397a0b2f7bc1fda336fd2c6dd8c863fccc3340719210b41c7fef51927f4 SHA512 b767fb4fd1925029d95560fc14cb7ab12ae43b2fe923e92d75e733b9723cbe1dcdf6df041a2b62554e98b79b47ef3f6028c773e72e6fd53166a021d49657aeca
2AUX chromium-launcher-r3.sh 1199 BLAKE2B 85f57b380cdc25bd000cf57d3c129b67f6e55d96dd958190040b0680f8d4d358ac777e0c1ebd6a1b32dd3821a377bcf9f598e073584528d0480460978c4c1fb1 SHA512 f1909314ae74985c85740d26c9bfab694f3202de8ccc392a1c4ec5c8760db21b6cc46146c78a9abebd09e6d24f37e19466f0c4d2d61815400b48d859f8ce154d
3AUX chromium.default 148 BLAKE2B 5ee5b582c59a6e4bef87bbb0e232e2470ad412b1fbbb3b9af6ef7153edb55c5b9080cc16a5a115b0c5b3c381aa87ce57a7b12bdd2070e67dac10a6c2995ddbaf SHA512 0d4849e03592fb58b05e62a43021eca7e61615616c8907c3b2e445402e03adaf9e8fa25b0a745d6c31eb037456215cc02b59e345a3a06d932e76cf990c92d739
4DIST chromium-74.0.3729.169.tar.xz 749495820 BLAKE2B bfe485220239aad146eab0cd7bf158a20bccf03abe74457ea3933094c9fb200ff7a2e9db4a62fa1a736341ce8ee987520e20bd32e13e213435fd6724d15a7d85 SHA512 783558bbae43a928b7d9fe18717b63be432409c81aba0a38ccb14f38398d8681122bdd763db6d22b01363108253432ed203a86f8c9ba627247219bf1519f839b
5EBUILD chromium-74.0.3729.169.ebuild 21389 BLAKE2B e987a7b6054d668affc3b4c63a7bac6def94e93c3e4fde06d73a424a0efae515e1b80b1beb7314a4dfb68c250ba5d437ade016a30a843883b3f50a34a48f5d9e SHA512 52471d3bdf10c4aa6b3f12edc38adbd96b2f40b604c458d43797f4314173adc67560ebcc42ba4c570e9fe22b525fb6a57f90bfe8b7e90fc1c2d410a3881de3e9
6MISC metadata.xml 1418 BLAKE2B 8d6033526bf01c81d345bf25b48a4ff7e49fc2e88c9e17df22c16ec5b30de6bca4502d1a25377d7bd7419c20079d20405760f3d28a51204c7a5b2ae849499ec2 SHA512 1dac8ef378900422200c996faf47d60dde8530f0e38dc2ce435f1cc997948a4a07fa07f10b8056aab275d928881d2d73c6bec635ddcebbba7638d08975652c54
diff --git a/www-client/chromium/chromium-74.0.3729.169.ebuild b/www-client/chromium/chromium-74.0.3729.169.ebuild
new file mode 100644
index 0000000..9494f02
--- /dev/null
+++ b/www-client/chromium/chromium-74.0.3729.169.ebuild
@@ -0,0 +1,706 @@
1# Copyright 1999-2019 Gentoo Authors
2# Distributed under the terms of the GNU General Public License v2
3
4EAPI=7
5PYTHON_COMPAT=( python2_7 )
6
7CHROMIUM_LANGS="am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu he
8 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
9 sv sw ta te th tr uk vi zh-CN zh-TW"
10
11inherit check-reqs chromium-2 desktop flag-o-matic multilib ninja-utils pax-utils portability python-any-r1 readme.gentoo-r1 toolchain-funcs xdg-utils
12
13DESCRIPTION="Open-source version of Google Chrome web browser"
14HOMEPAGE="http://chromium.org/"
15SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz"
16
17LICENSE="BSD"
18SLOT="0"
19KEYWORDS="amd64 ~x86"
20IUSE="+closure-compile component-build cups gnome-keyring +hangouts jumbo-build kerberos neon pic +proprietary-codecs pulseaudio selinux +suid +system-ffmpeg +system-icu +system-libvpx +tcmalloc widevine"
21RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )"
22REQUIRED_USE="component-build? ( !suid )"
23
24COMMON_DEPEND="
25 >=app-accessibility/at-spi2-atk-2.26:2
26 app-arch/bzip2:=
27 cups? ( >=net-print/cups-1.3.11:= )
28 >=dev-libs/atk-2.26
29 dev-libs/expat:=
30 dev-libs/glib:2
31 system-icu? ( >=dev-libs/icu-59:= )
32 >=dev-libs/libxml2-2.9.4-r3:=[icu]
33 dev-libs/libxslt:=
34 dev-libs/nspr:=
35 >=dev-libs/nss-3.26:=
36 >=dev-libs/re2-0.2016.11.01:=
37 gnome-keyring? ( >=gnome-base/libgnome-keyring-3.12:= )
38 >=media-libs/alsa-lib-1.0.19:=
39 media-libs/fontconfig:=
40 media-libs/freetype:=
41 >=media-libs/harfbuzz-2.2.0:0=[icu(-)]
42 media-libs/libjpeg-turbo:=
43 media-libs/libpng:=
44 system-libvpx? ( media-libs/libvpx:=[postproc,svc] )
45 >=media-libs/openh264-1.6.0:=
46 pulseaudio? ( media-sound/pulseaudio:= )
47 system-ffmpeg? (
48 >=media-video/ffmpeg-4:=
49 || (
50 media-video/ffmpeg[-samba]
51 >=net-fs/samba-4.5.10-r1[-debug(-)]
52 )
53 !=net-fs/samba-4.5.12-r0
54 media-libs/opus:=
55 )
56 sys-apps/dbus:=
57 sys-apps/pciutils:=
58 virtual/udev
59 x11-libs/cairo:=
60 x11-libs/gdk-pixbuf:2
61 x11-libs/gtk+:3[X]
62 x11-libs/libX11:=
63 x11-libs/libXcomposite:=
64 x11-libs/libXcursor:=
65 x11-libs/libXdamage:=
66 x11-libs/libXext:=
67 x11-libs/libXfixes:=
68 >=x11-libs/libXi-1.6.0:=
69 x11-libs/libXrandr:=
70 x11-libs/libXrender:=
71 x11-libs/libXScrnSaver:=
72 x11-libs/libXtst:=
73 x11-libs/pango:=
74 app-arch/snappy:=
75 media-libs/flac:=
76 >=media-libs/libwebp-0.4.0:=
77 sys-libs/zlib:=[minizip]
78 kerberos? ( virtual/krb5 )
79"
80# For nvidia-drivers blocker, see bug #413637 .
81RDEPEND="${COMMON_DEPEND}
82 !<www-plugins/chrome-binary-plugins-57
83 x11-misc/xdg-utils
84 virtual/opengl
85 virtual/ttf-fonts
86 selinux? ( sec-policy/selinux-chromium )
87 tcmalloc? ( !<x11-drivers/nvidia-drivers-331.20 )
88 widevine? ( www-plugins/chrome-binary-plugins[widevine(-)] )
89"
90# dev-vcs/git - https://bugs.gentoo.org/593476
91# sys-apps/sandbox - https://crbug.com/586444
92DEPEND="${COMMON_DEPEND}
93"
94BDEPEND="
95 >=app-arch/gzip-1.7
96 !arm? (
97 dev-lang/yasm
98 )
99 dev-lang/perl
100 dev-util/gn
101 dev-vcs/git
102 >=dev-util/gperf-3.0.3
103 >=dev-util/ninja-1.7.2
104 >=net-libs/nodejs-7.6.0[inspector]
105 sys-apps/hwids[usb(+)]
106 >=sys-devel/bison-2.4.3
107 sys-devel/flex
108 closure-compile? ( virtual/jre )
109 virtual/pkgconfig
110"
111
112: ${CHROMIUM_FORCE_CLANG=yes}
113
114if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then
115 BDEPEND+=" >=sys-devel/clang-5"
116fi
117
118if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then
119 EBUILD_DEATH_HOOKS+=" chromium_pkg_die";
120fi
121
122DISABLE_AUTOFORMATTING="yes"
123DOC_CONTENTS="
124Some web pages may require additional fonts to display properly.
125Try installing some of the following packages if some characters
126are not displayed properly:
127- media-fonts/arphicfonts
128- media-fonts/droid
129- media-fonts/ipamonafont
130- media-fonts/noto
131- media-fonts/ja-ipafonts
132- media-fonts/takao-fonts
133- media-fonts/wqy-microhei
134- media-fonts/wqy-zenhei
135
136To fix broken icons on the Downloads page, you should install an icon
137theme that covers the appropriate MIME types, and configure this as your
138GTK+ icon theme.
139"
140
141PATCHES=(
142)
143
144pre_build_checks() {
145 if [[ ${MERGE_TYPE} != binary ]]; then
146 local -x CPP="$(tc-getCXX) -E"
147 if tc-is-gcc && ! ver_test "$(gcc-version)" -ge 8.0; then
148 die "At least gcc 8.0 is required"
149 fi
150 fi
151
152 # Check build requirements, bug #541816 and bug #471810 .
153 CHECKREQS_MEMORY="3G"
154 CHECKREQS_DISK_BUILD="5G"
155 if ( shopt -s extglob; is-flagq '-g?(gdb)?([1-9])' ); then
156 CHECKREQS_DISK_BUILD="25G"
157 if ! use component-build; then
158 CHECKREQS_MEMORY="16G"
159 fi
160 fi
161 check-reqs_pkg_setup
162}
163
164pkg_pretend() {
165 pre_build_checks
166}
167
168pkg_setup() {
169 pre_build_checks
170
171 chromium_suid_sandbox_check_kernel_config
172}
173
174src_prepare() {
175 # Calling this here supports resumption via FEATURES=keepwork
176 python_setup
177
178 default
179
180 mkdir -p third_party/node/linux/node-linux-x64/bin || die
181 ln -s "${EPREFIX}"/usr/bin/node third_party/node/linux/node-linux-x64/bin/node || die
182
183 local keeplibs=(
184 base/third_party/dmg_fp
185 base/third_party/dynamic_annotations
186 base/third_party/icu
187 base/third_party/nspr
188 base/third_party/superfasthash
189 base/third_party/symbolize
190 base/third_party/valgrind
191 base/third_party/xdg_mime
192 base/third_party/xdg_user_dirs
193 buildtools/third_party/libc++
194 buildtools/third_party/libc++abi
195 chrome/third_party/mozilla_security_manager
196 courgette/third_party
197 net/third_party/mozilla_security_manager
198 net/third_party/nss
199 net/third_party/quic
200 net/third_party/uri_template
201 third_party/abseil-cpp
202 third_party/angle
203 third_party/angle/src/common/third_party/base
204 third_party/angle/src/common/third_party/smhasher
205 third_party/angle/src/common/third_party/xxhash
206 third_party/angle/src/third_party/compiler
207 third_party/angle/src/third_party/libXNVCtrl
208 third_party/angle/src/third_party/trace_event
209 third_party/angle/third_party/glslang
210 third_party/angle/third_party/spirv-headers
211 third_party/angle/third_party/spirv-tools
212 third_party/angle/third_party/vulkan-headers
213 third_party/angle/third_party/vulkan-loader
214 third_party/angle/third_party/vulkan-tools
215 third_party/angle/third_party/vulkan-validation-layers
216 third_party/glslang
217 third_party/apple_apsl
218 third_party/blink
219 third_party/boringssl
220 third_party/boringssl/src/third_party/fiat
221 third_party/breakpad
222 third_party/breakpad/breakpad/src/third_party/curl
223 third_party/brotli
224 third_party/cacheinvalidation
225 third_party/catapult
226 third_party/catapult/common/py_vulcanize/third_party/rcssmin
227 third_party/catapult/common/py_vulcanize/third_party/rjsmin
228 third_party/catapult/third_party/beautifulsoup4
229 third_party/catapult/third_party/html5lib-python
230 third_party/catapult/third_party/polymer
231 third_party/catapult/third_party/six
232 third_party/catapult/tracing/third_party/d3
233 third_party/catapult/tracing/third_party/gl-matrix
234 third_party/catapult/tracing/third_party/jszip
235 third_party/catapult/tracing/third_party/mannwhitneyu
236 third_party/catapult/tracing/third_party/oboe
237 third_party/catapult/tracing/third_party/pako
238 third_party/ced
239 third_party/cld_3
240 third_party/closure_compiler
241 third_party/crashpad
242 third_party/crashpad/crashpad/third_party/zlib
243 third_party/crc32c
244 third_party/cros_system_api
245 third_party/dav1d
246 third_party/devscripts
247 third_party/dom_distiller_js
248 third_party/emoji-segmenter
249 third_party/fips181
250 third_party/flatbuffers
251 third_party/flot
252 third_party/freetype
253 third_party/google_input_tools
254 third_party/google_input_tools/third_party/closure_library
255 third_party/google_input_tools/third_party/closure_library/third_party/closure
256 third_party/googletest
257 third_party/hunspell
258 third_party/iccjpeg
259 third_party/inspector_protocol
260 third_party/jinja2
261 third_party/jsoncpp
262 third_party/jstemplate
263 third_party/khronos
264 third_party/leveldatabase
265 third_party/libXNVCtrl
266 third_party/libaddressinput
267 third_party/libaom
268 third_party/libaom/source/libaom/third_party/vector
269 third_party/libaom/source/libaom/third_party/x86inc
270 third_party/libjingle
271 third_party/libphonenumber
272 third_party/libsecret
273 third_party/libsrtp
274 third_party/libsync
275 third_party/libudev
276 third_party/libwebm
277 third_party/libxml/chromium
278 third_party/libyuv
279 third_party/llvm
280 third_party/lss
281 third_party/lzma_sdk
282 third_party/markupsafe
283 third_party/mesa
284 third_party/metrics_proto
285 third_party/modp_b64
286 third_party/nasm
287 third_party/node
288 third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2
289 third_party/openmax_dl
290 third_party/ots
291 third_party/pdfium
292 third_party/pdfium/third_party/agg23
293 third_party/pdfium/third_party/base
294 third_party/pdfium/third_party/bigint
295 third_party/pdfium/third_party/freetype
296 third_party/pdfium/third_party/lcms
297 third_party/pdfium/third_party/libopenjpeg20
298 third_party/pdfium/third_party/libpng16
299 third_party/pdfium/third_party/libtiff
300 third_party/pdfium/third_party/skia_shared
301 third_party/perfetto
302 third_party/ply
303 third_party/polymer
304 third_party/protobuf
305 third_party/protobuf/third_party/six
306 third_party/pyjson5
307 third_party/qcms
308 third_party/rnnoise
309 third_party/s2cellid
310 third_party/sfntly
311 third_party/simplejson
312 third_party/skia
313 third_party/skia/include/third_party/vulkan
314 third_party/skia/third_party/gif
315 third_party/skia/third_party/skcms
316 third_party/skia/third_party/vulkan
317 third_party/smhasher
318 third_party/spirv-headers
319 third_party/SPIRV-Tools
320 third_party/sqlite
321 third_party/swiftshader
322 third_party/swiftshader/third_party/llvm-7.0
323 third_party/swiftshader/third_party/llvm-subzero
324 third_party/swiftshader/third_party/subzero
325 third_party/unrar
326 third_party/usrsctp
327 third_party/vulkan
328 third_party/web-animations-js
329 third_party/webdriver
330 third_party/webrtc
331 third_party/webrtc/common_audio/third_party/fft4g
332 third_party/webrtc/common_audio/third_party/spl_sqrt_floor
333 third_party/webrtc/modules/third_party/fft
334 third_party/webrtc/modules/third_party/g711
335 third_party/webrtc/modules/third_party/g722
336 third_party/webrtc/rtc_base/third_party/base64
337 third_party/webrtc/rtc_base/third_party/sigslot
338 third_party/widevine
339 third_party/woff2
340 third_party/zlib/google
341 url/third_party/mozilla
342 v8/src/third_party/siphash
343 v8/src/third_party/valgrind
344 v8/src/third_party/utf8-decoder
345 v8/third_party/inspector_protocol
346 v8/third_party/v8
347
348 # gyp -> gn leftovers
349 base/third_party/libevent
350 third_party/adobe
351 third_party/speech-dispatcher
352 third_party/usb_ids
353 third_party/xdg-utils
354 third_party/yasm/run_yasm.py
355 )
356 if ! use system-ffmpeg; then
357 keeplibs+=( third_party/ffmpeg third_party/opus )
358 fi
359 if ! use system-icu; then
360 keeplibs+=( third_party/icu )
361 fi
362 if ! use system-libvpx; then
363 keeplibs+=( third_party/libvpx )
364 keeplibs+=( third_party/libvpx/source/libvpx/third_party/x86inc )
365 fi
366 if use tcmalloc; then
367 keeplibs+=( third_party/tcmalloc )
368 fi
369
370 # Remove most bundled libraries. Some are still needed.
371 build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
372}
373
374src_configure() {
375 # Calling this here supports resumption via FEATURES=keepwork
376 python_setup
377
378 local myconf_gn=""
379
380 # Make sure the build system will use the right tools, bug #340795.
381 tc-export AR CC CXX NM
382
383 if [[ ${CHROMIUM_FORCE_CLANG} == yes ]] && ! tc-is-clang; then
384 # Force clang since gcc is pretty broken at the moment.
385 CC=${CHOST}-clang
386 CXX=${CHOST}-clang++
387 strip-unsupported-flags
388 fi
389
390 if tc-is-clang; then
391 myconf_gn+=" is_clang=true clang_use_chrome_plugins=false"
392 else
393 myconf_gn+=" is_clang=false"
394 fi
395
396 # Define a custom toolchain for GN
397 myconf_gn+=" custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
398
399 if tc-is-cross-compiler; then
400 tc-export BUILD_{AR,CC,CXX,NM}
401 myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:host\""
402 myconf_gn+=" v8_snapshot_toolchain=\"//build/toolchain/linux/unbundle:host\""
403 else
404 myconf_gn+=" host_toolchain=\"//build/toolchain/linux/unbundle:default\""
405 fi
406
407 # GN needs explicit config for Debug/Release as opposed to inferring it from build directory.
408 myconf_gn+=" is_debug=false"
409
410 # Component build isn't generally intended for use by end users. It's mostly useful
411 # for development and debugging.
412 myconf_gn+=" is_component_build=$(usex component-build true false)"
413
414 # https://chromium.googlesource.com/chromium/src/+/lkcr/docs/jumbo.md
415 myconf_gn+=" use_jumbo_build=$(usex jumbo-build true false)"
416
417 myconf_gn+=" use_allocator=$(usex tcmalloc \"tcmalloc\" \"none\")"
418
419 # Disable nacl, we can't build without pnacl (http://crbug.com/269560).
420 myconf_gn+=" enable_nacl=false"
421
422 # Use system-provided libraries.
423 # TODO: freetype -- remove sources (https://bugs.chromium.org/p/pdfium/issues/detail?id=733).
424 # TODO: use_system_hunspell (upstream changes needed).
425 # TODO: use_system_libsrtp (bug #459932).
426 # TODO: use_system_protobuf (bug #525560).
427 # TODO: use_system_ssl (http://crbug.com/58087).
428 # TODO: use_system_sqlite (http://crbug.com/22208).
429
430 # libevent: https://bugs.gentoo.org/593458
431 local gn_system_libraries=(
432 flac
433 fontconfig
434 freetype
435 # Need harfbuzz_from_pkgconfig target
436 #harfbuzz-ng
437 libdrm
438 libjpeg
439 libpng
440 libwebp
441 libxml
442 libxslt
443 openh264
444 re2
445 snappy
446 yasm
447 zlib
448 )
449 if use system-ffmpeg; then
450 gn_system_libraries+=( ffmpeg opus )
451 fi
452 if use system-icu; then
453 gn_system_libraries+=( icu )
454 fi
455 if use system-libvpx; then
456 gn_system_libraries+=( libvpx )
457 fi
458 build/linux/unbundle/replace_gn_files.py --system-libraries "${gn_system_libraries[@]}" || die
459
460 # See dependency logic in third_party/BUILD.gn
461 myconf_gn+=" use_system_harfbuzz=true"
462
463 # Optional dependencies.
464 myconf_gn+=" closure_compile=$(usex closure-compile true false)"
465 myconf_gn+=" enable_hangout_services_extension=$(usex hangouts true false)"
466 myconf_gn+=" enable_widevine=$(usex widevine true false)"
467 myconf_gn+=" use_cups=$(usex cups true false)"
468 myconf_gn+=" use_gnome_keyring=$(usex gnome-keyring true false)"
469 myconf_gn+=" use_kerberos=$(usex kerberos true false)"
470 myconf_gn+=" use_pulseaudio=$(usex pulseaudio true false)"
471
472 # TODO: link_pulseaudio=true for GN.
473
474 myconf_gn+=" fieldtrial_testing_like_official_build=true"
475
476 # Never use bundled gold binary. Disable gold linker flags for now.
477 # Do not use bundled clang.
478 # Trying to use gold results in linker crash.
479 myconf_gn+=" use_gold=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false"
480
481 # Disable forced lld, bug 641556
482 myconf_gn+=" use_lld=false"
483
484 ffmpeg_branding="$(usex proprietary-codecs Chrome Chromium)"
485 myconf_gn+=" proprietary_codecs=$(usex proprietary-codecs true false)"
486 myconf_gn+=" ffmpeg_branding=\"${ffmpeg_branding}\""
487
488 # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys .
489 # Note: these are for Gentoo use ONLY. For your own distribution,
490 # please get your own set of keys. Feel free to contact chromium@gentoo.org
491 # for more info.
492 local google_api_key="AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc"
493 local google_default_client_id="329227923882.apps.googleusercontent.com"
494 local google_default_client_secret="vgKG0NNv7GoDpbtoFNLxCUXu"
495 myconf_gn+=" google_api_key=\"${google_api_key}\""
496 myconf_gn+=" google_default_client_id=\"${google_default_client_id}\""
497 myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\""
498
499 local myarch="$(tc-arch)"
500
501 # Avoid CFLAGS problems, bug #352457, bug #390147.
502 if ! use custom-cflags; then
503 replace-flags "-Os" "-O2"
504 strip-flags
505
506 # Prevent linker from running out of address space, bug #471810 .
507 if use x86; then
508 filter-flags "-g*"
509 fi
510
511 # Prevent libvpx build failures. Bug 530248, 544702, 546984.
512 if [[ ${myarch} == amd64 || ${myarch} == x86 ]]; then
513 filter-flags -mno-mmx -mno-sse2 -mno-ssse3 -mno-sse4.1 -mno-avx -mno-avx2
514 fi
515 fi
516
517 if [[ $myarch = amd64 ]] ; then
518 myconf_gn+=" target_cpu=\"x64\""
519 ffmpeg_target_arch=x64
520 elif [[ $myarch = x86 ]] ; then
521 myconf_gn+=" target_cpu=\"x86\""
522 ffmpeg_target_arch=ia32
523
524 # This is normally defined by compiler_cpu_abi in
525 # build/config/compiler/BUILD.gn, but we patch that part out.
526 append-flags -msse2 -mfpmath=sse -mmmx
527 elif [[ $myarch = arm64 ]] ; then
528 myconf_gn+=" target_cpu=\"arm64\""
529 ffmpeg_target_arch=arm64
530 elif [[ $myarch = arm ]] ; then
531 myconf_gn+=" target_cpu=\"arm\""
532 ffmpeg_target_arch=$(usex neon arm-neon arm)
533 else
534 die "Failed to determine target arch, got '$myarch'."
535 fi
536
537 # Make sure that -Werror doesn't get added to CFLAGS by the build system.
538 # Depending on GCC version the warnings are different and we don't want
539 # the build to fail because of that.
540 myconf_gn+=" treat_warnings_as_errors=false"
541
542 # Disable fatal linker warnings, bug 506268.
543 myconf_gn+=" fatal_linker_warnings=false"
544
545 # https://bugs.gentoo.org/588596
546 #append-cxxflags $(test-flags-CXX -fno-delete-null-pointer-checks)
547
548 # Bug 491582.
549 export TMPDIR="${WORKDIR}/temp"
550 mkdir -p -m 755 "${TMPDIR}" || die
551
552 # https://bugs.gentoo.org/654216
553 addpredict /dev/dri/ #nowarn
554
555 #if ! use system-ffmpeg; then
556 if false; then
557 local build_ffmpeg_args=""
558 if use pic && [[ "${ffmpeg_target_arch}" == "ia32" ]]; then
559 build_ffmpeg_args+=" --disable-asm"
560 fi
561
562 # Re-configure bundled ffmpeg. See bug #491378 for example reasons.
563 einfo "Configuring bundled ffmpeg..."
564 pushd third_party/ffmpeg > /dev/null || die
565 chromium/scripts/build_ffmpeg.py linux ${ffmpeg_target_arch} \
566 --branding ${ffmpeg_branding} -- ${build_ffmpeg_args} || die
567 chromium/scripts/copy_config.sh || die
568 chromium/scripts/generate_gn.py || die
569 popd > /dev/null || die
570 fi
571
572 einfo "Configuring Chromium..."
573 set -- gn gen --args="${myconf_gn} ${EXTRA_GN}" out/Release
574 echo "$@"
575 "$@" || die
576}
577
578src_compile() {
579 # Final link uses lots of file descriptors.
580 ulimit -n 2048
581
582 # Calling this here supports resumption via FEATURES=keepwork
583 python_setup
584
585 #"${EPYTHON}" tools/clang/scripts/update.py --force-local-build --gcc-toolchain /usr --skip-checkout --use-system-cmake --without-android || die
586
587 # Work around broken deps
588 eninja -C out/Release gen/ui/accessibility/ax_enums.mojom{,-shared}.h
589
590 # Build mksnapshot and pax-mark it.
591 local x
592 for x in mksnapshot v8_context_snapshot_generator; do
593 if tc-is-cross-compiler; then
594 eninja -C out/Release "host/${x}"
595 pax-mark m "out/Release/host/${x}"
596 else
597 eninja -C out/Release "${x}"
598 pax-mark m "out/Release/${x}"
599 fi
600 done
601
602 # Even though ninja autodetects number of CPUs, we respect
603 # user's options, for debugging with -j 1 or any other reason.
604 eninja -C out/Release chrome chromedriver
605 use suid && eninja -C out/Release chrome_sandbox
606
607 pax-mark m out/Release/chrome
608}
609
610src_install() {
611 local CHROMIUM_HOME="/usr/$(get_libdir)/chromium-browser"
612 exeinto "${CHROMIUM_HOME}"
613 doexe out/Release/chrome
614
615 if use suid; then
616 newexe out/Release/chrome_sandbox chrome-sandbox
617 fperms 4755 "${CHROMIUM_HOME}/chrome-sandbox"
618 fi
619
620 doexe out/Release/chromedriver
621
622 local sedargs=( -e "s:/usr/lib/:/usr/$(get_libdir)/:g" )
623 sed "${sedargs[@]}" "${FILESDIR}/chromium-launcher-r3.sh" > chromium-launcher.sh || die
624 doexe chromium-launcher.sh
625
626 # It is important that we name the target "chromium-browser",
627 # xdg-utils expect it; bug #355517.
628 dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium-browser
629 # keep the old symlink around for consistency
630 dosym "${CHROMIUM_HOME}/chromium-launcher.sh" /usr/bin/chromium
631
632 dosym "${CHROMIUM_HOME}/chromedriver" /usr/bin/chromedriver
633
634 # Allow users to override command-line options, bug #357629.
635 insinto /etc/chromium
636 newins "${FILESDIR}/chromium.default" "default"
637
638 pushd out/Release/locales > /dev/null || die
639 chromium_remove_language_paks
640 popd
641
642 insinto "${CHROMIUM_HOME}"
643 doins out/Release/*.bin
644 doins out/Release/*.pak
645 doins out/Release/*.so
646
647 if ! use system-icu; then
648 doins out/Release/icudtl.dat
649 fi
650
651 doins -r out/Release/locales
652 doins -r out/Release/resources
653
654 if [[ -d out/Release/swiftshader ]]; then
655 insinto "${CHROMIUM_HOME}/swiftshader"
656 doins out/Release/swiftshader/*.so
657 fi
658
659 # Install icons and desktop entry.
660 local branding size
661 for size in 16 22 24 32 48 64 128 256 ; do
662 case ${size} in
663 16|32) branding="chrome/app/theme/default_100_percent/chromium" ;;
664 *) branding="chrome/app/theme/chromium" ;;
665 esac
666 newicon -s ${size} "${branding}/product_logo_${size}.png" \
667 chromium-browser.png
668 done
669
670 local mime_types="text/html;text/xml;application/xhtml+xml;"
671 mime_types+="x-scheme-handler/http;x-scheme-handler/https;" # bug #360797
672 mime_types+="x-scheme-handler/ftp;" # bug #412185
673 mime_types+="x-scheme-handler/mailto;x-scheme-handler/webcal;" # bug #416393
674 make_desktop_entry \
675 chromium-browser \
676 "Chromium" \
677 chromium-browser \
678 "Network;WebBrowser" \
679 "MimeType=${mime_types}\nStartupWMClass=chromium-browser"
680 sed -e "/^Exec/s/$/ %U/" -i "${ED}"/usr/share/applications/*.desktop || die
681
682 # Install GNOME default application entry (bug #303100).
683 insinto /usr/share/gnome-control-center/default-apps
684 newins "${FILESDIR}"/chromium-browser.xml chromium-browser.xml
685
686 readme.gentoo_create_doc
687}
688
689pkg_postrm() {
690 if type gtk-update-icon-cache &>/dev/null; then
691 ebegin "Updating GTK icon cache"
692 gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
693 eend $?
694 fi
695 xdg_desktop_database_update
696}
697
698pkg_postinst() {
699 if type gtk-update-icon-cache &>/dev/null; then
700 ebegin "Updating GTK icon cache"
701 gtk-update-icon-cache "${EROOT}/usr/share/icons/hicolor"
702 eend $?
703 fi
704 xdg_desktop_database_update
705 readme.gentoo_print_elog
706}
diff --git a/www-client/chromium/files/chromium-browser.xml b/www-client/chromium/files/chromium-browser.xml
new file mode 100644
index 0000000..2c95a55
--- /dev/null
+++ b/www-client/chromium/files/chromium-browser.xml
@@ -0,0 +1,13 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE default-apps SYSTEM "gnome-da-list.dtd">
3<default-apps>
4 <web-browsers>
5 <web-browser>
6 <name>Chromium</name>
7 <executable>chromium-browser</executable>
8 <command>chromium-browser %s</command>
9 <icon-name>chromium-browser</icon-name>
10 <run-in-terminal>false</run-in-terminal>
11 </web-browser>
12 </web-browsers>
13</default-apps>
diff --git a/www-client/chromium/files/chromium-launcher-r3.sh b/www-client/chromium/files/chromium-launcher-r3.sh
new file mode 100644
index 0000000..a4fc1a9
--- /dev/null
+++ b/www-client/chromium/files/chromium-launcher-r3.sh
@@ -0,0 +1,39 @@
1#!/bin/bash
2
3# Allow the user to override command-line flags, bug #357629.
4# This is based on Debian's chromium-browser package, and is intended
5# to be consistent with Debian.
6for f in /etc/chromium/*; do
7 [[ -f ${f} ]] && source "${f}"
8done
9
10# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
11# default CHROMIUM_FLAGS (from /etc/chromium/default).
12CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}
13
14# Let the wrapped binary know that it has been run through the wrapper
15export CHROME_WRAPPER=$(readlink -f "$0")
16
17PROGDIR=${CHROME_WRAPPER%/*}
18
19case ":$PATH:" in
20 *:$PROGDIR:*)
21 # $PATH already contains $PROGDIR
22 ;;
23 *)
24 # Append $PROGDIR to $PATH
25 export PATH="$PATH:$PROGDIR"
26 ;;
27esac
28
29if [[ ${EUID} == 0 && -O ${XDG_CONFIG_HOME:-${HOME}} ]]; then
30 # Running as root with HOME owned by root.
31 # Pass --user-data-dir to work around upstream failsafe.
32 CHROMIUM_FLAGS="--user-data-dir=${XDG_CONFIG_HOME:-${HOME}/.config}/chromium
33 ${CHROMIUM_FLAGS}"
34fi
35
36# Set the .desktop file name
37export CHROME_DESKTOP="chromium-browser-chromium.desktop"
38
39exec -a "chromium-browser" "$PROGDIR/chrome" --extra-plugin-dir=/usr/lib/nsbrowser/plugins ${CHROMIUM_FLAGS} "$@"
diff --git a/www-client/chromium/files/chromium.default b/www-client/chromium/files/chromium.default
new file mode 100644
index 0000000..c140cde
--- /dev/null
+++ b/www-client/chromium/files/chromium.default
@@ -0,0 +1,5 @@
1# Default settings for chromium. This file is sourced by /bin/bash from
2# the chromium launcher.
3
4# Options to pass to chromium.
5#CHROMIUM_FLAGS=""
diff --git a/www-client/chromium/metadata.xml b/www-client/chromium/metadata.xml
new file mode 100644
index 0000000..f9e839d
--- /dev/null
+++ b/www-client/chromium/metadata.xml
@@ -0,0 +1,18 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
3<pkgmetadata>
4 <use>
5 <flag name="closure-compile">Enable closure type-checking for Chrome's web technology-based UI. Requires Java.</flag>
6 <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>
7 <flag name="hangouts">Enable support for Google Hangouts features such as screen sharing</flag>
8 <flag name="jumbo-build">Combine source files to speed up build process.</flag>
9 <flag name="pic">Disable optimized assembly code that is not PIC friendly</flag>
10 <flag name="proprietary-codecs">Enable proprietary codecs like H.264, MP3</flag>
11 <flag name="suid">Build the SUID sandbox, which is only needed on CONFIG_USER_NS=n kernels</flag>
12 <flag name="system-ffmpeg">Use system ffmpeg instead of the bundled one</flag>
13 <flag name="system-icu">Use system icu instead of the bundled one</flag>
14 <flag name="system-libvpx">Use system libvpx instead of the bundled one</flag>
15 <flag name="tcmalloc">Use bundled tcmalloc instead of system malloc</flag>
16 <flag name="widevine">Unsupported closed-source DRM capability (required by Netflix VOD)</flag>
17 </use>
18</pkgmetadata>