mysql-multilib.eclass: Several small fixes from the mysql overlay
authorBrian Evans <grknight@gentoo.org>
Wed, 4 Nov 2015 21:31:17 +0000 (16:31 -0500)
committerBrian Evans <grknight@gentoo.org>
Wed, 4 Nov 2015 21:31:17 +0000 (16:31 -0500)
Remove the deprecated cluster and community IUSE
Fix an old URL in post install instructions
Trigger galera initial install instructions by the galera IUSE
Restrict tests when libressl is in use
Fix the initial pkg_config password wrt bug 564198
Consolidate the duplicate ewarn messages about client libs into a single einfo
  wrt bug 563640

Signed-off-by: Brian Evans <grknight@gentoo.org>
eclass/mysql-multilib.eclass

index 066b489d297d49907134580f007dc1e2f5d88324..def53ae5c7fd32c0e2609634943fbaca49b1aa51 100644 (file)
@@ -192,7 +192,7 @@ fi
 LICENSE="GPL-2"
 SLOT="0/${SUBSLOT:-0}"
 
-IUSE="+community cluster debug embedded extraengine jemalloc latin1 libressl +openssl
+IUSE="debug embedded extraengine jemalloc latin1 libressl +openssl
        +perl profiling selinux systemtap static static-libs tcmalloc test yassl"
 
 REQUIRED_USE="^^ ( yassl openssl libressl )"
@@ -213,6 +213,9 @@ REQUIRED_USE="^^ ( yassl openssl libressl )"
 #      IUSE="bindist ${IUSE}"
 #fi
 
+# Tests always fail when libressl is enabled due to hard-coded ciphers in the tests
+RESTRICT="libressl? ( test )"
+
 if [[ ${PN} == "mariadb" || ${PN} == "mariadb-galera" ]] ; then
        IUSE="bindist ${IUSE}"
        RESTRICT="${RESTRICT} !bindist? ( bindist )"
@@ -507,9 +510,6 @@ mysql-multilib_pkg_pretend() {
                        die
                fi
        fi
-       if use_if_iuse cluster && [[ "${PN}" != "mysql-cluster" ]]; then
-               die "NDB Cluster support has been removed from all packages except mysql-cluster"
-       fi
 }
 
 # @FUNCTION: mysql-multilib_pkg_setup
@@ -605,7 +605,7 @@ multilib_src_configure() {
 
        if ! multilib_is_native_abi && in_iuse client-libs ; then
                if ! use client-libs ; then
-                       ewarn "Skipping multilib build due to client-libs USE disabled"
+                       einfo "Skipping multilib build due to client-libs USE disabled"
                        return 0
                fi
        fi
@@ -740,7 +740,6 @@ mysql-multilib_src_compile() {
 multilib_src_compile() {
        if ! multilib_is_native_abi && in_iuse client-libs ; then
                if ! use client-libs ; then
-                       ewarn "Skipping multilib build due to client-libs USE disabled"
                        return 0
                fi
        fi
@@ -770,7 +769,6 @@ multilib_src_install() {
 
        if ! multilib_is_native_abi && in_iuse client-libs ; then
                if ! use client-libs ; then
-                       ewarn "Skipping multilib build due to client-libs USE disabled"
                        return 0
                fi
        fi
@@ -870,7 +868,7 @@ mysql-multilib_pkg_postinst() {
                                einfo
                                elog "This install includes the PAM authentication plugin."
                                elog "To activate and configure the PAM plugin, please read:"
-                               elog "https://kb.askmonty.org/en/pam-authentication-plugin/"
+                               elog "https://mariadb.com/kb/en/mariadb/pam-authentication-plugin/"
                                einfo
                        fi
                fi
@@ -886,7 +884,7 @@ mysql-multilib_pkg_postinst() {
                elog "mysql_upgrade tool."
                einfo
 
-               if [[ ${PN} == "mariadb-galera" ]] ; then
+               if [[ ${PN} == "mariadb-galera" ]] || use_if_iuse galera ; then
                        einfo
                        elog "Be sure to edit the my.cnf file to activate your cluster settings."
                        elog "This should be done after running \"emerge --config =${CATEGORY}/${PF}\""
@@ -913,9 +911,10 @@ mysql-multilib_getopt() {
 # Use my_print_defaults to extract specific config options
 mysql-multilib_getoptval() {
        local mypd="${EROOT}"/usr/bin/my_print_defaults
-       section="$1"
-       flag="--${2}="
-       "${mypd}" $section | sed -n "/^${flag}/s,${flag},,gp"
+       local section="$1"
+       local flag="--${2}="
+       local extra_options="${3}"
+       "${mypd}" $extra_options $section | sed -n "/^${flag}/s,${flag},,gp"
 }
 
 # @FUNCTION: mysql-multilib_pkg_config
@@ -976,6 +975,10 @@ mysql-multilib_pkg_config() {
 
        if [ -z "${MYSQL_ROOT_PASSWORD}" ]; then
                MYSQL_ROOT_PASSWORD="$(mysql-multilib_getoptval 'client mysql' password)"
+               # Sometimes --show is required to display passwords in some implementations of my_print_defaults
+               if [[ "${MYSQL_ROOT_PASSWORD}" == '*****' ]]; then
+                       MYSQL_ROOT_PASSWORD="$(mysql-multilib_getoptval 'client mysql' password --show)"
+               fi
        fi
        MYSQL_TMPDIR="$(mysql-multilib_getoptval mysqld tmpdir)"
        # These are dir+prefix
@@ -1039,7 +1042,7 @@ mysql-multilib_pkg_config() {
        help_tables="${TMPDIR}/fill_help_tables.sql"
 
        # Figure out which options we need to disable to do the setup
-       helpfile="${TMPDIR}/mysqld-help"
+       local helpfile="${TMPDIR}/mysqld-help"
        ${EROOT}/usr/sbin/mysqld --verbose --help >"${helpfile}" 2>/dev/null
        for opt in grant-tables host-cache name-resolve networking slave-start \
                federated ssl log-bin relay-log slow-query-log external-locking \