void-packages/srcpkgs/mongodb/template

80 lines
2.1 KiB
Bash

# Template file for 'mongodb'
pkgname=mongodb
version=3.2.4
revision=6
hostmakedepends="scons"
makedepends="boost-devel pcre-devel snappy-devel libressl-devel libpcap-devel
gperftools-devel libsasl-devel yaml-cpp-devel valgrind-devel"
conf_files="/etc/mongodb/mongodb.conf"
system_accounts="mongodb"
mongodb_homedir="/var/lib/mongodb"
short_desc="High-performance, schema-free document-oriented database"
maintainer="Enno Boland <gottox@voidlinux.eu>"
homepage="http://www.mongodb.org"
license="AGPL-3"
distfiles="http://downloads.mongodb.org/src/mongodb-src-r${version}.tar.gz"
checksum=b60743cc641de975c38e6e69ebbef60059ee9fe176cdd98bfab8d5c844dab42c
make_dirs="
/var/lib/mongodb 0700 mongodb mongodb
/var/log/mongodb 0750 mongodb mongodb"
wrksrc="mongodb-src-r${version}"
_scons_args="
--use-system-pcre
--use-system-boost
--use-system-snappy
--use-system-valgrind
--use-system-zlib
--use-system-yaml
--use-system-intel_decimal128
--use-sasl-client
--ssl
--nostrip
--disable-warnings-as-errors"
case "$XBPS_TARGET_MACHINE" in
x86_64*|aarch64*)
_scons_args+=" --wiredtiger=on --use-system-wiredtiger"
makedepends+=" wiredtiger-devel";;
*) _scons_args+=" --wiredtiger=off";;
esac
# ETOOHUGE
nodebug=1
case "${XBPS_TARGET_MACHINE}" in
x86_64-musl) broken="http://build.voidlinux.eu/builders/x86_64-musl_builder/builds/10423/steps/shell_3/logs/stdio";;
armv7l-musl) broken="http://build.voidlinux.eu/builders/armv7l-musl_builder/builds/9838/steps/shell_3/logs/stdio";;
esac
do_configure() {
find . -name SConstruct -print0 | xargs -0 sed -i "s/-Werror/-Wno-error/g"
}
post_configure() {
case "$XBPS_TARGET_MACHINE" in
*-musl) # Disable strtouq(3)
sed -i src/third_party/wiredtiger/build_linux/wiredtiger_config.h \
-e "s;#define HAVE_STRTOUQ 1;#undef HAVE_STRTOUQ;"
esac
}
do_build() {
scons core tools ${makejobs} \
CC=$CC \
CFLAGS="$CFLAGS" \
CXX=$CXX \
CXXFLAGS="$CXXFLAGS" \
LIBPATH="${XBPS_CROSS_BASE}/usr/lib" \
CPPPATH="${XBPS_CROSS_BASE}/usr/include" \
--prefix="/usr" \
$_scons_args
}
do_install() {
for b in mongos mongod mongosniff mongo mongoperf; do
vbin $b
done
vinstall ${FILESDIR}/mongodb.conf 644 etc/mongodb
vsv mongodb
}