# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Sven-Hendrik Haase <sh@lutzhaase.com>
# Contributor: Thomas Dziedzic < gostrc at gmail >
# Contributor: Mathias Stearn <mathias@10gen.com>
# Contributor: Alec Thomas

# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
#  - build -j2 (RAM constraints)
#  - use system v8 (older 3.16 package)
#  - disable WiredTiger storage engine (FTBFS)
#  - use system tcmalloc (from added gperftools dependency)

pkgname=mongodb
pkgver=3.0.6
pkgrel=2
pkgdesc='A high-performance, open source, schema-free document-oriented database'
arch=('i686' 'x86_64')
url='http://www.mongodb.org'
license=('AGPL3')
depends=('boost-libs' 'pcre' 'snappy' 'openssl' 'v8-3.16' 'libsasl' 'gperftools')
makedepends=('scons' 'readline' 'ncurses' 'libpcap' 'boost')
checkdepends=('python2-pymongo')
optdepends=('libpcap: needed for mongosniff'
            'mongodb-tools: mongoimport, mongodump, mongotop, etc')
backup=('etc/mongodb.conf')
install=mongodb.install
source=("http://downloads.mongodb.org/src/mongodb-src-r${pkgver}.tar.gz"
        'mongodb.conf' 'mongodb.service')
sha512sums=('1990e9011ae586e30aef28be58f9fc6d8b7f45b787dbde9785c82eff6fb0a70ea45152e450c032a898e6464bbb9b1683082f2a072ba874f7532e167330658175'
            '05dead727d3ea5fe8af1a3c3888693f6b3e2b8cb7f197a5d793352e10d2c524e96c9a5c55ad2e88c1114643a9612ec0b26a2574b48a5260a9b51ec8941461f1c'
            '177251404b2e818ae2b546fe8b13cb76e348c99e85c7bef22a04b0f07b600fd515a309ede50214f4198594388a6d2b31f46e945b9dae84aabb4dfa13b1123bb9')

MAKEFLAGS="-j2"

_scons_args=(
  --use-system-pcre
  --use-system-snappy
  --use-sasl-client
  --use-system-boost
  --variant-dir=build
  --ssl
  --c++11=on
  --disable-warnings-as-errors
  --use-system-v8
  --wiredtiger=off
  --use-system-tcmalloc
)
# --use-system-yaml (Doesn't compile)
# --use-system-tcmalloc (Disabled as upstream suggests in https://jira.mongodb.org/browse/SERVER-17447?focusedCommentId=841890&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-841890)

build() {
  # fucking mongo aint no fun to package
  export SCONSFLAGS="$MAKEFLAGS"

  cd mongodb-src-r${pkgver}

  scons all "${_scons_args[@]}"
}

check() {
  # Tests not passing
  export SCONSFLAGS="$MAKEFLAGS"

  cd mongodb-src-r${pkgver}

  scons smoke smokeCppUnittests smokeJsCore --smokedbprefix="$srcdir" "${_scons_args[@]}" || warning "Tests failed"
}

package() {
  export SCONSFLAGS="$MAKEFLAGS"

  cd mongodb-src-r${pkgver}

  scons install --prefix="$pkgdir/usr" "${_scons_args[@]}"

  install -Dm644 "$srcdir/mongodb.conf" "$pkgdir/etc/mongodb.conf"
  install -Dm644 "$srcdir/mongodb.service" "$pkgdir/usr/lib/systemd/system/mongodb.service"
  install -dm700 "$pkgdir/var/lib/mongodb"
  install -dm755 "$pkgdir/var/log/mongodb"
}