# Template file for 'mongodb' pkgname=mongodb version=3.4.9 revision=3 wrksrc="mongodb-src-r${version}" hostmakedepends="scons" makedepends="boost-devel pcre-devel snappy-devel libressl-devel libpcap-devel gperftools libsasl-devel yaml-cpp-devel" depends="cyrus-sasl-modules" 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 " homepage="http://www.mongodb.org" license="AGPL-3" distfiles="https://fastdl.mongodb.org/src/mongodb-src-r${version}.tar.gz" checksum=2fd0f47a5f9175e71d3d381e81a1b6a2500c9c414dd6ae0940ad6194a0e85549 only_for_archs="aarch64 x86_64 aarch64-musl x86_64-musl" make_dirs=" /var/lib/mongodb 0700 mongodb mongodb /var/log/mongodb 0750 mongodb mongodb" # ETOOHUGE nodebug=1 case "${XBPS_TARGET_MACHINE}" in aarch64-musl) # error: conflicting types for 'wchar_t' broken="https://build.voidlinux.eu/builders/aarch64-musl_builder/builds/2739/steps/shell_3/logs/stdio" ;; x86_64*|aarch64*) makedepends+=" wiredtiger-devel";; esac do_configure() { find . -name SConstruct -print0 | xargs -0 sed -i "s/-Werror/-Wno-error/g" 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() { # Choose storage engine case "$XBPS_TARGET_MACHINE" in x86_64*|aarch64*) _scons_args="--wiredtiger=on --use-system-wiredtiger";; i686*|arm*) _scons_args="--wiredtiger=off --mmapv1=on";; *) _scons_args="--wiredtiger=off";; esac 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" \ --use-system-pcre \ --use-system-boost \ --use-system-snappy \ --use-system-zlib \ --use-system-yaml \ --use-sasl-client \ --ssl \ --nostrip \ --disable-warnings-as-errors \ --allocator=system \ ${_scons_args} # --use-system-intel_decimal128 \ } do_install() { for b in mongos mongod mongo mongoperf; do vbin $b done vinstall ${FILESDIR}/mongodb.conf 644 etc/mongodb vsv mongodb }