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/";


Reply via email to