# Contributor: William Pitcock # Maintainer: Natanael Copa pkgname=firefox pkgver=51.0 _pkgver=$pkgver _xulver=$pkgver pkgrel=1 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"