Gentoo Archives: gentoo-commits

From: Thomas Deutschmann <whissi@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/mysql/
Date: Sun, 24 May 2020 20:25:15
Message-Id: 1590351824.ab0818d2ba2fd2ab8efa5e1ba9bcb2503975a8b1.whissi@gentoo
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[@]}"