1 |
commit: dae29bc0b58c802a521cf77ca5daf3af6a395020 |
2 |
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri Oct 2 14:30:46 2020 +0000 |
4 |
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Oct 2 14:40:16 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dae29bc0 |
7 |
|
8 |
dev-python/pymysql: bump to v0.10.1 |
9 |
|
10 |
Bug: https://bugs.gentoo.org/742854 |
11 |
Package-Manager: Portage-3.0.8, Repoman-3.0.1 |
12 |
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org> |
13 |
|
14 |
dev-python/pymysql/Manifest | 1 + |
15 |
dev-python/pymysql/pymysql-0.10.1.ebuild | 138 +++++++++++++++++++++++++++++++ |
16 |
2 files changed, 139 insertions(+) |
17 |
|
18 |
diff --git a/dev-python/pymysql/Manifest b/dev-python/pymysql/Manifest |
19 |
index 28175fb1844..130c1bfa548 100644 |
20 |
--- a/dev-python/pymysql/Manifest |
21 |
+++ b/dev-python/pymysql/Manifest |
22 |
@@ -1,2 +1,3 @@ |
23 |
DIST pymysql-0.10.0.tar.gz 86137 BLAKE2B bcd4746d3e3947c2598b875d46678984beedfa0d9161a1aefb1f7f4b5314e084f5292206435b0a2621fb100744194fd1e2963228e37b41c289c5c4021f475371 SHA512 7d322c526634380cf4d3216f666a7d1f38e120390aab525cb8806bcea3f2fd7eab82e744a0be7270eae47ab1f79be5b5f7409e7e5dc9aaabf1e3c0c8853f578f |
24 |
+DIST pymysql-0.10.1.tar.gz 86441 BLAKE2B 8e33fbba0544dad68c3eeb5bd538c4bce121222b4660ad06c3c0224b5db6a6c9f45d6697a98d5f0ba20429afa204d46c9ce57a4d9696dbc2a35649c6253a645b SHA512 edc702c54a33350f75648765c60d4cf455449e88818948b018585d557bea280e626d23b1279a410765f2de8e35b3c22ea5c8e0ef3dc72588b674c93a2124a224 |
25 |
DIST pymysql-0.9.3.tar.gz 86715 BLAKE2B 0ed09f7f5c47bd1fae52dd9d0ff0790367962d8e4b89d3933704b8b8d838e1f48b68455a9a3916318bf3c1c1f102fa11b4e1e3401d021f8a2d6137612a4affb9 SHA512 d906b7a6612d91db7d4f7f2d85a9375477e6655c568e0d1e7281ad0263d4a78f0ac4e80263605723f99e12db04c80f51c5c8ed79ed6f209a7afeb4b45bf40648 |
26 |
|
27 |
diff --git a/dev-python/pymysql/pymysql-0.10.1.ebuild b/dev-python/pymysql/pymysql-0.10.1.ebuild |
28 |
new file mode 100644 |
29 |
index 00000000000..b58055923b2 |
30 |
--- /dev/null |
31 |
+++ b/dev-python/pymysql/pymysql-0.10.1.ebuild |
32 |
@@ -0,0 +1,138 @@ |
33 |
+# Copyright 1999-2020 Gentoo Authors |
34 |
+# Distributed under the terms of the GNU General Public License v2 |
35 |
+ |
36 |
+EAPI=7 |
37 |
+ |
38 |
+PYTHON_COMPAT=( python3_{6..9} pypy3 ) |
39 |
+ |
40 |
+inherit distutils-r1 |
41 |
+ |
42 |
+MY_PN="PyMySQL" |
43 |
+MY_P="${MY_PN}-${PV}" |
44 |
+ |
45 |
+DESCRIPTION="Pure-Python MySQL Driver" |
46 |
+HOMEPAGE="https://github.com/PyMySQL/PyMySQL" |
47 |
+SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" |
48 |
+S=${WORKDIR}/${MY_P} |
49 |
+ |
50 |
+LICENSE="MIT" |
51 |
+SLOT="0" |
52 |
+KEYWORDS="~amd64 ~arm ~arm64 ~x86" |
53 |
+IUSE="test" |
54 |
+RESTRICT="!test? ( test )" |
55 |
+ |
56 |
+# TODO: support other mysql variants |
57 |
+BDEPEND=" |
58 |
+ test? ( dev-db/mariadb[server] )" |
59 |
+ |
60 |
+PATCHES=( |
61 |
+ "${FILESDIR}"/${PN}-0.10.0-fix-tests.patch |
62 |
+) |
63 |
+ |
64 |
+src_prepare() { |
65 |
+ find -name '*.py' -exec sed -i -e 's:unittest2:unittest:' {} + || die |
66 |
+ |
67 |
+ # Auth tests don't support socket auth |
68 |
+ find tests/ -name '*_auth.py' -delete || die |
69 |
+ |
70 |
+ distutils-r1_src_prepare |
71 |
+} |
72 |
+ |
73 |
+src_test() { |
74 |
+ if [[ -z "${USER}" ]] ; then |
75 |
+ # Tests require system user |
76 |
+ local -x USER="$(whoami)" |
77 |
+ einfo "USER set to '${USER}'" |
78 |
+ fi |
79 |
+ |
80 |
+ local PIDFILE="${T}/mysqld.pid" |
81 |
+ if pkill -0 -F "${PIDFILE}" &>/dev/null ; then |
82 |
+ einfo "Killing already running mysqld process ..." |
83 |
+ pkill -F "${PIDFILE}" |
84 |
+ fi |
85 |
+ |
86 |
+ if [[ -d "${T}/mysql" ]] ; then |
87 |
+ einfo "Removing already existing mysqld data dir ..." |
88 |
+ rm -rf "${T}/mysql" || die |
89 |
+ fi |
90 |
+ |
91 |
+ einfo "Creating mysql test instance ..." |
92 |
+ mkdir -p "${T}"/mysql || die |
93 |
+ "${BROOT}"/usr/share/mariadb/scripts/mysql_install_db \ |
94 |
+ --no-defaults \ |
95 |
+ --auth-root-authentication-method=normal \ |
96 |
+ --basedir="${BROOT}/usr" \ |
97 |
+ --datadir="${T}"/mysql 1>"${T}"/mysqld_install.log \ |
98 |
+ || die |
99 |
+ |
100 |
+ einfo "Starting mysql test instance ..." |
101 |
+ # TODO: random port |
102 |
+ mysqld \ |
103 |
+ --no-defaults \ |
104 |
+ --character-set-server=utf8 \ |
105 |
+ --bind-address=127.0.0.1 \ |
106 |
+ --port=43306 \ |
107 |
+ --pid-file="${T}"/mysqld.pid \ |
108 |
+ --socket="${T}"/mysqld.sock \ |
109 |
+ --datadir="${T}"/mysql 1>"${T}"/mysqld.log 2>&1 & |
110 |
+ |
111 |
+ # wait for it to start |
112 |
+ local i |
113 |
+ for (( i = 0; i < 10; i++)); do |
114 |
+ [[ -S ${T}/mysqld.sock ]] && break |
115 |
+ sleep 1 |
116 |
+ done |
117 |
+ [[ -S ${T}/mysqld.sock ]] || die "mysqld failed to start" |
118 |
+ |
119 |
+ einfo "Preparing test mysql instance ..." |
120 |
+ |
121 |
+ # create test user for auth tests |
122 |
+ mysql -uroot --socket="${T}"/mysqld.sock -s -e ' |
123 |
+ INSTALL SONAME "auth_ed25519"; |
124 |
+ CREATE FUNCTION ed25519_password RETURNS STRING SONAME "auth_ed25519.so"; |
125 |
+ ' || die "Failed to set up auth_ed25519" |
126 |
+ |
127 |
+ mysql -uroot --socket="${T}"/mysqld.sock -s -e " |
128 |
+ SELECT CONCAT('CREATE USER nopass_ed25519 IDENTIFIED VIA ed25519 USING \"',ed25519_password(\"\"),'\";'); |
129 |
+ SELECT CONCAT('CREATE USER user_ed25519 IDENTIFIED VIA ed25519 USING \"',ed25519_password(\"pass_ed25519\"),'\";'); |
130 |
+ " || die "Failed to create ed25519 test users" |
131 |
+ |
132 |
+ # create test databases |
133 |
+ mysql -uroot --socket="${T}"/mysqld.sock -s -e ' |
134 |
+ create database test1 DEFAULT CHARACTER SET utf8mb4; |
135 |
+ create database test2 DEFAULT CHARACTER SET utf8mb4; |
136 |
+ |
137 |
+ create user test2 identified by "some password"; |
138 |
+ grant all on test2.* to test2; |
139 |
+ |
140 |
+ create user test2@localhost identified by "some password"; |
141 |
+ grant all on test2.* to test2@localhost; |
142 |
+ ' || die "Failed to create test databases" |
143 |
+ |
144 |
+ cat > pymysql/tests/databases.json <<-EOF || die |
145 |
+ [{ |
146 |
+ "host": "localhost", |
147 |
+ "user": "root", |
148 |
+ "passwd": "", |
149 |
+ "db": "test1", |
150 |
+ "use_unicode": true, |
151 |
+ "local_infile": true, |
152 |
+ "unix_socket": "${T}/mysqld.sock" |
153 |
+ }, { |
154 |
+ "host": "localhost", |
155 |
+ "user": "root", |
156 |
+ "passwd": "", |
157 |
+ "db": "test2", |
158 |
+ "unix_socket": "${T}/mysqld.sock" |
159 |
+ }] |
160 |
+ EOF |
161 |
+ |
162 |
+ distutils-r1_src_test |
163 |
+ |
164 |
+ if pkill -0 -F "${PIDFILE}" &>/dev/null ; then |
165 |
+ einfo "Stopping mysql test instance ..." |
166 |
+ pkill -F "${PIDFILE}" |
167 |
+ fi |
168 |
+} |
169 |
+ |
170 |
+distutils_enable_tests pytest |