Hello community, here is the log from the commit of package mariadb for openSUSE:Factory checked in at 2015-07-19 11:45:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mariadb (Old) and /work/SRC/openSUSE:Factory/.mariadb.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mariadb" Changes: -------- --- /work/SRC/openSUSE:Factory/mariadb/mariadb.changes 2015-04-27 22:07:20.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.mariadb.new/mariadb.changes 2015-07-19 11:45:14.000000000 +0200 @@ -1,0 +2,30 @@ +Sat Jul 11 12:25:05 UTC 2015 - tchva...@suse.com + +- Sync to git state, fixes bnc#937754 too + +------------------------------------------------------------------- +Tue Jul 7 09:24:09 UTC 2015 - tchva...@suse.com + +- Sync to git state fixing few triv issues + +------------------------------------------------------------------- +Fri Jun 26 07:41:39 UTC 2015 - tchva...@suse.com + +- Enable testsuite + +------------------------------------------------------------------- +Thu Jun 25 13:50:12 UTC 2015 - tchva...@suse.com + +- Update to 10.0.20: + https://mariadb.com/kb/en/mariadb/mariadb-10020-release-notes/ + * Fixes bnc#934789 Logjam Attack using 512bit dh groups in ssl +- Sync the package to git state, redoing initscripts to be more + robust + +------------------------------------------------------------------- +Tue Jun 23 13:16:03 UTC 2015 - tchva...@suse.com + +- Update to 10.0.19, sync to git state of repository: + https://mariadb.com/kb/en/mariadb/mariadb-10019-release-notes/ + +------------------------------------------------------------------- @@ -16,0 +47,5 @@ + +------------------------------------------------------------------- +Wed Mar 11 15:02:44 UTC 2015 - sweet_...@gmx.de + +- fix build for openSUSE 13.2 ppc bnc#921955 Old: ---- build.inc install.inc mariadb-10.0.17.tar.gz rc.mysql.systemd rc.mysql.sysvinit New: ---- mariadb-10.0.20.tar.gz mysql-systemd-helper mysql.target mysql@.service ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mariadb.spec ++++++ ++++ 937 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/mariadb/mariadb.spec ++++ and /work/SRC/openSUSE:Factory/.mariadb.new/mariadb.spec ++++++ README.debug ++++++ --- /var/tmp/diff_new_pack.LXfE7V/_old 2015-07-19 11:45:17.000000000 +0200 +++ /var/tmp/diff_new_pack.LXfE7V/_new 2015-07-19 11:45:17.000000000 +0200 @@ -45,14 +45,6 @@ core-file - Note: this unfortunatelly doesn't work in SUSE Linux 10.1 and older. - On these systems, you need to run safe_mysqld directly under user - mysql: - - su - mysql - mysqld_safe --socket=/var/lib/mysql/mysql.sock \ - --datadir=/var/lib/mysql --core-file & - The core file will be written to the /var/lib/mysql/ directory. I suggest setting the kernel variable kernel.core_uses_pid to 1 @@ -64,31 +56,19 @@ After you got the core file, install the gdb and mysql-debuginfo packages and run - gdb /usr/sbin/mysqld /var/lib/mysql/core + gdb /usr/sbin/mysqld /var/lib/mysql/<core> (gdb) bt -Replace mysqld with the mysqld version you used (mysqld, mysqld-max) -and core with the actual name of the coredump. +Replace the <core> with the actual name of the coredump. 3) Trace files -------------- -Start mysqld using following command: - - $ MYSQLD_DEBUG=yes rcmysql start - -The init script will then start mysqld and add the --core-file, ---log and --debug options for you. The query log will be stored in - - /var/lib/mysql/myqld-query.log - -and the trace file in - - /var/lib/mysql/mysqld.trace - -If you don't like the options set by the init script, just put your own -into /etc/my.cnf and the init script will honor them. - The trace file will contain various debug information and function calls/returns and will become _extremly_ huge after a while, so don't attach it to bugzilla unless requested. +Add the following line to your /etc/my.cnf into section [mysqld]: + + stack-trace + +The trace file will be then written to /var/lib/mysql directory. \ No newline at end of file ++++++ README.install ++++++ --- /var/tmp/diff_new_pack.LXfE7V/_old 2015-07-19 11:45:17.000000000 +0200 +++ /var/tmp/diff_new_pack.LXfE7V/_new 2015-07-19 11:45:17.000000000 +0200 @@ -9,7 +9,7 @@ To do so, start the server, then issue the following commands: '/usr/bin/mysqladmin' -u root password 'new-password' -'/usr/bin/mysqladmin' -u root -h misibook password 'new-password' +'/usr/bin/mysqladmin' -u root -h <hostname> password 'new-password' Alternatively you can run: '/usr/bin/mysql_secure_installation' ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.LXfE7V/_old 2015-07-19 11:45:17.000000000 +0200 +++ /var/tmp/diff_new_pack.LXfE7V/_new 2015-07-19 11:45:17.000000000 +0200 @@ -1,5 +1,8 @@ <constraints> <hardware> + <physicalmemory> + <size unit="M">5000</size> + </physicalmemory> <disk> <size unit="G">13</size> </disk> ++++++ configuration-tweaks.tar.bz2 ++++++ --- old/default_plugins.cnf 2015-04-14 15:41:39.000000000 +0200 +++ new/default_plugins.cnf 2015-07-11 14:24:48.000000000 +0200 @@ -1,4 +1,4 @@ [server] -#plugin-load=blackhole=ha_blackhole.so -#plugin-load=federated=ha_federated.so -#plugin-load=archive=ha_archive.so +#plugin-load-add=blackhole=ha_blackhole.so +#plugin-load-add=federated=ha_federated.so +#plugin-load-add=archive=ha_archive.so ++++++ mariadb-10.0.17.tar.gz -> mariadb-10.0.20.tar.gz ++++++ /work/SRC/openSUSE:Factory/mariadb/mariadb-10.0.17.tar.gz /work/SRC/openSUSE:Factory/.mariadb.new/mariadb-10.0.20.tar.gz differ: char 5, line 1 ++++++ mysql-patches.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mysql-patches/mysql-patches/mariadb-10.0.10-string-overflow.patch new/mysql-patches/mysql-patches/mariadb-10.0.10-string-overflow.patch --- old/mysql-patches/mysql-patches/mariadb-10.0.10-string-overflow.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/mysql-patches/mysql-patches/mariadb-10.0.10-string-overflow.patch 2015-06-15 13:09:35.000000000 +0200 @@ -0,0 +1,27 @@ +PATCH-P1-FIX-UPSTREAM: String overflow + +Found in Fedora git: +http://pkgs.fedoraproject.org/cgit/mariadb.git/tree/ + +These issues were found by Coverity static analysis tool, for more info +see messages by particular fixes (messages belong to 5.1.61). + +Filed upstream at http://bugs.mysql.com/bug.php?id=64631 + + +Error: BUFFER_SIZE_WARNING: +/builddir/build/BUILD/mysql-5.1.61/sql/sql_prepare.cc:2749: buffer_size_warning: Calling strncpy with a maximum size argument of 512 bytes on destination array "this->stmt->last_error" of size 512 bytes might leave the destination string unterminated. + + +diff -up mariadb-10.0.10/sql/sql_prepare.cc.p8 mariadb-10.0.10/sql/sql_prepare.cc +--- mariadb-10.0.10/sql/sql_prepare.cc.p8 2014-03-30 19:56:42.000000000 +0200 ++++ mariadb-10.0.10/sql/sql_prepare.cc 2014-04-07 18:43:33.901074770 +0200 +@@ -3021,7 +3021,7 @@ void mysql_stmt_get_longdata(THD *thd, c + { + stmt->state= Query_arena::STMT_ERROR; + stmt->last_errno= thd->get_stmt_da()->sql_errno(); +- strncpy(stmt->last_error, thd->get_stmt_da()->message(), MYSQL_ERRMSG_SIZE); ++ strncpy(stmt->last_error, thd->get_stmt_da()->message(), sizeof(stmt->last_error)-1); + } + thd->set_stmt_da(save_stmt_da); + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mysql-patches/mysql-patches/mariadb-10.0.15-covscan-signexpr.patch new/mysql-patches/mysql-patches/mariadb-10.0.15-covscan-signexpr.patch --- old/mysql-patches/mysql-patches/mariadb-10.0.15-covscan-signexpr.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/mysql-patches/mysql-patches/mariadb-10.0.15-covscan-signexpr.patch 2015-06-15 13:09:35.000000000 +0200 @@ -0,0 +1,21 @@ +PATCH-P1-FIX-UPSTREAM: Suspicious implicit sign extension + +Found in Fedora git: +http://pkgs.fedoraproject.org/cgit/mariadb.git/tree/ + +This issue has been found by Coverity - static analysis tool. + +mysql-5.5.31/strings/ctype-ucs2.c:1707:sign_extension – Suspicious implicit sign extension: "s[0]" with type "unsigned char" (8 bits, unsigned) is promoted in "(s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]" to type "int" (32 bits, signed), then sign-extended to type "unsigned long" (64 bits, unsigned). If "(s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]" is greater than 0x7FFFFFFF, the upper bits of the result will all be 1. + +diff -up mariadb-10.0.15/strings/ctype-ucs2.c.orig mariadb-10.0.15/strings/ctype-ucs2.c +--- mariadb-10.0.15/strings/ctype-ucs2.c.orig 2014-11-27 15:14:11.129554529 +0100 ++++ mariadb-10.0.15/strings/ctype-ucs2.c 2014-11-27 15:13:06.806439653 +0100 +@@ -1932,7 +1932,7 @@ my_utf32_uni(CHARSET_INFO *cs __attribut + { + if (s + 4 > e) + return MY_CS_TOOSMALL4; +- *pwc= (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + (s[3]); ++ *pwc= (((my_wc_t)s[0]) << 24) + (s[1] << 16) + (s[2] << 8) + (s[3]); + return 4; + } + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mysql-patches/mysql-patches/mariadb-10.0.15-upgrade-datadir.patch new/mysql-patches/mysql-patches/mariadb-10.0.15-upgrade-datadir.patch --- old/mysql-patches/mysql-patches/mariadb-10.0.15-upgrade-datadir.patch 2014-12-06 18:28:32.000000000 +0100 +++ new/mysql-patches/mysql-patches/mariadb-10.0.15-upgrade-datadir.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,111 +0,0 @@ -PATCH-P0-FEATURE-UPSTREAM: Keep datadir across multiple calls - -mysql_upgrade script asks for datadir multiple times during update but at some -point privileges gets updated and if --skip-grant-tables was used (like in SUSE -init scripts), datadir is no longer queryable. So we cache the value. - -Maintainer: Michal Hrusecky <michal.hruse...@opensuse.org> - -Index: client/mysql_upgrade.c -=================================================================== ---- client/mysql_upgrade.c.orig -+++ client/mysql_upgrade.c -@@ -611,21 +611,37 @@ static int extract_variable_from_show(DY - - static int get_upgrade_info_file_name(char* name) - { -- DYNAMIC_STRING ds_datadir; -- DBUG_ENTER("get_upgrade_info_file_name"); -+ static char *data_dir = NULL; -+ static size_t len; - -- if (init_dynamic_string(&ds_datadir, NULL, 32, 32)) -- die("Out of memory"); -+ DBUG_ENTER("get_upgrade_info_file_name"); - -- if (run_query("show variables like 'datadir'", -- &ds_datadir, FALSE) || -- extract_variable_from_show(&ds_datadir, name)) -+ if(data_dir==NULL) - { -+ DYNAMIC_STRING ds_datadir; -+ -+ if (init_dynamic_string(&ds_datadir, NULL, 32, 32)) -+ die("Out of memory"); -+ -+ if (run_query("show variables like 'datadir'", -+ &ds_datadir, FALSE) || -+ extract_variable_from_show(&ds_datadir, name) -+ ) -+ { -+ dynstr_free(&ds_datadir); -+ DBUG_RETURN(1); /* Query failed */ -+ } - dynstr_free(&ds_datadir); -- DBUG_RETURN(1); /* Query failed */ -- } -+ len = strlen(name)+1; -+ if ((data_dir=(char*)malloc(sizeof(char)*len))==NULL) -+ { -+ die("Out of memory"); -+ } -+ strncpy(data_dir,name,len); - -- dynstr_free(&ds_datadir); -+ } else { -+ strncpy(name, data_dir, len); -+ } - - fn_format(name, "mysql_upgrade_info", name, "", MYF(0)); - DBUG_PRINT("exit", ("name: %s", name)); -@@ -762,7 +778,7 @@ static int run_mysqlcheck_upgrade(const - - static int run_mysqlcheck_fixnames(void) - { -- verbose("Phase 3/5: Fixing table and database names"); -+ verbose("Phase 3/6: Fixing table and database names"); - print_conn_args("mysqlcheck"); - return run_tool(mysqlcheck_path, - NULL, /* Send output from mysqlcheck directly to screen */ -@@ -1008,7 +1024,7 @@ int main(int argc, char **argv) - Read the mysql_upgrade_info file to check if mysql_upgrade - already has been run for this installation of MySQL - */ -- if (!opt_force && upgrade_already_done()) -+ if (upgrade_already_done() && !opt_force) - { - printf("This installation of MySQL is already upgraded to %s, " - "use --force if you still need to run mysql_upgrade\n", -@@ -1024,23 +1040,26 @@ int main(int argc, char **argv) - /* - Run "mysqlcheck" and "mysql_fix_privilege_tables.sql" - */ -- verbose("Phase 1/5: Checking mysql database"); -+ verbose("Phase 1/6: Checking mysql database"); - if (run_mysqlcheck_upgrade("--databases", "mysql")) - die("Upgrade failed" ); -- verbose("Phase 2/5: Running 'mysql_fix_privilege_tables'..."); -- if (run_sql_fix_privilege_tables()) -- die("Upgrade failed" ); -+ verbose("Phase 2/6: Skipping 'mysql_fix_privilege_tables' for now..."); - - if (!opt_systables_only && - (run_mysqlcheck_fixnames() || -- verbose("Phase 4/5: Checking and upgrading tables") || -+ verbose("Phase 4/6: Checking and upgrading tables") || - run_mysqlcheck_upgrade("--all-databases","--skip-database=mysql"))) - die("Upgrade failed" ); - -- verbose("Phase 5/5: Running 'FLUSH PRIVILEGES'..."); -+ verbose("Phase 5/6: Running 'mysql_fix_privilege_tables'..."); -+ if (run_sql_fix_privilege_tables()) -+ die("Upgrade failed" ); -+ -+ verbose("Phase 6/6: Running 'FLUSH PRIVILEGES'..."); - if (run_query("FLUSH PRIVILEGES", NULL, TRUE)) - die("Upgrade failed" ); - -+ - verbose("OK"); - - /* Create a file indicating upgrade has been performed */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mysql-patches/mysql-patches/mariadb-10.0.20-tabxml-bufferoverflowstrncat.patch new/mysql-patches/mysql-patches/mariadb-10.0.20-tabxml-bufferoverflowstrncat.patch --- old/mysql-patches/mysql-patches/mariadb-10.0.20-tabxml-bufferoverflowstrncat.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/mysql-patches/mysql-patches/mariadb-10.0.20-tabxml-bufferoverflowstrncat.patch 2015-06-24 16:04:22.000000000 +0200 @@ -0,0 +1,39 @@ +PATCH-P0-FIX-UPSTREAM: Fix possible buffer overflow +BUGS: MDEV-8317 + +Maintainer: Michal Hrusecky <michal.hruse...@opensuse.org> + +Index: storage/connect/tabxml.cpp +=================================================================== +--- storage/connect/tabxml.cpp.orig ++++ storage/connect/tabxml.cpp +@@ -225,7 +225,7 @@ PQRYRES XMLColumns(PGLOBAL g, char *db, + more: + if (vp->atp) { + strncpy(colname, vp->atp->GetName(g), sizeof(colname)); +- strncat(xcol->Name, colname, 64); ++ strncat(xcol->Name, colname, 64 - strlen(xcol->Name) -1); + + switch (vp->atp->GetText(g, buf, sizeof(buf))) { + case RC_INFO: +@@ -238,17 +238,17 @@ PQRYRES XMLColumns(PGLOBAL g, char *db, + } // enswitch rc + + if (j) +- strncat(fmt, colname, sizeof(fmt)); ++ strncat(fmt, colname, sizeof(fmt) - strlen(fmt) - 1); + + } else { + if (tdp->Usedom && node->GetType() != 1) + continue; + + strncpy(colname, node->GetName(g), sizeof(colname)); +- strncat(xcol->Name, colname, 64); ++ strncat(xcol->Name, colname, 64 - strlen(xcol->Name) -1); + + if (j) +- strncat(fmt, colname, sizeof(fmt)); ++ strncat(fmt, colname, sizeof(fmt) - strlen(fmt) - 1); + + if (j < lvl && ok) { + vp = lvlp[j+1]; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mysql-patches/mysql-patches/mariadb-5.5.41-mariadb-admincrash.patch new/mysql-patches/mysql-patches/mariadb-5.5.41-mariadb-admincrash.patch --- old/mysql-patches/mysql-patches/mariadb-5.5.41-mariadb-admincrash.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/mysql-patches/mysql-patches/mariadb-5.5.41-mariadb-admincrash.patch 2015-06-23 11:00:06.000000000 +0200 @@ -0,0 +1,27 @@ +PATCH-P1-FIX-UPSTREAM: mysql admin crash +BUGS: rhbz#1207041 upstream#7883 + +mysqladmin crash on execution of below command: + + #> mysqladmin -u root -p + ... + Segmentation fault (core dumped) + +This is probably caused by memory corruption based on working with temp_argv[-1]. + +RHBZ: #1207041 +Upstream report: https://mariadb.atlassian.net/browse/MDEV-7883 + +diff -up mariadb-5.5.41/client/mysqladmin.cc.bz1207041 mariadb-5.5.41/client/mysqladmin.cc +--- mariadb-5.5.41/client/mysqladmin.cc.bz1207041 2015-03-30 12:37:31.078880914 +0200 ++++ mariadb-5.5.41/client/mysqladmin.cc 2015-03-30 13:03:32.442152833 +0200 +@@ -1215,7 +1215,8 @@ static char **mask_password(int argc, ch + } + argc--; + } +- temp_argv[argc]= my_strdup((*argv)[argc], MYF(MY_FAE)); ++ if (argc >= 0) ++ temp_argv[argc]= my_strdup((*argv)[argc], MYF(MY_FAE)); + return(temp_argv); + } + ++++++ mysql-systemd-helper ++++++ #!/bin/bash die() { echo "$1" exit 1 } # Read options from config file read_config() { # Initial settings MYSQLVER="$(echo @MYSQLVER@ | sed 's|\.[0-9]\+$||')" mysql_daemon_user=mysql mysql_daemon_group=mysql if [[ -z "$INSTANCE" || "x$INSTANCE" = "xdefault" ]]; then datadir=/var/lib/mysql socket="/var/run/mysql/mysql.sock" else datadir="/var/lib/mysql-$INSTANCE" socket="/var/run/mysql/mysql.${INSTANCE}.sock" fi # Read options - important for multi setup if [[ -n "$INSTANCE" && "x$INSTANCE" != "xdefault" ]]; then opts="$(/usr/bin/my_print_defaults --mysqld mysqld_multi "$INSTANCE")" tmp_opts="$opts" else opts="$(/usr/bin/my_print_defaults --mysqld)" tmp_opts="$opts" fi # Update local variables according to the settings from config for arg in $tmp_opts; do case "$arg" in --basedir=*) basedir="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;; --socket=*) socket="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;; --datadir=*) datadir="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;; --user=*) mysql_daemon_user="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;; --group=*) mysql_daemon_group="$(echo "$arg" | sed -e 's/^[^=]*=//')" ;; esac done } # Create new empty database if needed mysql_install() { if [[ ! -d "$datadir/mysql" ]]; then echo "Creating MySQL privilege database... " mysql_install_db --user="$mysql_daemon_user" --datadir="$datadir" || \ die "Creation of MySQL databse in $datadir failed" echo -n "$MYSQLVER" > "$datadir"/mysql_upgrade_info fi } # Upgrade database if needed mysql_upgrade() { # Run mysql_upgrade on every package install/upgrade. Not always # necessary, but doesn't do any harm. if [[ -f "$datadir/.run-mysql_upgrade" ]]; then echo "Checking MySQL configuration for obsolete options..." sed -i -e 's|^\([[:blank:]]*\)skip-locking|\1skip-external-locking|' \ -e 's|^\([[:blank:]]*skip-federated\)|#\1|' /etc/my.cnf # instead of running mysqld --bootstrap, which wouldn't allow # us to run mysql_upgrade, we start a full-featured server with # --skip-grant-tables and restict access to it by unix # permissions of the named socket echo "Trying to run upgrade of MySQL databases..." # Check whether upgrade process is not already running protected="$(cat "/var/run/mysql/protecteddir.$INSTANCE" 2> /dev/null)" if [[ -n "$protected" && -d "$protected" ]]; then pid="$(cat "$protected/mysqld.pid" 2> /dev/null)" if [[ "$pid" && -d "/proc/$pid" ]] && [[ $(readlink "/proc/$pid/exe" | grep -q "mysql") ]]; then die "Another upgrade in already in progress!" else echo "Stale files from previous upgrade detected, cleaned them up" rm -rf "$protected" rm -f "/var/run/mysql/protecteddir.$INSTANCE" fi fi protected="$(mktemp -d -p /var/tmp mysql-protected.XXXXXX | tee "/var/run/mysql/protecteddir.$INSTANCE")" [ -n "$protected" ] || die "Can't create a tmp dir '$protected'" # Create a secure tmp dir chown --no-dereference "$mysql_daemon_user:$mysql_daemon_group" "$protected" || die "Failed to set group/user to '$protected'" chmod 0700 "$protected" || die "Failed to set permissions to '$protected'" # Run protected MySQL accessible only though socket in our directory echo "Running protected MySQL... " /usr/sbin/mysqld \ --user="$mysql_daemon_user" --group="$mysql_daemon_group" \ $opts \ --skip-networking \ --skip-grant-tables \ --log-error="$protected/log_upgrade_run" \ --socket="$protected/mysql.sock" \ --pid-file="$protected/mysqld.pid" & mysql_wait "$protected/mysql.sock" || die "MySQL didn't start, can't continue" # Run upgrade itself echo "Running upgrade itself..." echo "It will do some chek first and report all errors and tries to correct them" echo if /usr/bin/mysql_upgrade --no-defaults --force --socket="$protected/mysql.sock"; then echo "Everything upgraded successfully" up_ok="" rm -f "$datadir/.run-mysql_upgrade" [[ $(grep -q "^$MYSQLVER" "$datadir/mysql_upgrade_info" 2> /dev/null) ]] || \ echo -n "$MYSQLVER" > "$datadir/mysql_upgrade_info" else echo "Upgrade failed" up_ok="false" fi # Shut down MySQL echo "Shuting down protected MySQL" kill "$(cat "$protected/mysqld.pid")" for i in {1..30}; do /usr/bin/mysqladmin --socket="$protected/mysql.sock" ping > /dev/null 2>&1 || break done /usr/bin/mysqladmin --socket="$protected/mysql.sock" ping > /dev/null 2>&1 && kill -9 "$(cat "$protected/mysqld.pid")" # Cleanup echo "Final cleanup" rm -rf "$protected" "/var/run/mysql/protecteddir.$INSTANCE" [[ -z "$up_ok" ]] || die "Something failed during upgrade, please check logs" fi } mysql_wait() { [[ -z "$1" ]] || socket="$1" echo "Waiting for MySQL to start" for i in {1..60}; do /usr/bin/mysqladmin --socket="$socket" ping > /dev/null 2>&1 && break sleep 1 done if /usr/bin/mysqladmin --socket="$socket" ping > /dev/null 2>&1; then echo "MySQL is alive" return 0 else echo "MySQL is still dead" return 1 fi } mysql_start() { /usr/sbin/mysqld --user="$mysql_daemon_user" --group="$mysql_daemon_group" $opts } # We rely on output in english at some points LC_ALL=C INSTANCE="$2" read_config mkdir -p /var/run/mysql chown --no-dereference "$mysql_daemon_user:$mysql_daemon_group" /var/run/mysql case "$1" in install) mysql_install ;; upgrade) mysql_upgrade ;; start) mysql_start ;; wait) mysql_wait ;; *) echo "Supported commands are:" echo " install - creates empty database if needed" echo " upgrade - tries to migrate data to newer version if needed" echo " start - tries to start instance" echo " wait - waits till instance is pingable" echo "All commands can take extra argument which is group from 'mysqld_multi' you want to work with" ;; esac ++++++ mysql.service ++++++ --- /var/tmp/diff_new_pack.LXfE7V/_old 2015-07-19 11:45:17.000000000 +0200 +++ /var/tmp/diff_new_pack.LXfE7V/_new 2015-07-19 11:45:17.000000000 +0200 @@ -1,12 +1,16 @@ [Unit] Description=MySQL server Wants=basic.target -After=basic.target network.target +Conflicts=mysql.target mysql@default.service +After=basic.target network.target syslog.target [Service] -Type=forking -ExecStart=/usr/lib/mysql/rcmysql start -ExecStop=/usr/lib/mysql/rcmysql stop +Restart=on-failure +Type=simple +ExecStartPre=/usr/lib/mysql/mysql-systemd-helper install default +ExecStartPre=/usr/lib/mysql/mysql-systemd-helper upgrade default +ExecStart=/usr/lib/mysql/mysql-systemd-helper start default +ExecStartPost=/usr/lib/mysql/mysql-systemd-helper wait default [Install] WantedBy=multi-user.target ++++++ mysql.target ++++++ [Unit] Description=MySQL target allowing to control multi setup ++++++ mysql@.service ++++++ [Unit] Description=MySQL server - %I instance Wants=basic.target PartOf=mysql.target After=basic.target network.target syslog.target [Service] Restart=on-failure Type=simple ExecStartPre=/usr/lib/mysql/mysql-systemd-helper install %i ExecStartPre=/usr/lib/mysql/mysql-systemd-helper upgrade %i ExecStart=/usr/lib/mysql/mysql-systemd-helper start %i ExecStartPost=/usr/lib/mysql/mysql-systemd-helper wait %i [Install] WantedBy=multi-user.target ++++++ series ++++++ --- /var/tmp/diff_new_pack.LXfE7V/_old 2015-07-19 11:45:17.000000000 +0200 +++ /var/tmp/diff_new_pack.LXfE7V/_new 2015-07-19 11:45:17.000000000 +0200 @@ -10,8 +10,11 @@ mysql-community-server-5.5.6-safe-process-in-bin.patch mariadb-10.0.17-group.patch mariadb-10.0.5-deharcode-libdir.patch -mariadb-10.0.15-upgrade-datadir.patch mysql-community-server-5.6.12-srv_buf_size.patch mariadb-10.0.16-header_files_const_warnings.patch mariadb-10.0.15-fortify-and-O.patch mariadb-10.0.15-logrotate-su.patch +mariadb-5.5.41-mariadb-admincrash.patch +mariadb-10.0.15-covscan-signexpr.patch +mariadb-10.0.10-string-overflow.patch +mariadb-10.0.20-tabxml-bufferoverflowstrncat.patch ++++++ suse-test-run ++++++ --- /var/tmp/diff_new_pack.LXfE7V/_old 2015-07-19 11:45:17.000000000 +0200 +++ /var/tmp/diff_new_pack.LXfE7V/_new 2015-07-19 11:45:17.000000000 +0200 @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# Test the SUSE mysql(-Max) package using the MySQL testsuite +# Test the SUSE mysql package using the MySQL testsuite my $id = getpwnam("mysql") or die "can't find user \"mysql\": $!"; my $dir = "/usr/share/mysql-test/";