blob: fe221ebc21716cdbf4ca07c7534c2f6e0f56fe7b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
|
# Contributor: Carlo Landmeter <clandmeter@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=chromium
pkgver=80.0.3987.132
pkgrel=0
pkgdesc="Chromium web browser"
url="https://www.chromium.org/Home"
arch="x86_64 aarch64 armv7"
license="BSD-3-Clause"
depends="xdg-utils"
makedepends="
alsa-lib-dev
bash
binutils-gold
bison flex
bsd-compat-headers
bzip2-dev
cairo-dev
clang-dev
cups-dev
dbus-glib-dev
elfutils-dev
eudev-dev
ffmpeg-dev
findutils
flac-dev
freetype-dev
gnutls-dev
gperf
gtk+3.0-dev
gzip
harfbuzz-dev
hunspell-dev
hwids-usb
jpeg-dev
jsoncpp-dev
krb5-dev
libbsd-dev
libcap-dev
libevent-dev
libexif-dev
libgcrypt-dev
libgnome-keyring-dev
libjpeg-turbo-dev
libpng-dev
libusb-dev
libva-dev
libwebp-dev
libxcomposite-dev
libxcursor-dev
libxinerama-dev
libxml2-dev
libxrandr-dev
libxscrnsaver-dev
libxslt-dev
linux-headers
mesa-dev
minizip-dev
ninja
nodejs
nss-dev
openjdk8
opus-dev
paxmark
pciutils-dev
perl
python2
re2-dev
snappy-dev
speex-dev
sqlite-dev
xdg-utils
yasm
zlib-dev
"
# explicit depends for --headless
depends="eudev-libs ttf-opensans"
options="suid"
subpackages="$pkgname-chromedriver"
source="https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz
pstables-2.8.h::https://git.savannah.gnu.org/cgit/freetype/freetype2.git/plain/src/psnames/pstables.h?h=VER-2-8
chromium-launcher.sh
chromium.conf
chromium.desktop
google-api.keys
upstream-cros-search-service-Include-cmath-for-std-pow.patch
upstream-fix-building-with-unbundled-libxml.patch
upstream-move-RemoteTreeNode-declaration.patch
upstream-rebuild-Linux-frame-button-cache-when-activation.patch
upstream-rename-Relayout-in-DesktopWindowTreeHostPlatform.patch
upstream-sync-enable-USSPasswords-by-default.patch
default-pthread-stacksize.patch
musl-fixes.patch
musl-fixes-breakpad.patch
musl-hacks.patch
musl-libc++.patch
musl-sandbox.patch
no-execinfo.patch
no-mallinfo.patch
resolver.patch
swiftshader.patch
create-extra-view-redefinition.patch
llvm-remove-unsupported-compiler-warnings.patch
chromium-use-alpine-target.patch
media-base.patch
musl-crashpad.patch
musl-v8-monotonic-pthread-cont_timedwait.patch
nasm.patch
gcc-fno-delete-null-pointer-checks.patch
gcc-arm.patch
aarch64-fixes.patch
elf-arm.patch
gn_bootstrap_ninja.patch
"
# secfixes:
# 72.0.3626.121-r0:
# - CVE-2019-5786
if [ -n "$DEBUG" ]; then
_buildtype=Debug
_is_debug=true
else
_buildtype=Release
_is_debug=false
fi
prepare() {
local i
for i in $source; do
case $i in
*.patch) msg $i; patch -p0 -i "$srcdir"/$i;;
esac
done
# https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/9JX1N2nf4PU/discussion
touch chrome/test/data/webui/i18n_process_css_test.html
# Use the file at run time instead of effectively compiling it in
sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
-i services/device/public/cpp/usb/BUILD.gn
mkdir -p third_party/node/linux/node-linux-x64/bin
ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
# reusable system library settings
local use_system="
ffmpeg
flac
fontconfig
freetype
harfbuzz-ng
libdrm
libevent
libjpeg
libpng
libwebp
libxml
libxslt
opus
re2
snappy
yasm
"
for _lib in ${use_system} libjpeg_turbo; do
msg "Removing buildscripts for system provided $_lib"
find -type f -path "*third_party/$_lib/*" \
\! -path "*third_party/$_lib/chromium/*" \
\! -path "*third_party/$_lib/google/*" \
\! -path './base/third_party/icu/*' \
\! -path './third_party/libxml/*' \
\! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
\! -path './third_party/yasm/run_yasm.py' \
\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
-delete
done
# workaround missing files for arm
for i in safe_conversions_arm_impl.h safe_math_arm_impl.h; do
ln -s ../../../../base/numerics/$i tools/gn/base/numerics/$i
done
msg "Replacing gyp files"
python build/linux/unbundle/replace_gn_files.py --system-libraries \
$use_system
third_party/libaddressinput/chromium/tools/update-strings.py
}
_gn_flags() {
echo $*
}
build() {
##############################################################
# Please dont use these keys outside of Alpine Linux project #
# You can create your own at: #
# http://www.chromium.org/developers/how-tos/api-keys #
##############################################################
eval "$(base64 -d < $srcdir/google-api.keys)"
msg "Bootstrapping GN"
local _c=$(_gn_flags is_clang=true \
use_sysroot=false \
treat_warnings_as_errors=false \
fatal_linker_warnings=false \
binutils_path=\"/usr/bin\" \
use_custom_libcxx=false \
use_gold=false \
use_allocator=\"none\" \
use_allocator_shim=false \
use_vaapi=true \
)
# AR="ar" CC="${CC:-gcc}" CXX="${CXX:-g++}" LD="${CXX:-g++}" \
CC="${CC:-clang}" CXX="${CXX:-clang++}" LD="${CXX:-clang++}" \
python tools/gn/bootstrap/bootstrap.py -s -v --gn-gen-args "$_c"
msg "Configuring build"
_c=$(_gn_flags \
blink_symbol_level=0 \
clang_use_chrome_plugins=false \
closure_compile=true \
custom_toolchain=\"//build/toolchain/linux/unbundle:default\" \
enable_hangout_services_extension=true \
enable_nacl_nonsfi=false \
enable_nacl=false \
enable_precompiled_headers=false \
fatal_linker_warnings=false \
ffmpeg_branding=\"Chrome\" \
fieldtrial_testing_like_official_build=true \
gold_path=\"/usr/bin/ld.gold\" \
google_api_key=\"$_google_api_key\" \
google_default_client_id=\"$_google_default_client_id\" \
google_default_client_secret=\"$_google_default_client_secret\" \
host_toolchain=\"//build/toolchain/linux/unbundle:default\" \
icu_use_data_file=true \
is_clang=true \
is_component_build=false \
is_debug=$_is_debug \
is_desktop_linux=true \
linux_use_bundled_binutils=false \
proprietary_codecs=true \
symbol_level=0 \
treat_warnings_as_errors=false \
use_allocator_shim=false \
use_allocator=\"none\" \
use_cups=true \
use_custom_libcxx=false \
use_gnome_keyring=false \
use_gold=false \
use_lld=false \
use_pulseaudio=false \
use_sysroot=false \
use_system_harfbuzz=true \
)
AR="ar" CC="clang" CXX="clang++" LD="clang++" NM=/usr/bin/nm \
out/Release/gn gen out/$_buildtype --args="$_c $_ca"
msg "Ninja turtles GO!"
# workaround parallel build
ninja -C out/Release gen/ui/accessibility/ax_enums.p
# build mksnapshot and paxmark it
ninja -C out/$_buildtype mksnapshot
paxmark -m out/$_buildtype/mksnapshot
ninja -C out/$_buildtype v8_context_snapshot_generator
paxmark -m out/Release/v8_context_snapshot_generator \
out/Release/obj/tools/v8_context_snapshot/v8_context_snapshot_generator
# final link needs lots of file descriptors
ulimit -n 2048
# finish rest of the build
ninja -C out/$_buildtype chrome chrome_sandbox chromedriver
}
package() {
cd out/$_buildtype
local bin pak
# paxmark inside chroot too
paxmark -m mksnapshot
for bin in chrome chromedriver *.bin; do
install -Dm755 $bin "$pkgdir"/usr/lib/$pkgname/$bin
done
paxmark -m "$pkgdir"/usr/lib/$pkgname/chrome
install -Dm4755 chrome_sandbox "$pkgdir"/usr/lib/$pkgname/chrome-sandbox
install -m644 icudtl.dat "$pkgdir"/usr/lib/$pkgname/icudtl.dat
for pak in *.pak; do
install -Dm644 $pak "$pkgdir"/usr/lib/$pkgname/$pak
done
install -Dm755 "$srcdir"/chromium-launcher.sh \
"$pkgdir"/usr/lib/$pkgname/chromium-launcher.sh
cp -a locales "$pkgdir"/usr/lib/$pkgname/
# It is important that we name the target "chromium-browser",
# xdg-utils expect it; bug #355517.
mkdir -p "$pkgdir"/usr/bin
cd "$pkgdir"/usr/bin
ln -sf /usr/lib/$pkgname/chromium-launcher.sh chromium-browser
ln -sf /usr/lib/$pkgname/chromedriver "$pkgdir"/usr/bin/
install -Dm644 "$srcdir"/chromium.conf \
"$pkgdir"/etc/chromium/chromium.conf
install -Dm644 "$srcdir"/chromium.desktop \
"$pkgdir"/usr/share/applications/chromium.desktop
cd "$builddir"
for size in 24 48 64 128 256; do
install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/"$size"x"$size"/apps/chromium.png"
done
for size in 16 32; do
install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \
"$pkgdir/usr/share/icons/hicolor/"$size"x"$size"/apps/chromium.png"
done
}
chromedriver() {
pkgdesc="WebDriver driver for the Chromium Browser"
mkdir -p "$subpkgdir"/usr/lib/$pkgname "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/lib/$pkgname/chromedriver \
"$subpkgdir"/usr/lib/$pkgname/
mv "$pkgdir"/usr/bin/chromedriver "$subpkgdir"/usr/bin
}
sha512sums="10bf0d1efdf2ead9e94de90971ec135f5370f8c949acfd75ca953aed706510cc3a1464f1ff3c40275921bb24953d8ce65d095e38cb0d56488ccc2c7fa27516d4 chromium-80.0.3987.132.tar.xz
a3bb959c65944ae2fb765725cedcffd743a58bc0c2cd1f1999d15fe79801d00f3474b08b4ed7b48859ed921eb57093d0ad09d90f201d729ed9b8a419a591ed29 pstables-2.8.h
b9a810416dd7a8ffc3a5ced85ad9acebda1665bd08a57eec7b189698cc5f74d2c3fd69044e20fcb83297a43214b2772a1312b2c6122ea0eb716abacf39524d60 chromium-launcher.sh
f6d962b9e4c22dd42183df3db5d3202dab33eccecafb1bf63ca678147289581262db1e5e64cbe8f9c212beefb0a6717bb8d311e497f56b55fe95b8bab2db493f chromium.conf
e182c998a43d22d1c76a86c561619afd1fca8c2be668265ad5e2f81a3806f7a154272cc027a2f8b370fb69446892c69e5967a4be76082325c14245ee7915234c chromium.desktop
2d8237a940ea691bd10b08315429677a587f7ef9692a0cca53bfd066eae82998a6c71f402a8669e9de39f94d7f3280745d1628ea6eac5d76ca7116844d4e0dac google-api.keys
75b93ccb6730ba6f516edef179a497275db623f4a8270d2cc9cd26548e0e41e6ee2d600438af8cbd7be3ebc9ad562cac2f58792eb4d2d2be2cf59f45a0253811 upstream-cros-search-service-Include-cmath-for-std-pow.patch
7e700b6c33188f562bdb77aea795abd44d6d0a874c65192d2f81584cb34ca142b4d1117626a7cfd209729865a82d605aaf81390af6fa406ed3b1423511815131 upstream-fix-building-with-unbundled-libxml.patch
902d7b08a25323551c1ca671cd2c1889bce0a9b017d4bc8f4abb7ccc654a3cbfb7b2b0652e17f182e018c1d1e3b35328a428e394691c38408e637613a9c76bbc upstream-move-RemoteTreeNode-declaration.patch
ad0e7e32e5eadbc935abd8f01a360e04133e387c6dc669ca350eaa586cce901682afeb2a61abd8c6380bcc919a76e16a9f1fe516c780bb0af78ed1c9d4327bc2 upstream-rebuild-Linux-frame-button-cache-when-activation.patch
082bc4340b49c12b519e217f0580ce94cb9bf35901f94ae19f9069530efce3ff3f03b39338724f3f517c3deb724e84d7c95f83b07419b847e245459056c465e2 upstream-rename-Relayout-in-DesktopWindowTreeHostPlatform.patch
59c9bf861caf06e6fe2f69214f55f73753008930716f35a0d5c2cc18f0b5178f7cb104922031a58f4831fcefebd31c9921706f3dbda32ba029487555d52d2254 upstream-sync-enable-USSPasswords-by-default.patch
b726ef2ecfe7d471e60d67de1e05847d214df6093b41bb2055652a9028327af19a8b10e7175467240f4dfec9e3ae97a6c4666bfd2cd6cb436c54656a085653ae default-pthread-stacksize.patch
5c61e97621606a43ea91ab64b7432943cceeb8af951f10f6db07d9cb8f8d925e5f5e4c55618d0075e68397464e2315b5c47564e9c4c046652c5636a496f4a335 musl-fixes.patch
ecb4bf5653bf3d987970d6c708f179bfc4b7d370b59d412bdf20d1f993585ee2f619caf202e7f239cb47111c8a72557c364cf60b7dd17e172e6629792eea8f29 musl-fixes-breakpad.patch
d78479bdea1c847d6e1506421a3eb716031cd24aa979f0e653c0406b507a5a89924d15e6c603e291f1b17751fb0788571f42699214fd1462334c0daabd584ffe musl-hacks.patch
919f13a2cd65673f267321cf95c5410e65bc5264d6704d0791b25d39111282bedb425bd9824dde3b67422cfb874c86a9383ded686e39cfd4aac239edaf41cfc8 musl-libc++.patch
bc71ae06efd780bd79f29a69bb6f05e6ef8353bcfa50042bb2dcda433642fa1935bf05856dd2effb1e6adb5b0594341552f453a2b846237b4e79d79049040329 musl-sandbox.patch
129ec746fd951ee6d0bf0b4389b7c988523870507de1f92f5706f4eb49039d4a49ed30e92b0634e3ae521fc3e129adc1c6edc7435922fc91658d8c087520c707 no-execinfo.patch
06d6b4c466fa48f2d22c338e20458d8fa50bbbf744468f41bc3c1892e739002b1fbc5c133a37252cec4ff4f804847add6b9c0cc1f84fb276939471c09e467fb6 no-mallinfo.patch
b1edab2a782a0fd554d0fcee893374282ceca797e9595f1b4dd1c4dbeb65a5d6c368f2000f8d44baea3a53880621fa33c456b663d72960e94f2e05f9ec4f7965 resolver.patch
f4265df7532625070c51ac43466e3e0f21e696f90c3b6040ef62a21defa7666203ff8219d9c9a5bebc011024aff300fbcbd941cebd0df59c4bc068d8f290221e swiftshader.patch
aa5e2b73196ea8db15ff995964032d3afcda9acf3f06bd3b196d9abfec022c462284a703e713b0ab7e613a384e8eaa271413025f18948443f58151974984670b create-extra-view-redefinition.patch
ae600a6a8cfc6cb0daf6e330623d84d460992ecedc0702ed0820fb7d0c59c73df5aa0c8c451bc768e82d4cabc1f386b740def2e6152b719b0fe8afd2a99a49a0 llvm-remove-unsupported-compiler-warnings.patch
cf9970ef403ff7a68bf08c0ba5e681eec459fcb1afb6859e5a80f4874f1b9a656377b4540eeb5208ddec570efa206f147e32718c687fa29ca3acc4fde6e8cbe8 chromium-use-alpine-target.patch
599f5ef338b5797e04436bdc88921c31365d2dea2613d40053be6e774f654e2889efb0c0bd55c2c5044a6805510fbc337da555971169a75d584fac93e18256ac media-base.patch
fca59f9728aa05253688b2ba8d6a610832bc28bd3057636c95e64759d5b006c80e84c549b6037f7dad90d9b8770bd79658b1474274141fa114a48e8a6f0f17c8 musl-crashpad.patch
556cc2ba28184a75745f13c673605327f5be590be179eb3f941dc0abded854a814e5da1432a28fb8d4dcdcd66ffd4c94ee1a8824d2cd93b632f48e9310dbc3fa musl-v8-monotonic-pthread-cont_timedwait.patch
7957aae04e8ef3badbc98c982ba1acb1b9ef5e665440116c704512f11554d7b64ba3643b7ff7d00476a6686324033b0cf762deb78ce798619226380953b9dc9c nasm.patch
56a357668c0928bc488ccec8f53fd37fccbaefe0a185ceaf067c8c39e0fae3d2b61ca010ccabc785bec0f2e86b19f37cebb3ac344225aa8d7651c822e48c6064 gcc-fno-delete-null-pointer-checks.patch
4a7ea09356823392f75ce188973422c8978fd84f238ed0f533376c50030210323b27e8401749bfb8ebe7d02d29c4b6067259f0a1fa55f0916e9c82c29ff3a420 gcc-arm.patch
7f81d97cce25d5530a2cb84105247e3707e344a285b0ac73c2f9275eae4bcc5aea6ff27307ec6607f95c13e9e724fab0e15e6fb8a33b3a9bfe0b3dbfdfb33ae6 aarch64-fixes.patch
bddf4ddaed63fbea15083d7a9e19173aa204fcdce9b4fdde2f673df71c79e56c313325a090af86e3df03034188c83c40e96b497f1f83057ed6bbbe8343490d4a elf-arm.patch
834e732959dd4a1c5ec847185c8f025307c7f2b79d9e87079a7bea0cbc0b7324cb660e302a462879309e95220117acac1d31c8eb276c78b5c400b2db2d59fda8 gn_bootstrap_ninja.patch"
|