Gentoo Archives: gentoo-commits

From: Alexys Jacob <ultrabug@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/mongodb/
Date: Mon, 07 Feb 2022 13:23:42
Message-Id: 1644240102.01084842e9247fe6061346b09f46b455a4365cf4.ultrabug@gentoo
1 commit: 01084842e9247fe6061346b09f46b455a4365cf4
2 Author: Tomáš Mózes <hydrapolic <AT> gmail <DOT> com>
3 AuthorDate: Sun Dec 19 11:43:19 2021 +0000
4 Commit: Alexys Jacob <ultrabug <AT> gentoo <DOT> org>
5 CommitDate: Mon Feb 7 13:21:42 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=01084842
7
8 dev-db/mongodb: bump to 4.2.17/4.4.10/5.0.5
9
10 Tests pass for 4.2.17 / 4.4.10 on amd64
11
12 Closes: https://bugs.gentoo.org/798489
13 Signed-off-by: Tomáš Mózes <hydrapolic <AT> gmail.com>
14 Signed-off-by: Alexys Jacob <ultrabug <AT> gentoo.org>
15
16 dev-db/mongodb/Manifest | 3 +
17 dev-db/mongodb/mongodb-4.2.17.ebuild | 177 ++++++++++++++++++++++++++++++++++
18 dev-db/mongodb/mongodb-4.4.10.ebuild | 178 ++++++++++++++++++++++++++++++++++
19 dev-db/mongodb/mongodb-5.0.5.ebuild | 182 +++++++++++++++++++++++++++++++++++
20 4 files changed, 540 insertions(+)
21
22 diff --git a/dev-db/mongodb/Manifest b/dev-db/mongodb/Manifest
23 index 0da8ea686b8c..b93a592b6b84 100644
24 --- a/dev-db/mongodb/Manifest
25 +++ b/dev-db/mongodb/Manifest
26 @@ -1,3 +1,6 @@
27 DIST mongodb-src-r4.2.15.tar.gz 62187847 BLAKE2B eb9cbf52b5aeb95d3c6c6bd14da9731a85a24e2c3560163be999bddff1cd1ac90f9cf07b4c3fe22e35ffcdd174a6b2720a801fa179f574ff33150d1a4660ef9e SHA512 ee46a2dfb7ae23ad38da49bf126a2bc7932bded8f01d34516ad575d2aed5d6233c5ad620b2a4424a98afb9e80e26acf40c66982cdd0637c13f0f7aaae8b746a0
28 +DIST mongodb-src-r4.2.17.tar.gz 62216350 BLAKE2B 48169685a25fe00b5a1985bce1e65e13d1dc9c0a56ece6b9c735d8cd212d9c0c5e2912d593bdda351cceda49c8ed7962db42ca37814f88e0bf927066a2d8241b SHA512 ad5448aa6ea232746fdbc7107bd642e827fb7b9182c075f204722e7f625cbc83e7b0a199d2feb56bf27a8851bb38f9740abf0b38c022ddc92e676e7a2d81aef6
29 +DIST mongodb-src-r4.4.10.tar.gz 50636024 BLAKE2B 4b840e1a17b3fcba32d30c649d981b1e2b1d5dd98deab99be599fd5d2aa70b75ff4225542d8da095ec4cb4615f9ccccfa455129d71ed39549efde0a025d7dac4 SHA512 afc04f90e03ec64fd74bdfe2bf33aaa5fc148811af91a8437dfb81fd3a784eedd80128886db99e247ec7e09dc5a73cf34f908ab927942648e15c8f12af6b64e2
30 DIST mongodb-src-r4.4.8.tar.gz 50492854 BLAKE2B 4776b17e88104879ea69468ff277b07dc317d936654bb26c69750e0aaf8f51bea73994e7fc4841228d8506db392e0454b5fd16257071b86a2e4ad34e90f33632 SHA512 9b0cd81c9c731255a6c079c040ed342a51a72e3ea72047d3ae959c0afde50b0cdb1fcfe7fcbea30c449a3618a09d213752277cee6eb9bc0a55915b9229543606
31 DIST mongodb-src-r5.0.2.tar.gz 54527477 BLAKE2B f71102f4c2711074498c288817ee06156cb030ee647541f6604582b918fb75239cc5a551c08b745b6296a2693d2a1ac28d94c1365b86bc508257b9d42142612a SHA512 179d57a0a12c5c23e54208c262edff6976f509324be8ad68d6761997dc702534f618dea1a24568fdb2d716359762e64da54e2d152a685447b4e0450996bf2154
32 +DIST mongodb-src-r5.0.5.tar.gz 54862473 BLAKE2B aafa693da904177a11067603f3835e2ee69abcdb206c2d36983633baa6008b861efeb590880098557e224cd7d6ac8fb23e4e9c63724d76bf90422862c99cdfe9 SHA512 318e58285c8a88fc3a4467ba8c1e6487a2aec403db02c50dbdb53df9a6671b9ea2417c8ee8212b205d642327d0d4bdd76f4bc9543c47e53115dfb981ef73f63e
33
34 diff --git a/dev-db/mongodb/mongodb-4.2.17.ebuild b/dev-db/mongodb/mongodb-4.2.17.ebuild
35 new file mode 100644
36 index 000000000000..535c6798265f
37 --- /dev/null
38 +++ b/dev-db/mongodb/mongodb-4.2.17.ebuild
39 @@ -0,0 +1,177 @@
40 +# Copyright 1999-2021 Gentoo Authors
41 +# Distributed under the terms of the GNU General Public License v2
42 +
43 +EAPI=7
44 +
45 +PYTHON_COMPAT=( python3_{7..10} )
46 +
47 +SCONS_MIN_VERSION="2.5.0"
48 +CHECKREQS_DISK_BUILD="2400M"
49 +CHECKREQS_DISK_USR="512M"
50 +CHECKREQS_MEMORY="1024M"
51 +
52 +inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs
53 +
54 +MY_P=${PN}-src-r${PV/_rc/-rc}
55 +
56 +DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
57 +HOMEPAGE="https://www.mongodb.com"
58 +SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
59 +
60 +LICENSE="Apache-2.0 SSPL-1"
61 +SLOT="0"
62 +KEYWORDS="~amd64 ~arm64"
63 +IUSE="debug kerberos lto ssl test +tools"
64 +RESTRICT="!test? ( test )"
65 +
66 +RDEPEND="acct-group/mongodb
67 + acct-user/mongodb
68 + >=app-arch/snappy-1.1.3:=
69 + >=dev-cpp/yaml-cpp-0.6.2:=
70 + >=dev-libs/boost-1.70:=[threads(+)]
71 + >=dev-libs/libpcre-8.42[cxx]
72 + app-arch/zstd:=
73 + dev-libs/snowball-stemmer:=
74 + net-libs/libpcap
75 + >=sys-libs/zlib-1.2.11:=
76 + kerberos? ( dev-libs/cyrus-sasl[kerberos] )
77 + ssl? (
78 + >=dev-libs/openssl-1.0.1g:0=
79 + )"
80 +DEPEND="${RDEPEND}
81 + ${PYTHON_DEPS}
82 + $(python_gen_any_dep '
83 + test? ( dev-python/pymongo[${PYTHON_USEDEP}] dev-python/requests[${PYTHON_USEDEP}] )
84 + >=dev-util/scons-2.5.0[${PYTHON_USEDEP}]
85 + dev-python/cheetah3[${PYTHON_USEDEP}]
86 + dev-python/psutil[${PYTHON_USEDEP}]
87 + dev-python/pyyaml[${PYTHON_USEDEP}]
88 + ')
89 + sys-libs/ncurses:0=
90 + sys-libs/readline:0=
91 + debug? ( dev-util/valgrind )"
92 +PDEPEND="tools? ( >=app-admin/mongo-tools-${PV} )"
93 +
94 +PATCHES=(
95 + "${FILESDIR}/${PN}-4.2.0-fix-scons.patch"
96 + "${FILESDIR}/${PN}-4.4.1-gcc11.patch"
97 + "${FILESDIR}/${PN}-4.2.15-no-compass.patch"
98 + "${FILESDIR}/${PN}-5.0.2-glibc-2.34.patch"
99 +)
100 +
101 +S="${WORKDIR}/${MY_P}"
102 +
103 +python_check_deps() {
104 + if use test; then
105 + has_version "dev-python/pymongo[${PYTHON_USEDEP}]" || return 1
106 + has_version "dev-python/requests[${PYTHON_USEDEP}]" || return 1
107 + fi
108 +
109 + has_version ">=dev-util/scons-2.5.0[${PYTHON_USEDEP}]" &&
110 + has_version "dev-python/cheetah3[${PYTHON_USEDEP}]" &&
111 + has_version "dev-python/psutil[${PYTHON_USEDEP}]" &&
112 + has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
113 +}
114 +
115 +pkg_pretend() {
116 + if [[ -n ${REPLACING_VERSIONS} ]]; then
117 + if ver_test "$REPLACING_VERSIONS" -lt 4.0; then
118 + ewarn "To upgrade from a version earlier than the 4.0-series, you must"
119 + ewarn "successively upgrade major releases until you have upgraded"
120 + ewarn "to 4.0-series. Then upgrade to 4.2 series."
121 + else
122 + ewarn "Be sure to set featureCompatibilityVersion to 4.0 before upgrading."
123 + fi
124 + fi
125 +}
126 +
127 +src_prepare() {
128 + default
129 +
130 + # remove bundled libs
131 + rm -r src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*,zstandard-*} || die
132 +
133 + # remove compass
134 + rm -r src/mongo/installer/compass || die
135 +}
136 +
137 +src_configure() {
138 + # https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
139 + # --use-system-icu fails tests
140 + # --use-system-tcmalloc is strongly NOT recommended:
141 + scons_opts=(
142 + AR="$(tc-getAR)"
143 + CC="$(tc-getCC)"
144 + CXX="$(tc-getCXX)"
145 +
146 + --disable-warnings-as-errors
147 + --use-system-boost
148 + --use-system-pcre
149 + --use-system-snappy
150 + --use-system-stemmer
151 + --use-system-yaml
152 + --use-system-zlib
153 + --use-system-zstd
154 + )
155 +
156 + use arm64 && scons_opts+=( --use-hardware-crc32=off ) # Bug 701300
157 + use debug && scons_opts+=( --dbg=on )
158 + use kerberos && scons_opts+=( --use-sasl-client )
159 + use lto && scons_opts+=( --lto=on )
160 + use ssl && scons_opts+=( --ssl )
161 +
162 + # respect mongoDB upstream's basic recommendations
163 + # see bug #536688 and #526114
164 + if ! use debug; then
165 + filter-flags '-m*'
166 + filter-flags '-O?'
167 + fi
168 +
169 + default
170 +}
171 +
172 +src_compile() {
173 + escons "${scons_opts[@]}" core tools
174 +}
175 +
176 +# FEATURES="test -usersandbox" emerge dev-db/mongodb
177 +src_test() {
178 + ewarn "Tests may hang with FEATURES=usersandbox"
179 + "${EPYTHON}" ./buildscripts/resmoke.py run --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed with ${EPYTHON}"
180 +}
181 +
182 +src_install() {
183 + escons "${scons_opts[@]}" --nostrip install --prefix="${ED}"/usr
184 +
185 + doman debian/mongo*.1
186 + dodoc README docs/building.md
187 +
188 + newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
189 + newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
190 + newinitd "${FILESDIR}/mongos.initd-r3" mongos
191 + newconfd "${FILESDIR}/mongos.confd-r3" mongos
192 +
193 + insinto /etc
194 + newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf
195 + newins "${FILESDIR}/mongos.conf-r2" mongos.conf
196 +
197 + systemd_dounit "${FILESDIR}/${PN}.service"
198 +
199 + insinto /etc/logrotate.d/
200 + newins "${FILESDIR}/${PN}.logrotate" ${PN}
201 +
202 + # see bug #526114
203 + pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
204 +
205 + local x
206 + for x in /var/{lib,log}/${PN}; do
207 + diropts -m0750 -o mongodb -g mongodb
208 + keepdir "${x}"
209 + done
210 +}
211 +
212 +pkg_postinst() {
213 + ewarn "Make sure to read the release notes and follow the upgrade process:"
214 + ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/"
215 + ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures"
216 +}
217
218 diff --git a/dev-db/mongodb/mongodb-4.4.10.ebuild b/dev-db/mongodb/mongodb-4.4.10.ebuild
219 new file mode 100644
220 index 000000000000..24a76a44bf58
221 --- /dev/null
222 +++ b/dev-db/mongodb/mongodb-4.4.10.ebuild
223 @@ -0,0 +1,178 @@
224 +# Copyright 1999-2021 Gentoo Authors
225 +# Distributed under the terms of the GNU General Public License v2
226 +
227 +EAPI=7
228 +
229 +PYTHON_COMPAT=( python3_{8..10} )
230 +
231 +SCONS_MIN_VERSION="3.3.1"
232 +CHECKREQS_DISK_BUILD="2400M"
233 +CHECKREQS_DISK_USR="512M"
234 +CHECKREQS_MEMORY="1024M"
235 +
236 +inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs
237 +
238 +MY_P=${PN}-src-r${PV/_rc/-rc}
239 +
240 +DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
241 +HOMEPAGE="https://www.mongodb.com"
242 +SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
243 +
244 +LICENSE="Apache-2.0 SSPL-1"
245 +SLOT="0"
246 +KEYWORDS="~amd64 ~arm64 -riscv"
247 +IUSE="debug kerberos lto ssl test +tools"
248 +RESTRICT="!test? ( test )"
249 +
250 +RDEPEND="acct-group/mongodb
251 + acct-user/mongodb
252 + >=app-arch/snappy-1.1.3:=
253 + >=dev-cpp/yaml-cpp-0.6.2:=
254 + >=dev-libs/boost-1.70:=[threads(+),nls]
255 + >=dev-libs/libpcre-8.42[cxx]
256 + app-arch/zstd:=
257 + dev-libs/snowball-stemmer:=
258 + net-libs/libpcap
259 + >=sys-libs/zlib-1.2.11:=
260 + kerberos? ( dev-libs/cyrus-sasl[kerberos] )
261 + ssl? (
262 + >=dev-libs/openssl-1.0.1g:0=
263 + )"
264 +DEPEND="${RDEPEND}
265 + ${PYTHON_DEPS}
266 + $(python_gen_any_dep '
267 + test? ( dev-python/pymongo[${PYTHON_USEDEP}] dev-python/requests[${PYTHON_USEDEP}] )
268 + >=dev-util/scons-3.1.1[${PYTHON_USEDEP}]
269 + dev-python/cheetah3[${PYTHON_USEDEP}]
270 + dev-python/psutil[${PYTHON_USEDEP}]
271 + dev-python/pyyaml[${PYTHON_USEDEP}]
272 + ')
273 + sys-libs/ncurses:0=
274 + sys-libs/readline:0=
275 + debug? ( dev-util/valgrind )"
276 +PDEPEND="tools? ( >=app-admin/mongo-tools-100 )"
277 +
278 +PATCHES=(
279 + "${FILESDIR}/${PN}-4.4.1-fix-scons.patch"
280 + "${FILESDIR}/${PN}-4.4.8-no-compass.patch"
281 + "${FILESDIR}/${PN}-4.4.1-boost.patch"
282 + "${FILESDIR}/${PN}-4.4.1-gcc11.patch"
283 + "${FILESDIR}/${PN}-5.0.2-glibc-2.34.patch"
284 +)
285 +
286 +S="${WORKDIR}/${MY_P}"
287 +
288 +python_check_deps() {
289 + if use test; then
290 + has_version "dev-python/pymongo[${PYTHON_USEDEP}]" || return 1
291 + has_version "dev-python/requests[${PYTHON_USEDEP}]" || return 1
292 + fi
293 +
294 + has_version ">=dev-util/scons-2.5.0[${PYTHON_USEDEP}]" &&
295 + has_version "dev-python/cheetah3[${PYTHON_USEDEP}]" &&
296 + has_version "dev-python/psutil[${PYTHON_USEDEP}]" &&
297 + has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
298 +}
299 +
300 +pkg_pretend() {
301 + if [[ -n ${REPLACING_VERSIONS} ]]; then
302 + if ver_test "$REPLACING_VERSIONS" -lt 4.2; then
303 + ewarn "To upgrade from a version earlier than the 4.2-series, you must"
304 + ewarn "successively upgrade major releases until you have upgraded"
305 + ewarn "to 4.2-series. Then upgrade to 4.4 series."
306 + else
307 + ewarn "Be sure to set featureCompatibilityVersion to 4.2 before upgrading."
308 + fi
309 + fi
310 +}
311 +
312 +src_prepare() {
313 + default
314 +
315 + # remove bundled libs
316 + rm -r src/third_party/{boost-*,pcre-*,scons-*,snappy-*,yaml-cpp-*,zlib-*} || die
317 +
318 + # remove compass
319 + rm -r src/mongo/installer/compass || die
320 +}
321 +
322 +src_configure() {
323 + # https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
324 + # --use-system-icu fails tests
325 + # --use-system-tcmalloc is strongly NOT recommended:
326 + scons_opts=(
327 + AR="$(tc-getAR)"
328 + CC="$(tc-getCC)"
329 + CXX="$(tc-getCXX)"
330 +
331 + --disable-warnings-as-errors
332 + --use-system-boost
333 + --use-system-pcre
334 + --use-system-snappy
335 + --use-system-stemmer
336 + --use-system-yaml
337 + --use-system-zlib
338 + --use-system-zstd
339 + )
340 +
341 + use arm64 && scons_opts+=( --use-hardware-crc32=off ) # Bug 701300
342 + use debug && scons_opts+=( --dbg=on )
343 + use kerberos && scons_opts+=( --use-sasl-client )
344 + use lto && scons_opts+=( --lto=on )
345 + use ssl && scons_opts+=( --ssl )
346 +
347 + # respect mongoDB upstream's basic recommendations
348 + # see bug #536688 and #526114
349 + if ! use debug; then
350 + filter-flags '-m*'
351 + filter-flags '-O?'
352 + fi
353 +
354 + default
355 +}
356 +
357 +src_compile() {
358 + PREFIX="${EPREFIX}/usr" escons "${scons_opts[@]}" --nostrip install-core
359 +}
360 +
361 +# FEATURES="test -usersandbox" emerge dev-db/mongodb
362 +src_test() {
363 + ewarn "Tests may hang with FEATURES=usersandbox"
364 + "${EPYTHON}" ./buildscripts/resmoke.py run --dbpathPrefix=test --suites core --jobs=$(makeopts_jobs) || die "Tests failed with ${EPYTHON}"
365 +}
366 +
367 +src_install() {
368 + dobin build/install/bin/{mongo,mongod,mongos}
369 +
370 + doman debian/mongo*.1
371 + dodoc README docs/building.md
372 +
373 + newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
374 + newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
375 + newinitd "${FILESDIR}/mongos.initd-r3" mongos
376 + newconfd "${FILESDIR}/mongos.confd-r3" mongos
377 +
378 + insinto /etc
379 + newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf
380 + newins "${FILESDIR}/mongos.conf-r2" mongos.conf
381 +
382 + systemd_dounit "${FILESDIR}/${PN}.service"
383 +
384 + insinto /etc/logrotate.d/
385 + newins "${FILESDIR}/${PN}.logrotate" ${PN}
386 +
387 + # see bug #526114
388 + pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
389 +
390 + local x
391 + for x in /var/{lib,log}/${PN}; do
392 + diropts -m0750 -o mongodb -g mongodb
393 + keepdir "${x}"
394 + done
395 +}
396 +
397 +pkg_postinst() {
398 + ewarn "Make sure to read the release notes and follow the upgrade process:"
399 + ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/"
400 + ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures"
401 +}
402
403 diff --git a/dev-db/mongodb/mongodb-5.0.5.ebuild b/dev-db/mongodb/mongodb-5.0.5.ebuild
404 new file mode 100644
405 index 000000000000..f6dae451de27
406 --- /dev/null
407 +++ b/dev-db/mongodb/mongodb-5.0.5.ebuild
408 @@ -0,0 +1,182 @@
409 +# Copyright 1999-2021 Gentoo Authors
410 +# Distributed under the terms of the GNU General Public License v2
411 +
412 +EAPI=7
413 +
414 +PYTHON_COMPAT=( python3_{8..10} )
415 +
416 +SCONS_MIN_VERSION="3.3.1"
417 +CHECKREQS_DISK_BUILD="2400M"
418 +CHECKREQS_DISK_USR="512M"
419 +CHECKREQS_MEMORY="1024M"
420 +
421 +inherit check-reqs flag-o-matic multiprocessing pax-utils python-any-r1 scons-utils systemd toolchain-funcs
422 +
423 +MY_P=${PN}-src-r${PV/_rc/-rc}
424 +
425 +DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
426 +HOMEPAGE="https://www.mongodb.com"
427 +SRC_URI="https://fastdl.mongodb.org/src/${MY_P}.tar.gz"
428 +
429 +LICENSE="Apache-2.0 SSPL-1"
430 +SLOT="0"
431 +KEYWORDS="~amd64 ~arm64 -riscv"
432 +CPU_FLAGS="cpu_flags_x86_avx"
433 +IUSE="debug kerberos lto mongosh ssl +tools ${CPU_FLAGS}"
434 +
435 +# https://github.com/mongodb/mongo/wiki/Test-The-Mongodb-Server
436 +# resmoke needs python packages not yet present in Gentoo
437 +RESTRICT="test"
438 +
439 +RDEPEND="acct-group/mongodb
440 + acct-user/mongodb
441 + >=app-arch/snappy-1.1.3:=
442 + >=dev-cpp/yaml-cpp-0.6.2:=
443 + >=dev-libs/boost-1.70:=[threads(+),nls]
444 + >=dev-libs/libpcre-8.42[cxx]
445 + app-arch/zstd:=
446 + dev-libs/snowball-stemmer:=
447 + net-libs/libpcap
448 + >=sys-libs/zlib-1.2.11:=
449 + kerberos? ( dev-libs/cyrus-sasl[kerberos] )
450 + ssl? (
451 + >=dev-libs/openssl-1.0.1g:0=
452 + )"
453 +DEPEND="${RDEPEND}
454 + ${PYTHON_DEPS}
455 + $(python_gen_any_dep '
456 + >=dev-util/scons-3.1.1[${PYTHON_USEDEP}]
457 + dev-python/cheetah3[${PYTHON_USEDEP}]
458 + dev-python/psutil[${PYTHON_USEDEP}]
459 + dev-python/pyyaml[${PYTHON_USEDEP}]
460 + ')
461 + sys-libs/ncurses:0=
462 + sys-libs/readline:0=
463 + debug? ( dev-util/valgrind )"
464 +PDEPEND="
465 + mongosh? ( app-admin/mongosh-bin )
466 + tools? ( >=app-admin/mongo-tools-100 )
467 +"
468 +
469 +PATCHES=(
470 + "${FILESDIR}/${PN}-4.4.1-boost.patch"
471 + "${FILESDIR}/${PN}-4.4.1-gcc11.patch"
472 + "${FILESDIR}/${PN}-5.0.2-fix-scons.patch"
473 + "${FILESDIR}/${PN}-5.0.2-no-compass.patch"
474 + "${FILESDIR}/${PN}-5.0.2-skip-no-exceptions.patch"
475 + "${FILESDIR}/${PN}-5.0.2-skip-reqs-check.patch"
476 +)
477 +
478 +S="${WORKDIR}/${MY_P}"
479 +
480 +python_check_deps() {
481 + has_version ">=dev-util/scons-2.5.0[${PYTHON_USEDEP}]" &&
482 + has_version "dev-python/cheetah3[${PYTHON_USEDEP}]" &&
483 + has_version "dev-python/psutil[${PYTHON_USEDEP}]" &&
484 + has_version "dev-python/pyyaml[${PYTHON_USEDEP}]"
485 +}
486 +
487 +pkg_pretend() {
488 + # Bug 809692
489 + if ! use cpu_flags_x86_avx; then
490 + eerror "MongoDB 5.0 requires use of the AVX instruction set"
491 + eerror "https://docs.mongodb.com/v5.0/administration/production-notes/"
492 + die "MongoDB requires AVX"
493 + fi
494 +
495 + if [[ -n ${REPLACING_VERSIONS} ]]; then
496 + if ver_test "$REPLACING_VERSIONS" -lt 4.4; then
497 + ewarn "To upgrade from a version earlier than the 4.4-series, you must"
498 + ewarn "successively upgrade major releases until you have upgraded"
499 + ewarn "to 4.4-series. Then upgrade to 5.0 series."
500 + else
501 + ewarn "Be sure to set featureCompatibilityVersion to 4.4 before upgrading."
502 + fi
503 + fi
504 +}
505 +
506 +src_prepare() {
507 + default
508 +
509 + # remove bundled libs
510 + rm -r src/third_party/{boost,pcre-*,snappy-*,yaml-cpp,zlib-*} || die
511 +
512 + # remove compass
513 + rm -r src/mongo/installer/compass || die
514 +}
515 +
516 +src_configure() {
517 + # https://github.com/mongodb/mongo/wiki/Build-Mongodb-From-Source
518 + # --use-system-icu fails tests
519 + # --use-system-tcmalloc is strongly NOT recommended:
520 + scons_opts=(
521 + AR="$(tc-getAR)"
522 + CC="$(tc-getCC)"
523 + CXX="$(tc-getCXX)"
524 +
525 + --disable-warnings-as-errors
526 + --jobs="$(makeopts_jobs)"
527 + --use-system-boost
528 + --use-system-pcre
529 + --use-system-snappy
530 + --use-system-stemmer
531 + --use-system-yaml
532 + --use-system-zlib
533 + --use-system-zstd
534 + )
535 +
536 + use arm64 && scons_opts+=( --use-hardware-crc32=off ) # Bug 701300
537 + use debug && scons_opts+=( --dbg=on )
538 + use kerberos && scons_opts+=( --use-sasl-client )
539 + use lto && scons_opts+=( --lto=on )
540 + use ssl && scons_opts+=( --ssl )
541 +
542 + # respect mongoDB upstream's basic recommendations
543 + # see bug #536688 and #526114
544 + if ! use debug; then
545 + filter-flags '-m*'
546 + filter-flags '-O?'
547 + fi
548 +
549 + default
550 +}
551 +
552 +src_compile() {
553 + PREFIX="${EPREFIX}/usr" ./buildscripts/scons.py "${scons_opts[@]}" install-core || die
554 +}
555 +
556 +src_install() {
557 + dobin build/install/bin/{mongo,mongod,mongos}
558 +
559 + doman debian/mongo*.1
560 + dodoc README docs/building.md
561 +
562 + newinitd "${FILESDIR}/${PN}.initd-r3" ${PN}
563 + newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
564 + newinitd "${FILESDIR}/mongos.initd-r3" mongos
565 + newconfd "${FILESDIR}/mongos.confd-r3" mongos
566 +
567 + insinto /etc
568 + newins "${FILESDIR}/${PN}.conf-r3" ${PN}.conf
569 + newins "${FILESDIR}/mongos.conf-r2" mongos.conf
570 +
571 + systemd_dounit "${FILESDIR}/${PN}.service"
572 +
573 + insinto /etc/logrotate.d/
574 + newins "${FILESDIR}/${PN}.logrotate" ${PN}
575 +
576 + # see bug #526114
577 + pax-mark emr "${ED}"/usr/bin/{mongo,mongod,mongos}
578 +
579 + local x
580 + for x in /var/{lib,log}/${PN}; do
581 + diropts -m0750 -o mongodb -g mongodb
582 + keepdir "${x}"
583 + done
584 +}
585 +
586 +pkg_postinst() {
587 + ewarn "Make sure to read the release notes and follow the upgrade process:"
588 + ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/"
589 + ewarn " https://docs.mongodb.com/manual/release-notes/$(ver_cut 1-2)/#upgrade-procedures"
590 +}