blob: 02c4e1ff704120d0f236ec29ba907dc5755347f2 (
plain) (
blame)
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
|
# Contributor: Molly Miller <adelie@m-squa.red>
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=firefox-esr
pkgver=68.2.0
pkgrel=0
pkgdesc="Firefox web browser (extended support release)"
url="https://www.mozilla.org/firefox/"
arch="all"
options="!check" # Tests disabled
license="MPL-2.0"
depends=""
# moz build system stuff
# python deps
# system-libs
# actual deps
makedepends="
autoconf2.13 cargo cbindgen clang llvm8-dev node ncurses-dev
perl rust rust-stdlib cmd:which
ncurses-dev openssl-dev
alsa-lib-dev bzip2-dev icu-dev libevent-dev libffi-dev libpng-dev
libjpeg-turbo-dev nspr-dev nss-dev pulseaudio-dev zlib-dev
dbus-glib-dev fts-dev gconf-dev gtk+3.0-dev hunspell-dev
libnotify-dev libsm-dev libxcomposite-dev libxdamage-dev
libxrender-dev libxt-dev nasm nss-static sqlite-dev
startup-notification-dev unzip yasm zip gtk+2.0-dev
"
_py2ver="2.7.16"
_ffxver="$pkgver"'esr'
source="https://ftp.mozilla.org/pub/firefox/releases/$_ffxver/source/firefox-$_ffxver.source.tar.xz
https://www.python.org/ftp/python/$_py2ver/Python-$_py2ver.tar.xz
mozconfig
bad-google-code.patch
disable-gecko-profiler.patch
fix-mutex-build.patch
fix-seccomp-bpf.patch
mozilla-build-arm.patch
ppc32-fix.patch
rust-32bit.patch
rust-config.patch
shut-up-warning.patch
stackwalk-x86-ppc.patch
webrtc-broken.patch
yuv-be.patch
firefox.desktop
firefox-safe.desktop
"
builddir="$srcdir/firefox-$pkgver"
_mozappdir=/usr/lib/firefox
ldpath="$_mozappdir"
# secfixes: firefox-esr
# 68.0.2-r0:
# - CVE-2019-11733
# 68.1.0-r0:
# - CVE-2019-9812
# - CVE-2019-11735
# - CVE-2019-11736
# - CVE-2019-11738
# - CVE-2019-11740
# - CVE-2019-11742
# - CVE-2019-11743
# - CVE-2019-11744
# - CVE-2019-11746
# - CVE-2019-11747
# - CVE-2019-11748
# - CVE-2019-11749
# - CVE-2019-11750
# - CVE-2019-11751
# - CVE-2019-11752
# - CVE-2019-11753
# 68.2.0-r0:
# - CVE-2019-15903
# - CVE-2019-11757
# - CVE-2019-11758
# - CVE-2019-11759
# - CVE-2019-11760
# - CVE-2019-11761
# - CVE-2019-11762
# - CVE-2019-11763
# - CVE-2019-11764
unpack() {
default_unpack
[ -z $SKIP_PYTHON ] || return 0
msg "Killing all remaining hope for humanity and building Python 2..."
cd "$srcdir/Python-$_py2ver"
[ -d ../python ] && rm -r ../python
# 19:39 <+solar> just make the firefox build process build its own py2 copy
# 20:03 <calvin> TheWilfox: there's always violence
sed -e 's/é/e/g' /etc/os-release > "$srcdir"/os-release
export UNIXCONFDIR="$srcdir"
./configure --prefix="$srcdir/python" --with-ensurepip=install
make -j $JOBS
# 6 tests failed:
# test__locale test_os test_posix test_re test_strptime test_time
# make test
make -j $JOBS install
# firefox's bundled pipenv and pip aren't new enough to support
# configurable UNIXCONFDIR
export PATH="$srcdir/python/bin:$PATH"
pip2 install virtualenv pipenv
}
prepare() {
cd "$builddir"
default_prepare
cp "$srcdir"/mozconfig "$builddir"/mozconfig
echo "ac_add_options --enable-optimize=\"$CFLAGS\"" >> "$builddir"/mozconfig
echo "ac_add_options --host=\"$CHOST\"" >> "$builddir"/mozconfig
echo "ac_add_options --target=\"$CTARGET\"" >> "$builddir"/mozconfig
# too much memory
if [ -z "$JOBS" ] || [ $JOBS -ge 32 ]; then
JOBS=32
fi
echo "mk_add_options MOZ_MAKE_FLAGS=\"-j$JOBS\"" >> "$builddir"/mozconfig
case "$CARCH" in
pmmx|x86*)
echo "ac_add_options --disable-elf-hack" >> "$builddir"/mozconfig
;;
ppc)
echo "ac_add_options --disable-webrtc" >> "$builddir"/mozconfig;
export LDFLAGS="$LDFLAGS -latomic"
;;
esac
rm "$builddir"/third_party/python/virtualenv/virtualenv_support/pip*.whl
rm "$builddir"/third_party/python/virtualenv/virtualenv_support/setuptools*.whl
cp "$srcdir/Python-$_py2ver"/Lib/ensurepip/_bundled/*.whl \
"$builddir/third_party/python/virtualenv/virtualenv_support"
}
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}"
export UNIXCONFDIR="$srcdir"
local extra_flags=""
[ "$CARCH" = "s390x" ] && extra_flags="--disable-startupcache"
export PATH="$srcdir/python/bin:$PATH"
./mach build
}
run() {
cd "$builddir"/obj-$CHOST/dist/bin
export LD_LIBRARY_PATH=.
./firefox -no-remote -profile "$builddir"/obj-$CHOST/tmp/profile-default
}
package() {
cd "$builddir"
export PATH="$srcdir/python/bin:$PATH"
DESTDIR="$pkgdir" ./mach install
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
done
install -m644 "$builddir"/browser/branding/official/default48.png \
${pkgdir}/usr/share/pixmaps/firefox.png
install -m644 ${startdir}/firefox.desktop \
${pkgdir}/usr/share/applications/firefox.desktop
install -m644 ${startdir}/firefox-safe.desktop \
${pkgdir}/usr/share/applications/firefox-safe.desktop
# 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
}
sha512sums="f6522ca6b9efa3fdeb866912ab9cb904eaace5806c606d5721cba23aebd679885670011c743ca8d381b579b728077182dc766f9b6d3b31ccf51c3eb583c547ee firefox-68.2.0esr.source.tar.xz
16e814e8dcffc707b595ca2919bd2fa3db0d15794c63d977364652c4a5b92e90e72b8c9e1cc83b5020398bd90a1b397dbdd7cb931c49f1aa4af6ef95414b43e0 Python-2.7.16.tar.xz
f82758d279cd12a1b30a9b36ac3c265cfb137df3db7ae185f2c538504e46fa70ace1b051fce847356851062b5cc9cd741a6d33d54f8cd103aa0c8272cb19ccc4 mozconfig
ace7492f4fb0523c7340fdc09c831906f74fddad93822aff367135538dacd3f56288b907f5a04f53f94c76e722ba0bab73e28d83ec12d3e672554712e6b08613 bad-google-code.patch
9c14041f0295682b8dbeb6d5b58a2f9dc0a2dc8bef995a0f7e30fa0b17c51aa0f6748f80fb8584169db7687e2eeb404dff68a09158ae56a5f24eef30685dd2b3 disable-gecko-profiler.patch
c0b2bf43206c2a5154e560ef30189a1062ae856861b39f52ce69002390ff9972d43e387bfd2bf8d2ab3cac621987bc042c8c0a8b4cf90ae05717ca7705271880 fix-mutex-build.patch
70863b985427b9653ce5e28d6064f078fb6d4ccf43dd1b68e72f97f44868fc0ce063161c39a4e77a0a1a207b7365d5dc7a7ca5e68c726825eba814f2b93e2f5d fix-seccomp-bpf.patch
e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18 mozilla-build-arm.patch
06a3f4ee6d3726adf3460952fcbaaf24bb15ef8d15b3357fdd1766c7a62b00bd53a1e943b5df7f4e1a69f4fae0d44b64fae1e027d7812499c77894975969ea10 ppc32-fix.patch
7c615703dc9b8427eeadd13bc9beda02e1c3d986cac1167feaf48fdfdcc15b7456460d4d58f301054cf459242ee75bbcd76bf67e26c2a443bc5655975d24ca1b rust-32bit.patch
45613d476e85fe333ef8091acce4806803953c1a99de4f03ff577cf20c5a1a3d635d0589e1490da104ef80721f4f1b1d35045af3c6892c1a468fa84095f27ad8 rust-config.patch
39ddb15d1453a8412275c36fc8db3befc69dffd4a362e932d280fb7fd1190db595a2af9b468ee49e0714f5e9df6e48eb5794122a64fa9f30d689de8693acbb15 shut-up-warning.patch
452b47b825294779f98ed46bc1065dad76b79ff453521ef049934a120f349c84a1c863b16af1828fe053059823da9690ec917c055ae02dcc5c80c54cad732448 stackwalk-x86-ppc.patch
be68f1387aa6677875a67106e2d6a9db470c934c943056d3b53391a63034235108e41945c53957db427d9cdc59f0aa2f9e6f2f8cd862e090e512a3ab9cbcc9a8 webrtc-broken.patch
2dfb986089c9afcd6a895302c8a5a1d299cffa4cc3c73fce784c29d348f362c1e7570109c4f09d328275d8549a96531736dd976411c15956b385d7fb211b8af2 yuv-be.patch
f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454 firefox.desktop
5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed firefox-safe.desktop"
|