Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/mongodb/, dev-db/mongodb/files/
Date: Fri, 01 Jan 2016 10:36:53
Message-Id: 1451644549.ea24e4c1ad373d820f4c1022eda7b6bffc2679a7.mgorny@gentoo
1 commit: ea24e4c1ad373d820f4c1022eda7b6bffc2679a7
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Fri Jan 1 10:35:49 2016 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Fri Jan 1 10:35:49 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ea24e4c1
7
8 dev-db/mongodb: [QA] Revert "drop 2.4 series"
9
10 Revert the removal of last ebuilds satisfying
11 dev-db/mongodb[sharedclient] as required by sci-chemistry/mongochem.
12
13 dev-db/mongodb/Manifest | 2 +
14 .../mongodb/files/mongodb-2.2-r1-fix-boost.patch | 13 ++
15 dev-db/mongodb/files/mongodb-2.4-fix-sasl.patch | 33 +++++
16 .../mongodb/files/mongodb-2.4.11-fix-scons.patch | 23 ++++
17 dev-db/mongodb/files/mongodb.confd | 14 ++
18 dev-db/mongodb/files/mongodb.initd-r1 | 40 ++++++
19 dev-db/mongodb/metadata.xml | 3 +
20 dev-db/mongodb/mongodb-2.4.13.ebuild | 150 +++++++++++++++++++++
21 dev-db/mongodb/mongodb-2.4.14.ebuild | 150 +++++++++++++++++++++
22 9 files changed, 428 insertions(+)
23
24 diff --git a/dev-db/mongodb/Manifest b/dev-db/mongodb/Manifest
25 index 52cf81d..ebaaf21 100644
26 --- a/dev-db/mongodb/Manifest
27 +++ b/dev-db/mongodb/Manifest
28 @@ -1,4 +1,6 @@
29 DIST 20140409-mms-monitoring-agent.zip 40122 SHA256 9c4f89cfba10b4604512ab21eb082248104aeabe7e813b852db2b86f47d7ecb2 SHA512 5290a813c407251b5e4def813ce6fe7e09d6c3a1907fd409e326b15b07aed39f7db3a28710ecdaffe2771136c9433253c5d1857c823844a4b75dd38f1d15eefd WHIRLPOOL ce80870e2618f3d9ed80af41b1069ed5bd97af475089564eed1bc111e820c048bc5cbaa03f859349e772fe232f876127e0627c75c135a9b2e196ab13258ed9f1
30 +DIST mongodb-src-r2.4.13.tar.gz 14183056 SHA256 9ad8a3b58457c35b6dd020ca2364ee605e30b839f5475449a229fdcd4115866c SHA512 26256410593f2072e8a8728fbb2665bb98d4c73f3601136e8306d1d6b421421827f66e4073515fea7dfbc0a27f5615cd30f8a85e5980ea3dd46f2f06366946cb WHIRLPOOL 6e64a8ba466da74342f7eabd41b8eb86a3d1cd99c5665e54872642230ec0ed86216c0e533b08d21e0c6b6c20b7d7887a34aad0679ba32523dd3ca0e464190348
31 +DIST mongodb-src-r2.4.14.tar.gz 15120808 SHA256 f5ed949cf7c9669267e6f426f3dc30bf6c0e2d68ba7df9e29f16799e8212e7ce SHA512 6811f27a57a2df07f59215f544948708cd5846237c24df6eb14bf09384db4136d964587d82008ff2b0a4dea94d6869fc1dcf2ccd07e5f285da5012a0a091a74f WHIRLPOOL c89b2f4f1a77523f895b3fa21ec82813a4859391c82e3934952b25ab8602c30ac13b9e6b2a00082bbe7bace32edacdb3270e46ac0f3a8c0ab10ea48b5911e019
32 DIST mongodb-src-r2.6.11.tar.gz 16461163 SHA256 e1a64a1ef7114f3e8ed3c7acaa4e97ffe30e2b57a1a5f2a40f0018bad3b8d12f SHA512 43b8c5e1ffde2c7f4bead392a95fdb34169419b8296acf04a17894379647c09bbec91be88037ab447da399f03a2c7c54c9d7613df0baa6e9e48e1267327ca937 WHIRLPOOL 083c897f83992c64a89e595058b7695671ca7e9339be2a54d14cf8a200d5063f4a33c320c02e45f5d3bd6367b5acf67a80677c92abba9a92a647d7310a2e6316
33 DIST mongodb-src-r2.6.8.tar.gz 14545274 SHA256 1997f60d9de17320f22c604d8aa1cbe5f38d877142cd0e9130fe3dae7b311a06 SHA512 6fa69750debb40d0be4d5d057125320d97e882e30c43c664fcb6ec6a9e6a8bff5e63637fc8952a6d898556b2c2ce84254d135387dc0879bf65dbd5e91b8732ef WHIRLPOOL ba87ca07258ad4df90c92bc300da6cc661117a98f254a8ba62ac362a857ecc2462eb9ddf1d929a6e2187853233053e975aa02139f880d736e47e542a9504bd28
34 DIST mongodb-src-r3.0.5.tar.gz 26332788 SHA256 05b16a7991aa65b1d396a3dc622107fba3216fffa8b9ed0817e76ae95f5f7fdb SHA512 17c66f9501e6517feba069f85bb468a421c45300306977ebfed71e6ce120e2bed64f14698e470c644360e23f40132171d64ac85f0962aa3ba824a48cf228775a WHIRLPOOL 7ed1f2b0daf7cb9ff081e69823e79504b8c99a221c74c2a541d673febacad9e555ef34eb4f2e97effe7e6fddafb81b903ab5a4ac8c4e8951640a0f2c6828ba14
35
36 diff --git a/dev-db/mongodb/files/mongodb-2.2-r1-fix-boost.patch b/dev-db/mongodb/files/mongodb-2.2-r1-fix-boost.patch
37 new file mode 100644
38 index 0000000..b6c9a1e
39 --- /dev/null
40 +++ b/dev-db/mongodb/files/mongodb-2.2-r1-fix-boost.patch
41 @@ -0,0 +1,13 @@
42 +--- mongodb-src-r2.2.0/SConstruct.old 2012-10-09 12:41:25.000000000 -0400
43 ++++ mongodb-src-r2.2.0/SConstruct 2012-10-09 12:41:41.000000000 -0400
44 +@@ -171,8 +171,8 @@
45 + add_option( "extrapathdyn", "comma separated list of add'l paths (--extrapath /opt/foo/,/foo) dynamic linking" , 1 , True )
46 + add_option( "extralib", "comma separated list of libraries (--extralib js_static,readline" , 1 , True )
47 +
48 +-add_option( "boost-compiler", "compiler used for boost (gcc41)" , 1 , True , "boostCompiler" )
49 +-add_option( "boost-version", "boost version for linking(1_38)" , 1 , True , "boostVersion" )
50 ++add_option( "boost-compiler", "compiler used for boost (gcc41)" , 1 , False , "boostCompiler" )
51 ++add_option( "boost-version", "boost version for linking(1_38)" , 1 , False , "boostVersion" )
52 +
53 + add_option( "no-glibc-check" , "don't check for new versions of glibc" , 0 , False )
54 +
55
56 diff --git a/dev-db/mongodb/files/mongodb-2.4-fix-sasl.patch b/dev-db/mongodb/files/mongodb-2.4-fix-sasl.patch
57 new file mode 100644
58 index 0000000..553967e
59 --- /dev/null
60 +++ b/dev-db/mongodb/files/mongodb-2.4-fix-sasl.patch
61 @@ -0,0 +1,33 @@
62 +--- a/src/mongo/client/sasl_client_session.cpp 2014-10-15 00:40:29.000000000 +0400
63 ++++ b/src/mongo/client/sasl_client_session.cpp 2015-02-07 18:56:02.287762467 +0300
64 +@@ -29,17 +29,26 @@
65 + * doesn't initialize the library for us.
66 + */
67 +
68 +- void* saslOurMalloc(unsigned long sz) {
69 ++// Version 2.1.26 is the first version to use size_t in the allocator signatures
70 ++#if (SASL_VERSION_FULL >= ((2 << 16) | (1 << 8) | 26))
71 ++ typedef size_t SaslAllocSize;
72 ++#else
73 ++ typedef unsigned long SaslAllocSize;
74 ++#endif
75 ++
76 ++ typedef int(*SaslCallbackFn)();
77 ++
78 ++ void* saslOurMalloc(SaslAllocSize sz) {
79 + return ourmalloc(sz);
80 + }
81 +
82 +- void* saslOurCalloc(unsigned long count, unsigned long size) {
83 ++ void* saslOurCalloc(SaslAllocSize count, SaslAllocSize size) {
84 + void* ptr = calloc(count, size);
85 +- if (!ptr) printStackAndExit(0);
86 ++ if (!ptr) abort();
87 + return ptr;
88 + }
89 +
90 +- void* saslOurRealloc(void* ptr, unsigned long sz) {
91 ++ void* saslOurRealloc(void* ptr, SaslAllocSize sz) {
92 + return ourrealloc(ptr, sz);
93 + }
94 +
95
96 diff --git a/dev-db/mongodb/files/mongodb-2.4.11-fix-scons.patch b/dev-db/mongodb/files/mongodb-2.4.11-fix-scons.patch
97 new file mode 100644
98 index 0000000..5050fe7
99 --- /dev/null
100 +++ b/dev-db/mongodb/files/mongodb-2.4.11-fix-scons.patch
101 @@ -0,0 +1,23 @@
102 +--- b/SConstruct 2014-09-01 19:12:24.289585592 +0200
103 ++++ a/SConstruct 2014-09-01 19:14:12.550312261 +0200
104 +@@ -704,7 +704,6 @@
105 + # -Winvalid-pch Warn if a precompiled header (see Precompiled Headers) is found in the search path but can't be used.
106 + env.Append( CCFLAGS=["-fPIC",
107 + "-fno-strict-aliasing",
108 +- "-ggdb",
109 + "-pthread",
110 + "-Wall",
111 + "-Wsign-compare",
112 +@@ -719,9 +718,10 @@
113 + env.Append( CCFLAGS=["-fno-builtin-memcmp"] ) # glibc's memcmp is faster than gcc's
114 +
115 + env.Append( CPPDEFINES=["_FILE_OFFSET_BITS=64"] )
116 +- env.Append( CXXFLAGS=["-Wnon-virtual-dtor", "-Woverloaded-virtual"] )
117 ++ env.Append( CXXFLAGS=os.environ['CXXFLAGS'] )
118 ++ env.Append( LINKFLAGS=os.environ['LDFLAGS'] )
119 + env.Append( LINKFLAGS=["-fPIC", "-pthread", "-rdynamic"] )
120 +- env.Append( LIBS=[] )
121 ++ env.Append( LIBS=['pcre', 'pcrecpp', 'snappy'] )
122 +
123 + #make scons colorgcc friendly
124 + for key in ('HOME', 'TERM'):
125
126 diff --git a/dev-db/mongodb/files/mongodb.confd b/dev-db/mongodb/files/mongodb.confd
127 new file mode 100644
128 index 0000000..4f76c5a
129 --- /dev/null
130 +++ b/dev-db/mongodb/files/mongodb.confd
131 @@ -0,0 +1,14 @@
132 +# Mongodb essentials
133 +MONGODB_EXEC="/usr/bin/mongod"
134 +MONGODB_RUN="/var/run/mongodb"
135 +MONGODB_DATA="/var/lib/mongodb"
136 +MONGODB_USER="mongodb"
137 +
138 +# Listen to specified IP, comment this to listen to all
139 +MONGODB_IP="127.0.0.1"
140 +
141 +# Listen to specified port
142 +MONGODB_PORT="27017"
143 +
144 +# Set extra options here, such as disabling the admin web server
145 +MONGODB_OPTIONS="--journal"
146
147 diff --git a/dev-db/mongodb/files/mongodb.initd-r1 b/dev-db/mongodb/files/mongodb.initd-r1
148 new file mode 100644
149 index 0000000..f52cca2
150 --- /dev/null
151 +++ b/dev-db/mongodb/files/mongodb.initd-r1
152 @@ -0,0 +1,40 @@
153 +#!/sbin/runscript
154 +# Copyright 1999-2013 Gentoo Foundation
155 +# Distributed under the terms of the GNU General Public License v2
156 +# $Id$
157 +
158 +depend() {
159 + use net
160 +}
161 +
162 +start() {
163 + checkpath -d -m 0750 -o "${MONGODB_USER}":mongodb "${MONGODB_RUN}"
164 +
165 + # Listen to MONGODB_IP if configured
166 + [ -z "${MONGODB_IP}" ] || MONGODB_OPTIONS="--bind_ip ${MONGODB_IP} ${MONGODB_OPTIONS}"
167 +
168 + # Baselayout-1 user should use --chuid instead of --user
169 + local USEROPT="--user"
170 + if [ ! -f /etc/init.d/sysfs ]; then
171 + USEROPT="--chuid"
172 + fi
173 +
174 + ebegin "Starting ${SVCNAME}"
175 + start-stop-daemon --background --start --make-pidfile \
176 + --pidfile ${MONGODB_RUN:-/var/run/mongodb}/${SVCNAME}.pid \
177 + ${USEROPT} ${MONGODB_USER:-mongodb} \
178 + --exec ${MONGODB_EXEC:-/usr/bin/mongod} \
179 + -- \
180 + --port ${MONGODB_PORT:-27017} \
181 + --dbpath ${MONGODB_DATA:-/var/lib/mongodb} \
182 + --unixSocketPrefix ${MONGODB_RUN:-/var/run/mongodb} \
183 + --logappend --logpath /var/log/mongodb/${SVCNAME}.log \
184 + ${MONGODB_OPTIONS}
185 + eend $?
186 +}
187 +
188 +stop() {
189 + ebegin "Stopping ${SVCNAME}"
190 + start-stop-daemon --stop --pidfile ${MONGODB_RUN:-/var/run/mongodb}/${SVCNAME}.pid
191 + eend $?
192 +}
193
194 diff --git a/dev-db/mongodb/metadata.xml b/dev-db/mongodb/metadata.xml
195 index d8ed9c9..384484c 100644
196 --- a/dev-db/mongodb/metadata.xml
197 +++ b/dev-db/mongodb/metadata.xml
198 @@ -21,6 +21,9 @@
199 </longdescription>
200 <use>
201 <flag name="mms-agent">Install the MongoDB Monitoring Service agent</flag>
202 + <flag name="sharedclient">build client shared library libmongoclient.so</flag>
203 + <flag name="spidermonkey">Use embedded SpiderMonkey engine
204 + (<pkg>dev-lang/spidermonkey</pkg>) instead of v8</flag>
205 <flag name="tools">Install the MongoDB tools (mongoimport, mongodump...)
206 from <pkg>app-admin/mongo-tools</pkg></flag>
207 </use>
208
209 diff --git a/dev-db/mongodb/mongodb-2.4.13.ebuild b/dev-db/mongodb/mongodb-2.4.13.ebuild
210 new file mode 100644
211 index 0000000..271b973
212 --- /dev/null
213 +++ b/dev-db/mongodb/mongodb-2.4.13.ebuild
214 @@ -0,0 +1,150 @@
215 +# Copyright 1999-2015 Gentoo Foundation
216 +# Distributed under the terms of the GNU General Public License v2
217 +# $Id$
218 +
219 +EAPI=4
220 +SCONS_MIN_VERSION="1.2.0"
221 +CHECKREQS_DISK_BUILD="2400M"
222 +CHECKREQS_DISK_USR="512M"
223 +
224 +inherit eutils flag-o-matic multilib pax-utils scons-utils systemd user versionator check-reqs
225 +
226 +MY_P=${PN}-src-r${PV/_rc/-rc}
227 +
228 +DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
229 +HOMEPAGE="http://www.mongodb.org"
230 +SRC_URI="http://downloads.mongodb.org/src/${MY_P}.tar.gz
231 + mms-agent? ( https://dev.gentoo.org/~ultrabug/20140409-mms-monitoring-agent.zip )"
232 +
233 +LICENSE="AGPL-3 Apache-2.0"
234 +SLOT="0"
235 +KEYWORDS="amd64 x86"
236 +IUSE="kerberos mms-agent sharedclient spidermonkey ssl static-libs"
237 +
238 +PDEPEND="mms-agent? ( dev-python/pymongo app-arch/unzip )"
239 +RDEPEND="
240 + >=dev-libs/boost-1.50[threads(+)]
241 + dev-libs/libpcre[cxx]
242 + dev-util/google-perftools[-minimal]
243 + net-libs/libpcap
244 + app-arch/snappy
245 + ssl? ( >=dev-libs/openssl-1.0.1c )"
246 +DEPEND="${RDEPEND}
247 + sys-libs/readline
248 + sys-libs/ncurses
249 + kerberos? ( dev-libs/cyrus-sasl[kerberos] )"
250 +
251 +S=${WORKDIR}/${MY_P}
252 +
253 +pkg_setup() {
254 + enewgroup mongodb
255 + enewuser mongodb -1 -1 /var/lib/${PN} mongodb
256 +
257 + scons_opts=" --disable-warnings-as-errors --cc=$(tc-getCC) --cxx=$(tc-getCXX)"
258 + scons_opts+=" --use-system-tcmalloc"
259 + scons_opts+=" --use-system-pcre"
260 + scons_opts+=" --use-system-snappy"
261 + scons_opts+=" --use-system-boost"
262 +
263 + if use prefix; then
264 + scons_opts+=" --cpppath=${EPREFIX}/usr/include"
265 + scons_opts+=" --libpath=${EPREFIX}/usr/$(get_libdir)"
266 + fi
267 +
268 + if use kerberos; then
269 + scons_opts+=" --use-sasl-client"
270 + fi
271 +
272 + if use sharedclient; then
273 + scons_opts+=" --sharedclient"
274 + fi
275 +
276 + if use spidermonkey; then
277 + scons_opts+=" --usesm"
278 + else
279 + scons_opts+=" --usev8"
280 + fi
281 +
282 + if use ssl; then
283 + scons_opts+=" --ssl"
284 + fi
285 +}
286 +
287 +src_prepare() {
288 + epatch "${FILESDIR}/${PN}-2.4.11-fix-scons.patch"
289 + epatch "${FILESDIR}/${PN}-2.2-r1-fix-boost.patch"
290 + epatch "${FILESDIR}/${PN}-2.4-fix-v8-pythonpath.patch"
291 + epatch "${FILESDIR}/${PN}-2.4-fix-sasl.patch"
292 +
293 + # bug #462606
294 + sed -i -e "s@\$INSTALL_DIR/lib@\$INSTALL_DIR/$(get_libdir)@g" src/SConscript.client || die
295 +
296 + # bug #482576
297 + sed -i -e "/-Werror/d" src/third_party/v8/SConscript || die
298 +}
299 +
300 +src_compile() {
301 + escons ${scons_opts} all
302 +}
303 +
304 +src_install() {
305 + escons ${scons_opts} --full --nostrip install --prefix="${ED}"/usr
306 +
307 + use static-libs || find "${ED}"/usr/ -type f -name "*.a" -delete
308 +
309 + if ! use spidermonkey; then
310 + pax-mark m "${ED}"/usr/bin/{mongo,mongod}
311 + fi
312 +
313 + for x in /var/{lib,log}/${PN}; do
314 + keepdir "${x}"
315 + fowners mongodb:mongodb "${x}"
316 + done
317 +
318 + doman debian/mongo*.1
319 + dodoc README docs/building.md
320 +
321 + newinitd "${FILESDIR}/${PN}.initd-r1" ${PN}
322 + newconfd "${FILESDIR}/${PN}.confd" ${PN}
323 + newinitd "${FILESDIR}/${PN/db/s}.initd-r1" ${PN/db/s}
324 + newconfd "${FILESDIR}/${PN/db/s}.confd" ${PN/db/s}
325 + systemd_dounit "${FILESDIR}"/${PN}.service
326 + insinto /etc
327 + doins "${FILESDIR}"/${PN}.conf
328 +
329 + insinto /etc/logrotate.d/
330 + newins "${FILESDIR}/${PN}.logrotate" ${PN}
331 +
332 + if use mms-agent; then
333 + local MY_PN="mms-agent"
334 + local MY_D="/opt/${MY_PN}"
335 + insinto ${MY_D}
336 + doins "${WORKDIR}/${MY_PN}/"*
337 + fowners -R mongodb:mongodb ${MY_D}
338 + newinitd "${FILESDIR}/${MY_PN}.initd-r1" ${MY_PN}
339 + fi
340 +}
341 +
342 +pkg_preinst() {
343 + # wrt bug #461466
344 + if [[ "$(get_libdir)" == "lib64" ]]; then
345 + rmdir "${ED}"/usr/lib/ &>/dev/null
346 + fi
347 +}
348 +
349 +src_test() {
350 + escons ${scons_opts} test
351 + "${S}"/test --dbpath=unittest || die
352 +}
353 +
354 +pkg_postinst() {
355 + if [[ ${REPLACING_VERSIONS} < 2.4 ]]; then
356 + ewarn "You just upgraded from a previous version of mongodb !"
357 + ewarn "Make sure you run 'mongod --upgrade' before using this version."
358 + fi
359 + elog "Journaling is now enabled by default, see /etc/conf.d/${PN}"
360 + if use mms-agent; then
361 + elog "You have to configure MMS Agent yourself :"
362 + elog "Edit the settings.py file in the /opt/mms-agent/ folder."
363 + fi
364 +}
365
366 diff --git a/dev-db/mongodb/mongodb-2.4.14.ebuild b/dev-db/mongodb/mongodb-2.4.14.ebuild
367 new file mode 100644
368 index 0000000..feb3aa8
369 --- /dev/null
370 +++ b/dev-db/mongodb/mongodb-2.4.14.ebuild
371 @@ -0,0 +1,150 @@
372 +# Copyright 1999-2015 Gentoo Foundation
373 +# Distributed under the terms of the GNU General Public License v2
374 +# $Id$
375 +
376 +EAPI=4
377 +SCONS_MIN_VERSION="1.2.0"
378 +CHECKREQS_DISK_BUILD="2400M"
379 +CHECKREQS_DISK_USR="512M"
380 +
381 +inherit eutils flag-o-matic multilib pax-utils scons-utils systemd user versionator check-reqs
382 +
383 +MY_P=${PN}-src-r${PV/_rc/-rc}
384 +
385 +DESCRIPTION="A high-performance, open source, schema-free document-oriented database"
386 +HOMEPAGE="http://www.mongodb.org"
387 +SRC_URI="http://downloads.mongodb.org/src/${MY_P}.tar.gz
388 + mms-agent? ( https://dev.gentoo.org/~ultrabug/20140409-mms-monitoring-agent.zip )"
389 +
390 +LICENSE="AGPL-3 Apache-2.0"
391 +SLOT="0"
392 +KEYWORDS="~amd64 ~x86"
393 +IUSE="kerberos mms-agent sharedclient spidermonkey ssl static-libs"
394 +
395 +PDEPEND="mms-agent? ( dev-python/pymongo app-arch/unzip )"
396 +RDEPEND="
397 + >=dev-libs/boost-1.50[threads(+)]
398 + dev-libs/libpcre[cxx]
399 + dev-util/google-perftools[-minimal]
400 + net-libs/libpcap
401 + app-arch/snappy
402 + ssl? ( >=dev-libs/openssl-1.0.1c )"
403 +DEPEND="${RDEPEND}
404 + sys-libs/readline
405 + sys-libs/ncurses
406 + kerberos? ( dev-libs/cyrus-sasl[kerberos] )"
407 +
408 +S=${WORKDIR}/${MY_P}
409 +
410 +pkg_setup() {
411 + enewgroup mongodb
412 + enewuser mongodb -1 -1 /var/lib/${PN} mongodb
413 +
414 + scons_opts=" --disable-warnings-as-errors --cc=$(tc-getCC) --cxx=$(tc-getCXX)"
415 + scons_opts+=" --use-system-tcmalloc"
416 + scons_opts+=" --use-system-pcre"
417 + scons_opts+=" --use-system-snappy"
418 + scons_opts+=" --use-system-boost"
419 +
420 + if use prefix; then
421 + scons_opts+=" --cpppath=${EPREFIX}/usr/include"
422 + scons_opts+=" --libpath=${EPREFIX}/usr/$(get_libdir)"
423 + fi
424 +
425 + if use kerberos; then
426 + scons_opts+=" --use-sasl-client"
427 + fi
428 +
429 + if use sharedclient; then
430 + scons_opts+=" --sharedclient"
431 + fi
432 +
433 + if use spidermonkey; then
434 + scons_opts+=" --usesm"
435 + else
436 + scons_opts+=" --usev8"
437 + fi
438 +
439 + if use ssl; then
440 + scons_opts+=" --ssl"
441 + fi
442 +}
443 +
444 +src_prepare() {
445 + epatch "${FILESDIR}/${PN}-2.4.11-fix-scons.patch"
446 + epatch "${FILESDIR}/${PN}-2.2-r1-fix-boost.patch"
447 + epatch "${FILESDIR}/${PN}-2.4-fix-v8-pythonpath.patch"
448 + epatch "${FILESDIR}/${PN}-2.4-fix-sasl.patch"
449 +
450 + # bug #462606
451 + sed -i -e "s@\$INSTALL_DIR/lib@\$INSTALL_DIR/$(get_libdir)@g" src/SConscript.client || die
452 +
453 + # bug #482576
454 + sed -i -e "/-Werror/d" src/third_party/v8/SConscript || die
455 +}
456 +
457 +src_compile() {
458 + escons ${scons_opts} all
459 +}
460 +
461 +src_install() {
462 + escons ${scons_opts} --full --nostrip install --prefix="${ED}"/usr
463 +
464 + use static-libs || find "${ED}"/usr/ -type f -name "*.a" -delete
465 +
466 + if ! use spidermonkey; then
467 + pax-mark m "${ED}"/usr/bin/{mongo,mongod}
468 + fi
469 +
470 + for x in /var/{lib,log}/${PN}; do
471 + keepdir "${x}"
472 + fowners mongodb:mongodb "${x}"
473 + done
474 +
475 + doman debian/mongo*.1
476 + dodoc README docs/building.md
477 +
478 + newinitd "${FILESDIR}/${PN}.initd-r1" ${PN}
479 + newconfd "${FILESDIR}/${PN}.confd" ${PN}
480 + newinitd "${FILESDIR}/${PN/db/s}.initd-r1" ${PN/db/s}
481 + newconfd "${FILESDIR}/${PN/db/s}.confd" ${PN/db/s}
482 + systemd_dounit "${FILESDIR}"/${PN}.service
483 + insinto /etc
484 + doins "${FILESDIR}"/${PN}.conf
485 +
486 + insinto /etc/logrotate.d/
487 + newins "${FILESDIR}/${PN}.logrotate" ${PN}
488 +
489 + if use mms-agent; then
490 + local MY_PN="mms-agent"
491 + local MY_D="/opt/${MY_PN}"
492 + insinto ${MY_D}
493 + doins "${WORKDIR}/${MY_PN}/"*
494 + fowners -R mongodb:mongodb ${MY_D}
495 + newinitd "${FILESDIR}/${MY_PN}.initd-r1" ${MY_PN}
496 + fi
497 +}
498 +
499 +pkg_preinst() {
500 + # wrt bug #461466
501 + if [[ "$(get_libdir)" == "lib64" ]]; then
502 + rmdir "${ED}"/usr/lib/ &>/dev/null
503 + fi
504 +}
505 +
506 +src_test() {
507 + escons ${scons_opts} test
508 + "${S}"/test --dbpath=unittest || die
509 +}
510 +
511 +pkg_postinst() {
512 + if [[ ${REPLACING_VERSIONS} < 2.4 ]]; then
513 + ewarn "You just upgraded from a previous version of mongodb !"
514 + ewarn "Make sure you run 'mongod --upgrade' before using this version."
515 + fi
516 + elog "Journaling is now enabled by default, see /etc/conf.d/${PN}"
517 + if use mms-agent; then
518 + elog "You have to configure MMS Agent yourself :"
519 + elog "Edit the settings.py file in the /opt/mms-agent/ folder."
520 + fi
521 +}