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 |
+} |