Gentoo Archives: gentoo-commits

From: Arthur Zamarin <arthurzam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/pymongo/
Date: Sat, 02 Oct 2021 11:40:00
Message-Id: 1633174771.2002332190e584938ccaca6b442a064b13a2883a.arthurzam@gentoo
1 commit: 2002332190e584938ccaca6b442a064b13a2883a
2 Author: Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
3 AuthorDate: Sat Oct 2 10:57:02 2021 +0000
4 Commit: Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
5 CommitDate: Sat Oct 2 11:39:31 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=20023321
7
8 dev-python/pymongo: add 3.12.0, enable py3.10
9
10 Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>
11
12 dev-python/pymongo/Manifest | 1 +
13 dev-python/pymongo/pymongo-3.12.0.ebuild | 115 +++++++++++++++++++++++++++++++
14 2 files changed, 116 insertions(+)
15
16 diff --git a/dev-python/pymongo/Manifest b/dev-python/pymongo/Manifest
17 index 00b19f38de7..df9cc679844 100644
18 --- a/dev-python/pymongo/Manifest
19 +++ b/dev-python/pymongo/Manifest
20 @@ -1 +1,2 @@
21 DIST mongo-python-driver-3.11.4.tar.gz 983009 BLAKE2B b2ca8d90a34b41c0991b545626853137b6a7f5f006dbb5d7a93fd8312759b53b99415583ca5ba982abb420db8502cb9de745f1ac0962efa05eb05ecb4289c323 SHA512 ecd2ff41ab902423dc58901cd9a8355e200f5b00a4eea4a8e950de75674fd59f7367df1ab7ee6c09bf515b8fa110cac0f7de084fbe14527486a9c38a0c8c9c27
22 +DIST mongo-python-driver-3.12.0.tar.gz 1062091 BLAKE2B 636a34a42d43a6ecd549c51e9e5b3a617291b64a1ba91d7473c365f8df88d59efd7b2906dd80147ffab4309d38cce30a3475bbe142e347312823236f8657c801 SHA512 fc2734b8821b42cca1b67930d5c7612526e51292144a376425627ea6254b09128ccd894af3be293184f940c7f8faa1c0cd3a0d069f9b4143a15cb32279c3bdb1
23
24 diff --git a/dev-python/pymongo/pymongo-3.12.0.ebuild b/dev-python/pymongo/pymongo-3.12.0.ebuild
25 new file mode 100644
26 index 00000000000..07abe794cd9
27 --- /dev/null
28 +++ b/dev-python/pymongo/pymongo-3.12.0.ebuild
29 @@ -0,0 +1,115 @@
30 +# Copyright 1999-2021 Gentoo Authors
31 +# Distributed under the terms of the GNU General Public License v2
32 +
33 +EAPI=7
34 +
35 +PYTHON_COMPAT=( python3_{8..10} )
36 +inherit check-reqs distutils-r1
37 +
38 +MY_P=mongo-python-driver-${PV}
39 +DESCRIPTION="Python driver for MongoDB"
40 +HOMEPAGE="https://github.com/mongodb/mongo-python-driver https://pypi.org/project/pymongo/"
41 +SRC_URI="
42 + https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
43 + -> ${MY_P}.tar.gz"
44 +S=${WORKDIR}/${MY_P}
45 +
46 +LICENSE="Apache-2.0"
47 +SLOT="0"
48 +KEYWORDS="~amd64 ~arm64 ~hppa ~riscv ~x86"
49 +IUSE="doc kerberos"
50 +
51 +RDEPEND="
52 + kerberos? ( dev-python/pykerberos[${PYTHON_USEDEP}] )
53 +"
54 +BDEPEND="
55 + test? (
56 + >=dev-db/mongodb-2.6.0
57 + )
58 +"
59 +DISTUTILS_IN_SOURCE_BUILD=1
60 +
61 +distutils_enable_sphinx doc
62 +distutils_enable_tests nose
63 +
64 +reqcheck() {
65 + if use test; then
66 + # During the tests, database size reaches 1.5G.
67 + local CHECKREQS_DISK_BUILD=1536M
68 +
69 + check-reqs_${1}
70 + fi
71 +}
72 +
73 +pkg_pretend() {
74 + reqcheck pkg_pretend
75 +}
76 +
77 +pkg_setup() {
78 + reqcheck pkg_setup
79 +}
80 +
81 +src_prepare() {
82 + # network-sandbox probably
83 + rm test/test_srv_polling.py || die
84 + sed -e 's:test_connection_timeout_ms_propagates_to_DNS_resolver:_&:' \
85 + -i test/test_client.py || die
86 + # relies on exact exception message
87 + sed -e 's:abstract methods:abstract:' \
88 + -i test/test_custom_types.py || die
89 + distutils-r1_src_prepare
90 +}
91 +
92 +python_test() {
93 + # Yes, we need TCP/IP for that...
94 + local DB_IP=127.0.0.1
95 + local DB_PORT=27000
96 +
97 + export DB_IP DB_PORT
98 +
99 + local dbpath=${TMPDIR}/mongo.db
100 + local logpath=${TMPDIR}/mongod.log
101 +
102 + # Now, the hard part: we need to find a free port for mongod.
103 + # We're just trying to run it random port numbers and check the log
104 + # for bind errors. It shall be noted that 'mongod --fork' does not
105 + # return failure when it fails to bind.
106 +
107 + mkdir -p "${dbpath}" || die
108 + while true; do
109 + ebegin "Trying to start mongod on port ${DB_PORT}"
110 +
111 + LC_ALL=C \
112 + mongod --dbpath "${dbpath}" --nojournal \
113 + --bind_ip ${DB_IP} --port ${DB_PORT} \
114 + --unixSocketPrefix "${TMPDIR}" \
115 + --logpath "${logpath}" --fork \
116 + && sleep 2
117 +
118 + # Now we need to check if the server actually started...
119 + if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
120 + # yay!
121 + eend 0
122 + break
123 + elif grep -q 'Address already in use' "${logpath}"; then
124 + # ay, someone took our port!
125 + eend 1
126 + : $(( DB_PORT += 1 ))
127 + continue
128 + else
129 + eend 1
130 + eerror "Unable to start mongod for tests. See the server log:"
131 + eerror " ${logpath}"
132 + die "Unable to start mongod for tests."
133 + fi
134 + done
135 +
136 + local failed
137 + DB_PORT2=$(( DB_PORT + 1 )) DB_PORT3=$(( DB_PORT + 2 )) esetup.py test || failed=1
138 +
139 + mongod --dbpath "${dbpath}" --shutdown || die
140 +
141 + [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
142 +
143 + rm -rf "${dbpath}" || die
144 +}