diff options
Diffstat (limited to 'PKGBUILD')
-rw-r--r-- | PKGBUILD | 258 |
1 files changed, 107 insertions, 151 deletions
@@ -1,211 +1,167 @@ -# $Id$ -# Maintainer : Figue <ffigue@gmail.com> +# Maintainer: Muflone http://www.muflone.com/contacts/english/ +# Contributor: Figue <ffigue@gmail.com> # Contributor : Ionut Biru <ibiru@archlinux.org> # Contributor: Jakub Schmidtke <sjakub@gmail.com> pkgname=firefox-esr52 pkgver=52.9.0 -pkgrel=1 -pkgdesc="Standalone web browser from mozilla.org, Extended Support Release 52.x" -arch=(x86_64) -license=(MPL GPL LGPL) -url="https://www.mozilla.org/en-US/firefox/organizations/" -depends=(gtk3 gtk2 mozilla-common libxt startup-notification mime-types dbus-glib alsa-lib ffmpeg - libvpx libevent nss hunspell sqlite ttf-font icu) -makedepends=(unzip zip diffutils python2 yasm mesa imake gconf libpulse inetutils xorg-server-xvfb - autoconf2.13 rust) +pkgrel=2 +pkgdesc='Standalone web browser from mozilla.org, Extended Support Release 52.x with NPAPI support' +arch=('x86_64') +license=('MPL' 'GPL' 'LGPL') +url='https://www.mozilla.org/en-US/firefox/organizations/' +depends=('gtk3' 'gtk2' 'mozilla-common' 'libxt' 'startup-notification' 'mime-types' + 'dbus-glib' 'alsa-lib' 'ffmpeg' 'libvpx' 'libevent' 'nss' 'hunspell' + 'sqlite' 'ttf-font' 'icu') +makedepends=('unzip' 'zip' 'diffutils' 'python2' 'yasm' 'mesa' 'imake' 'gconf' + 'libpulse' 'inetutils' 'xorg-server-xvfb' 'autoconf2.13' 'rust') optdepends=('networkmanager: Location detection via available WiFi networks' 'libnotify: Notification integration' 'speech-dispatcher: Text-to-Speech') -provides=(firefox) -conflicts=(firefox) -options=(!emptydirs !makeflags) -source=(https://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.xz - firefox.desktop firefox-symbolic.svg - 0001-Bug-54395-remove-hardcoded-flag-lcrmf.patch - firefox-install-dir.patch fix-wifi-scanner.diff - rust-i686.patch - make_SystemResourceMonitor.stop_more_resilient_to_errors.patch - use_noexcept_in_mozalloc.patch - ffmpeg4.patch.gz) +provides=('firefox') +options=('!emptydirs' '!makeflags') +source=("https://ftp.mozilla.org/pub/firefox/releases/${pkgver}esr/source/firefox-${pkgver}esr.source.tar.xz" + "${pkgname}.desktop" + "${pkgname}-symbolic.svg" + "0001-Bug-54395-remove-hardcoded-flag-lcrmf.patch" + "firefox-install-dir.patch" + "fix-wifi-scanner.diff" + "make_SystemResourceMonitor.stop_more_resilient_to_errors.patch" + "use_noexcept_in_mozalloc.patch" + "ffmpeg4.patch.gz" + "${pkgname}.sh" + "mozconfig" + "vendor.js" + "distribution.ini") sha256sums=('c01d09658c53c1b3a496e353a24dad03b26b81d3b1d099abc26a06f81c199dd6' - 'c202e5e18da1eeddd2e1d81cb3436813f11e44585ca7357c4c5f1bddd4bec826' + '9efd02ff78c31f8690a12401faac2605dffcac12eaf11e1791ec4221570c2746' 'a2474b32b9b2d7e0fb53a4c89715507ad1c194bef77713d798fa39d507def9e9' '93c495526c1a1227f76dda5f3a43b433bc7cf217aaf74bd06b8fc187d285f593' 'd86e41d87363656ee62e12543e2f5181aadcff448e406ef3218e91865ae775cd' '9765bca5d63fb5525bbd0520b7ab1d27cabaed697e2fc7791400abc3fa4f13b8' - 'f61ea706ce6905f568b9bdafd1b044b58f20737426f0aa5019ddb9b64031a269' '7760ebe71f4057cbd2f52b715abaf0d944c14c39e2bb2a5322114ad8451e12d9' '32eae55bf9151df5f77ee98585e6cef4cc7ee2e5f2ca44c1a42f87d132eb22d8' - '2a285e0c31968e3fe9b65a585838b46f9342ff0a369e786a729b4c3886617034') + '2a285e0c31968e3fe9b65a585838b46f9342ff0a369e786a729b4c3886617034' + 'fc0bc82aa88b15ce9ebf35d2d12750e2cd3b6bd93d5fc7b52b596f76e0e58608' + '1c17c99ffc7ddf83d79ee76a91927a55a45bb6bd459bcff3baf79c5ad5748645' + '3c039dbfdcf63022812b51f35289b176b26b4a9933da073f8788fde02be9fdcd' + '8ae5b7cd1f7092f13859b632e1e5f69948b2801e0459fdf29c745c89f8eeb823') validpgpkeys=('2B90598A745E992F315E22C58AB132963A06537A') # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) # Note: These are for Arch Linux use ONLY. For your own distribution, please # get your own set of keys. Feel free to contact foutrelis@archlinux.org for # more information. -_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM +_google_api_key='AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM' # Mozilla API keys (see https://location.services.mozilla.com/api) # Note: These are for Arch Linux use ONLY. For your own distribution, please # get your own set of keys. Feel free to contact heftig@archlinux.org for # more information. -_mozilla_api_key=16674381-f021-49de-8622-3021c5942aff +_mozilla_api_key='16674381-f021-49de-8622-3021c5942aff' prepare() { - mkdir path - ln -s /usr/bin/python2 path/python + mkdir "build" + ln -s "/usr/bin/python2" "build/python" - cd firefox-${pkgver}esr + cd "firefox-${pkgver}esr" - patch -Np1 -i ../firefox-install-dir.patch + # Remove dangling old-configure file in the source package + rm "old-configure" + + patch -Np1 -i "../firefox-install-dir.patch" + sed -i 's#^installdir .*#installdir = $(libdir)/firefox-esr52#' "config/baseconfig.mk" # https://bugzilla.mozilla.org/show_bug.cgi?id=1314968 - patch -Np1 -i ../fix-wifi-scanner.diff + patch -Np1 -i "../fix-wifi-scanner.diff" # https://bugs.archlinux.org/task/54395 // https://bugzilla.mozilla.org/show_bug.cgi?id=1371991 - patch -Np1 -i ../0001-Bug-54395-remove-hardcoded-flag-lcrmf.patch - - # Build with the rust targets we actually ship - patch -Np1 -i ../rust-i686.patch + patch -Np1 -i "../0001-Bug-54395-remove-hardcoded-flag-lcrmf.patch" # https://bugzilla.mozilla.org/show_bug.cgi?id=1384062 - patch -Np1 -i ../make_SystemResourceMonitor.stop_more_resilient_to_errors.patch + patch -Np1 -i "../make_SystemResourceMonitor.stop_more_resilient_to_errors.patch" # https://hg.mozilla.org/mozilla-central/rev/ae7e3082d862 - patch -Np1 -i ../use_noexcept_in_mozalloc.patch + patch -Np1 -i "../use_noexcept_in_mozalloc.patch" # https://hg.mozilla.org/releases/mozilla-esr60/rev/2f39b32593bd # https://svnweb.freebsd.org/ports/head/www/firefox/files/patch-bug1435212?view=markup&pathrev=468159 - patch -Np0 -i ../ffmpeg4.patch - - echo -n "$_google_api_key" >google-api-key - echo -n "$_mozilla_api_key" >mozilla-api-key - - cat >.mozconfig <<END -ac_add_options --enable-application=browser - -ac_add_options --prefix=/usr -ac_add_options --enable-release -ac_add_options --enable-gold -ac_add_options --enable-pie -ac_add_options --enable-optimize="-O2" - -# Branding -ac_add_options --enable-official-branding -ac_add_options --enable-update-channel=release -ac_add_options --with-distribution-id=org.archlinux -export MOZILLA_OFFICIAL=1 -export MOZ_TELEMETRY_REPORTING=1 -export MOZ_ADDON_SIGNING=1 -export MOZ_REQUIRE_SIGNING=1 - -# Keys -ac_add_options --with-google-api-keyfile=${PWD@Q}/google-api-key -ac_add_options --with-mozilla-api-keyfile=${PWD@Q}/mozilla-api-key - -# System libraries -ac_add_options --with-system-nspr -ac_add_options --with-system-nss -ac_add_options --with-system-icu -ac_add_options --with-system-zlib -ac_add_options --with-system-bz2 -ac_add_options --enable-system-hunspell -ac_add_options --enable-system-sqlite -ac_add_options --enable-system-ffi -ac_add_options --enable-system-pixman - -# Features -ac_add_options --enable-startup-notification -ac_add_options --enable-crashreporter -ac_add_options --enable-alsa -ac_add_options --disable-updater -END + patch -Np0 -i "${srcdir}/ffmpeg4.patch" + + echo -n "${_google_api_key}" >google-api-key + echo -n "${_mozilla_api_key}" >mozilla-api-key + install -m 644 "${srcdir}/mozconfig" ".mozconfig" + # Fix path for Google API and Mozilla API keys + sed -i "s#\$SOURCE#${PWD}#" ".mozconfig" } build() { - cd firefox-${pkgver}esr + cd "firefox-${pkgver}esr" # _FORTIFY_SOURCE causes configure failures - CPPFLAGS+=" -O2" - -# # Hardening -# LDFLAGS+=" -Wl,-z,now" - - export PATH="$srcdir/path:$PATH" + CPPFLAGS+=' -O2' - # Do PGO - #xvfb-run -a -n 95 -s "-extension GLX -screen 0 1280x1024x24" \ - # MOZ_PGO=1 ./mach build + export PATH="${srcdir}/path:${PATH}" ./mach build - # ./mach buildsymbols } package() { - cd firefox-${pkgver}esr - DESTDIR="$pkgdir" ./mach install - # find . -name '*crashreporter-symbols.zip' -exec cp -fvt "$startdir" {} + - - _vendorjs="$pkgdir/usr/lib/firefox/browser/defaults/preferences/vendor.js" - install -Dm644 /dev/stdin "$_vendorjs" <<END -// 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); - -// Opt all of us into e10s, instead of just 50% -pref("browser.tabs.remote.autostart", true); -END - - _distini="$pkgdir/usr/lib/firefox/distribution/distribution.ini" - install -Dm644 /dev/stdin "$_distini" <<END -[Global] -id=archlinux -version=1.0 -about=Mozilla Firefox ESR for Arch Linux - -[Preferences] -app.distributor=archlinux -app.distributor.channel=firefox-esr -app.partner.archlinux=archlinux -END - - for i in 16 22 24 32 48 256; do - install -Dm644 browser/branding/official/default$i.png \ - "$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/firefox.png" + cd "firefox-${pkgver}esr" + DESTDIR="${pkgdir}" ./mach install + + # Install custom preferences + install -m 644 -D "${srcdir}/vendor.js" \ + "${pkgdir}/usr/lib/${pkgname}/browser/defaults/preferences/vendor.js" + install -m 644 -D "${srcdir}/distribution.ini" \ + "${pkgdir}/usr/lib/${pkgname}/distribution/distribution.ini" + + # Install icons + for _size in 16 22 24 32 48 256 + do + install -m 644 -D "browser/branding/official/default${_size}.png" \ + "${pkgdir}/usr/share/icons/hicolor/${_size}x${_size}/apps/${pkgname}.png" done - install -Dm644 browser/branding/official/content/icon64.png \ - "$pkgdir/usr/share/icons/hicolor/64x64/apps/firefox.png" - install -Dm644 browser/branding/official/mozicon128.png \ - "$pkgdir/usr/share/icons/hicolor/128x128/apps/firefox.png" - install -Dm644 browser/branding/official/content/about-logo.png \ - "$pkgdir/usr/share/icons/hicolor/192x192/apps/firefox.png" - install -Dm644 browser/branding/official/content/about-logo@2x.png \ - "$pkgdir/usr/share/icons/hicolor/384x384/apps/firefox.png" - install -Dm644 ../firefox-symbolic.svg \ - "$pkgdir/usr/share/icons/hicolor/symbolic/apps/firefox-symbolic.svg" - - install -Dm644 ../firefox.desktop \ - "$pkgdir/usr/share/applications/firefox.desktop" + install -m 644 -D "browser/branding/official/content/icon64.png" \ + "${pkgdir}/usr/share/icons/hicolor/64x64/apps/${pkgname}.png" + install -m 644 -D "browser/branding/official/mozicon128.png" \ + "${pkgdir}/usr/share/icons/hicolor/128x128/apps/${pkgname}.png" + install -m 644 -D "browser/branding/official/content/about-logo.png" \ + "${pkgdir}/usr/share/icons/hicolor/192x192/apps/${pkgname}.png" + install -m 644 -D "browser/branding/official/content/about-logo@2x.png" \ + "${pkgdir}/usr/share/icons/hicolor/384x384/apps/${pkgname}.png" + install -m 644 -D "../${pkgname}-symbolic.svg" \ + "${pkgdir}/usr/share/icons/hicolor/symbolic/apps/${pkgname}-symbolic.svg" + + # Install desktop file + install -m 644 -D "../${pkgname}.desktop" \ + "${pkgdir}/usr/share/applications/${pkgname}.desktop" # Use system-provided dictionaries - rm -r "$pkgdir"/usr/lib/firefox/dictionaries - ln -Ts /usr/share/hunspell "$pkgdir/usr/lib/firefox/dictionaries" - ln -Ts /usr/share/hyphen "$pkgdir/usr/lib/firefox/hyphenation" + rm -r "${pkgdir}/usr/lib/${pkgname}/dictionaries" + ln -Ts /usr/share/hunspell "${pkgdir}/usr/lib/${pkgname}/dictionaries" + ln -Ts /usr/share/hyphen "${pkgdir}/usr/lib/${pkgname}/hyphenation" # Install a wrapper to avoid confusion about binary path - install -Dm755 /dev/stdin "$pkgdir/usr/bin/firefox" <<END -#!/bin/sh -exec /usr/lib/firefox/firefox "\$@" -END + install -m 755 -D "${srcdir}/${pkgname}.sh" \ + "${pkgdir}/usr/bin/${pkgname}" # Replace duplicate binary with wrapper # https://bugzilla.mozilla.org/show_bug.cgi?id=658850 - ln -srf "$pkgdir/usr/bin/firefox" \ - "$pkgdir/usr/lib/firefox/firefox-bin" + rm "${pkgdir}/usr/bin/firefox" + ln -srf "${pkgdir}/usr/bin/${pkgname}" \ + "${pkgdir}/usr/lib/${pkgname}/firefox-bin" + + # Rename firefox directories to package directories + mv "${pkgdir}/usr/include/firefox-${pkgver}" \ + "${pkgdir}/usr/include/${pkgname}" + mv "${pkgdir}/usr/lib/firefox-devel-${pkgver}/sdk" \ + "${pkgdir}/usr/lib/${pkgname}" + mv "${pkgdir}/usr/lib/firefox-devel-${pkgver}/xpcom-config.h" \ + "${pkgdir}/usr/lib/${pkgname}" + rm "${pkgdir}/usr/lib/firefox-devel-${pkgver}/bin" + rm "${pkgdir}/usr/lib/firefox-devel-${pkgver}/idl" + rm "${pkgdir}/usr/lib/firefox-devel-${pkgver}/include" + rm "${pkgdir}/usr/lib/firefox-devel-${pkgver}/lib" + mv "${pkgdir}/usr/share/idl/firefox-${pkgver}" \ + "${pkgdir}/usr/share/idl/${pkgname}" } |