CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
chromium: updated to 60.0.3112.78
[ports/opt-arm.git] / chromium / Pkgfile
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
6 # Depends on: dbus-glib gperf gtk libevent libexif libgcrypt mesa3d ninja nodejs nss pciutils speech-dispatcher xorg-libxscrnsaver xorg-libxt xorg-libxtst yasm
7
8 name=chromium
9 version=60.0.3112.78
10 release=1
11 source=(http://commondatastorage.googleapis.com/$name-browser-official/$name-$version.tar.xz \
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)
17
18 build() {
19 cd $name-$version
20
21 export CFLAGS="-O2 -pipe -mfloat-abi=hard"
22
23 export CFLAGS="$CFLAGS $(pkg-config --cflags nspr) -lpthread"
24 export LDFLAGS="$LDFLAGS $(pkg-config --libs nspr)"
25
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
37
38 # we don't use git sources
39 patch -p1 -i $SRC/last-commit-position.patch
40
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
56 # Let's fix the toolchain
57 patch -p0 -i $SRC/$name-build-toolchain.patch
58
59 # Gentoo patch
60 patch -p1 -i $SRC/$name-gn-bootstrap-r2.patch
61
62 _gn_args=(
63 'blink_gc_plugin=false'
64 'clang_use_chrome_plugins=false'
65 'enable_hangout_services_extension=true'
66 'enable_nacl=false'
67 'enable_swiftshader=false'
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
88 export TMPDIR="${PKGMK_WORK_DIR}/temp"
89 mkdir -p -m 755 "${TMPDIR}" || die
90
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
93
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
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
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
106 install -m 0644 -D out/Release/chrome.1 $PKG/usr/share/man/man1/$name.1
107
108 # fix v8 natives
109 cp -a out/Release/{natives,snapshot}_blob.bin $PKG/usr/lib/$name
110
111 for size in 22 24 48 128 256; do
112 install -m 0644 -D chrome/app/theme/$name/product_logo_${size}.png \
113 $PKG/usr/share/icons/hicolor/${size}x${size}/apps/$name.png
114 done
115
116 # fix icu installation
117 cp -a out/Release/icudtl.dat $PKG/usr/lib/$name
118
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
123 }