# -*- 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 105364 2013-04-18 22:24:52Z ryandesign@macports.org $

PortSystem          1.0
PortGroup           compiler_blacklist_versions 1.0

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

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  896884f72ae94caee1405df658bd7878ef5c5fbb \
                    sha256  d0a26fef7f425a6652ebfc3addbc7e1b01a10be65c9d68e464730687bd6721c3

depends_build       port:scons

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

license_noconflict  scons

# As of mongodb 2.2.0, we use the bundled copy of boost to guard against
# potential incompatible changes that might be made in the boost port.

patchfiles          patch-SConstruct.diff \
                    patch-distsrc-client-SConstruct.diff \
                    patch-src-SConscript.client.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-pcre \
                    --use-system-snappy \
                    --use-system-boost \
                    --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} == "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+)\.}
