blob: 46aef7503c7aef2a047079a154d8ea5ad2fb4c5b (
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
|
# Contributor: William Pitcock <nenolod@dereferenced.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=firefox
pkgver=51.0
_pkgver=$pkgver
_xulver=$pkgver
pkgrel=2
pkgdesc="Firefox web browser"
url="http://www.firefox.com"
arch="all !aarch64"
license="GPL LGPL MPL"
depends=""
depends_dev="
alsa-lib-dev
bzip2-dev
dbus-glib-dev
gconf-dev
gtk+2.0-dev
gtk+3.0-dev
hunspell-dev
icu-dev
libevent-dev
libidl-dev
libjpeg-turbo-dev
libnotify-dev
libogg-dev
libtheora-dev
libvorbis-dev
libvpx-dev
libxt-dev
libxcomposite-dev
mesa-dev
nspr-dev
nss-dev
sqlite-dev
startup-notification-dev
wireless-tools-dev
"
makedepends="$depends_dev
autoconf2.13
automake
bsd-compat-headers
libtool
paxmark
python2
sed
yasm
zip
"
install=""
subpackages="$pkgname-dev"
source="https://ftp.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz
stab.h
0002-Use-C99-math-isfinite.patch
fix-fortify-inline.patch
disable-hunspell_hooks.patch
fix-seccomp-bpf.patch
fix-toolkit.patch
fix-tools.patch
mallinfo.patch
musl-pthread-setname.patch
fix-fortify-system-wrappers.patch
fix-arm-atomics-grsec.patch
fix-arm-version-detect.patch
mozilla-build-arm.patch
disable-moz-stackwalk.patch
libevent.patch
firefox.desktop
firefox-safe.desktop"
builddir="${srcdir}/firefox-$pkgver"/objdir
_mozappdir=/usr/lib/firefox-$pkgver
_mozappdirdev=/usr/lib/firefox-devel-$pkgver
# help our shared-object scanner to find the libs
ldpath="$_mozappdir"
prepare() {
local i
mkdir -p "$builddir"
cd "$builddir"/..
for i in $source; do
case $i in
*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
esac
done
cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
}
build() {
cd "$builddir"
export SHELL=/bin/sh
export BUILD_OFFICIAL=1
export MOZILLA_OFFICIAL=1
export USE_SHORT_LIBNAME=1
# gcc 6
export CXXFLAGS="-fno-delete-null-pointer-checks -fno-schedule-insns2"
# set rpath so linker finds the libs
export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}"
../configure \
--prefix=/usr \
\
--disable-crashreporter \
--disable-elf-hack \
--disable-install-strip \
--disable-jemalloc \
--disable-profiling \
--disable-pulseaudio \
--disable-strip \
--disable-tests \
--disable-updater \
\
--enable-default-toolkit=cairo-gtk3 \
--enable-gio \
--enable-gold=no \
--enable-official-branding \
--enable-optimize="$CFLAGS" \
--enable-pie \
--enable-startup-notification \
--enable-system-ffi \
--enable-system-hunspell \
--enable-system-sqlite \
\
--with-pthreads \
--with-system-bz2 \
--with-system-icu \
--with-system-jpeg \
--with-system-libevent \
--with-system-libvpx \
--with-system-nspr \
--with-system-nss \
--with-system-pixman \
--with-system-png \
--with-system-zlib \
|| return 1
make || return 1
# paxmark outside fakeroot
paxmark -msp dist/bin/xpcshell || return 1
}
package() {
cd "$builddir"
# only used for startupcache creation.
local paxflags="-msp"
paxmark "$paxflags" dist/bin/xpcshell || return 1
make install \
DESTDIR="$pkgdir" \
MOZ_MAKE_FLAGS="$MAKEOPTS" \
|| return 1
install -m755 -d ${pkgdir}/usr/share/applications
install -m755 -d ${pkgdir}/usr/share/pixmaps
local png
for png in ../browser/branding/official/default*.png; do
local i=${_png%.png}
i=${i##*/default}
install -D -m644 "$png" "$pkgdir"/usr/share/icons/hicolor/${i}x${i}/apps/firefox.png || return 1
done
install -m644 "$builddir"/../browser/branding/official/default48.png \
${pkgdir}/usr/share/pixmaps/firefox.png || return 1
install -m644 ${srcdir}/firefox.desktop ${pkgdir}/usr/share/applications/firefox.desktop
install -m644 ${srcdir}/firefox-safe.desktop ${pkgdir}/usr/share/applications/firefox-safe.desktop
# firefox currently does not work with mprotect. disable it for now
local paxflags="-mp"
[ "$CARCH" = "x86" ] && paxflags="-msp"
paxmark "$paxflags" "$pkgdir"/$_mozappdir/firefox || return 1
paxmark "$paxflags" "$pkgdir"/$_mozappdir/plugin-container || return 1
# xulrunner stub launcher has changed to using a symlink overlay...
# go figure
ln -sf /usr/lib/xulrunner-${_xulver} ${pkgdir}/$_mozappdir/xulrunner
# launcher as symlink is broken from firefox-7.0
rm "$pkgdir"/usr/bin/firefox || return 1
libgl=$(scanelf -qF '#F%S' /usr/lib/libGL.so)
cat > "$pkgdir"/usr/bin/firefox << __EOF__
#!/bin/sh
exec $_mozappdir/firefox "\$@"
__EOF__
chmod 755 "$pkgdir"/usr/bin/firefox
# install our vendor prefs
install -d "$pkgdir"/$_mozappdir/browser/defaults/preferences
cat >> "$pkgdir"/$_mozappdir/browser/defaults/preferences/firefox-branding.js <<- EOF
// Use LANG environment variable to choose locale
pref("intl.locale.matchOS", true);
// Disable default browser checking.
pref("browser.shell.checkDefaultBrowser", false);
// Don't disable our bundled extensions in the application directory
pref("extensions.autoDisableScopes", 11);
pref("extensions.shownSelectionUI", true);
EOF
# remove copied, huge, libraries
rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libmozjs.so
rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libmozalloc.so
rm -f "$pkgdir"/${_mozappdirdev}/sdk/lib/libxul.so
}
dev() {
mkdir -p "$subpkgdir"/${_mozappdirdev%/*}
mv "$pkgdir"/${_mozappdirdev} "$subpkgdir"/${_mozappdirdev%/*} \
|| return 1
default_dev
}
md5sums="733e8503d2241ef44dad1911085b60db firefox-51.0.source.tar.xz
4383d038b8d8411ea46f4a109197c19e stab.h
6ab77b80c8c7d6fd07ab53c54561f4df 0002-Use-C99-math-isfinite.patch
f29e0036edc7b3a4158a82fa97bde500 fix-fortify-inline.patch
16b597e346d2172b4dea7b47382017f4 disable-hunspell_hooks.patch
aed3b88014fbfbe73db79851e52ca7fa fix-seccomp-bpf.patch
d46da3e75dfc3abd38d6191d26fea3f1 fix-toolkit.patch
bc81fa31947912c661c6a9c592ff1e46 fix-tools.patch
0db0cce8350d59a91ae2c4f0400f7146 mallinfo.patch
44b6255ed6a0bffb8848e549afa642f3 musl-pthread-setname.patch
9aba3811121f113fe547947591802d2b fix-fortify-system-wrappers.patch
61bd5cee35cb0c0395f43fcf599d0749 fix-arm-atomics-grsec.patch
d209d8fc7c4f06d94e4bda097c0178bf fix-arm-version-detect.patch
308ba5b54116a035fe68d0d5c3974857 mozilla-build-arm.patch
5d058c89f6e4384f78068a6a983eb224 disable-moz-stackwalk.patch
bc38c397e184c71166ea08ff402a19c5 libevent.patch
ba96924ece1d77453e462429037a2ce5 firefox.desktop
6f38a5899034b7786cb1f75ad42032b8 firefox-safe.desktop"
sha256sums="6535b7a69c28e3613a815801aa2d9416d133dd92e17e7c8eb68d9776ce9eebea firefox-51.0.source.tar.xz
960d82bbfdc88c95f5cb4f2e1c1bf23dae7519b3b7203914d7b3ddbff1ba4c28 stab.h
080a55182b865471a86fa4b70a66ed9495f1e536f7fdc4060cb8c675b4749c6e 0002-Use-C99-math-isfinite.patch
ecf808ef1bc2920f6f7a4786fafb46c74e8a2c3bc628f28f10d6e8e1a265e609 fix-fortify-inline.patch
3325749c2554aa24bb376358153fa2f6ca28809e9db2fa5308620e3689aa24b2 disable-hunspell_hooks.patch
517d95225b3323c373c11da6ab867deb76ffdb0b50c1762bdd893abd9b39d4c9 fix-seccomp-bpf.patch
485297df325002728c15a87077ef6f762fa057265ca8d977c13fa0ffdc4028dd fix-toolkit.patch
b4caebb908f91f08fc7f23f1326165ede10a0a769290c0898b1b8a5b3a8f88e1 fix-tools.patch
2f564fa5f347f3c7f20d589ef273f000ca9c9aeca2c6ad0fb5b15bfc715d8b81 mallinfo.patch
e0e85f0448fda03e1d29fbf71e094824f2a0ce538c6bf44e09545402f81e7f96 musl-pthread-setname.patch
cd19195cb4c316ad9f7d377cd8581218c888863b1bc4d112c97f48a4425fb946 fix-fortify-system-wrappers.patch
190113423b892b881c9ab044d16087b34f512b636eb759e0f6fec1356836596b fix-arm-atomics-grsec.patch
1c1ca7a60bcb571f3d2894a9b6ced9c57705f7b737e1e64a9cd451f91c2d3705 fix-arm-version-detect.patch
6f5f5e4d2a17182b72b248e896450235ccdaf63252fdb89a8deb55da8adc9be3 mozilla-build-arm.patch
17ad8d3e3b1b93cf29f0360f52cb033771c1b57aa26cce8b1d64444500a54b09 disable-moz-stackwalk.patch
4412f69c038931ff0e491dd63ff23a367c913c647852dbe77672c01869002b74 libevent.patch
b571c4a49884a3c98806246c9cc3e60c73d5a8f4aeb7f96217db0be1d6210eda firefox.desktop
4b6de45753856a890f4482055666e77f9b01bdfb7e0df08bafaa3a4d9937eed3 firefox-safe.desktop"
sha512sums="4406f840a7a2b4e76a74e846d702b717618fb5b677f1c6df864c3428033dd22aad295d656f1fc57e581fd202d894c5483a16691a60b6ca7710315b157b812467 firefox-51.0.source.tar.xz
0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h
7e123144bc2b1efed149dfb41b255c447d43ea93a63ebe114d01945e6a6d69edc2f2a3c36980a93279106c1842355851b8b6c1d96679ee6be7b9b30513e0b1a8 0002-Use-C99-math-isfinite.patch
09bc32cf9ee81b9cc6bb58ddbc66e6cc5c344badff8de3435cde5848e5a451e0172153231db85c2385ff05b5d9c20760cb18e4138dfc99060a9e960de2befbd5 fix-fortify-inline.patch
0fcc647af53a3ce21c2bc36e5631eb0935e7243ebb3ab59b5719542cc54a6ac023a4a857b43b75756efb9ed80c0aecaa94dc5679a3b3792f82e87bf2c1af82e1 disable-hunspell_hooks.patch
70863b985427b9653ce5e28d6064f078fb6d4ccf43dd1b68e72f97f44868fc0ce063161c39a4e77a0a1a207b7365d5dc7a7ca5e68c726825eba814f2b93e2f5d fix-seccomp-bpf.patch
a2925045154f4fd34e5fc056656f4f9da100341529e5d4104d249154db0c7863384083f421ce6e47e0f20566a8b20787fa35444c7933c03cd03f96f06dcd4532 fix-toolkit.patch
7d7531a0dbb1b3c2f4cbf155168e750f274dbf19cd767d6395d479ef1626a651e714b41e353465d9d58239dc15256d83eeb1bf06c6adf47c521a0db5ee88bb50 fix-tools.patch
bdcd1b402d2ec94957ba5d08cbad7b1a7f59c251c311be9095208491a05abb05a956c79f27908e1f26b54a3679387b2f33a51e945b650671ad85c0a2d59a5a29 mallinfo.patch
3f535b1e4e9a5a0506ef6f6d9427a84fae1efa3c8e8d6b25b21046d2d04c132bde1a7a98e415067e5c542f699d89249b8cc3d925e0be4e96db498037429691ef musl-pthread-setname.patch
2a967e4619fd89a046bd40be7fdcef646fcb1eba5e47afc96aa1d59c25bcc8747cb07baee6c11f3b803db0981aced181534b806778e4d21e74958f5f4d74c784 fix-fortify-system-wrappers.patch
ed0d344c66fc8e1cc83a11e9858b32c42e841cbeedd9eb9438811e9fcc3593dc824a8336d00058d55836cedc970aeadd6a82c6dcd7bc0fb746e564d8b478cc6c fix-arm-atomics-grsec.patch
015e1ff6dbf920033982b5df95d869a0b7bf56c6964e45e50649ddf46d1ce09563458e45240c3ecb92808662b1300b67507f7af272ba184835d91068a9e7d5b0 fix-arm-version-detect.patch
e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18 mozilla-build-arm.patch
4797d2d89ac63a57abb826b8ea9f751314ce66946194033deb9d78c2ff377b88106fd2c7bc5034dc13ad03dd5085b1893c3ccae1a9e63fde35655bb0921f7188 disable-moz-stackwalk.patch
8419f5b2632bfaea969025335563f68b2e036effb18291f692e7eef1f2a746b5499b6a3b1e9ef1ed0909f5a9bb20bbe4fa62145514799419067e0c5c9699a5ef libevent.patch
f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454 firefox.desktop
5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed firefox-safe.desktop"
|