[gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-init-scripts/files/, dev-db/mysql-init-scripts/
commit: 11a14f552fc07767d2632cb4b09674cccfa715ff Author: Louis Sautier gentoo org> AuthorDate: Sat Nov 26 09:55:52 2022 + Commit: Louis Sautier gentoo org> CommitDate: Sun Dec 4 20:22:44 2022 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=11a14f55 dev-db/mysql-init-scripts: stop using deprecated egrep alias Since grep 3.8, this resulted in "egrep: warning: egrep is obsolescent; using /bin/grep -E". Signed-off-by: Louis Sautier gentoo.org> Closes: https://github.com/gentoo/gentoo/pull/28437 dev-db/mysql-init-scripts/files/init.d-2.3 | 2 +- dev-db/mysql-init-scripts/files/init.d-supervise-2.3| 2 +- ...ysql-init-scripts-2.3-r4.ebuild => mysql-init-scripts-2.3-r5.ebuild} | 0 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dev-db/mysql-init-scripts/files/init.d-2.3 b/dev-db/mysql-init-scripts/files/init.d-2.3 index f587e26f7322..90e7e7536881 100644 --- a/dev-db/mysql-init-scripts/files/init.d-2.3 +++ b/dev-db/mysql-init-scripts/files/init.d-2.3 @@ -47,7 +47,7 @@ bootstrap_galera() { start() { # Check for old conf.d variables that mean migration was not yet done. - set | egrep -sq '^(mysql_slot_|MYSQL_BLOG_PID_FILE|STOPTIMEOUT)' + set | grep -Esq '^(mysql_slot_|MYSQL_BLOG_PID_FILE|STOPTIMEOUT)' rc=$? # Yes, MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING is a hidden variable. # It does have a use in testing, as it is possible to build a config file diff --git a/dev-db/mysql-init-scripts/files/init.d-supervise-2.3 b/dev-db/mysql-init-scripts/files/init.d-supervise-2.3 index d0cbb312ccac..1bacbd4d8566 100644 --- a/dev-db/mysql-init-scripts/files/init.d-supervise-2.3 +++ b/dev-db/mysql-init-scripts/files/init.d-supervise-2.3 @@ -44,7 +44,7 @@ bootstrap_galera() { start() { # Check for old conf.d variables that mean migration was not yet done. - set | egrep -sq '^(mysql_slot_|MYSQL_BLOG_PID_FILE|STOPTIMEOUT)' + set | grep -Esq '^(mysql_slot_|MYSQL_BLOG_PID_FILE|STOPTIMEOUT)' rc=$? # Yes, MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING is a hidden variable. # It does have a use in testing, as it is possible to build a config file diff --git a/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r4.ebuild b/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r5.ebuild similarity index 100% rename from dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r4.ebuild rename to dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r5.ebuild
[gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-init-scripts/files/, dev-db/mysql-init-scripts/
commit: cda4995e825424bf017dc4a76e249d0531f841d4 Author: Thomas Deutschmann gentoo org> AuthorDate: Wed Aug 28 14:17:49 2019 + Commit: Thomas Deutschmann gentoo org> CommitDate: Wed Aug 28 14:43:21 2019 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cda4995e dev-db/mysql-init-scripts: rev bump - Move acct-* dependencies to RDEPEND to support binary packages. Note: According to devmanual there will be a problem once emerge will merge RDEPEND after the actual package. - Handle the case when option is defined multiple times. Closes: https://bugs.gentoo.org/693000 Closes: https://bugs.gentoo.org/686378 Package-Manager: Portage-2.3.72, Repoman-2.3.17 Signed-off-by: Thomas Deutschmann gentoo.org> .../mysql-init-scripts/files/logrotate.mysql-2.3 | 5 +- .../mysql-init-scripts-2.3-r3.ebuild | 70 ++ 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/dev-db/mysql-init-scripts/files/logrotate.mysql-2.3 b/dev-db/mysql-init-scripts/files/logrotate.mysql-2.3 index 6a3b9eeb2ca..6573671b2c7 100644 --- a/dev-db/mysql-init-scripts/files/logrotate.mysql-2.3 +++ b/dev-db/mysql-init-scripts/files/logrotate.mysql-2.3 @@ -9,6 +9,9 @@ size 5M sharedscripts missingok postrotate - /bin/kill -HUP $(cat $(my_print_defaults server mysqld mariadb | grep 'pid[_-]file' | cut -d = -f 2)) + pidfile=$(my_print_defaults server mysqld mariadb | grep 'pid[_-]file' | tail -n 1 | cut -d = -f 2) + if [ -s "${pidfile}" ] ; then + /bin/kill -HUP $(cat "${pidfile}") + fi endscript } diff --git a/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r3.ebuild b/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r3.ebuild new file mode 100644 index 000..ddd4c187ef2 --- /dev/null +++ b/dev-db/mysql-init-scripts/mysql-init-scripts-2.3-r3.ebuild @@ -0,0 +1,70 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit systemd s6 tmpfiles + +DESCRIPTION="Gentoo MySQL init scripts." +HOMEPAGE="https://www.gentoo.org/"; +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" +IUSE="" + +DEPEND="" +# This _will_ break with MySQL 5.0, 4.x, 3.x +# It also NEEDS openrc for the save_options/get_options builtins. +# The s6 support was added after openrc 0.16.2 +# mysql-connector-c needed for my_print_defaults +RDEPEND=" + !
[gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-init-scripts/files/, dev-db/mysql-init-scripts/
commit: 88ee64577bc5e9b5343299ca3120bb5e6dba6b2c Author: Thomas Deutschmann gentoo org> AuthorDate: Wed Aug 28 14:43:08 2019 + Commit: Thomas Deutschmann gentoo org> CommitDate: Wed Aug 28 14:43:22 2019 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=88ee6457 dev-db/mysql-init-scripts: drop old Package-Manager: Portage-2.3.72, Repoman-2.3.17 Signed-off-by: Thomas Deutschmann gentoo.org> dev-db/mysql-init-scripts/files/init.d-2.2 | 194 - dev-db/mysql-init-scripts/files/init.d-s6-2.2 | 163 - dev-db/mysql-init-scripts/files/init.d-supervise | 180 --- dev-db/mysql-init-scripts/files/logrotate.mysql| 14 -- .../mysql-init-scripts-2.2-r3.ebuild | 65 --- .../mysql-init-scripts-2.2-r4.ebuild | 67 --- .../mysql-init-scripts-2.3-r1.ebuild | 67 --- .../mysql-init-scripts-2.3-r2.ebuild | 71 .../mysql-init-scripts-2.3.ebuild | 67 --- 9 files changed, 888 deletions(-) diff --git a/dev-db/mysql-init-scripts/files/init.d-2.2 b/dev-db/mysql-init-scripts/files/init.d-2.2 deleted file mode 100644 index 5603f9e6031..000 --- a/dev-db/mysql-init-scripts/files/init.d-2.2 +++ /dev/null @@ -1,194 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -extra_commands="checkconfig" -extra_stopped_commands="bootstrap_galera" - -description_checkconfig="Verify the server's configuration" -description_boostrap_galera="Start a new Galera cluster with this server as the initial node" - -depend() { - use net.lo - # localmount needed for $basedir - need localmount - # This service has its own timeout and may need to wait for repairs - # or remote synchronization - keyword -timeout -} - -get_config() { - my_print_defaults --defaults-file="$1" mysqld server mariadb | - sed -n -e "s/^--$2=//p" -} - -mysql_svcname() { - local ebextra= - case "${SVCNAME}" in - mysql*) ;; - *) ebextra=" (mysql)" ;; - esac - echo "${SVCNAME}${ebextra}" -} - -stringContain() { [ -z "${2##*$1*}" ] && [ -z "$1" -o -n "$2" ]; } - -bootstrap_galera() { - MY_ARGS="--wsrep-new-cluster ${MY_ARGS}" - mark_service_starting - if start ; then - mark_service_started - return 0 - else - mark_service_stopped - return 1 - fi -} - -start() { - # Check for old conf.d variables that mean migration was not yet done. - set | egrep -sq '^(mysql_slot_|MYSQL_BLOG_PID_FILE|STOPTIMEOUT)' - rc=$? - # Yes, MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING is a hidden variable. - # It does have a use in testing, as it is possible to build a config file - # that works with both the old and new init scripts simulateously. - if [ "${rc}" = 0 -a -z "${MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING}" ]; then - eerror "You have not updated your conf.d for the new mysql-init-scripts-2 revamp." - eerror "Not proceeding because it may be dangerous." - return 1 - fi - - # Check the config or die - if [ ${RC_CMD} != "restart" ] ; then - checkconfig || return 1 - fi - - # Now we can startup - ebegin "Starting $(mysql_svcname)" - - MY_CNF="${MY_CNF:-/etc/${SVCNAME}/my.cnf}" - - if [ ! -r "${MY_CNF}" ] ; then - eerror "Cannot read the configuration file \`${MY_CNF}'" - return 1 - fi - - # tail -n1 is critical as these we only want the last instance of the option - local basedir=$(get_config "${MY_CNF}" basedir | tail -n1) - local pidfile=$(get_config "${MY_CNF}" pid-file | tail -n1) - local socket=$(get_config "${MY_CNF}" socket | tail -n1) - local chroot=$(get_config "${MY_CNF}" chroot | tail -n1) - local wsrep="$(get_config "${MY_CNF}" 'wsrep[_-]on' | tail -n1 | awk '{print tolower($0)}')" - local wsrep_new=$(get_config "${MY_CNF}" 'wsrep-new-cluster' | tail -n1) - - if [ -n "${chroot}" ] ; then - socket="${chroot}/${socket}" - pidfile="${chroot}/${pidfile}" - fi - - # Galera: Only check datadir if not starting a new cluster and galera is enabled - # wsrep_on is not on or wsrep-new-cluster exists in the config or MY_ARGS - [ "${wsrep}" = "1" ] && wsrep="on" - if [ "${wsrep}" != "on" ] || [ -n "${wsrep_new}" ] || stringContain 'wsrep-new-cluster' "${MY_ARGS}" ; then - - local datadir=$(get_config "${MY_CNF}" datadir | tail -n1) - if [ ! -d "${datadir}" ] ; then - eerror "MySQL datadir \`${datadir}' is empty or invalid" - eerror "Please check your config file \`${MY_CNF}'"
[gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-init-scripts/files/, dev-db/mysql-init-scripts/
commit: 29f98d49b8679417fe873aefb9182a43f2bafca4 Author: Brian Evans gentoo org> AuthorDate: Tue Mar 5 21:27:48 2019 + Commit: Brian Evans gentoo org> CommitDate: Tue Mar 5 21:27:48 2019 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=29f98d49 dev-db/mysql-init-scripts: Fix up pid file searching Changed how the pid file is searched for in both logrotate and init Closes: https://bugs.gentoo.org/677396 Closes: https://bugs.gentoo.org/678272 Package-Manager: Portage-2.3.62, Repoman-2.3.12 Signed-off-by: Brian Evans gentoo.org> dev-db/mysql-init-scripts/files/init.d-2.3 | 194 + dev-db/mysql-init-scripts/files/init.d-s6-2.3 | 163 + .../mysql-init-scripts/files/init.d-supervise-2.3 | 180 +++ .../mysql-init-scripts/files/logrotate.mysql-2.3 | 14 ++ .../mysql-init-scripts-2.3.ebuild | 67 +++ 5 files changed, 618 insertions(+) diff --git a/dev-db/mysql-init-scripts/files/init.d-2.3 b/dev-db/mysql-init-scripts/files/init.d-2.3 new file mode 100644 index 000..f587e26f732 --- /dev/null +++ b/dev-db/mysql-init-scripts/files/init.d-2.3 @@ -0,0 +1,194 @@ +#!/sbin/openrc-run +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +extra_commands="checkconfig" +extra_stopped_commands="bootstrap_galera" + +description_checkconfig="Verify the server's configuration" +description_boostrap_galera="Start a new Galera cluster with this server as the initial node" + +depend() { + use net.lo + # localmount needed for $basedir + need localmount + # This service has its own timeout and may need to wait for repairs + # or remote synchronization + keyword -timeout +} + +get_config() { + my_print_defaults --defaults-file="$1" mysqld server mariadb | + sed -n -e "s/^--$2=//p" +} + +mysql_svcname() { + local ebextra= + case "${SVCNAME}" in + mysql*) ;; + *) ebextra=" (mysql)" ;; + esac + echo "${SVCNAME}${ebextra}" +} + +stringContain() { [ -z "${2##*$1*}" ] && [ -z "$1" -o -n "$2" ]; } + +bootstrap_galera() { + MY_ARGS="--wsrep-new-cluster ${MY_ARGS}" + mark_service_starting + if start ; then + mark_service_started + return 0 + else + mark_service_stopped + return 1 + fi +} + +start() { + # Check for old conf.d variables that mean migration was not yet done. + set | egrep -sq '^(mysql_slot_|MYSQL_BLOG_PID_FILE|STOPTIMEOUT)' + rc=$? + # Yes, MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING is a hidden variable. + # It does have a use in testing, as it is possible to build a config file + # that works with both the old and new init scripts simulateously. + if [ "${rc}" = 0 -a -z "${MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING}" ]; then + eerror "You have not updated your conf.d for the new mysql-init-scripts-2 revamp." + eerror "Not proceeding because it may be dangerous." + return 1 + fi + + # Check the config or die + if [ ${RC_CMD} != "restart" ] ; then + checkconfig || return 1 + fi + + # Now we can startup + ebegin "Starting $(mysql_svcname)" + + MY_CNF="${MY_CNF:-/etc/${SVCNAME}/my.cnf}" + + if [ ! -r "${MY_CNF}" ] ; then + eerror "Cannot read the configuration file \`${MY_CNF}'" + return 1 + fi + + # tail -n1 is critical as these we only want the last instance of the option + local basedir=$(get_config "${MY_CNF}" basedir | tail -n1) + local pidfile=$(get_config "${MY_CNF}" 'pid[_-]file' | tail -n1) + local socket=$(get_config "${MY_CNF}" socket | tail -n1) + local chroot=$(get_config "${MY_CNF}" chroot | tail -n1) + local wsrep="$(get_config "${MY_CNF}" 'wsrep[_-]on' | tail -n1 | awk '{print tolower($0)}')" + local wsrep_new=$(get_config "${MY_CNF}" 'wsrep-new-cluster' | tail -n1) + + if [ -n "${chroot}" ] ; then + socket="${chroot}/${socket}" + pidfile="${chroot}/${pidfile}" + fi + + # Galera: Only check datadir if not starting a new cluster and galera is enabled + # wsrep_on is not on or wsrep-new-cluster exists in the config or MY_ARGS + [ "${wsrep}" = "1" ] && wsrep="on" + if [ "${wsrep}" != "on" ] || [ -n "${wsrep_new}" ] || stringContain 'wsrep-new-cluster' "${MY_ARGS}" ; then + + local datadir=$(get_config "${MY_CNF}" datadir | tail -n1) + if [ ! -d "${datadir}" ] ; then + eerror "MySQL datadir \`${datadir}' is empty or invalid" + eerror "Please check your config file \`${MY_CNF}'" + return 1 + fi + + if [ ! -d "${datadir}"/mysql ] ; then +
[gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-init-scripts/files/, dev-db/mysql-init-scripts/
commit: 66f992fd3ded96889a2d8d2485e64a9001a0ab72 Author: Brian Evans gentoo org> AuthorDate: Wed Jan 24 21:54:34 2018 + Commit: Brian Evans gentoo org> CommitDate: Wed Jan 24 21:55:44 2018 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=66f992fd dev-db/mysql-init-scripts: Drop old Package-Manager: Portage-2.3.20, Repoman-2.3.6 dev-db/mysql-init-scripts/files/init.d-2.0 | 159 - dev-db/mysql-init-scripts/files/init.d-s6 | 128 - .../mysql-init-scripts-2.1-r1.ebuild | 63 .../mysql-init-scripts-2.2-r2.ebuild | 64 - 4 files changed, 414 deletions(-) diff --git a/dev-db/mysql-init-scripts/files/init.d-2.0 b/dev-db/mysql-init-scripts/files/init.d-2.0 deleted file mode 100644 index ac94a9dd39b..000 --- a/dev-db/mysql-init-scripts/files/init.d-2.0 +++ /dev/null @@ -1,159 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -extra_commands="checkconfig" - -depend() { - use net.lo - # localmount needed for $basedir - need localmount -} - -get_config() { - my_print_defaults --config-file="$1" mysqld | - sed -n -e "s/^--$2=//p" -} - -mysql_svcname() { - local ebextra= - case "${SVCNAME}" in - mysql*) ;; - *) ebextra=" (mysql)" ;; - esac - echo "${SVCNAME}${ebextra}" -} - -start() { - # Check for old conf.d variables that mean migration was not yet done. - set | egrep -sq '^(mysql_slot_|MYSQL_BLOG_PID_FILE|STOPTIMEOUT)' - rc=$? - # Yes, MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING is a hidden variable. - # It does have a use in testing, as it is possible to build a config file - # that works with both the old and new init scripts simulateously. - if [ "${rc}" = 0 -a -z "${MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING}" ]; then - eerror "You have not updated your conf.d for the new mysql-init-scripts-2 revamp." - eerror "Not proceeding because it may be dangerous." - return 1 - fi - - # Check the config or die - checkconfig || return 1 - - # Now we can startup - ebegin "Starting $(mysql_svcname)" - - MY_CNF="${MY_CNF:-/etc/${SVCNAME}/my.cnf}" - - if [ ! -r "${MY_CNF}" ] ; then - eerror "Cannot read the configuration file \`${MY_CNF}'" - return 1 - fi - - # tail -n1 is critical as these we only want the last instance of the option - local basedir=$(get_config "${MY_CNF}" basedir | tail -n1) - local datadir=$(get_config "${MY_CNF}" datadir | tail -n1) - local pidfile=$(get_config "${MY_CNF}" pid-file | tail -n1) - local socket=$(get_config "${MY_CNF}" socket | tail -n1) - local chroot=$(get_config "${MY_CNF}" chroot | tail -n1) - - if [ -n "${chroot}" ] ; then - socket="${chroot}/${socket}" - pidfile="${chroot}/${pidfile}" - fi - - if [ ! -d "${datadir}" ] ; then - eerror "MySQL datadir \`${datadir}' is empty or invalid" - eerror "Please check your config file \`${MY_CNF}'" - return 1 - fi - - if [ ! -d "${datadir}"/mysql ] ; then - # find which package is installed to report an error - local EROOT=$(portageq envvar EROOT) - local DBPKG_P=$(portageq match ${EROOT} $(portageq expand_virtual ${EROOT} virtual/mysql | head -n1)) - if [ -z ${DBPKG_P} ] ; then - eerror "You don't appear to have a server package installed yet." - else - eerror "You don't appear to have the mysql database installed yet." - eerror "Please run \`emerge --config =${DBPKG_P}\` to have this done..." - fi - return 1 - fi - - local piddir="${pidfile%/*}" - checkpath -d --owner mysql:mysql --mode 0755 "$piddir" - rc=$? - if [ $rc -ne 0 ]; then - eerror "Directory $piddir for pidfile does not exist and cannot be created" - return 1 - fi - - local startup_timeout=${STARTUP_TIMEOUT:-900} - local startup_early_timeout=${STARTUP_EARLY_TIMEOUT:-1000} - local tmpnice="${NICE:+"--nicelevel "}${NICE}" - local tmpionice="${IONICE:+"--ionice "}${IONICE}" - start-stop-daemon \ - ${DEBUG:+"--verbose"} \ - --start \ - --exec "${basedir}"/sbin/mysqld \ - --pidfile "${pidfile}" \ - --background \ - --wait ${startup_early_timeout} \ - ${tmpnice} \ - ${tmpionice} \ - -- --defaults-file="${MY_CNF}" ${MY_ARGS} - local ret=$? - if [ ${ret} -ne 0 ] ; then - eend ${ret} -
[gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-init-scripts/files/, dev-db/mysql-init-scripts/
commit: 460c2f8c5390efbca391a0ac83841af2b089708f Author: Brian Evans gentoo org> AuthorDate: Tue Oct 31 16:09:03 2017 + Commit: Brian Evans gentoo org> CommitDate: Tue Oct 31 16:09:03 2017 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=460c2f8c dev-db/mysql-init-scripts: Fix important typo and commit straight to stable boostrap_galera -> bootstrap_galera Package-Manager: Portage-2.3.13, Repoman-2.3.4 RepoMan-Options: --force dev-db/mysql-init-scripts/files/init.d-2.2 | 2 +- dev-db/mysql-init-scripts/files/init.d-s6-2.2 | 2 +- ...ysql-init-scripts-2.2-r1.ebuild => mysql-init-scripts-2.2-r2.ebuild} | 0 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dev-db/mysql-init-scripts/files/init.d-2.2 b/dev-db/mysql-init-scripts/files/init.d-2.2 index 124d2e993eb..f6ad52496e4 100644 --- a/dev-db/mysql-init-scripts/files/init.d-2.2 +++ b/dev-db/mysql-init-scripts/files/init.d-2.2 @@ -3,7 +3,7 @@ # Distributed under the terms of the GNU General Public License v2 extra_commands="checkconfig" -extra_stopped_commands="boostrap_galera" +extra_stopped_commands="bootstrap_galera" description_checkconfig="Verify the server's configuration" description_boostrap_galera="Start a new Galera cluster with this server as the initial node" diff --git a/dev-db/mysql-init-scripts/files/init.d-s6-2.2 b/dev-db/mysql-init-scripts/files/init.d-s6-2.2 index 46980fab9c3..3fa54e949c9 100644 --- a/dev-db/mysql-init-scripts/files/init.d-s6-2.2 +++ b/dev-db/mysql-init-scripts/files/init.d-s6-2.2 @@ -38,7 +38,7 @@ bootstrap_galera() { extra_commands="checkconfig" -extra_stopped_commands="boostrap_galera" +extra_stopped_commands="bootstrap_galera" description_checkconfig="Verify the server's configuration" description_boostrap_galera="Start a new Galera cluster with this server as the initial node" diff --git a/dev-db/mysql-init-scripts/mysql-init-scripts-2.2-r1.ebuild b/dev-db/mysql-init-scripts/mysql-init-scripts-2.2-r2.ebuild similarity index 100% rename from dev-db/mysql-init-scripts/mysql-init-scripts-2.2-r1.ebuild rename to dev-db/mysql-init-scripts/mysql-init-scripts-2.2-r2.ebuild
[gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-init-scripts/files/, dev-db/mysql-init-scripts/
commit: 0f5653d2d0a3d6a52cfd12f6329e948e8522698b Author: Brian Evans gentoo org> AuthorDate: Wed Jul 26 13:15:19 2017 + Commit: Brian Evans gentoo org> CommitDate: Wed Jul 26 13:20:14 2017 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0f5653d2 dev-db/mysql-init-scripts: Fix MariaDB-only option bug 626186, add supervisor script Package-Manager: Portage-2.3.6, Repoman-2.3.3 dev-db/mysql-init-scripts/files/init.d-2.2 | 2 +- dev-db/mysql-init-scripts/files/init.d-s6-2.2 | 2 +- .../files/{init.d-2.2 => init.d-supervise} | 27 +++--- ...2.2.ebuild => mysql-init-scripts-2.2-r1.ebuild} | 1 + 4 files changed, 11 insertions(+), 21 deletions(-) diff --git a/dev-db/mysql-init-scripts/files/init.d-2.2 b/dev-db/mysql-init-scripts/files/init.d-2.2 index d217744de9c..124d2e993eb 100644 --- a/dev-db/mysql-init-scripts/files/init.d-2.2 +++ b/dev-db/mysql-init-scripts/files/init.d-2.2 @@ -15,7 +15,7 @@ depend() { } get_config() { - my_print_defaults --defaults-file="$1" --mysqld | + my_print_defaults --defaults-file="$1" mysqld server mariadb | sed -n -e "s/^--$2=//p" } diff --git a/dev-db/mysql-init-scripts/files/init.d-s6-2.2 b/dev-db/mysql-init-scripts/files/init.d-s6-2.2 index 427061aa990..46980fab9c3 100644 --- a/dev-db/mysql-init-scripts/files/init.d-s6-2.2 +++ b/dev-db/mysql-init-scripts/files/init.d-s6-2.2 @@ -9,7 +9,7 @@ depend() { } get_config() { - my_print_defaults --defaults-file="$1" --mysqld | + my_print_defaults --defaults-file="$1" mysqld server mariadb | sed -n -e "s/^--$2=//p" } diff --git a/dev-db/mysql-init-scripts/files/init.d-2.2 b/dev-db/mysql-init-scripts/files/init.d-supervise similarity index 90% copy from dev-db/mysql-init-scripts/files/init.d-2.2 copy to dev-db/mysql-init-scripts/files/init.d-supervise index d217744de9c..5341a6a18d6 100644 --- a/dev-db/mysql-init-scripts/files/init.d-2.2 +++ b/dev-db/mysql-init-scripts/files/init.d-supervise @@ -15,7 +15,7 @@ depend() { } get_config() { - my_print_defaults --defaults-file="$1" --mysqld | + my_print_defaults --defaults-file="$1" mysqld server mariadb | sed -n -e "s/^--$2=//p" } @@ -118,18 +118,16 @@ start() { fi local startup_timeout=${STARTUP_TIMEOUT:-900} - local startup_early_timeout=${STARTUP_EARLY_TIMEOUT:-1000} +# local startup_early_timeout=${STARTUP_EARLY_TIMEOUT:-1000} local tmpnice="${NICE:+"--nicelevel "}${NICE}" local tmpionice="${IONICE:+"--ionice "}${IONICE}" - start-stop-daemon \ + supervise-daemon \ ${DEBUG:+"--verbose"} \ - --start \ - --exec "${basedir}"/sbin/mysqld \ - --pidfile "${pidfile}" \ - --background \ - --wait ${startup_early_timeout} \ + --pidfile "/run/${SVCNAME}.pid" \ ${tmpnice} \ ${tmpionice} \ + --start \ + "${basedir}"/sbin/mysqld \ -- --defaults-file="${MY_CNF}" ${MY_ARGS} local ret=$? if [ ${ret} -ne 0 ] ; then @@ -139,9 +137,6 @@ start() { ewaitfile ${startup_timeout} "${socket}" eend $? || return 1 - - save_options pidfile "${pidfile}" - save_options basedir "${basedir}" } stop() { @@ -151,16 +146,10 @@ stop() { ebegin "Stopping $(mysql_svcname)" - local pidfile="$(get_options pidfile)" - local basedir="$(get_options basedir)" - local stop_timeout=${STOP_TIMEOUT:-120} - - start-stop-daemon \ + supervise-daemon \ ${DEBUG:+"--verbose"} \ --stop \ - --exec "${basedir}"/sbin/mysqld \ - --pidfile "${pidfile}" \ - --retry ${stop_timeout} + --pidfile "/run/${SVCNAME}.pid" eend $? } diff --git a/dev-db/mysql-init-scripts/mysql-init-scripts-2.2.ebuild b/dev-db/mysql-init-scripts/mysql-init-scripts-2.2-r1.ebuild similarity index 96% rename from dev-db/mysql-init-scripts/mysql-init-scripts-2.2.ebuild rename to dev-db/mysql-init-scripts/mysql-init-scripts-2.2-r1.ebuild index 13ebfb9e379..75b8390652f 100644 --- a/dev-db/mysql-init-scripts/mysql-init-scripts-2.2.ebuild +++ b/dev-db/mysql-init-scripts/mysql-init-scripts-2.2-r1.ebuild @@ -37,6 +37,7 @@ src_install() { fi newinitd "${FILESDIR}/init.d-2.2" "mysql" + newinitd "${FILESDIR}/init.d-supervise" "mysql-supervise" # systemd unit installation exeinto /usr/libexec
[gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-init-scripts/files/
commit: d97f1c09eb25b28a65aedafa11a0c850a6438c7d Author: Brian Evans gentoo org> AuthorDate: Mon Jul 24 14:04:21 2017 + Commit: Brian Evans gentoo org> CommitDate: Mon Jul 24 14:04:21 2017 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d97f1c09 dev-db/mysql-init-scripts: Minor refinements to the 2.2 init scripts Package-Manager: Portage-2.3.6, Repoman-2.3.3 dev-db/mysql-init-scripts/files/init.d-2.2| 10 +- dev-db/mysql-init-scripts/files/init.d-s6-2.2 | 12 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/dev-db/mysql-init-scripts/files/init.d-2.2 b/dev-db/mysql-init-scripts/files/init.d-2.2 index f798052bb37..d217744de9c 100644 --- a/dev-db/mysql-init-scripts/files/init.d-2.2 +++ b/dev-db/mysql-init-scripts/files/init.d-2.2 @@ -2,7 +2,11 @@ # Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -extra_commands="checkconfig bootstrap_galera" +extra_commands="checkconfig" +extra_stopped_commands="boostrap_galera" + +description_checkconfig="Verify the server's configuration" +description_boostrap_galera="Start a new Galera cluster with this server as the initial node" depend() { use net.lo @@ -27,10 +31,6 @@ mysql_svcname() { stringContain() { [ -z "${2##*$1*}" ] && [ -z "$1" -o -n "$2" ]; } bootstrap_galera() { - if ! service_stopped ; then - eerror "The server cannot be running to perform this action" - return 1 - fi MY_ARGS="--wsrep-new-cluster ${MY_ARGS}" mark_service_starting if start ; then diff --git a/dev-db/mysql-init-scripts/files/init.d-s6-2.2 b/dev-db/mysql-init-scripts/files/init.d-s6-2.2 index 6e7bce3d9f1..427061aa990 100644 --- a/dev-db/mysql-init-scripts/files/init.d-s6-2.2 +++ b/dev-db/mysql-init-scripts/files/init.d-s6-2.2 @@ -25,13 +25,9 @@ mysql_svcname() { stringContain() { [ -z "${2##*$1*}" ] && [ -z "$1" -o -n "$2" ]; } bootstrap_galera() { - if ! service_stopped ; then - eerror "The server cannot be running to perform this action" - return 1 - fi MY_ARGS="--wsrep-new-cluster ${MY_ARGS}" mark_service_starting - if start ; then + if start_pre && start ; then mark_service_started return 0 else @@ -41,7 +37,11 @@ bootstrap_galera() { } -extra_commands="checkconfig boostrap_galera" +extra_commands="checkconfig" +extra_stopped_commands="boostrap_galera" + +description_checkconfig="Verify the server's configuration" +description_boostrap_galera="Start a new Galera cluster with this server as the initial node" supervisor=s6 name=$(mysql_svcname) s6_service_timeout_stop="$((1000*${STOP_TIMEOUT:-120}))"
[gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-init-scripts/files/, dev-db/mysql-init-scripts/
commit: 0a2f6240c3f651f0d9ddce26e942203fbdb7f22a Author: Brian Evans gentoo org> AuthorDate: Sun Jul 23 22:38:50 2017 + Commit: Brian Evans gentoo org> CommitDate: Sun Jul 23 22:39:32 2017 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0a2f6240 dev-db/mysql-init-scripts: Version bump for bug 575360 Thanks for Phil Stracchino for testing Package-Manager: Portage-2.3.6, Repoman-2.3.3 dev-db/mysql-init-scripts/files/init.d-2.2 | 191 + dev-db/mysql-init-scripts/files/init.d-s6-2.2 | 163 ++ .../mysql-init-scripts-2.2.ebuild | 63 +++ 3 files changed, 417 insertions(+) diff --git a/dev-db/mysql-init-scripts/files/init.d-2.2 b/dev-db/mysql-init-scripts/files/init.d-2.2 new file mode 100644 index 000..f798052bb37 --- /dev/null +++ b/dev-db/mysql-init-scripts/files/init.d-2.2 @@ -0,0 +1,191 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_commands="checkconfig bootstrap_galera" + +depend() { + use net.lo + # localmount needed for $basedir + need localmount +} + +get_config() { + my_print_defaults --defaults-file="$1" --mysqld | + sed -n -e "s/^--$2=//p" +} + +mysql_svcname() { + local ebextra= + case "${SVCNAME}" in + mysql*) ;; + *) ebextra=" (mysql)" ;; + esac + echo "${SVCNAME}${ebextra}" +} + +stringContain() { [ -z "${2##*$1*}" ] && [ -z "$1" -o -n "$2" ]; } + +bootstrap_galera() { + if ! service_stopped ; then + eerror "The server cannot be running to perform this action" + return 1 + fi + MY_ARGS="--wsrep-new-cluster ${MY_ARGS}" + mark_service_starting + if start ; then + mark_service_started + return 0 + else + mark_service_stopped + return 1 + fi +} + +start() { + # Check for old conf.d variables that mean migration was not yet done. + set | egrep -sq '^(mysql_slot_|MYSQL_BLOG_PID_FILE|STOPTIMEOUT)' + rc=$? + # Yes, MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING is a hidden variable. + # It does have a use in testing, as it is possible to build a config file + # that works with both the old and new init scripts simulateously. + if [ "${rc}" = 0 -a -z "${MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING}" ]; then + eerror "You have not updated your conf.d for the new mysql-init-scripts-2 revamp." + eerror "Not proceeding because it may be dangerous." + return 1 + fi + + # Check the config or die + if [ ${RC_CMD} != "restart" ] ; then + checkconfig || return 1 + fi + + # Now we can startup + ebegin "Starting $(mysql_svcname)" + + MY_CNF="${MY_CNF:-/etc/${SVCNAME}/my.cnf}" + + if [ ! -r "${MY_CNF}" ] ; then + eerror "Cannot read the configuration file \`${MY_CNF}'" + return 1 + fi + + # tail -n1 is critical as these we only want the last instance of the option + local basedir=$(get_config "${MY_CNF}" basedir | tail -n1) + local pidfile=$(get_config "${MY_CNF}" pid-file | tail -n1) + local socket=$(get_config "${MY_CNF}" socket | tail -n1) + local chroot=$(get_config "${MY_CNF}" chroot | tail -n1) + local wsrep="$(get_config "${MY_CNF}" 'wsrep[_-]on' | tail -n1 | awk '{print tolower($0)}')" + local wsrep_new=$(get_config "${MY_CNF}" 'wsrep-new-cluster' | tail -n1) + + if [ -n "${chroot}" ] ; then + socket="${chroot}/${socket}" + pidfile="${chroot}/${pidfile}" + fi + + # Galera: Only check datadir if not starting a new cluster and galera is enabled + # wsrep_on is not on or wsrep-new-cluster exists in the config or MY_ARGS + [ "${wsrep}" = "1" ] && wsrep="on" + if [ "${wsrep}" != "on" ] || [ -n "${wsrep_new}" ] || stringContain 'wsrep-new-cluster' "${MY_ARGS}" ; then + + local datadir=$(get_config "${MY_CNF}" datadir | tail -n1) + if [ ! -d "${datadir}" ] ; then + eerror "MySQL datadir \`${datadir}' is empty or invalid" + eerror "Please check your config file \`${MY_CNF}'" + return 1 + fi + + if [ ! -d "${datadir}"/mysql ] ; then + # find which package is installed to report an error + local EROOT=$(portageq envvar EROOT) + local DBPKG_P=$(portageq match ${EROOT} $(portageq expand_virtual ${EROOT} virtual/mysql | head -n1)) + if [ -z ${DBPKG_P} ] ; then + eerror "You don't appear to have a server package installed yet." + else + eerror "You
[gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-init-scripts/files/
commit: 5e67d8c604f6e080816f0e532be8fef5f666e29d Author: Brian Evans gentoo org> AuthorDate: Mon Sep 12 14:22:25 2016 + Commit: Brian Evans gentoo org> CommitDate: Mon Sep 12 14:37:25 2016 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5e67d8c6 dev-db/mysql-init-scripts: Comment out a systemd option NoNewPrivileges=true Upstream bug https://jira.mariadb.org/browse/MDEV-10404 mentions that SELinux currently does not handle this change properly. Comment it out for now with a note No revbump for this file as most users are unaffected Package-Manager: portage-2.3.0 dev-db/mysql-init-scripts/files/mysqld-v2.service| 4 +++- dev-db/mysql-init-scripts/files/mysqld_at-v2.service | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dev-db/mysql-init-scripts/files/mysqld-v2.service b/dev-db/mysql-init-scripts/files/mysqld-v2.service index 056b413..641abf7 100644 --- a/dev-db/mysql-init-scripts/files/mysqld-v2.service +++ b/dev-db/mysql-init-scripts/files/mysqld-v2.service @@ -32,7 +32,9 @@ CapabilityBoundingSet=CAP_IPC_LOCK # Prevent writes to /usr, /boot, and /etc ProtectSystem=full -NoNewPrivileges=true +# Currently has issues with SELinux https://jira.mariadb.org/browse/MDEV-10404 +# This is safe to uncomment when not using SELinux +#NoNewPrivileges=true PrivateDevices=true diff --git a/dev-db/mysql-init-scripts/files/mysqld_at-v2.service b/dev-db/mysql-init-scripts/files/mysqld_at-v2.service index 770a2e8..26964ea 100644 --- a/dev-db/mysql-init-scripts/files/mysqld_at-v2.service +++ b/dev-db/mysql-init-scripts/files/mysqld_at-v2.service @@ -30,7 +30,9 @@ CapabilityBoundingSet=CAP_IPC_LOCK # Prevent writes to /usr, /boot, and /etc ProtectSystem=full -NoNewPrivileges=true +# Currently has issues with SELinux https://jira.mariadb.org/browse/MDEV-10404 +# This is safe to uncomment when not using SELinux +#NoNewPrivileges=true PrivateDevices=true
[gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-init-scripts/files/, dev-db/mysql-init-scripts/
commit: b85142cdd9623c78c904dbb99c258ebf2424c32c Author: Brian Evans gentoo org> AuthorDate: Wed Jul 20 16:34:15 2016 + Commit: Brian Evans gentoo org> CommitDate: Wed Jul 20 16:34:15 2016 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b85142cd dev-db/mysql-init-scripts: Revbump for bug 587416 Package-Manager: portage-2.3.0 dev-db/mysql-init-scripts/files/mysqld-v2.service | 20 +++- .../mysql-init-scripts/files/mysqld_at-v2.service | 21 +++-- ...-2.1.ebuild => mysql-init-scripts-2.1-r1.ebuild} | 0 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/dev-db/mysql-init-scripts/files/mysqld-v2.service b/dev-db/mysql-init-scripts/files/mysqld-v2.service index 12f7731..056b413 100644 --- a/dev-db/mysql-init-scripts/files/mysqld-v2.service +++ b/dev-db/mysql-init-scripts/files/mysqld-v2.service @@ -18,10 +18,28 @@ ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID TimeoutSec=300 # We rely on systemd, not mysqld_safe, to restart mysqld if it dies -Restart=always +# Restart crashed server only, on-failure would also restart, for example, when +# my.cnf contains unknown option +Restart=on-abort +RestartSec=5s # Place temp files in a secure directory, not /tmp PrivateTmp=true +# To allow memlock to be used as non-root user if set in configuration +CapabilityBoundingSet=CAP_IPC_LOCK + +# Prevent writes to /usr, /boot, and /etc +ProtectSystem=full + +NoNewPrivileges=true + +PrivateDevices=true + +# Prevent accessing /home, /root and /run/user +ProtectHome=true + +UMask=007 + [Install] WantedBy=multi-user.target diff --git a/dev-db/mysql-init-scripts/files/mysqld_at-v2.service b/dev-db/mysql-init-scripts/files/mysqld_at-v2.service index 4c6a8ca..770a2e8 100644 --- a/dev-db/mysql-init-scripts/files/mysqld_at-v2.service +++ b/dev-db/mysql-init-scripts/files/mysqld_at-v2.service @@ -16,11 +16,28 @@ ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID # Give a reasonable amount of time for the server to start up/shut down TimeoutSec=300 -# We rely on systemd, not mysqld_safe, to restart mysqld if it dies -Restart=always +# Restart crashed server only, on-failure would also restart, for example, when +# my.cnf contains unknown option +Restart=on-abort +RestartSec=5s # Place temp files in a secure directory, not /tmp PrivateTmp=true +# To allow memlock to be used as non-root user if set in configuration +CapabilityBoundingSet=CAP_IPC_LOCK + +# Prevent writes to /usr, /boot, and /etc +ProtectSystem=full + +NoNewPrivileges=true + +PrivateDevices=true + +# Prevent accessing /home, /root and /run/user +ProtectHome=true + +UMask=007 + [Install] WantedBy=multi-user.target diff --git a/dev-db/mysql-init-scripts/mysql-init-scripts-2.1.ebuild b/dev-db/mysql-init-scripts/mysql-init-scripts-2.1-r1.ebuild similarity index 100% rename from dev-db/mysql-init-scripts/mysql-init-scripts-2.1.ebuild rename to dev-db/mysql-init-scripts/mysql-init-scripts-2.1-r1.ebuild
[gentoo-commits] repo/gentoo:master commit in: dev-db/mysql-init-scripts/files/, dev-db/mysql-init-scripts/
commit: c3bf8ff29ade3fd7eba1f1ca98a96d70558b3720 Author: Brian Evans gentoo org> AuthorDate: Sat Jan 30 02:33:01 2016 + Commit: Brian Evans gentoo org> CommitDate: Sat Jan 30 02:33:01 2016 + URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c3bf8ff2 dev-db/mysql-init-scripts: Version bump to update systemd units wrt bug 572788 dev-db/mariadb has started shipping it's own Notify based units starting with 10.1.8 Set the conflict in mysqld.service to compensate Also, set the binary to be /usr/sbin/mysqld so we are not monitoring a monitor Package-Manager: portage-2.2.27 dev-db/mysql-init-scripts/files/mysqld-v2.service | 27 ++ .../mysql-init-scripts/files/mysqld_at-v2.service | 26 ++ .../mysql-init-scripts-2.1_rc1.ebuild | 58 ++ 3 files changed, 111 insertions(+) diff --git a/dev-db/mysql-init-scripts/files/mysqld-v2.service b/dev-db/mysql-init-scripts/files/mysqld-v2.service new file mode 100644 index 000..12f7731 --- /dev/null +++ b/dev-db/mysql-init-scripts/files/mysqld-v2.service @@ -0,0 +1,27 @@ +[Unit] +Description=MySQL database server +After=syslog.target +After=network.target +Conflicts=mariadb.service + +[Service] +Type=simple +User=mysql +Group=mysql + +# Note: we set --basedir to prevent probes that might trigger SELinux alarms, +# https://bugzilla.redhat.com/show_bug.cgi?id=547485 +ExecStart=/usr/sbin/mysqld --basedir=/usr +ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID + +# Give a reasonable amount of time for the server to start up/shut down +TimeoutSec=300 + +# We rely on systemd, not mysqld_safe, to restart mysqld if it dies +Restart=always + +# Place temp files in a secure directory, not /tmp +PrivateTmp=true + +[Install] +WantedBy=multi-user.target diff --git a/dev-db/mysql-init-scripts/files/mysqld_at-v2.service b/dev-db/mysql-init-scripts/files/mysqld_at-v2.service new file mode 100644 index 000..4c6a8ca --- /dev/null +++ b/dev-db/mysql-init-scripts/files/mysqld_at-v2.service @@ -0,0 +1,26 @@ +[Unit] +Description=MySQL database server +ConditionPathExists=/etc/mysql/my%I.cnf +After=network.target + +[Service] +Type=simple +User=mysql +Group=mysql + +# Note: we set --basedir to prevent probes that might trigger SELinux alarms, +# https://bugzilla.redhat.com/show_bug.cgi?id=547485 +ExecStart=/usr/sbin/mysqld --defaults-file=/etc/mysql/my%I.cnf --basedir=/usr +ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID + +# Give a reasonable amount of time for the server to start up/shut down +TimeoutSec=300 + +# We rely on systemd, not mysqld_safe, to restart mysqld if it dies +Restart=always + +# Place temp files in a secure directory, not /tmp +PrivateTmp=true + +[Install] +WantedBy=multi-user.target diff --git a/dev-db/mysql-init-scripts/mysql-init-scripts-2.1_rc1.ebuild b/dev-db/mysql-init-scripts/mysql-init-scripts-2.1_rc1.ebuild new file mode 100644 index 000..b47641d --- /dev/null +++ b/dev-db/mysql-init-scripts/mysql-init-scripts-2.1_rc1.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit systemd s6 + +DESCRIPTION="Gentoo MySQL init scripts." +HOMEPAGE="https://www.gentoo.org/"; +SRC_URI="" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd" +IUSE="" + +DEPEND="" +# This _will_ break with MySQL 5.0, 4.x, 3.x +# It also NEEDS openrc for the save_options/get_options builtins. +# The s6 support was added after openrc 0.16.2 +RDEPEND=" + !