# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
# $Id: Portfile 107821 2013-07-06 08:26:24Z ryandesign@macports.org $

PortSystem          1.0
PortGroup           compiler_blacklist_versions 1.0

name                mongodb
epoch               1
version             2.4.5
license             AGPL-3
categories          databases
maintainers         ryandesign

description         High-performance, schema-free document-oriented database
long_description    ${description}

platforms           darwin

homepage            http://www.mongodb.org/
master_sites        http://downloads.mongodb.org/src/
distname            ${name}-src-r${version}

checksums           rmd160  83d01f48fe5130a4c8a8f3fcd5d3502b90e617f2 \
                    sha256  b576cbc2c813144b8a8774a7232b78bd0b005e2e6fa7428e7fa1e426c7a28705

depends_build       port:scons

depends_lib         port:boost \
                    port:libpcap \
                    port:pcre \
                    port:snappy \
                    port:v8

license_noconflict  scons

patchfiles          patch-SConstruct.diff \
                    patch-distsrc-client-SConstruct.diff \
                    patch-src-mongo-util-compress.cpp.diff

post-patch {
    reinplace "s|@@PREFIX@@|${prefix}|g" \
        ${worksrcpath}/distsrc/client/SConstruct
}

use_configure       no

variant universal {}

compiler.blacklist  gcc-4.0 {clang < 318.0.45}

build.env           TERM=xterm \
                    ARCHFLAGS="[get_canonical_archflags]" \
                    CPPFLAGS="${configure.cppflags}" \
                    LDFLAGS="${configure.ldflags}"

build.cmd           ${prefix}/bin/scons
build.target        all mongobridge mongosniff
build.args          --cc=${configure.cc} \
                    --cxx=${configure.cxx} \
                    --full \
                    --use-system-boost \
                    --use-system-pcre \
                    --use-system-snappy \
                    --use-system-v8 \
                    --extralib=pcre,pcrecpp,snappy

eval destroot.env   [option build.env]
destroot.args       ${build.args}
destroot.destdir    --prefix=${destroot}${prefix}

set dbdir           ${prefix}/var/db/mongodb
set logdir          ${prefix}/var/log/mongodb
set mongouser       _mongo
add_users           ${mongouser} group=${mongouser} realname=MongoDB\ Server

post-destroot {
    xinstall -W ${worksrcpath} mongobridge ${destroot}${prefix}/bin

    xinstall -m 755 -o ${mongouser} -g ${mongouser} -d \
        ${destroot}${dbdir} \
        ${destroot}${logdir}
    destroot.keepdirs-append  \
        ${destroot}${dbdir} \
        ${destroot}${logdir}
}

startupitem.create      yes
startupitem.executable  sudo -u ${mongouser} ${prefix}/bin/mongod --dbpath ${dbdir} --logpath ${logdir}/mongodb.log --logappend

if {${os.platform} eq "darwin" && ${os.major} < 10} {
    depends_build
    depends_lib
    pre-fetch {
        ui_error "${name} ${version} requires OS X 10.6 or greater."
        return -code error "incompatible OS X version"
    }
}

livecheck.url       ${homepage}downloads
livecheck.regex     {mongodb-src-r(\d+\.\d*[02468]\.\d+)\.}
