APKBUILD 9.31 KB
Newer Older
Ariadne Conill's avatar
Ariadne Conill committed
1
# Contributor: William Pitcock <nenolod@dereferenced.org>
2
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
Ariadne Conill's avatar
Ariadne Conill committed
3
pkgname=firefox
4
pkgver=31.6.0
Natanael Copa's avatar
Natanael Copa committed
5
_pkgver=$pkgver
Natanael Copa's avatar
Natanael Copa committed
6
_xulver=$pkgver
7
pkgrel=0
8
pkgdesc="Firefox web browser"
9
url="https://www.mozilla.org/en-US/firefox/organizations/faq/"
Ariadne Conill's avatar
Ariadne Conill committed
10 11
arch="all"
license="GPL LGPL MPL"
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
depends=""
depends_dev="
	alsa-lib-dev
	bzip2-dev
	dbus-glib-dev
	gst-plugins-base1-dev
	gstreamer1-dev
	gtk+2.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
	autoconf
	automake
42
	bsd-compat-headers
43
	libtool
Timo Teräs's avatar
Timo Teräs committed
44
	paxmark
45 46 47 48 49 50
	python
	sed
	yasm
	zip
	"

Ariadne Conill's avatar
Ariadne Conill committed
51
install=""
52
subpackages="$pkgname-dbg $pkgname-dev"
53
source="ftp://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.bz2
Ariadne Conill's avatar
Ariadne Conill committed
54
	mozconfig
55
	vendor.js
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70

	0002-Use-C99-math-isfinite.patch
	fix-arm-atomics-grsec.patch
	fix-ipc.patch
	fix-media-webrtc.patch
	fix-media.patch
	fix-netwerk.patch
	fix-toolkit.patch
	fix-tools.patch
	getchar.patch
	mozilla-build-arm.patch
	stat.patch
	stab.h

	rhbz-966424.patch
71
	fix-fortify-inline.patch
72

73 74
	firefox.desktop
	firefox-safe.desktop"
Ariadne Conill's avatar
Ariadne Conill committed
75

76
_builddir="${srcdir}/mozilla-esr${pkgver%%.*}"
Natanael Copa's avatar
Natanael Copa committed
77
_mozappdir=/usr/lib/firefox-$pkgver
78 79 80 81
_mozappdirdev=/usr/lib/firefox-devel-$pkgver

# help our shared-object scanner to find the libs
ldpath="$_mozappdir"
Natanael Copa's avatar
Natanael Copa committed
82

Ariadne Conill's avatar
Ariadne Conill committed
83 84 85
prepare() {
	local i

86
	cd "$_builddir" || return 1
Ariadne Conill's avatar
Ariadne Conill committed
87 88 89 90 91 92

	for i in $source; do
		case $i in
		*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
		esac
	done
93
	cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/
Ariadne Conill's avatar
Ariadne Conill committed
94 95 96 97 98 99 100

	cp "${srcdir}/mozconfig" .mozconfig
}

build() {
	cd "$_builddir"

Natanael Copa's avatar
Natanael Copa committed
101 102 103
	# mozilla's buildsystem is on drugs
	export CFLAGS="$(echo $CFLAGS | sed -e 's/-Wall//' -e 's/-fexceptions/-fno-exceptions/g')"
	export CXXFLAGS="$CFLAGS"
Ariadne Conill's avatar
Ariadne Conill committed
104

105 106 107 108
	# set rpath so linker finds the libs
	export LDFLAGS="$LDFLAGS -Wl,-rpath,${_mozappdir}"

	make -f client.mk build \
Natanael Copa's avatar
Natanael Copa committed
109
		STRIP="/bin/true" \
110
		|| return 1
Ariadne Conill's avatar
Ariadne Conill committed
111 112 113 114
}

package() {
	cd "$_builddir"
115 116 117

	# only used for startupcache creation.
	local paxflags="-msp"
Timo Teräs's avatar
Timo Teräs committed
118
	paxmark -c $paxflags */dist/bin/xpcshell || return 1
119

120 121 122 123
	make -j1 -f client.mk install \
		DESTDIR="$pkgdir" \
		MOZ_MAKE_FLAGS="$MAKEOPTS" \
		|| return 1
124 125 126

	install -m755 -d ${pkgdir}/usr/share/applications
	install -m755 -d ${pkgdir}/usr/share/pixmaps
Natanael Copa's avatar
Natanael Copa committed
127 128
	install -m644 "$_builddir"/browser/branding/official/default48.png \
		${pkgdir}/usr/share/pixmaps/firefox.png || return 1
129 130
	install -m644 ${srcdir}/firefox.desktop ${pkgdir}/usr/share/applications/firefox.desktop
	install -m644 ${srcdir}/firefox-safe.desktop ${pkgdir}/usr/share/applications/firefox-safe.desktop
131 132

	# firefox currently does not work with mprotect. disable it for now
Natanael Copa's avatar
Natanael Copa committed
133
	local paxflags="-mp"
134 135
	[ "$CARCH" = "x86" ] && paxflags="-msp"

Timo Teräs's avatar
Timo Teräs committed
136
	paxmark -c $paxflags "$pkgdir"/$_mozappdir/firefox || return 1
Natanael Copa's avatar
Natanael Copa committed
137 138 139 140 141 142 143

	# 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
144
	libgl=$(scanelf -qF '#F%S' /usr/lib/libGL.so)
Natanael Copa's avatar
Natanael Copa committed
145 146
	cat > "$pkgdir"/usr/bin/firefox << __EOF__
#!/bin/sh
Ariadne Conill's avatar
Ariadne Conill committed
147

148 149 150 151
# as a workaround for libGL's initial-exec TLS we preload libgl
# https://bugs.freedesktop.org/show_bug.cgi?id=35268

LD_PRELOAD=$libgl exec $_mozappdir/firefox "\$@"
Natanael Copa's avatar
Natanael Copa committed
152 153
__EOF__
	chmod 755 "$pkgdir"/usr/bin/firefox
154 155

	# install our vendor prefs
156
	install -d "$pkgdir"/$_mozappdir/browser/defaults/preferences
Natanael Copa's avatar
Natanael Copa committed
157
	cat "$srcdir"/vendor.js >> "$pkgdir"/$_mozappdir/browser/defaults/preferences/firefox-branding.js
158 159 160 161 162

	# 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
Ariadne Conill's avatar
Ariadne Conill committed
163 164
}

165 166 167 168 169
dev() {
	mkdir -p "$subpkgdir"/${_mozappdirdev%/*}
	mv "$pkgdir"/${_mozappdirdev} "$subpkgdir"/${_mozappdirdev%/*} \
		|| return 1
	default_dev
170 171
}

172
md5sums="7763129c3bdc393c1f3b4a917ac48ee4  firefox-31.6.0esr.source.tar.bz2
173
1f4c60e662ed93784431bd06c5141719  mozconfig
174
1515663477ce427cbdc42f04d8d5ca4e  vendor.js
175 176 177 178 179 180 181 182 183 184 185 186 187
f43c1f0ae57aa8289b130c6de8caf3ce  0002-Use-C99-math-isfinite.patch
b18bd948aae828e5c8f5f63e440c96d6  fix-arm-atomics-grsec.patch
38a9c0d5be155164d50a956ac131d991  fix-ipc.patch
ce4839160acf3986a2118326ed2b8444  fix-media-webrtc.patch
960d56439a375998ce4e4597bf245375  fix-media.patch
170b8e7f8cab21f0965f226c291a57f9  fix-netwerk.patch
296954be4c6d6bfcc24d0a46a2bd7d74  fix-toolkit.patch
2279c55a85013fc1c0d01427768edd4d  fix-tools.patch
507742325de8687529e4e81e31132ddf  getchar.patch
308ba5b54116a035fe68d0d5c3974857  mozilla-build-arm.patch
d9a2245b93a7f5855ee029b5fa44e4e9  stat.patch
4383d038b8d8411ea46f4a109197c19e  stab.h
15ebeeeb6823c185f4fed98e9bf1b786  rhbz-966424.patch
188
4272fe0d076566e16daf67faee4090b0  fix-fortify-inline.patch
189 190
ba96924ece1d77453e462429037a2ce5  firefox.desktop
6f38a5899034b7786cb1f75ad42032b8  firefox-safe.desktop"
191
sha256sums="88ad45202a7aee9c43378879863b023270aa29463d312f396a78a6e9cdcbf5c3  firefox-31.6.0esr.source.tar.bz2
192
23c2b4535ce83c92ba978e15ce328c9f140def155d12523c00df30baf41b98dc  mozconfig
193
d72ca759792cc8c88efc664d30087a139fed7fc3d7d058e4cd9ab287bb80ea46  vendor.js
194 195 196 197 198 199 200 201 202 203 204 205 206
2f319883300f2aef180bfb80221151fcbb29344a5a0a086d6ad1d80005daf039  0002-Use-C99-math-isfinite.patch
ff7cb3c9c4712e0517a6f11e3bf08e9b0d13dbe6384930bdc7f55b1ceed039b5  fix-arm-atomics-grsec.patch
059a69ff0dbceeaa5bbb1446aa4233bc578a047fcad22c0efa27dc64bbd72980  fix-ipc.patch
3e53af8beff122bcf5790c148fb51f41f44b6fe5dd5799777b70c3542c32cb93  fix-media-webrtc.patch
d582712c28a26679d728d21d2ef8964d119182edaf580a948f57a9e808ccc5cf  fix-media.patch
4a2f8ff5e9b1359541eba8854098cee2caeb40ad9dbdc4b8fcf48b47ea8ca2d2  fix-netwerk.patch
666883189dba3f4c7ba6b5bc85026c85bcb84477c2d5ba00d6414ddd0f744368  fix-toolkit.patch
60ed0870119480994c6c455034c52dd21b8482b7617c3a0032e3b2abf4467e4d  fix-tools.patch
d14357bf44f702d94b8d3ed79bdf81f6271370745c1ac8fa83522bd98be4adc4  getchar.patch
6f5f5e4d2a17182b72b248e896450235ccdaf63252fdb89a8deb55da8adc9be3  mozilla-build-arm.patch
a0f8a0fa9977ee43f3853b6c6bf5a506fdfabdfa32b4279e0ac3d7a3078f34cc  stat.patch
960d82bbfdc88c95f5cb4f2e1c1bf23dae7519b3b7203914d7b3ddbff1ba4c28  stab.h
a50d15a640f230a2c66e1eb2afd2bed4117605d0f1591dcfec1ca30f0bc2352f  rhbz-966424.patch
207
bcd8759804a52ffd542292f28d0aafc6f4f1f9408fe0f36adb9ba11fe3b85afc  fix-fortify-inline.patch
208 209
b571c4a49884a3c98806246c9cc3e60c73d5a8f4aeb7f96217db0be1d6210eda  firefox.desktop
4b6de45753856a890f4482055666e77f9b01bdfb7e0df08bafaa3a4d9937eed3  firefox-safe.desktop"
210
sha512sums="6b81059b3a38f2a264cf5bea665ad107e5439a8614644fd3a910034381ab6c0635cea50aa30bd83fec8d8cfebea76c3480eee3a96dfdcbb606c1dd62ef3880a4  firefox-31.6.0esr.source.tar.bz2
211
e14b4a646230f7a752ef864b0e6a074fdac74d6c4abde2c31656eb10ac6f002a5c664d257bf3f4bd22544f10103e38d5fae49f84fcaae402b81940e72bcfe0e5  mozconfig
212
93570f821e59af4d233fc4b1df85e1d145a5e041ad402fd72921987a5a2f5218538d7a13d59bbf0bda5e7df1d5281407674a3765625936340106d1185b15b5d8  vendor.js
213 214 215 216 217 218 219 220 221 222 223 224 225
9a6666a3b637549411ea562c9d0d6d617ed48327d0f9e4e64d27f43774c218e6c5cf5fa99d4b339a5a0f89b854a18079392eba0dafc3419adbd4cdd5d71d3f26  0002-Use-C99-math-isfinite.patch
4311464ae52b6d2e2b02c789c6d5fca9b3c211888a983aa609a62c2f2554516fea735ea90673387c69b38a30aa8453ed79faa44b5163df4293880d40df676b2d  fix-arm-atomics-grsec.patch
3f360d4231355c268fc52e0fedbce5c4f73ad8d60d9424af8641733c0ae181e6226056e605f0d6653b729a9c8e4abe97a9fb2face25938651a7498d5753cea8b  fix-ipc.patch
a5d00272fc9e2b3a786f5891bac11b04ffaf6dfcbd2b30cba42286b79d12fefb6cb9c81e6d75987ab3ee19d12af20a074c77edc655bd470be06f5025eb38e609  fix-media-webrtc.patch
58e0e7c1c368530b58aa143be0403d733c4b82cc1a9964c925278e5eff147b2ec2c8c34a6cb217387cb7e9f2ca13c2e299745015edaac510704963282dc68e79  fix-media.patch
8a896ee4d1465a844351cec84217de1a28b9f27bfc1e34cc71368664b5b8804bd66bdcadc78c78ee365abd1d0cafed1e6c568045c93cb78ac94e2818f503d58c  fix-netwerk.patch
72459754016f254c58d56d9a8719897fa8da9cf969eaa498e1e755457942d3f0ac56e4abd3f6a66ef924c94aa034d0af18a1fb653926b2496f0c2615fdb24c5e  fix-toolkit.patch
426b57ce698de3eecd1b52f2998974c4e0b5922584b09b554d436c61fee039d1f86345e746fee067801ebbf50815c4d19b96266a2ed72a35ae5c3edbdb57bba1  fix-tools.patch
18f0696bf4d032c83041110b83ae6531b48474a778fc1deade3b06ba2ae1bfcc9891059287bfb78317c2f5ddc88f5b7ce957312acdb63d4902a57e0b40eb6520  getchar.patch
e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18  mozilla-build-arm.patch
1a8754830dbbf5432a611504c957c4ff24fdc31dc1a5ee7cdd4240bc5c084baa26a24f18527ff398ec81e56a36aee31732138243cf22a6bab89703656ff463e7  stat.patch
0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127  stab.h
06ededcd196af98b77991dcba3b710b0dfc061404adb4676fcc380be80410a2621f64d67257b0aefdf36f566e0ea1294b5405b7b4db43e83281a1c64d02da579  rhbz-966424.patch
226
0f7a6b71dd25048b353cafa8147b56a90e0c324e78a721ea4c0777bd6c193a985591b936209f026bc3aa6f64f8b749a27a212c51754af48f8f237bd7eb59faa2  fix-fortify-inline.patch
227 228
f3b7c3e804ce04731012a46cb9e9a6b0769e3772aef9c0a4a8c7520b030fdf6cd703d5e9ff49275f14b7d738fe82a0a4fde3bc3219dff7225d5db0e274987454  firefox.desktop
5dcb6288d0444a8a471d669bbaf61cdb1433663eff38b72ee5e980843f5fc07d0d60c91627a2c1159215d0ad77ae3f115dcc5fdfe87e64ca704b641aceaa44ed  firefox-safe.desktop"