Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ebuild mongodb 3.6.3 with patches. #3

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions dev-db/mongodb/files/mongodb-3.6.1-fix-scons.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
diff --git a/SConstruct b/SConstruct
index fe7975b..92659a7 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1619,7 +1619,6 @@ if env.TargetOSIs('posix'):
# -Winvalid-pch Warn if a precompiled header (see Precompiled Headers) is found in the search path but can't be used.
env.Append( CCFLAGS=["-fno-omit-frame-pointer",
"-fno-strict-aliasing",
- "-ggdb",
"-pthread",
"-Wall",
"-Wsign-compare",
@@ -1631,6 +1630,8 @@ if env.TargetOSIs('posix'):
env.Append( CCFLAGS=["-Werror"] )

env.Append( CXXFLAGS=["-Woverloaded-virtual"] )
+ env.Append( CXXFLAGS=os.environ['CXXFLAGS'] )
+ env.Append( LINKFLAGS=os.environ['LDFLAGS'] )
if env.ToolchainIs('clang'):
env.Append( CXXFLAGS=['-Werror=unused-result'] )

@@ -1650,8 +1651,8 @@ if env.TargetOSIs('posix'):

env.Append( LIBS=[] )

- #make scons colorgcc friendly
- for key in ('HOME', 'TERM'):
+ #make scons colorgcc, distcc, ccache friendly
+ for key in ('HOME', 'PATH', 'TERM'):
try:
env['ENV'][key] = os.environ[key]
except KeyError:

47 changes: 47 additions & 0 deletions dev-db/mongodb/files/mongodb-3.6.1-no-compass.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
diff --git a/src/mongo/SConscript b/src/mongo/SConscript
index 9cde728..e29664e 100644
--- a/src/mongo/SConscript
+++ b/src/mongo/SConscript
@@ -629,33 +629,6 @@ for full_dir, archive_dir in env["ARCHIVE_ADDITION_DIR_MAP"].items():
for target in env["DIST_BINARIES"]:
installBinary(env, "db/modules/" + target)

-# Set the download url to the right place
-compass_type = 'compass-community'
-if 'enterprise' in env['MONGO_MODULES']:
- compass_type = 'compass'
-
-compass_script = "install_compass"
-if env.TargetOSIs('windows'):
- # On windows the .in needs to be explicitly added to the file.
- compass_script = "Install-Compass.ps1.in"
-
-compass_python_interpreter = '/usr/bin/env python2'
-if env.TargetOSIs('darwin'):
- compass_python_interpreter = '/usr/bin/env python'
-
-compass_installer = env.Substfile('#/src/mongo/installer/compass/' + compass_script,
- SUBST_DICT=[
- ('@compass_type@', compass_type),
- ('@python_interpreter@', compass_python_interpreter),
- ])
-distBinaries.append(compass_installer)
-
-compass_script_installer = env.Install("$INSTALL_DIR/bin", compass_installer)
-
-if env.TargetOSIs('posix'):
- env.AddPostAction( compass_script_installer, 'chmod 755 $TARGET' )
- env.AddPostAction( compass_installer, 'chmod 755 $TARGET' )
-
# "dist" target is valid only when --use-new-tools is specified
# Attempts to build release artifacts without tools must fail
if has_option("use-new-tools"):
@@ -673,7 +646,6 @@ if has_option("use-new-tools"):
'--transform $BUILD_DIR/mongo=$SERVER_DIST_BASENAME/bin',
'--transform $BUILD_DIR/mongo/stripped/src/mongo-tools=$SERVER_DIST_BASENAME/bin',
'--transform src/mongo-tools=$SERVER_DIST_BASENAME/bin',
- '--transform src/mongo/installer/compass=$SERVER_DIST_BASENAME/bin',
'${TEMPFILE(SOURCES[1:])}'
],
),

171 changes: 171 additions & 0 deletions dev-db/mongodb/mongodb-3.6.3.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI=6

PYTHON_COMPAT=( python2_7 )

SCONS_MIN_VERSION="2.5.0"
CHECKREQS_DISK_BUILD="2400M"
CHECKREQS_DISK_USR="512M"
CHECKREQS_MEMORY="1024M"

inherit check-reqs eutils flag-o-matic multilib multiprocessing pax-utils python-single-r1 scons-utils systemd toolchain-funcs user versionator

MY_P=${PN}-src-r${PV/_rc/-rc}

DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
HOMEPAGE="https://www.mongodb.com"
SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"

LICENSE="AGPL-3 Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
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.41[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}
${PYTHON_DEPS}
dev-python/cheetah[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
dev-python/typing[${PYTHON_USEDEP}]
<dev-util/scons-3
sys-libs/ncurses
sys-libs/readline
debug? ( dev-util/valgrind )
kerberos? ( dev-libs/cyrus-sasl[kerberos] )
test? (
dev-python/pymongo[${PYTHON_USEDEP}]
)"
PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )"

PATCHES=(
"${FILESDIR}/${PN}-3.4.7-no-boost-check.patch"
"${FILESDIR}/${PN}-3.6.1-fix-scons.patch"
"${FILESDIR}/${PN}-3.6.1-no-compass.patch"
)

S=${WORKDIR}/${MY_P}

pkg_pretend() {
if [[ -n ${REPLACING_VERSIONS} ]] && [[ ${REPLACING_VERSIONS} < 3.4 ]]; then
ewarn "To upgrade from a version earlier than the 3.4-series, you must"
ewarn "successively upgrade major releases until you have upgraded"
ewarn "to 3.4-series. Then upgrade to 3.6 series."
elif [[ -n ${REPLACING_VERSIONS} ]]; then
ewarn "Be sure to set featureCompatibilityVersion to 3.4 before upgrading."
fi
}

pkg_setup() {
enewgroup mongodb
enewuser mongodb -1 -1 /var/lib/${PN} mongodb

python-single-r1_pkg_setup
}

src_prepare() {
default

# remove bundled libs
rm -rv src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*} || die

# remove compass
rm -rv src/mongo/installer/compass || die
}

src_configure() {
# https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
# --use-system-icu fails tests
# --use-system-tcmalloc is strongly NOT recommended:
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
)

use debug && scons_opts+=( --dbg=on )
use kerberos && scons_opts+=( --use-sasl-client )
use ssl && scons_opts+=( --ssl )

# respect mongoDB upstream's basic recommendations
# see bug #536688 and #526114
if ! use debug; then
filter-flags '-m*'
filter-flags '-O?'
fi

default
}

src_compile() {
escons "${scons_opts[@]}" core tools
}

# FEATURES="test -usersandbox" emerge dev-db/mongodb
src_test() {
"${EPYTHON}" ./buildscripts/resmoke.py --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed"
}

src_install() {
escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr

local x
for x in /var/{lib,log}/${PN}; do
keepdir "${x}"
fowners mongodb:mongodb "${x}"
fperms 0750 "${x}"
done

doman debian/mongo*.1
dodoc README docs/building.md

newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
newinitd "${FILESDIR}/${PN/db/s}.initd-r3" ${PN/db/s}
newconfd "${FILESDIR}/${PN/db/s}.confd-r3" ${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
}

pkg_postinst() {
ewarn "Make sure to read the release notes and follow the upgrade process:"
ewarn " https://docs.mongodb.com/manual/release-notes/$(get_version_component_range 1-2)/"
ewarn " https://docs.mongodb.com/manual/release-notes/$(get_version_component_range 1-2)/#upgrade-procedures"
}