forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Package-Manager: Portage-2.3.6, Repoman-2.3.2 Closes: gentoo#5062
- Loading branch information
1 parent
4286e6a
commit aaab0ac
Showing
3 changed files
with
201 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- SConstruct.orig 2017-06-27 19:02:43.000000000 +0000 | ||
+++ SConstruct 2017-07-07 11:33:13.252639289 +0000 | ||
@@ -2798,8 +2798,6 @@ | ||
if use_system_version_of_library("boost"): | ||
if not conf.CheckCXXHeader( "boost/filesystem/operations.hpp" ): | ||
myenv.ConfError("can't find boost headers") | ||
- if not conf.CheckBoostMinVersion(): | ||
- myenv.ConfError("system's version of boost is too old. version 1.49 or better required") | ||
|
||
# Note that on Windows with using-system-boost builds, the following | ||
# FindSysLibDep calls do nothing useful (but nothing problematic either) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,189 @@ | ||
# Copyright 1999-2017 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=5 | ||
SCONS_MIN_VERSION="2.3.0" | ||
CHECKREQS_DISK_BUILD="2400M" | ||
CHECKREQS_DISK_USR="512M" | ||
CHECKREQS_MEMORY="1024M" | ||
|
||
inherit eutils flag-o-matic multilib pax-utils scons-utils systemd toolchain-funcs user versionator check-reqs | ||
|
||
MY_P=${PN}-src-r${PV/_rc/-rc} | ||
|
||
DESCRIPTION="A high-performance, open source, schema-free document-oriented database" | ||
HOMEPAGE="http://www.mongodb.org" | ||
SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz" | ||
|
||
LICENSE="AGPL-3 Apache-2.0" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~x86" | ||
IUSE="debug kerberos libressl mms-agent ssl test +tools" | ||
|
||
RDEPEND=">=app-arch/snappy-1.1.3 | ||
>=dev-cpp/yaml-cpp-0.5.3 | ||
>=dev-libs/boost-1.60[threads(+)] | ||
>=dev-libs/libpcre-8.39[cxx] | ||
dev-libs/snowball-stemmer | ||
net-libs/libpcap | ||
>=sys-libs/zlib-1.2.8 | ||
mms-agent? ( app-admin/mms-agent ) | ||
ssl? ( | ||
!libressl? ( >=dev-libs/openssl-1.0.1g:0= ) | ||
libressl? ( dev-libs/libressl:0= ) | ||
)" | ||
DEPEND="${RDEPEND} | ||
>=sys-devel/gcc-5.3.0:* | ||
sys-libs/ncurses | ||
sys-libs/readline | ||
debug? ( dev-util/valgrind ) | ||
kerberos? ( dev-libs/cyrus-sasl[kerberos] ) | ||
test? ( | ||
dev-python/pymongo | ||
dev-python/pyyaml | ||
)" | ||
PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )" | ||
|
||
S=${WORKDIR}/${MY_P} | ||
|
||
pkg_pretend() { | ||
if [[ ${REPLACING_VERSIONS} < 3.0 ]]; then | ||
ewarn "To upgrade from a version earlier than the 3.0-series, you must" | ||
ewarn "successively upgrade major releases until you have upgraded" | ||
ewarn "to 3.2-series. Then upgrade to 3.4 series." | ||
fi | ||
} | ||
|
||
pkg_setup() { | ||
enewgroup mongodb | ||
enewuser mongodb -1 -1 /var/lib/${PN} mongodb | ||
|
||
# Maintainer notes | ||
# | ||
# --use-system-tcmalloc is strongly NOT recommended: | ||
# https://www.mongodb.org/about/contributors/tutorial/build-mongodb-from-source/ | ||
|
||
scons_opts=( | ||
CC="$(tc-getCC)" | ||
CXX="$(tc-getCXX)" | ||
|
||
--disable-warnings-as-errors | ||
--use-system-boost | ||
--use-system-pcre | ||
--use-system-snappy | ||
--use-system-stemmer | ||
--use-system-yaml | ||
--use-system-zlib | ||
) | ||
|
||
# wiredtiger not supported on 32bit platforms #572166 | ||
use x86 && scons_opts+=( --wiredtiger=off ) | ||
|
||
if use debug; then | ||
scons_opts+=( --dbg=on ) | ||
fi | ||
|
||
if use prefix; then | ||
scons_opts+=( | ||
--cpppath="${EPREFIX}/usr/include" | ||
--libpath="${EPREFIX}/usr/$(get_libdir)" | ||
) | ||
fi | ||
|
||
if use kerberos; then | ||
scons_opts+=( --use-sasl-client ) | ||
fi | ||
|
||
if use ssl; then | ||
scons_opts+=( --ssl ) | ||
fi | ||
} | ||
|
||
src_prepare() { | ||
epatch "${FILESDIR}/${PN}-3.4.0-fix-scons.patch" | ||
epatch "${FILESDIR}/${P}-no-boost-check.patch" | ||
if has_version ">=dev-libs/boost-1.62"; then | ||
epatch "${FILESDIR}/${PN}-3.2.10-boost-1.62.patch" | ||
fi | ||
epatch_user | ||
} | ||
|
||
src_compile() { | ||
# respect mongoDB upstream's basic recommendations | ||
# see bug #536688 and #526114 | ||
if ! use debug; then | ||
filter-flags '-m*' | ||
filter-flags '-O?' | ||
fi | ||
escons "${scons_opts[@]}" core tools | ||
} | ||
|
||
src_install() { | ||
escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr | ||
|
||
for x in /var/{lib,log}/${PN}; do | ||
keepdir "${x}" | ||
fowners mongodb:mongodb "${x}" | ||
done | ||
|
||
doman debian/mongo*.1 | ||
dodoc README docs/building.md | ||
|
||
newinitd "${FILESDIR}/${PN}.initd-r2" ${PN} | ||
newconfd "${FILESDIR}/${PN}.confd-r2" ${PN} | ||
newinitd "${FILESDIR}/${PN/db/s}.initd-r2" ${PN/db/s} | ||
newconfd "${FILESDIR}/${PN/db/s}.confd-r2" ${PN/db/s} | ||
|
||
insinto /etc | ||
newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf | ||
newins "${FILESDIR}/${PN/db/s}.conf-r2" ${PN/db/s}.conf | ||
|
||
systemd_dounit "${FILESDIR}/${PN}.service" | ||
|
||
insinto /etc/logrotate.d/ | ||
newins "${FILESDIR}/${PN}.logrotate" ${PN} | ||
|
||
# see bug #526114 | ||
pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos} | ||
} | ||
|
||
pkg_preinst() { | ||
# wrt bug #461466 | ||
if [[ "$(get_libdir)" == "lib64" ]]; then | ||
rmdir "${ED}"/usr/lib/ &>/dev/null | ||
fi | ||
} | ||
|
||
src_test() { | ||
# this one test fails | ||
rm jstests/core/repl_write_threads_start_param.js | ||
|
||
./buildscripts/resmoke.py --dbpathPrefix=test --suites core || die "Tests failed" | ||
} | ||
|
||
pkg_postinst() { | ||
local v | ||
for v in ${REPLACING_VERSIONS}; do | ||
if ! version_is_at_least 3.0 ${v}; then | ||
ewarn "!! IMPORTANT !!" | ||
ewarn " " | ||
ewarn "${PN} configuration files have changed !" | ||
ewarn " " | ||
ewarn "Make sure you migrate from /etc/conf.d/${PN} to the new YAML standard in /etc/${PN}.conf" | ||
ewarn " http://docs.mongodb.org/manual/reference/configuration-options/" | ||
ewarn " " | ||
ewarn "Make sure you also follow the upgrading process :" | ||
ewarn " http://docs.mongodb.org/master/release-notes/3.0-upgrade/" | ||
ewarn " " | ||
ewarn "MongoDB 3.0 introduces the WiredTiger storage engine." | ||
ewarn "WiredTiger is incompatible with MMAPv1 and you need to dump/reload your data if you want to use it." | ||
ewarn "Once you have your data dumped, you need to set storage.engine: wiredTiger in /etc/${PN}.conf" | ||
ewarn " http://docs.mongodb.org/master/release-notes/3.0-upgrade/#change-storage-engine-to-wiredtiger" | ||
break | ||
fi | ||
done | ||
|
||
ewarn "Make sure to read the release notes and follow the upgrade process:" | ||
ewarn " https://docs.mongodb.org/manual/release-notes/3.4/" | ||
ewarn " https://docs.mongodb.com/manual/release-notes/3.4/#upgrade-procedures" | ||
} |