# Contributor (ConnochaetOS): Henry Jensen <hjensen@connochaetos.org>
# Contributor (Parabola): Luke Shumaker <lukeshu@sbcglobal.net>
# Contributor: Figue <ffigue at gmail>
# Contributor (Parabola): fauno <fauno@kiwwwi.com.ar>
# Contributor (Parabola): vando <facundo@esdebian.org>
# Contributor (Parabola): emulatorman <andre.paulista@adinet.com.uy>
# Contributor (Arch): Jakub Schmidtke <sjakub@gmail.com>
# Thank you very much to the older contributors:
# Contributor: evr <evanroman at gmail>
# Contributor: Muhammad 'MJ' Jassim <UnbreakableMJ@gmail.com> 

# If you are updating this package, don't forget to update the version number in
# the value for 'browser.dictionaries.download.url' in 'libre.patch'

_pgo=false

_pkgname=icecat
pkgver=10.0
pkgrel=1

if [ -z "$pkgname" ]; then pkgname=$_pkgname; fi
if $_pgo; then
  pkgname+='-pgo'
fi

pkgdesc="The GNUzilla web browser, based on Mozilla Firefox. SafeBrowsing and other Google services disabled!"
arch=('i686' 'x86_64' 'mips64el')
license=('GPL2' 'MPL' 'LGPL')
depends=(
  'alsa-lib'
  'dbus-glib'
  'desktop-file-utils'
  'gtk2'
  'hicolor-icon-theme'
  'hunspell'
  'libevent'
  'libnotify'
  'libvpx'
  'libxt'
  'mime-types'
  'mozilla-common'
  'mozilla-searchplugins'
  'nss>=3.13.1'
  'sqlite3'
  'startup-notification'
)
makedepends=(
  'autoconf2.13'
  'diffutils'
  'libidl2'
  'mesa'
  'pkg-config'
  'python2'
  'unzip'
  'wireless_tools'
  'yasm'
  'zip'
)
if $_pgo; then
  makedepends+=('xorg-server-xvfb')
  options=(!ccache)
fi

url="http://www.gnu.org/software/gnuzilla/"
install=icecat.install
source=(ftp://ftp.gnu.org/gnu/gnuzilla/${pkgver}/${pkgname}-${pkgver}.tar.xz
        mozconfig
        mozconfig.pgo
        icecat.desktop
        icecat-safe.desktop
        libre.patch
        firefox-install-dir.patch
        vendor.js
        libvpx.patch)

if [ "$_pkgname" != "$pkgname" ]; then
  provides+=("$_pkgname")
  conflicts+=("$_pkgname")
fi

build() {
  mv "$_pkgname-$pkgver" "$srcdir/mozilla-build"
  cd "$srcdir/mozilla-build"

  cp "$srcdir/mozconfig" .mozconfig # Load our build config, disable SafeSearch
  patch -Np1 -i "$srcdir/firefox-install-dir.patch" # install to /usr/lib/$pkgname
  patch -Np1 -i "$srcdir/libre.patch" # Remove Google+Mozilla stuff
  patch -Np1 -i "$srcdir/libvpx.patch" # patch from Arch

  if $_pgo; then
    cat "$srcdir/mozconfig.pgo" >> .mozconfig
  fi

  # Fix PRE_RELEASE_SUFFIX
  sed -i '/^PRE_RELEASE_SUFFIX := ""/s/ ""//' \
    browser/base/Makefile.in

  export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/lib/$_pkgname"
  export PYTHON="/usr/bin/python2"

  if $_pgo; then
    LD_PRELOAD="" /usr/bin/Xvfb -nolisten tcp -extension GLX -screen 0 1280x1024x24 :99 &
    LD_PRELOAD="" DISPLAY=:99 make -j1 -f client.mk profiledbuild MOZ_MAKE_FLAGS="$MAKEFLAGS"
    kill $! || true
  else
    LD_PRELOAD="" make -j1 -f client.mk build MOZ_MAKE_FLAGS="$MAKEFLAGS"
  fi
}

package() {
  cd "$srcdir/mozilla-build"
  make -j1 -f client.mk DESTDIR="$pkgdir" install

  install -m644 "$srcdir"/vendor.js "$pkgdir/usr/lib/$_pkgname/defaults/pref"

  brandingdir="browser/branding/unofficial"
  icondir="$pkgdir/usr/share/icons/hicolor"
  for i in 16x16 32x32 48x48; do
    install -Dm644 "$brandingdir/default${i/x*/}.png" "$icondir/$i/apps/$_pkgname.png"
  done

  install -d                                  "$pkgdir/usr/share/applications"
  install -m644 "$srcdir/icecat.desktop"      "$pkgdir/usr/share/applications"
  install -m644 "$srcdir/icecat-safe.desktop" "$pkgdir/usr/share/applications"

  rm -rf "$pkgdir/usr/lib/$_pkgname/"{dictionaries,hyphenation,searchplugins,plugins}
  ln -sf /usr/share/hunspell            "$pkgdir/usr/lib/$_pkgname/dictionaries"
  ln -sf /usr/share/hyphen              "$pkgdir/usr/lib/$_pkgname/hyphenation"
  ln -sf /usr/lib/mozilla/plugins       "$pkgdir/usr/lib/$_pkgname/plugins"
  ln -sf /usr/lib/mozilla/searchplugins "$pkgdir/usr/lib/$_pkgname/searchplugins"

  # We don't want the development stuff
  rm -rf "$pkgdir"/usr/{include,lib/$_pkgname-devel,share/idl}

  # Fix a bug with https-everywhere (duplicate rules)
  rm -f "$pkgdir/usr/lib/$pkgname/extensions/https-everywhere@eff.org/chrome/content/rules/GoogleMaps.xml~HEAD"

  # Workaround for now: https://bugzilla.mozilla.org/show_bug.cgi?id=658850
  ln -sf $_pkgname "$pkgdir/usr/lib/$_pkgname/$_pkgname-bin"
}

md5sums=('5a30f5c5422fb7c9b1a2d253028df9d7'
         '6f3a8fd65c416216a1b56b0c2d2d81aa'
         'ac29b01c189f20abae2f3eef1618ffc0'
         'e81ad01dbc16ba28bf92ba4b7c309ca7'
         'd93fe402b87cd000a869e1fd6badc6c9'
         '145f453ef82f643711c10d97ec57a805'
         '1e4bcac59e93d21fffa6a1d1ad235247'
         'c382e35315047e4ca368d09383b39b8d'
         '5d418ecdbdb9f40597df6b978b0b5ee5')