diff options
author | psyc://loupsycedyglgamf.onion/~lynX <ircs://psyced.org/youbroketheinternet> | 1984-04-04 00:44:09 +0000 |
---|---|---|
committer | psyc://loupsycedyglgamf.onion/~lynX <ircs://psyced.org/youbroketheinternet> | 1984-04-04 00:44:09 +0000 |
commit | 94e92239f9d5b29e875402b3006cf4dab8bb4278 (patch) | |
tree | 782336dcd66dcb8ca2788d6c167e24577c4a9a82 | |
parent | 3adfcbcb18440504c050c70ef8b26a487c56dddc (diff) | |
download | youbroketheinternet-overlay-94e92239f9d5b29e875402b3006cf4dab8bb4278.tar.gz youbroketheinternet-overlay-94e92239f9d5b29e875402b3006cf4dab8bb4278.zip |
www-client/chromium/chromium-74.0.3729.169.ebuild
-rw-r--r-- | README | 7 | ||||
-rw-r--r-- | www-client/chromium/Manifest | 6 | ||||
-rw-r--r-- | www-client/chromium/chromium-74.0.3729.169.ebuild | 706 | ||||
-rw-r--r-- | www-client/chromium/files/chromium-browser.xml | 13 | ||||
-rw-r--r-- | www-client/chromium/files/chromium-launcher-r3.sh | 39 | ||||
-rw-r--r-- | www-client/chromium/files/chromium.default | 5 | ||||
-rw-r--r-- | www-client/chromium/metadata.xml | 18 |
7 files changed, 794 insertions, 0 deletions
@@ -410,6 +410,13 @@ to Truecrypt's command line syntax. Similar in functionality to Jaromil's | |||
410 | Tomb, but with support for multiple file systems. Automates creation and | 410 | Tomb, but with support for multiple file systems. Automates creation and |
411 | maintenance of encrypted volumes. A must have for privacy-aware humans. | 411 | maintenance of encrypted volumes. A must have for privacy-aware humans. |
412 | 412 | ||
413 | == www-client/chromium == | ||
414 | |||
415 | We received a contribution for a recent Chromium that compiles using | ||
416 | clang. We don't recommend using Chromium as a browser, but if you've | ||
417 | being doing so anyhow, then you might find this useful. Maybe it does | ||
418 | not work with USE system-icu. | ||
419 | |||
413 | == www-client/torbrowser == | 420 | == www-client/torbrowser == |
414 | 421 | ||
415 | By fulfilling most requirements of protocol standards, all web browsers | 422 | By 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 @@ | |||
1 | AUX chromium-browser.xml 407 BLAKE2B 168d78b0855546ca559cfb51aff0bc85d5e6ae974c25eb76e4a02f6d11659489c6e40397a0b2f7bc1fda336fd2c6dd8c863fccc3340719210b41c7fef51927f4 SHA512 b767fb4fd1925029d95560fc14cb7ab12ae43b2fe923e92d75e733b9723cbe1dcdf6df041a2b62554e98b79b47ef3f6028c773e72e6fd53166a021d49657aeca | ||
2 | AUX chromium-launcher-r3.sh 1199 BLAKE2B 85f57b380cdc25bd000cf57d3c129b67f6e55d96dd958190040b0680f8d4d358ac777e0c1ebd6a1b32dd3821a377bcf9f598e073584528d0480460978c4c1fb1 SHA512 f1909314ae74985c85740d26c9bfab694f3202de8ccc392a1c4ec5c8760db21b6cc46146c78a9abebd09e6d24f37e19466f0c4d2d61815400b48d859f8ce154d | ||
3 | AUX chromium.default 148 BLAKE2B 5ee5b582c59a6e4bef87bbb0e232e2470ad412b1fbbb3b9af6ef7153edb55c5b9080cc16a5a115b0c5b3c381aa87ce57a7b12bdd2070e67dac10a6c2995ddbaf SHA512 0d4849e03592fb58b05e62a43021eca7e61615616c8907c3b2e445402e03adaf9e8fa25b0a745d6c31eb037456215cc02b59e345a3a06d932e76cf990c92d739 | ||
4 | DIST chromium-74.0.3729.169.tar.xz 749495820 BLAKE2B bfe485220239aad146eab0cd7bf158a20bccf03abe74457ea3933094c9fb200ff7a2e9db4a62fa1a736341ce8ee987520e20bd32e13e213435fd6724d15a7d85 SHA512 783558bbae43a928b7d9fe18717b63be432409c81aba0a38ccb14f38398d8681122bdd763db6d22b01363108253432ed203a86f8c9ba627247219bf1519f839b | ||
5 | EBUILD chromium-74.0.3729.169.ebuild 21389 BLAKE2B e987a7b6054d668affc3b4c63a7bac6def94e93c3e4fde06d73a424a0efae515e1b80b1beb7314a4dfb68c250ba5d437ade016a30a843883b3f50a34a48f5d9e SHA512 52471d3bdf10c4aa6b3f12edc38adbd96b2f40b604c458d43797f4314173adc67560ebcc42ba4c570e9fe22b525fb6a57f90bfe8b7e90fc1c2d410a3881de3e9 | ||
6 | MISC 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 | |||
4 | EAPI=7 | ||
5 | PYTHON_COMPAT=( python2_7 ) | ||
6 | |||
7 | CHROMIUM_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 | |||
11 | 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 | ||
12 | |||
13 | DESCRIPTION="Open-source version of Google Chrome web browser" | ||
14 | HOMEPAGE="http://chromium.org/" | ||
15 | SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz" | ||
16 | |||
17 | LICENSE="BSD" | ||
18 | SLOT="0" | ||
19 | KEYWORDS="amd64 ~x86" | ||
20 | IUSE="+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" | ||
21 | RESTRICT="!system-ffmpeg? ( proprietary-codecs? ( bindist ) )" | ||
22 | REQUIRED_USE="component-build? ( !suid )" | ||
23 | |||
24 | COMMON_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 . | ||
81 | RDEPEND="${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 | ||
92 | DEPEND="${COMMON_DEPEND} | ||
93 | " | ||
94 | BDEPEND=" | ||
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 | |||
114 | if [[ ${CHROMIUM_FORCE_CLANG} == yes ]]; then | ||
115 | BDEPEND+=" >=sys-devel/clang-5" | ||
116 | fi | ||
117 | |||
118 | if ! has chromium_pkg_die ${EBUILD_DEATH_HOOKS}; then | ||
119 | EBUILD_DEATH_HOOKS+=" chromium_pkg_die"; | ||
120 | fi | ||
121 | |||
122 | DISABLE_AUTOFORMATTING="yes" | ||
123 | DOC_CONTENTS=" | ||
124 | Some web pages may require additional fonts to display properly. | ||
125 | Try installing some of the following packages if some characters | ||
126 | are 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 | |||
136 | To fix broken icons on the Downloads page, you should install an icon | ||
137 | theme that covers the appropriate MIME types, and configure this as your | ||
138 | GTK+ icon theme. | ||
139 | " | ||
140 | |||
141 | PATCHES=( | ||
142 | ) | ||
143 | |||
144 | pre_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 | |||
164 | pkg_pretend() { | ||
165 | pre_build_checks | ||
166 | } | ||
167 | |||
168 | pkg_setup() { | ||
169 | pre_build_checks | ||
170 | |||
171 | chromium_suid_sandbox_check_kernel_config | ||
172 | } | ||
173 | |||
174 | src_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 | |||
374 | src_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 | |||
578 | src_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 | |||
610 | src_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 | |||
689 | pkg_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 | |||
698 | pkg_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. | ||
6 | for f in /etc/chromium/*; do | ||
7 | [[ -f ${f} ]] && source "${f}" | ||
8 | done | ||
9 | |||
10 | # Prefer user defined CHROMIUM_USER_FLAGS (from env) over system | ||
11 | # default CHROMIUM_FLAGS (from /etc/chromium/default). | ||
12 | CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"} | ||
13 | |||
14 | # Let the wrapped binary know that it has been run through the wrapper | ||
15 | export CHROME_WRAPPER=$(readlink -f "$0") | ||
16 | |||
17 | PROGDIR=${CHROME_WRAPPER%/*} | ||
18 | |||
19 | case ":$PATH:" in | ||
20 | *:$PROGDIR:*) | ||
21 | # $PATH already contains $PROGDIR | ||
22 | ;; | ||
23 | *) | ||
24 | # Append $PROGDIR to $PATH | ||
25 | export PATH="$PATH:$PROGDIR" | ||
26 | ;; | ||
27 | esac | ||
28 | |||
29 | if [[ ${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}" | ||
34 | fi | ||
35 | |||
36 | # Set the .desktop file name | ||
37 | export CHROME_DESKTOP="chromium-browser-chromium.desktop" | ||
38 | |||
39 | exec -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> | ||