1 |
commit: ab0818d2ba2fd2ab8efa5e1ba9bcb2503975a8b1 |
2 |
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sun May 24 14:39:52 2020 +0000 |
4 |
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun May 24 20:23:44 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ab0818d2 |
7 |
|
8 |
dev-db/mysql: fix pkg_config |
9 |
|
10 |
Bug: https://bugs.gentoo.org/722118 |
11 |
Package-Manager: Portage-2.3.99, Repoman-2.3.22 |
12 |
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org> |
13 |
|
14 |
dev-db/mysql/mysql-8.0.19-r1.ebuild | 183 +++++++++++++++++++++--------------- |
15 |
dev-db/mysql/mysql-8.0.20.ebuild | 183 +++++++++++++++++++++--------------- |
16 |
2 files changed, 212 insertions(+), 154 deletions(-) |
17 |
|
18 |
diff --git a/dev-db/mysql/mysql-8.0.19-r1.ebuild b/dev-db/mysql/mysql-8.0.19-r1.ebuild |
19 |
index 404aa98a36e..827c57daf94 100644 |
20 |
--- a/dev-db/mysql/mysql-8.0.19-r1.ebuild |
21 |
+++ b/dev-db/mysql/mysql-8.0.19-r1.ebuild |
22 |
@@ -576,43 +576,6 @@ pkg_postinst() { |
23 |
} |
24 |
|
25 |
pkg_config() { |
26 |
- local mysqld_binary="${EROOT}/usr/sbin/mysqld" |
27 |
- if [[ ! -x "${mysqld_binary}" ]] ; then |
28 |
- die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!" |
29 |
- fi |
30 |
- |
31 |
- local mysql_binary="${EROOT}/usr/bin/mysql" |
32 |
- if [[ ! -x "${mysql_binary}" ]] ; then |
33 |
- die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!" |
34 |
- fi |
35 |
- |
36 |
- local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults" |
37 |
- if [[ ! -x "${my_print_defaults_binary}" ]] ; then |
38 |
- die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!" |
39 |
- fi |
40 |
- |
41 |
- if [[ -z "${MYSQL_USER}" ]] ; then |
42 |
- MYSQL_USER=mysql |
43 |
- if use prefix ; then |
44 |
- MYSQL_USER=$(id -u -n 2>/dev/null) |
45 |
- if [[ -z "${MYSQL_USER}" ]] ; then |
46 |
- die "Failed to determine current username!" |
47 |
- fi |
48 |
- fi |
49 |
- fi |
50 |
- |
51 |
- if [[ -z "${MYSQL_GROUP}" ]] ; then |
52 |
- MYSQL_GROUP=mysql |
53 |
- if use prefix ; then |
54 |
- MYSQL_GROUP=$(id -g -n 2>/dev/null) |
55 |
- if [[ -z "${MYSQL_GROUP}" ]] ; then |
56 |
- die "Failed to determine current user groupname!" |
57 |
- fi |
58 |
- fi |
59 |
- fi |
60 |
- |
61 |
- einfo "Will use username '${MYSQL_USER}' and group '${MYSQL_GROUP}' ..." |
62 |
- |
63 |
_getoptval() { |
64 |
local section="$1" |
65 |
local flag="--${2}=" |
66 |
@@ -677,6 +640,41 @@ pkg_config() { |
67 |
done |
68 |
} |
69 |
|
70 |
+ local mysqld_binary="${EROOT}/usr/sbin/mysqld" |
71 |
+ if [[ ! -x "${mysqld_binary}" ]] ; then |
72 |
+ die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!" |
73 |
+ fi |
74 |
+ |
75 |
+ local mysql_binary="${EROOT}/usr/bin/mysql" |
76 |
+ if [[ ! -x "${mysql_binary}" ]] ; then |
77 |
+ die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!" |
78 |
+ fi |
79 |
+ |
80 |
+ local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults" |
81 |
+ if [[ ! -x "${my_print_defaults_binary}" ]] ; then |
82 |
+ die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!" |
83 |
+ fi |
84 |
+ |
85 |
+ if [[ -z "${MYSQL_USER}" ]] ; then |
86 |
+ MYSQL_USER=mysql |
87 |
+ if use prefix ; then |
88 |
+ MYSQL_USER=$(id -u -n 2>/dev/null) |
89 |
+ if [[ -z "${MYSQL_USER}" ]] ; then |
90 |
+ die "Failed to determine current username!" |
91 |
+ fi |
92 |
+ fi |
93 |
+ fi |
94 |
+ |
95 |
+ if [[ -z "${MYSQL_GROUP}" ]] ; then |
96 |
+ MYSQL_GROUP=mysql |
97 |
+ if use prefix ; then |
98 |
+ MYSQL_GROUP=$(id -g -n 2>/dev/null) |
99 |
+ if [[ -z "${MYSQL_GROUP}" ]] ; then |
100 |
+ die "Failed to determine current user groupname!" |
101 |
+ fi |
102 |
+ fi |
103 |
+ fi |
104 |
+ |
105 |
# my_print_defaults needs to read stuff in $HOME/.my.cnf |
106 |
local -x HOME="${EROOT}/root" |
107 |
|
108 |
@@ -696,8 +694,6 @@ pkg_config() { |
109 |
ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!" |
110 |
ewarn "Please rename or delete its content if you wish to initialize a new data directory." |
111 |
die "${PN} data directory at '${MY_DATADIR}' looks already initialized!" |
112 |
- else |
113 |
- einfo "${PN} data directory detected as '${MY_DATADIR}' ..." |
114 |
fi |
115 |
|
116 |
MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" |
117 |
@@ -751,7 +747,7 @@ pkg_config() { |
118 |
su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null |
119 |
fi |
120 |
|
121 |
- if [[ $? -ne 0 ]]; then |
122 |
+ if [[ $? -ne 0 ]] ; then |
123 |
die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!" |
124 |
else |
125 |
rm "${_my_datadir_testfile}" || die |
126 |
@@ -764,28 +760,8 @@ pkg_config() { |
127 |
|| die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!" |
128 |
fi |
129 |
|
130 |
- if [[ -n "${MYSQL_TMPDIR}" ]] ; then |
131 |
- local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")" |
132 |
- [[ -z "${_my_tmpdir_testfile}" ]] \ |
133 |
- && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!" |
134 |
- |
135 |
- if use prefix ; then |
136 |
- touch "${_my_tmpdir_testfile}" &>/dev/null |
137 |
- else |
138 |
- su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null |
139 |
- fi |
140 |
- |
141 |
- if [[ $? -ne 0 ]]; then |
142 |
- die "${MYSQL_USER} user cannot write into data directory '${MYSQL_TMPDIR}'!" |
143 |
- else |
144 |
- rm "${_my_tmpdir_testfile}" || die |
145 |
- unset _my_tmpdir_testfile |
146 |
- fi |
147 |
- else |
148 |
- # If no tmpdir is set, mysqld will use default system tmpdir. |
149 |
- # However, we are using tmpdir from package manager at the |
150 |
- # moment which maybe isn't writeable for $MYSQL_USER... |
151 |
- MYSQL_TMPDIR="$(_mktemp_dry "${T}/mysqld-tmp.XXXXXXXXX")" |
152 |
+ if [[ -z "${MYSQL_TMPDIR}" ]] ; then |
153 |
+ MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")" |
154 |
[[ -z "${MYSQL_TMPDIR}" ]] \ |
155 |
&& die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!" |
156 |
|
157 |
@@ -793,6 +769,24 @@ pkg_config() { |
158 |
chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die |
159 |
fi |
160 |
|
161 |
+ # Now we need to test MYSQL_TMPDIR... |
162 |
+ local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")" |
163 |
+ [[ -z "${_my_tmpdir_testfile}" ]] \ |
164 |
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!" |
165 |
+ |
166 |
+ if use prefix ; then |
167 |
+ touch "${_my_tmpdir_testfile}" &>/dev/null |
168 |
+ else |
169 |
+ su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null |
170 |
+ fi |
171 |
+ |
172 |
+ if [[ $? -ne 0 ]] ; then |
173 |
+ die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!" |
174 |
+ else |
175 |
+ rm "${_my_tmpdir_testfile}" || die |
176 |
+ unset _my_tmpdir_testfile |
177 |
+ fi |
178 |
+ |
179 |
if [[ -n "${MYSQL_LOG_BIN}" && ! -d "${MYSQL_LOG_BIN}" ]] ; then |
180 |
einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..." |
181 |
install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \ |
182 |
@@ -810,7 +804,7 @@ pkg_config() { |
183 |
su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null |
184 |
fi |
185 |
|
186 |
- if [[ $? -ne 0 ]]; then |
187 |
+ if [[ $? -ne 0 ]] ; then |
188 |
die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!" |
189 |
else |
190 |
rm "${_my_logbin_testfile}" || die |
191 |
@@ -835,7 +829,7 @@ pkg_config() { |
192 |
su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null |
193 |
fi |
194 |
|
195 |
- if [[ $? -ne 0 ]]; then |
196 |
+ if [[ $? -ne 0 ]] ; then |
197 |
die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!" |
198 |
else |
199 |
rm "${_my_relaylog_testfile}" || die |
200 |
@@ -843,6 +837,44 @@ pkg_config() { |
201 |
fi |
202 |
fi |
203 |
|
204 |
+ local mysql_install_log="$(_mktemp_dry "${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log")" |
205 |
+ if [[ -z "${mysql_install_log}" ]] ; then |
206 |
+ die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log' failed!" |
207 |
+ else |
208 |
+ # make sure file is writable for MYSQL_USER... |
209 |
+ touch "${mysql_install_log}" || die |
210 |
+ chown ${MYSQL_USER} "${mysql_install_log}" || die |
211 |
+ fi |
212 |
+ |
213 |
+ local mysqld_logfile="$(_mktemp_dry "${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log")" |
214 |
+ if [[ -z "${mysqld_logfile}" ]] ; then |
215 |
+ die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log' failed!" |
216 |
+ else |
217 |
+ # make sure file is writable for MYSQL_USER... |
218 |
+ touch "${mysqld_logfile}" || die |
219 |
+ chown ${MYSQL_USER} "${mysqld_logfile}" || die |
220 |
+ fi |
221 |
+ |
222 |
+ echo "" |
223 |
+ einfo "Detected settings:" |
224 |
+ einfo "==================" |
225 |
+ einfo "MySQL User:\t\t\t\t${MYSQL_USER}" |
226 |
+ einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}" |
227 |
+ einfo "MySQL DATA directory:\t\t${MY_DATADIR}" |
228 |
+ einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}" |
229 |
+ |
230 |
+ if [[ -n "${MYSQL_LOG_BIN}" ]] ; then |
231 |
+ einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}" |
232 |
+ fi |
233 |
+ |
234 |
+ if [[ -n "${MYSQL_RELAY_LOG}" ]] ; then |
235 |
+ einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}" |
236 |
+ fi |
237 |
+ |
238 |
+ einfo "PID DIR:\t\t\t\t${PID_DIR}" |
239 |
+ einfo "Install db log:\t\t\t${mysql_install_log}" |
240 |
+ einfo "Install server log:\t\t\t${mysqld_logfile}" |
241 |
+ |
242 |
local -a config_files |
243 |
|
244 |
local config_file="${EROOT}/etc/mysql/mysql.d/50-distro-client.cnf" |
245 |
@@ -888,6 +920,8 @@ pkg_config() { |
246 |
;; |
247 |
esac |
248 |
|
249 |
+ echo "Selected authentication plugin: ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" >> "${mysql_install_log}" |
250 |
+ |
251 |
unset user_answer |
252 |
fi |
253 |
|
254 |
@@ -993,19 +1027,16 @@ pkg_config() { |
255 |
|
256 |
# Prepare timezones, see |
257 |
# https://dev.mysql.com/doc/mysql/en/time-zone-support.html |
258 |
- local tz_sql="${TMPDIR}/tz.sql" |
259 |
+ local tz_sql="$(_mktemp_dry "${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql")" |
260 |
+ [[ -z "${tz_sql}" ]] \ |
261 |
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql' failed!" |
262 |
+ |
263 |
echo "USE mysql;" >"${tz_sql}" |
264 |
"${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null |
265 |
if [[ $? -ne 0 ]] ; then |
266 |
die "mysql_tzinfo_to_sql failed!" |
267 |
fi |
268 |
|
269 |
- chown ${MYSQL_USER} "${tz_sql}" || die |
270 |
- |
271 |
- local mysql_install_log="${TMPDIR}/mysql_install_db.log" |
272 |
- touch "${mysql_install_log}" || die |
273 |
- chown ${MYSQL_USER} "${mysql_install_log}" || die |
274 |
- |
275 |
# --initialize-insecure will not set root password |
276 |
# --initialize would set a random one in the log which we don't need as we set it ourselves |
277 |
local cmd=( |
278 |
@@ -1028,15 +1059,13 @@ pkg_config() { |
279 |
die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!" |
280 |
fi |
281 |
|
282 |
+ rm "${tz_sql}" || die |
283 |
+ |
284 |
local x=${RANDOM} |
285 |
- local socket="${EROOT}/run/mysqld/mysqld${x}.sock" |
286 |
- local pidfile="${EROOT}/run/mysqld/mysqld${x}.pid" |
287 |
+ local socket="${EROOT}${PID_DIR}/mysqld${x}.sock" |
288 |
+ local pidfile="${EROOT}${PID_DIR}/mysqld${x}.pid" |
289 |
unset x |
290 |
|
291 |
- local mysqld_logfile="${TMPDIR}/mysqld.log" |
292 |
- touch "${mysqld_logfile}" || die |
293 |
- chown ${MYSQL_USER} "${mysqld_logfile}" || die |
294 |
- |
295 |
cmd=( |
296 |
"${mysqld_binary}" |
297 |
"${mysqld_options[@]}" |
298 |
|
299 |
diff --git a/dev-db/mysql/mysql-8.0.20.ebuild b/dev-db/mysql/mysql-8.0.20.ebuild |
300 |
index d2f81739cca..05585342435 100644 |
301 |
--- a/dev-db/mysql/mysql-8.0.20.ebuild |
302 |
+++ b/dev-db/mysql/mysql-8.0.20.ebuild |
303 |
@@ -558,43 +558,6 @@ pkg_postinst() { |
304 |
} |
305 |
|
306 |
pkg_config() { |
307 |
- local mysqld_binary="${EROOT}/usr/sbin/mysqld" |
308 |
- if [[ ! -x "${mysqld_binary}" ]] ; then |
309 |
- die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!" |
310 |
- fi |
311 |
- |
312 |
- local mysql_binary="${EROOT}/usr/bin/mysql" |
313 |
- if [[ ! -x "${mysql_binary}" ]] ; then |
314 |
- die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!" |
315 |
- fi |
316 |
- |
317 |
- local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults" |
318 |
- if [[ ! -x "${my_print_defaults_binary}" ]] ; then |
319 |
- die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!" |
320 |
- fi |
321 |
- |
322 |
- if [[ -z "${MYSQL_USER}" ]] ; then |
323 |
- MYSQL_USER=mysql |
324 |
- if use prefix ; then |
325 |
- MYSQL_USER=$(id -u -n 2>/dev/null) |
326 |
- if [[ -z "${MYSQL_USER}" ]] ; then |
327 |
- die "Failed to determine current username!" |
328 |
- fi |
329 |
- fi |
330 |
- fi |
331 |
- |
332 |
- if [[ -z "${MYSQL_GROUP}" ]] ; then |
333 |
- MYSQL_GROUP=mysql |
334 |
- if use prefix ; then |
335 |
- MYSQL_GROUP=$(id -g -n 2>/dev/null) |
336 |
- if [[ -z "${MYSQL_GROUP}" ]] ; then |
337 |
- die "Failed to determine current user groupname!" |
338 |
- fi |
339 |
- fi |
340 |
- fi |
341 |
- |
342 |
- einfo "Will use username '${MYSQL_USER}' and group '${MYSQL_GROUP}' ..." |
343 |
- |
344 |
_getoptval() { |
345 |
local section="$1" |
346 |
local flag="--${2}=" |
347 |
@@ -659,6 +622,41 @@ pkg_config() { |
348 |
done |
349 |
} |
350 |
|
351 |
+ local mysqld_binary="${EROOT}/usr/sbin/mysqld" |
352 |
+ if [[ ! -x "${mysqld_binary}" ]] ; then |
353 |
+ die "'${mysqld_binary}' not found! Please re-install ${CATEGORY}/${PN}!" |
354 |
+ fi |
355 |
+ |
356 |
+ local mysql_binary="${EROOT}/usr/bin/mysql" |
357 |
+ if [[ ! -x "${mysql_binary}" ]] ; then |
358 |
+ die "'${mysql_binary}' not found! Please re-install ${CATEGORY}/${PN}!" |
359 |
+ fi |
360 |
+ |
361 |
+ local my_print_defaults_binary="${EROOT}/usr/bin/my_print_defaults" |
362 |
+ if [[ ! -x "${my_print_defaults_binary}" ]] ; then |
363 |
+ die "'${my_print_defaults_binary}' not found! Please re-install dev-db/mysql-connector-c!" |
364 |
+ fi |
365 |
+ |
366 |
+ if [[ -z "${MYSQL_USER}" ]] ; then |
367 |
+ MYSQL_USER=mysql |
368 |
+ if use prefix ; then |
369 |
+ MYSQL_USER=$(id -u -n 2>/dev/null) |
370 |
+ if [[ -z "${MYSQL_USER}" ]] ; then |
371 |
+ die "Failed to determine current username!" |
372 |
+ fi |
373 |
+ fi |
374 |
+ fi |
375 |
+ |
376 |
+ if [[ -z "${MYSQL_GROUP}" ]] ; then |
377 |
+ MYSQL_GROUP=mysql |
378 |
+ if use prefix ; then |
379 |
+ MYSQL_GROUP=$(id -g -n 2>/dev/null) |
380 |
+ if [[ -z "${MYSQL_GROUP}" ]] ; then |
381 |
+ die "Failed to determine current user groupname!" |
382 |
+ fi |
383 |
+ fi |
384 |
+ fi |
385 |
+ |
386 |
# my_print_defaults needs to read stuff in $HOME/.my.cnf |
387 |
local -x HOME="${EROOT}/root" |
388 |
|
389 |
@@ -678,8 +676,6 @@ pkg_config() { |
390 |
ewarn "Looks like your data directory '${MY_DATADIR}' is already initialized!" |
391 |
ewarn "Please rename or delete its content if you wish to initialize a new data directory." |
392 |
die "${PN} data directory at '${MY_DATADIR}' looks already initialized!" |
393 |
- else |
394 |
- einfo "${PN} data directory detected as '${MY_DATADIR}' ..." |
395 |
fi |
396 |
|
397 |
MYSQL_TMPDIR="$(_getoptval mysqld tmpdir "--defaults-file='${MY_SYSCONFDIR}/my.cnf'")" |
398 |
@@ -733,7 +729,7 @@ pkg_config() { |
399 |
su -s /bin/sh -c "touch ${_my_datadir_testfile}" ${MYSQL_USER} &>/dev/null |
400 |
fi |
401 |
|
402 |
- if [[ $? -ne 0 ]]; then |
403 |
+ if [[ $? -ne 0 ]] ; then |
404 |
die "${MYSQL_USER} user cannot write into data directory '${MY_DATADIR}'!" |
405 |
else |
406 |
rm "${_my_datadir_testfile}" || die |
407 |
@@ -746,28 +742,8 @@ pkg_config() { |
408 |
|| die "Failed to create ${PN} tmpdir '${MYSQL_TMPDIR}'!" |
409 |
fi |
410 |
|
411 |
- if [[ -n "${MYSQL_TMPDIR}" ]] ; then |
412 |
- local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")" |
413 |
- [[ -z "${_my_tmpdir_testfile}" ]] \ |
414 |
- && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!" |
415 |
- |
416 |
- if use prefix ; then |
417 |
- touch "${_my_tmpdir_testfile}" &>/dev/null |
418 |
- else |
419 |
- su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null |
420 |
- fi |
421 |
- |
422 |
- if [[ $? -ne 0 ]]; then |
423 |
- die "${MYSQL_USER} user cannot write into data directory '${MYSQL_TMPDIR}'!" |
424 |
- else |
425 |
- rm "${_my_tmpdir_testfile}" || die |
426 |
- unset _my_tmpdir_testfile |
427 |
- fi |
428 |
- else |
429 |
- # If no tmpdir is set, mysqld will use default system tmpdir. |
430 |
- # However, we are using tmpdir from package manager at the |
431 |
- # moment which maybe isn't writeable for $MYSQL_USER... |
432 |
- MYSQL_TMPDIR="$(_mktemp_dry "${T}/mysqld-tmp.XXXXXXXXX")" |
433 |
+ if [[ -z "${MYSQL_TMPDIR}" ]] ; then |
434 |
+ MYSQL_TMPDIR="$(_mktemp_dry "${EROOT}/tmp/mysqld-tmp.XXXXXXXXX")" |
435 |
[[ -z "${MYSQL_TMPDIR}" ]] \ |
436 |
&& die "_mktemp_dry() for '${MYSQL_TMPDIR}' failed!" |
437 |
|
438 |
@@ -775,6 +751,24 @@ pkg_config() { |
439 |
chown ${MYSQL_USER} "${MYSQL_TMPDIR}" || die |
440 |
fi |
441 |
|
442 |
+ # Now we need to test MYSQL_TMPDIR... |
443 |
+ local _my_tmpdir_testfile="$(_mktemp_dry "${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX")" |
444 |
+ [[ -z "${_my_tmpdir_testfile}" ]] \ |
445 |
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/.pkg_config-access-test.XXXXXXXXX' failed!" |
446 |
+ |
447 |
+ if use prefix ; then |
448 |
+ touch "${_my_tmpdir_testfile}" &>/dev/null |
449 |
+ else |
450 |
+ su -s /bin/sh -c "touch ${_my_tmpdir_testfile}" ${MYSQL_USER} &>/dev/null |
451 |
+ fi |
452 |
+ |
453 |
+ if [[ $? -ne 0 ]] ; then |
454 |
+ die "${MYSQL_USER} user cannot write into tmpdir '${MYSQL_TMPDIR}'!" |
455 |
+ else |
456 |
+ rm "${_my_tmpdir_testfile}" || die |
457 |
+ unset _my_tmpdir_testfile |
458 |
+ fi |
459 |
+ |
460 |
if [[ -n "${MYSQL_LOG_BIN}" && ! -d "${MYSQL_LOG_BIN}" ]] ; then |
461 |
einfo "Creating ${PN} log-bin directory '${MYSQL_LOG_BIN}' ..." |
462 |
install -d -m 770 -o ${MYSQL_USER} -g ${MYSQL_GROUP} "${MYSQL_LOG_BIN}" \ |
463 |
@@ -792,7 +786,7 @@ pkg_config() { |
464 |
su -s /bin/sh -c "touch ${_my_logbin_testfile}" ${MYSQL_USER} &>/dev/null |
465 |
fi |
466 |
|
467 |
- if [[ $? -ne 0 ]]; then |
468 |
+ if [[ $? -ne 0 ]] ; then |
469 |
die "${MYSQL_USER} user cannot write into log-bin directory '${MYSQL_LOG_BIN}'!" |
470 |
else |
471 |
rm "${_my_logbin_testfile}" || die |
472 |
@@ -817,7 +811,7 @@ pkg_config() { |
473 |
su -s /bin/sh -c "touch ${_my_relaylog_testfile}" ${MYSQL_USER} &>/dev/null |
474 |
fi |
475 |
|
476 |
- if [[ $? -ne 0 ]]; then |
477 |
+ if [[ $? -ne 0 ]] ; then |
478 |
die "${MYSQL_USER} user cannot write into relay-log directory '${MYSQL_RELAY_LOG}'!" |
479 |
else |
480 |
rm "${_my_relaylog_testfile}" || die |
481 |
@@ -825,6 +819,44 @@ pkg_config() { |
482 |
fi |
483 |
fi |
484 |
|
485 |
+ local mysql_install_log="$(_mktemp_dry "${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log")" |
486 |
+ if [[ -z "${mysql_install_log}" ]] ; then |
487 |
+ die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_db.XXXXXXXXX.log' failed!" |
488 |
+ else |
489 |
+ # make sure file is writable for MYSQL_USER... |
490 |
+ touch "${mysql_install_log}" || die |
491 |
+ chown ${MYSQL_USER} "${mysql_install_log}" || die |
492 |
+ fi |
493 |
+ |
494 |
+ local mysqld_logfile="$(_mktemp_dry "${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log")" |
495 |
+ if [[ -z "${mysqld_logfile}" ]] ; then |
496 |
+ die "_mktemp_dry() for '${MYSQL_TMPDIR}/install_mysqld.XXXXXXXXX.log' failed!" |
497 |
+ else |
498 |
+ # make sure file is writable for MYSQL_USER... |
499 |
+ touch "${mysqld_logfile}" || die |
500 |
+ chown ${MYSQL_USER} "${mysqld_logfile}" || die |
501 |
+ fi |
502 |
+ |
503 |
+ echo "" |
504 |
+ einfo "Detected settings:" |
505 |
+ einfo "==================" |
506 |
+ einfo "MySQL User:\t\t\t\t${MYSQL_USER}" |
507 |
+ einfo "MySQL Group:\t\t\t\t${MYSQL_GROUP}" |
508 |
+ einfo "MySQL DATA directory:\t\t${MY_DATADIR}" |
509 |
+ einfo "MySQL TMP directory:\t\t\t${MYSQL_TMPDIR}" |
510 |
+ |
511 |
+ if [[ -n "${MYSQL_LOG_BIN}" ]] ; then |
512 |
+ einfo "MySQL Binary Log File location:\t${MYSQL_LOG_BIN}" |
513 |
+ fi |
514 |
+ |
515 |
+ if [[ -n "${MYSQL_RELAY_LOG}" ]] ; then |
516 |
+ einfo "MySQL Relay Log File location:\t${MYSQL_RELAY_LOG}" |
517 |
+ fi |
518 |
+ |
519 |
+ einfo "PID DIR:\t\t\t\t${PID_DIR}" |
520 |
+ einfo "Install db log:\t\t\t${mysql_install_log}" |
521 |
+ einfo "Install server log:\t\t\t${mysqld_logfile}" |
522 |
+ |
523 |
local -a config_files |
524 |
|
525 |
local config_file="${EROOT}/etc/mysql/mysql.d/50-distro-client.cnf" |
526 |
@@ -870,6 +902,8 @@ pkg_config() { |
527 |
;; |
528 |
esac |
529 |
|
530 |
+ echo "Selected authentication plugin: ${MYSQL_DEFAULT_AUTHENTICATION_PLUGIN}" >> "${mysql_install_log}" |
531 |
+ |
532 |
unset user_answer |
533 |
fi |
534 |
|
535 |
@@ -975,19 +1009,16 @@ pkg_config() { |
536 |
|
537 |
# Prepare timezones, see |
538 |
# https://dev.mysql.com/doc/mysql/en/time-zone-support.html |
539 |
- local tz_sql="${TMPDIR}/tz.sql" |
540 |
+ local tz_sql="$(_mktemp_dry "${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql")" |
541 |
+ [[ -z "${tz_sql}" ]] \ |
542 |
+ && die "_mktemp_dry() for '${MYSQL_TMPDIR}/tz.XXXXXXXXX.sql' failed!" |
543 |
+ |
544 |
echo "USE mysql;" >"${tz_sql}" |
545 |
"${EROOT}/usr/bin/mysql_tzinfo_to_sql" "${EROOT}/usr/share/zoneinfo" >> "${tz_sql}" 2>/dev/null |
546 |
if [[ $? -ne 0 ]] ; then |
547 |
die "mysql_tzinfo_to_sql failed!" |
548 |
fi |
549 |
|
550 |
- chown ${MYSQL_USER} "${tz_sql}" || die |
551 |
- |
552 |
- local mysql_install_log="${TMPDIR}/mysql_install_db.log" |
553 |
- touch "${mysql_install_log}" || die |
554 |
- chown ${MYSQL_USER} "${mysql_install_log}" || die |
555 |
- |
556 |
# --initialize-insecure will not set root password |
557 |
# --initialize would set a random one in the log which we don't need as we set it ourselves |
558 |
local cmd=( |
559 |
@@ -1010,15 +1041,13 @@ pkg_config() { |
560 |
die "Failed to initialize ${PN} data directory. Please review '${mysql_install_log}'!" |
561 |
fi |
562 |
|
563 |
+ rm "${tz_sql}" || die |
564 |
+ |
565 |
local x=${RANDOM} |
566 |
- local socket="${EROOT}/run/mysqld/mysqld${x}.sock" |
567 |
- local pidfile="${EROOT}/run/mysqld/mysqld${x}.pid" |
568 |
+ local socket="${EROOT}${PID_DIR}/mysqld${x}.sock" |
569 |
+ local pidfile="${EROOT}${PID_DIR}/mysqld${x}.pid" |
570 |
unset x |
571 |
|
572 |
- local mysqld_logfile="${TMPDIR}/mysqld.log" |
573 |
- touch "${mysqld_logfile}" || die |
574 |
- chown ${MYSQL_USER} "${mysqld_logfile}" || die |
575 |
- |
576 |
cmd=( |
577 |
"${mysqld_binary}" |
578 |
"${mysqld_options[@]}" |