Commit | Line | Data |
---|---|---|
0826c9bd JB |
1 | # Description: Open source version of Google Chrome web browser. |
2 | # URL: http://chromium.org/ | |
3 | # Arch Maintainer: CRUX-ARM System Team, devel at crux-arm dot nu | |
4 | # Maintainer: Jose V Beneyto, sepen at crux dot nu | |
5 | # Packager: Tadeusz Sosnierz, tadzikes gmail com | |
79d44473 | 6 | # Depends on: dbus-glib gperf gtk libevent libexif libgcrypt mesa3d ninja nodejs nss pciutils speech-dispatcher xorg-libxscrnsaver xorg-libxt xorg-libxtst yasm |
0826c9bd JB |
7 | |
8 | name=chromium | |
79d44473 | 9 | version=60.0.3112.78 |
0826c9bd | 10 | release=1 |
6a3c14de | 11 | source=(http://commondatastorage.googleapis.com/$name-browser-official/$name-$version.tar.xz \ |
79d44473 VM |
12 | last-commit-position.patch $name-build-toolchain.patch $name-gn-bootstrap-r2.patch $name.sh $name.desktop |
13 | 0001-Clip-FreeType-glyph-bitmap-to-mask.patch | |
14 | chromium-blink-gcc7.patch | |
15 | chromium-v8-gcc7.patch | |
16 | chromium-gn-bootstrap-r8.patch) | |
0826c9bd JB |
17 | |
18 | build() { | |
19 | cd $name-$version | |
20 | ||
79d44473 VM |
21 | export CFLAGS="-O2 -pipe -mfloat-abi=hard" |
22 | ||
7b8c3be9 | 23 | export CFLAGS="$CFLAGS $(pkg-config --cflags nspr) -lpthread" |
0826c9bd | 24 | export LDFLAGS="$LDFLAGS $(pkg-config --libs nspr)" |
79d44473 | 25 | |
0826c9bd JB |
26 | # determine some flags depending on SOC |
27 | USE_ARMV7=0; USE_ARM_THUMB=0; USE_ARM_NEON=0 | |
28 | case $(uname -m) in | |
29 | armv7*) USE_ARMV7=1; USE_ARM_THUMB=1;; | |
30 | esac | |
31 | for flag in $CFLAGS; do | |
32 | case $flag in | |
33 | -mfpu=neon*) USE_ARM_NEON=1;; | |
34 | esac | |
35 | done | |
36 | ||
47f61ca0 VM |
37 | |
38 | # we don't use git sources | |
39 | patch -p1 -i $SRC/last-commit-position.patch | |
40 | ||
79d44473 VM |
41 | # https://bugs.chromium.org/p/skia/issues/detail?id=6663 |
42 | patch -p1 -d third_party/skia -i $SRC/0001-Clip-FreeType-glyph-bitmap-to-mask.patch | |
43 | ||
44 | # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=853347 | |
45 | patch -p1 -i $SRC/chromium-blink-gcc7.patch | |
46 | ||
47 | # https://bugs.chromium.org/p/chromium/issues/detail?id=614289 | |
48 | patch -p1 -i $SRC/chromium-v8-gcc7.patch | |
49 | ||
50 | # Fixes from Gentoo | |
51 | patch -p1 -i $SRC/chromium-gn-bootstrap-r8.patch | |
52 | ||
53 | mkdir -p third_party/node/linux/node-linux-x64/bin | |
54 | ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ | |
55 | ||
47f61ca0 VM |
56 | # Let's fix the toolchain |
57 | patch -p0 -i $SRC/$name-build-toolchain.patch | |
58 | ||
79d44473 VM |
59 | # Gentoo patch |
60 | patch -p1 -i $SRC/$name-gn-bootstrap-r2.patch | |
61 | ||
47f61ca0 VM |
62 | _gn_args=( |
63 | 'blink_gc_plugin=false' | |
64 | 'clang_use_chrome_plugins=false' | |
65 | 'enable_hangout_services_extension=true' | |
66 | 'enable_nacl=false' | |
79d44473 | 67 | 'enable_swiftshader=false' |
47f61ca0 VM |
68 | 'fatal_linker_warnings=false' |
69 | 'ffmpeg_branding="Chrome"' | |
70 | 'is_clang=false' | |
71 | 'is_debug=false' | |
72 | 'linux_use_bundled_binutils=false' | |
73 | 'proprietary_codecs=true' | |
74 | 'remove_webcore_debug_symbols=true' | |
75 | 'symbol_level=0' | |
76 | 'treat_warnings_as_errors=false' | |
77 | 'use_allocator="none"' | |
78 | 'use_cups=false' | |
79 | 'use_gconf=false' | |
80 | 'use_gnome_keyring=false' | |
81 | 'use_gold=false' | |
82 | 'use_kerberos=false' | |
83 | 'use_pulseaudio=false' | |
84 | 'use_sysroot=false' | |
85 | 'use_system_libjpeg=true' | |
86 | ) | |
87 | ||
79d44473 VM |
88 | export TMPDIR="${PKGMK_WORK_DIR}/temp" |
89 | mkdir -p -m 755 "${TMPDIR}" || die | |
90 | ||
47f61ca0 VM |
91 | python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args="${_gn_args[*]}" |
92 | out/Release/gn gen out/Release --args="${_gn_args[*]}" --script-executable=/usr/bin/python2 | |
0826c9bd | 93 | |
79d44473 VM |
94 | # Ninja, by default, sets the number of jobs to the number of availalble threads |
95 | # local JOBS=$(awk 'BEGIN{RS="-j|--jobs="} NR==2 {print $1}' <<< $MAKEFLAGS) | |
96 | # test -n "$JOBS" && export JOBS="-j $JOBS" | |
97 | JOBS="-j 2" | |
98 | ninja $JOBS -C out/Release chrome chrome_sandbox | |
99 | ||
6a3c14de VM |
100 | install -m 0755 -D out/Release/chrome $PKG/usr/lib/$name/$name |
101 | install -m 4755 -o root -g root -D out/Release/chrome_sandbox $PKG/usr/lib/$name/chrome-sandbox | |
102 | install -m 0644 -D out/Release/*.pak $PKG/usr/lib/$name | |
6a3c14de VM |
103 | install -d $PKG/usr/lib/$name/locales |
104 | install -m 0644 out/Release/locales/en-US.pak $PKG/usr/lib/$name/locales | |
105 | cp -a out/Release/resources $PKG/usr/lib/$name | |
6c6668f9 | 106 | install -m 0644 -D out/Release/chrome.1 $PKG/usr/share/man/man1/$name.1 |
0826c9bd | 107 | |
6a3c14de VM |
108 | # fix v8 natives |
109 | cp -a out/Release/{natives,snapshot}_blob.bin $PKG/usr/lib/$name | |
0826c9bd JB |
110 | |
111 | for size in 22 24 48 128 256; do | |
6a3c14de | 112 | install -m 0644 -D chrome/app/theme/$name/product_logo_${size}.png \ |
47f61ca0 | 113 | $PKG/usr/share/icons/hicolor/${size}x${size}/apps/$name.png |
0826c9bd JB |
114 | done |
115 | ||
2fd1611b VM |
116 | # fix icu installation |
117 | cp -a out/Release/icudtl.dat $PKG/usr/lib/$name | |
118 | ||
6a3c14de VM |
119 | install -d $PKG/usr/share/pixmaps |
120 | ln -sf /usr/share/icons/hicolor/48x48/apps/$name.png $PKG/usr/share/pixmaps/$name.png | |
121 | install -m 0644 -D $SRC/$name.desktop $PKG/usr/share/applications/$name.desktop | |
122 | install -m 0755 -D $SRC/$name.sh $PKG/usr/bin/$name | |
0826c9bd | 123 | } |