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