Hello community,

here is the log from the commit of package mariadb for openSUSE:Factory checked 
in at 2013-08-13 10:15:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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  2013-07-27 
15:48:15.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mariadb.new/mariadb.changes     2013-08-13 
10:15:56.000000000 +0200
@@ -1,0 +2,31 @@
+Mon Aug 12 14:32:51 CEST 2013 - [email protected]
+
+- chown --no-dereference instead of chown to improve security
+  * similar issue as CVE-2013-1976
+- fix build for ppc64 using -mminimal-toc
+
+-------------------------------------------------------------------
+Mon Aug 12 12:25:16 CEST 2013 - [email protected]
+
+- merge latest packaging fixes
+  * better handling of libdir
+  * more cautious upgrades
+
+-------------------------------------------------------------------
+Wed Aug  7 15:12:13 CEST 2013 - [email protected]
+
+- add patch for lib64 on s390x
+  mysql-patches/mariadb-5.5.24-s390x-libdir.patch 
+
+-------------------------------------------------------------------
+Tue Jul 30 21:51:25 CEST 2013 - [email protected]
+
+- get rid of info which is not info (bnc#747811)
+- minor polishing of spec/installation
+
+-------------------------------------------------------------------
+Fri Jul 26 10:07:33 CEST 2013 - [email protected]
+
+- fix ownership of logdir (bnc#763150)
+
+-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mariadb.spec ++++++
--- /var/tmp/diff_new_pack.DrnnOb/_old  2013-08-13 10:15:58.000000000 +0200
+++ /var/tmp/diff_new_pack.DrnnOb/_new  2013-08-13 10:15:58.000000000 +0200
@@ -15,7 +15,6 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
-
 # Few definitions which will alter build
 %define prefered   1
 %define use_cmake  1
@@ -55,10 +54,10 @@
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 %if 0%{?suse_version}
 PreReq:         pwdutils
-PreReq:         %install_info_prereq %insserv_prereq
 %endif
 BuildRequires:  autoconf
 BuildRequires:  automake
+BuildRequires:  bison
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
 BuildRequires:  libaio-devel
@@ -94,14 +93,18 @@
 BuildRequires:  systemd
 %{?systemd_requires}
 %endif
+%if "%{name}" != mysql
 Provides:       mysql = %{srv_vers}
+%endif
 Provides:       mysql-Max = %{srv_vers}
 %if 0%{?use_extra_provides} > 0
 Provides:       %{extra_provides} = %{version}
 Obsoletes:      %{extra_provides} < %{version}
 %endif
 %if 0%{?prefered} > 0
+%if "%{name}" != mysql
 Obsoletes:      mysql < %{srv_vers}
+%endif
 Obsoletes:      mysql-Max < %{srv_vers}
 %endif
 Conflicts:      otherproviders(mysql)
@@ -171,18 +174,22 @@
 %package client
 Summary:        Client for MariaDB
 Group:          Productivity/Databases/Clients
+%if "%{name}" != mysql
 Provides:       mysql-client = %{srv_vers}
+%endif
 %if 0%{?suse_version}
 PreReq:         pwdutils
 %endif
 %if 0%{?use_extra_provides} > 0
 Provides:       %{extra_provides}-client = %{version}
 Obsoletes:      %{extra_provides}-client < %{version}
-Requires:       %{name}-errormessages = %version
 %endif
+Requires:       %{name}-errormessages = %version
 %if 0%{?prefered} > 0
+%if "%{name}" != mysql
 Obsoletes:      mysql-client < %{srv_vers}
 %endif
+%endif
 Conflicts:      otherproviders(mysql-client)
 
 %description client
@@ -201,14 +208,18 @@
 Requires:       perl-DBD-mysql
 Summary:        Benchmarks for MariaDB
 Group:          Productivity/Databases/Tools
+%if "%{name}" != mysql
 Provides:       mysql-bench = %{srv_vers}
+%endif
 %if 0%{?use_extra_provides} > 0
 Provides:       %{extra_provides}-bench = %{version}
 Obsoletes:      %{extra_provides}-bench < %{version}
 %endif
 %if 0%{?prefered} > 0
+%if "%{name}" != mysql
 Obsoletes:      mysql-bench < %{srv_vers}
 %endif
+%endif
 Conflicts:      otherproviders(mysql-bench)
 
 %description bench
@@ -248,14 +259,18 @@
 Requires:       %{name}-client = %{version}
 Requires:       %{name}-tools = %{version}
 Requires:       perl-DBD-mysql
+%if "%{name}" != mysql
 Provides:       mysql-test = %{srv_vers}
+%endif
 %if 0%{?use_extra_provides} > 0
 Provides:       %{extra_provides}-test = %{version}
 Obsoletes:      %{extra_provides}-test < %{version}
 %endif
 %if 0%{?prefered} > 0
+%if "%{name}" != mysql
 Obsoletes:      mysql-test < %{srv_vers}
 %endif
+%endif
 Conflicts:      otherproviders(mysql-test)
 
 %description test
@@ -269,15 +284,19 @@
 Requires:       perl-DBD-mysql
 # make sure this package is installed when updating from 10.2 and older
 Provides:       mysql-client:/usr/bin/perror
+%if "%{name}" != mysql
 Provides:       mysql-tools = %{srv_vers}
+%endif
 Provides:       mysql:/usr/bin/mysqlhotcopy
 %if 0%{?use_extra_provides} > 0
 Provides:       %{extra_provides}-tools = %{version}
 Obsoletes:      %{extra_provides}-tools < %{version}
 %endif
 %if 0%{?prefered} > 0
+%if "%{name}" != mysql
 Obsoletes:      mysql-tools < %{srv_vers}
 %endif
+%endif
 Conflicts:      otherproviders(mysql-tools)
 
 %description tools
@@ -301,8 +320,10 @@
 %package ndb-storage
 Summary:        MariaDB - ndbcluster storage engine
 Group:          Productivity/Databases/Servers
+%if "%{name}" != mysql
 Provides:       mysql-ndb-storage = %{srv_vers}
 Obsoletes:      mysql-ndb-storage < %{srv_vers}
+%endif
 Conflicts:      otherproviders(mysql-ndb-storage)
 
 %description ndb-storage
@@ -314,8 +335,10 @@
 %package ndb-management
 Summary:        MariaDB - ndbcluster storage engine management
 Group:          Productivity/Databases/Servers
+%if "%{name}" != mysql
 Provides:       mysql-ndb-management = %{srv_vers}
 Obsoletes:      mysql-ndb-management < %{srv_vers}
+%endif
 Conflicts:      otherproviders(mysql-ndb-management)
 
 %description ndb-management
@@ -326,8 +349,10 @@
 %package ndb-tools
 Summary:        MariaDB - ndbcluster storage engine basic tools
 Group:          Productivity/Databases/Servers
+%if "%{name}" != mysql
 Provides:       mysql-ndb-tools = %{srv_vers}
 Obsoletes:      mysql-ndb-tools < %{srv_vers}
+%endif
 Conflicts:      otherproviders(mysql-ndb-tools)
 
 %description ndb-tools
@@ -336,8 +361,10 @@
 %package ndb-extra
 Summary:        MariaDB - ndbcluster storage engine extra tools
 Group:          Productivity/Databases/Servers
+%if "%{name}" != mysql
 Provides:       mysql-ndb-extra = %{srv_vers}
 Obsoletes:      mysql-ndb-extra < %{srv_vers}
+%endif
 Conflicts:      otherproviders(mysql-ndb-extra)
 
 %description ndb-extra
@@ -383,7 +410,7 @@
 /usr/sbin/groupadd -r mysql >/dev/null 2>/dev/null || :
 /usr/sbin/useradd -r -o -g mysql -u 60 -c "MySQL database admin" \
                   -s /bin/false -d /var/lib/mysql mysql 2> /dev/null || :
-/usr/sbin/usermod -g mysql -s /bin/false mysql || :
+/usr/sbin/usermod -g mysql -s /bin/false mysql 2> /dev/null || :
 # systemd requirment
 %if 0%{?suse_version} >= 1210
 %service_add_pre mysql.service
@@ -393,7 +420,7 @@
 /usr/sbin/groupadd -r mysql >/dev/null 2>/dev/null || :
 /usr/sbin/useradd -r -o -g mysql -u 60 -c "MySQL database admin" \
                   -s /bin/false -d /var/lib/mysql mysql 2> /dev/null || :
-/usr/sbin/usermod -g mysql -s /bin/false mysql || :
+/usr/sbin/usermod -g mysql -s /bin/false mysql 2> /dev/null || :
 
 %post
 # systemd requirment 
@@ -418,8 +445,6 @@
 end
 
 %posttrans
-[ -z "`ls %{_infodir}/mysql.info.* 2> /dev/null`" ] || \
-%install_info --info-dir=%{_infodir} %{_infodir}/mysql.info.*
 if [ -d /var/lib/mysql ]; then
        touch /var/lib/mysql/.run-mysql_upgrade
        chown -R mysql:mysql /var/lib/mysql
@@ -459,7 +484,6 @@
 
 %postun
 if [ $1 = 0 ]; then
-       %install_info_delete --info-dir=%{_infodir} %{_infodir}/mysql.info.*
        %{insserv_cleanup}
        rm -f "/var/lib/systemd/migrated/mysql.service"
        if [ -x /usr/bin/systemctl ]; then
@@ -478,7 +502,6 @@
 %config(noreplace) %attr(0640, root, mysql) /etc/my.cnf.d/*
 %config /etc/logrotate.d/mysql
 %doc %{_defaultdocdir}/%{name}
-%doc %{_infodir}/mysql.info.*
 /etc/init.d/mysql
 /usr/sbin/rcmysql
 %dir /usr/share/%{name}

++++++ build.inc ++++++
--- /var/tmp/diff_new_pack.DrnnOb/_old  2013-08-13 10:15:58.000000000 +0200
+++ /var/tmp/diff_new_pack.DrnnOb/_new  2013-08-13 10:15:58.000000000 +0200
@@ -4,9 +4,12 @@
 %define socketpath /var/run/mysql
 %endif
 %if 0%{?suse_version} > 1140
-export WARN_DIS="$WARN_DIS -Wno-unused-but-set-variable -fno-strict-aliasing 
-Wno-unused-parameter "
+export EXTRA_FLAGS=" -Wno-unused-but-set-variable -fno-strict-aliasing 
-Wno-unused-parameter "
 %endif
-export CFLAGS="$RPM_OPT_FLAGS -DPIC -fPIC -DFORCE_INIT_OF_VARS $WARN_DIS "
+%ifarch ppc64
+export EXTRA_FLAGS=" -mminimal-toc "
+%endif
+export CFLAGS="$RPM_OPT_FLAGS -DPIC -fPIC -DFORCE_INIT_OF_VARS $EXTRA_FLAGS "
 export CXXFLAGS="$CFLAGS -fno-exceptions -fno-rtti"
 
 %if 0%{use_cmake} < 1
@@ -111,6 +114,8 @@
                        -DWITH_EMBEDDED_SERVER=true                             
     \
                        -DCOMPILATION_COMMENT="openSUSE package"                
     \
                        -DDENABLE_DOWNLOADS=false                               
     \
+                       -DINSTALL_PLUGINDIR_RPM="%{_libdir}/mysql/plugin"       
     \
+                       -DINSTALL_LIBDIR_RPM="%{_libdir}"                       
     \
                        "$@" ..
        make %{?jobs:-j%jobs}
        nm --numeric-sort sql/mysqld > sql/mysqld.sym

++++++ configuration-tweaks.tar.bz2 ++++++

++++++ install.inc ++++++
--- /var/tmp/diff_new_pack.DrnnOb/_old  2013-08-13 10:15:58.000000000 +0200
+++ /var/tmp/diff_new_pack.DrnnOb/_new  2013-08-13 10:15:58.000000000 +0200
@@ -15,26 +15,20 @@
 fi
 rm -f %buildroot%_libdir/mysql/plugin/handlersocket.so
 # remove most static libs (FIXME: don't build them at all...)
-rm -f %buildroot%_libdir/libmysqlclient*a
-rm -f %buildroot%_libdir/libmysqlservices*a
-rm -f %buildroot%_libdir/mysql/*.a %buildroot%_libdir/mysql/*.la
-rm -f %buildroot%_libdir/mysql/plugin/*a
+[ \! -f "%buildroot%_libdir/"libmysqld.a ] || mv 
"%buildroot%_libdir/"libmysqld.a "%buildroot%_libdir/"libmysqld.static
+rm -f %buildroot%_libdir/*.a
+[ \! -f "%buildroot%_libdir/"libmysqld.static ] || mv 
"%buildroot%_libdir/"libmysqld.static "%buildroot%_libdir/"libmysqld.a
+rm -f %buildroot%_libdir/mysql/{,plugin}/*.{a,la}
 # XXX: package these? The ndb tools are linked statically atm
 rm -f %buildroot%_libdir/mysql/libndbclient.*
-rm -f %{buildroot}/usr/share/mysql-test/mysql-test-run  
-rm -f %{buildroot}/usr/share/mysql-test/mtr
-rm -f %{buildroot}/usr/share/mysql/binary-configure
-rm -f %{buildroot}/usr/share/mysql/errmsg-utf8.txt
-rm -f %{buildroot}/usr/share/mysql/magic
-rm -f %{buildroot}/usr/share/mysql/mysql-log-rotate
-rm -f %{buildroot}/usr/share/mysql/mysql*.server
+rm -f %{buildroot}/usr/share/mysql-test/{mysql-test-run,mtr}
+rm -f 
%{buildroot}/usr/share/mysql/{binary-configure,errmsg-utf8.txt,magic,mysql-log-rotate,mysql*.server}
 rm -f %{buildroot}%{_libdir}/mysql/plugin/daemon_example.ini
 ln -sf mysql-test-run.pl %{buildroot}/usr/share/mysql-test/mtr  
 ln -sf mysql-test-run.pl %{buildroot}/usr/share/mysql-test/mysql-test-run 
 mv %{buildroot}/usr/share/mysql-test/lib/My/SafeProcess/my_safe_process 
%{buildroot}%{_bindir}
 # generate filelist for binaries and their manpages (easier than enumerating
-# all the binaries and manapages manually, esp. when there are new manpages in
-# each release)
+# all the binaries and manapages manually
 filelist()
 {
        echo '%%defattr(-, root, root)'
@@ -108,9 +102,6 @@
 # testsuite
 mkdir -p '%buildroot'/usr/share/mysql-test/
 install -m 755 suse-test-run '%buildroot'/usr/share/mysql-test/
-# XXX this should go under /var/..., but some tests get confused by a symlink
-# var -> ../../../var/...
-#ln -sf ../../../var/lib/mysql/mysql-test %buildroot/usr/share/mysql-test/var
 mkdir '%buildroot'/usr/share/mysql-test/var
 # Final fixes
 find '%buildroot'/usr/share/mysql-test -name '*.orig' -delete
@@ -134,18 +125,33 @@
        rm -f .$tmp
 done
 %endif
+pushd '%buildroot'/%_libdir
+for i in *.so.*.*.*; do
+       if [ -L "$i" ]; then
+               trg="`readlink "$i"`"
+               rm "$i"
+               mv "$trg" "$i"
+               ln -s "$i" "$trg"
+       fi
+done
+for i in *.so.*; do
+       if [ -L "$i" ] && [ -L "`readlink "$i"`" ]; then
+               trg="`readlink "$i"`"
+               rm "$i"
+               ln -s "`readlink "$trg"`" "$i"
+       fi
+done
+popd
 %if ! 0%{prefered} > 0
 cat libmysqlclient-devel.files | sed 's|%%doc\ ||' | while read tmp; do
        cd '%buildroot'
        rm -f ."$tmp"
 done
 rm -rf '%buildroot'/%_libdir/libmysqld.*
-rm -rf '%buildroot'/%_libdir/*.la
-rm -rf '%buildroot'/%_libdir/*.so
+rm -rf '%buildroot'/%_libdir/{*.la,*.so,*.a}
 rm -rf '%buildroot'/%_datadir/man/*/mysql_config.1*
 rm -rf '%buildroot'/%_includedir  
 rm -rf '%buildroot'/%_datadir/aclocal
-rm -rf '%buildroot'/%_libdir/*.a
 %endif
 sed -i 's|doc/packages/mysql|doc/packages/%{name}|g' 
'%buildroot'/etc/init.d/mysql
 ln -s mysqlcheck '%buildroot'%_bindir/mysqlrepair
@@ -158,18 +164,14 @@
 if [ -f '%buildroot'/usr/bin/mysqlaccess.conf ]; then
        mv '%buildroot'/usr/bin/mysqlaccess.conf 
'%buildroot'/etc/mysqlaccess.conf
 fi
+rm -rf '%buildroot'/etc/my.cnf.d
 mkdir -p '%buildroot'/etc/my.cnf.d
-rm -rf '%buildroot'/etc/my.cnf.d/*
 bzip2 -cd '%_sourcedir'/configuration-tweaks.tar.bz2 | tar -C 
'%buildroot'/etc/my.cnf.d -xvf -
-if [ -z "`ls '%buildroot'/usr/share/info/mysql.info*`" ]; then
-       install -D -m 0644 Docs/mysql.info 
"%buildroot/usr/share/info/mysql.info"
-       gzip -9 "%buildroot/usr/share/info/mysql.info"
-fi
-if [ "`ls '%buildroot'%_libdir/mysql/plugin/dialog*.so`" ]; then
+[ -z "`ls '%buildroot'/usr/share/info/mysql.info* 2> /dev/null`" ] || rm -f 
'%buildroot'/usr/share/info/mysql.info*
+if [ "`ls '%buildroot'%_libdir/mysql/plugin/dialog*.so 2> /dev/null`" ]; then
        echo '%%dir %%_libdir/mysql'               >> mysql-client.files
        echo '%%dir %%_libdir/mysql/plugin'        >> mysql-client.files
        echo '%%_libdir/mysql/plugin/dialog*.so'   >> mysql-client.files
 fi
 rm -rf '%buildroot'/usr/share/doc/{mysql,mariadb}*
-rm -rf '%buildroot'/usr/share/mysql/solaris
-rm -rf '%buildroot'/usr/share/mysql/SELinux
+rm -rf '%buildroot'/usr/share/mysql/{solaris,SELinux}

++++++ mysql-patches.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-patches/mysql-patches/mariadb-5.5.24-aarch64-libdir.patch 
new/mysql-patches/mysql-patches/mariadb-5.5.24-aarch64-libdir.patch
--- old/mysql-patches/mysql-patches/mariadb-5.5.24-aarch64-libdir.patch 
2013-03-26 13:16:20.000000000 +0100
+++ new/mysql-patches/mysql-patches/mariadb-5.5.24-aarch64-libdir.patch 
1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-PATCH-P0-FIX-SUSE: set libdir for aarch64 correctly
-
-Index: cmake/install_layout.cmake
-===================================================================
---- cmake/install_layout.cmake
-+++ cmake/install_layout.cmake
-@@ -140,7 +140,7 @@ SET(INSTALL_SBINDIR_RPM
- SET(INSTALL_SCRIPTDIR_RPM               "bin")
- SET(INSTALL_SYSCONFDIR_RPM            "/etc")
- #
--IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" "OR" CMAKE_SYSTEM_PROCESSOR 
MATCHES "ppc64")
-+IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" "OR" CMAKE_SYSTEM_PROCESSOR 
MATCHES "ppc64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
-   SET(INSTALL_LIBDIR_RPM                "lib64")
-   SET(INSTALL_PLUGINDIR_RPM             "lib64/mysql/plugin")
- ELSE()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-patches/mysql-patches/mariadb-5.5.24-ppc64-libdir.patch 
new/mysql-patches/mysql-patches/mariadb-5.5.24-ppc64-libdir.patch
--- old/mysql-patches/mysql-patches/mariadb-5.5.24-ppc64-libdir.patch   
2013-03-25 23:14:09.000000000 +0100
+++ new/mysql-patches/mysql-patches/mariadb-5.5.24-ppc64-libdir.patch   
1970-01-01 01:00:00.000000000 +0100
@@ -1,19 +0,0 @@
-PATCH-P0-FIX-SUSE: fix ppc64 libdir
-
-This patch fixes libdir on ppc64
-
-Maintainer: Dinar Valeev <[email protected]>
-
-Index: cmake/install_layout.cmake
-===================================================================
---- cmake/install_layout.cmake.orig
-+++ cmake/install_layout.cmake
-@@ -139,7 +139,7 @@ SET(INSTALL_SBINDIR_RPM
- SET(INSTALL_SCRIPTDIR_RPM               "bin")
- SET(INSTALL_SYSCONFDIR_RPM            "/etc")
- #
--IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
-+IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" "OR" CMAKE_SYSTEM_PROCESSOR 
MATCHES "ppc64")
-   SET(INSTALL_LIBDIR_RPM                "lib64")
-   SET(INSTALL_PLUGINDIR_RPM             "lib64/mysql/plugin")
- ELSE()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-patches/mysql-patches/mariadb-5.5.32-deharcode-libdir.patch 
new/mysql-patches/mysql-patches/mariadb-5.5.32-deharcode-libdir.patch
--- old/mysql-patches/mysql-patches/mariadb-5.5.32-deharcode-libdir.patch       
1970-01-01 01:00:00.000000000 +0100
+++ new/mysql-patches/mysql-patches/mariadb-5.5.32-deharcode-libdir.patch       
2013-08-03 10:46:10.000000000 +0200
@@ -0,0 +1,27 @@
+PATCH-P0-FIX-SUSE: dehardcode libdir 
+
+Don't expect libdir is set to lib64 on x86_64 only.
+There is other occurances like ppc64 and aarch64.
+Use %{_libdir} macro instead
+
+Maintainer: Dinar Valeev <[email protected]>
+
+Index: cmake/install_layout.cmake
+===================================================================
+--- cmake/install_layout.cmake.orig
++++ cmake/install_layout.cmake
+@@ -146,14 +146,6 @@ SET(INSTALL_SBINDIR_RPM
+ SET(INSTALL_SCRIPTDIR_RPM               "bin")
+ SET(INSTALL_SYSCONFDIR_RPM            "/etc")
+ #
+-IF(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
+-  SET(INSTALL_LIBDIR_RPM                "lib64")
+-  SET(INSTALL_PLUGINDIR_RPM             "lib64/mysql/plugin")
+-ELSE()
+-  SET(INSTALL_LIBDIR_RPM                "lib")
+-  SET(INSTALL_PLUGINDIR_RPM             "lib/mysql/plugin")
+-ENDIF()
+-#
+ SET(INSTALL_INCLUDEDIR_RPM              "include/mysql")
+ #
+ SET(INSTALL_DOCDIR_RPM                  
"share/doc/${CPACK_SOURCE_PACKAGE_FILE_NAME}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mysql-patches/mysql-patches/mysql-5.5-dump.patch 
new/mysql-patches/mysql-patches/mysql-5.5-dump.patch
--- old/mysql-patches/mysql-patches/mysql-5.5-dump.patch        1970-01-01 
01:00:00.000000000 +0100
+++ new/mysql-patches/mysql-patches/mysql-5.5-dump.patch        2013-08-02 
21:15:43.000000000 +0200
@@ -0,0 +1,85 @@
+PATCH-P1-FIX-UPSTREAM: Fix mysql dump
+
+In mysql-5.0.x tables `general_log` and `slow_log` don't have to exist.
+When we try to get dump of mysql database of mysql-5.0.x server using
+client mysql-5.1.x or newer, which expect these tables to exist, mysqldump
+will crash with the following error:
+
+  mysqldump: Couldn't execute 'show create table `general_log`': Table
+  'mysql.general_log' doesn't exist (1146)
+
+This is reported at http://bugs.mysql.com/bug.php?id=65670
+
+This patch adds checking if tables `general_log` and `slow_log` exist before
+reading their structure.
+
+diff -up mysql-5.1.66/client/mysqldump.c.logs mysql-5.1.66/client/mysqldump.c
+--- mysql-5.1.66/client/mysqldump.c.logs       2012-09-07 16:14:06.000000000 
+0200
++++ mysql-5.1.66/client/mysqldump.c    2012-11-28 15:33:00.116328380 +0100
+@@ -4269,6 +4269,31 @@ my_bool include_table(const uchar *hash_
+ }
+ 
+ 
++/* Return 1 if table exists in db */
++
++static my_bool get_table_exists(char *table, char *db)
++{
++  char query_buff[QUERY_LENGTH];
++  MYSQL_RES  *result;
++  MYSQL_ROW row;
++  my_bool return_value = 0;
++ 
++  DBUG_ENTER("get_table_exists");
++  my_snprintf(query_buff, sizeof(query_buff),
++              "SELECT COUNT(0) AS `Exists` "
++              "FROM `INFORMATION_SCHEMA`.`TABLES` WHERE "
++              "TABLE_SCHEMA = '%s' AND TABLE_NAME = '%s'",
++              db, table); 
++
++  mysql_query_with_error_report(mysql, &result, query_buff);
++  if (row= mysql_fetch_row(result))
++    return_value = (strcmp(row[0], "0") != 0);
++
++  mysql_free_result(result);
++  DBUG_RETURN(return_value);
++}
++
++
+ static int dump_all_tables_in_db(char *database)
+ {
+   char *table;
+@@ -4292,17 +4317,24 @@ static int dump_all_tables_in_db(char *d
+     char table_type[NAME_LEN];
+     char ignore_flag;
+     uint num_fields;
+-    num_fields= get_table_structure((char *) "general_log", 
+-                                    database, table_type, &ignore_flag);
+-    if (num_fields == 0)
+-      verbose_msg("-- Warning: get_table_structure() failed with some 
internal "
+-                  "error for 'general_log' table\n");
+-    num_fields= get_table_structure((char *) "slow_log", 
+-                                    database, table_type, &ignore_flag);
+-    if (num_fields == 0)
+-      verbose_msg("-- Warning: get_table_structure() failed with some 
internal "
+-                  "error for 'slow_log' table\n");
++    if (get_table_exists((char *) "general_log", database))
++    {
++      num_fields= get_table_structure((char *) "general_log", 
++                                      database, table_type, &ignore_flag);
++      if (num_fields == 0)
++        verbose_msg("-- Warning: get_table_structure() failed with some 
internal "
++                    "error for 'general_log' table\n");
++    }
++    if (get_table_exists((char *) "slow_log", database))
++    {
++      num_fields= get_table_structure((char *) "slow_log", 
++                                      database, table_type, &ignore_flag);
++      if (num_fields == 0)
++        verbose_msg("-- Warning: get_table_structure() failed with some 
internal "
++                    "error for 'slow_log' table\n");
++    }
+   }
++
+   if (lock_tables)
+   {
+     DYNAMIC_STRING query;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mysql-patches/mysql-patches/mysql-5.5.31-upgrade-datadir.patch 
new/mysql-patches/mysql-patches/mysql-5.5.31-upgrade-datadir.patch
--- old/mysql-patches/mysql-patches/mysql-5.5.31-upgrade-datadir.patch  
1970-01-01 01:00:00.000000000 +0100
+++ new/mysql-patches/mysql-patches/mysql-5.5.31-upgrade-datadir.patch  
2013-08-01 10:24:24.000000000 +0200
@@ -0,0 +1,69 @@
+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 <[email protected]>
+
+Index: client/mysql_upgrade.c
+===================================================================
+--- client/mysql_upgrade.c.orig
++++ client/mysql_upgrade.c
+@@ -557,21 +557,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));
+@@ -880,7 +896,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",

++++++ rc.mysql-multi ++++++
--- /var/tmp/diff_new_pack.DrnnOb/_old  2013-08-13 10:15:58.000000000 +0200
+++ /var/tmp/diff_new_pack.DrnnOb/_new  2013-08-13 10:15:58.000000000 +0200
@@ -273,7 +273,7 @@
 
        parse_arguments `$print_defaults $defaults mysqld mysql_server`
        mkdir -m 755 -p /var/run/mysql
-       chown $mysql_daemon_user:$mysql_daemon_group /var/run/mysql
+       chown --no-dereference "$mysql_daemon_user:$mysql_daemon_group" 
/var/run/mysql
        export TEMPDIR="`cat /var/run/mysql/tmpdir 2> /dev/null`"
 
        # Safeguard (relative paths, core dumps..)
@@ -292,7 +292,7 @@
                        rm -rf "$TEMPDIR"
                fi
                TEMPDIR="`mktemp -d -p /var/tmp mysql.XXXXXX | tee 
/var/run/mysql/tmpdir`"
-               [ -z "$TEMPDIR" ] || chown 
"$mysql_daemon_user:$mysql_daemon_group" "$TEMPDIR"
+               [ -z "$TEMPDIR" ] || chown --no-dereference 
"$mysql_daemon_user:$mysql_daemon_group" "$TEMPDIR"
                [ "`ls -ld "$TEMPDIR" | grep 
"^drwx------[\\.\+]\?[[:blank:]]\+[0-9]\+[[:blank:]]\+$mysql_daemon_user[[:blank:]]\+$mysql_daemon_group[[:blank:]]\+.*"`"
 ] || {
                        echo "Can't create secure $TEMPDIR"
                        rc_failed; rc_status -v; rc_exit;
@@ -329,10 +329,13 @@
                        log_dir="`dirname "$i"`"
                        if [ \! -d "$log_dir" ]; then
                                mkdir -p "$log_dir"
-                               chmod 770 "$log_dir"
                        fi
+                       chmod 770 "$log_dir"
+                       chown -R --no-dereference mysql:mysql "$log_dir"
                done
 
+               MYSQLVER="`mysqld --version | sed 's|.*Ver\ *\([^\ 
]*\)\.[0-9]\+[\-\ ].*|\1|'`"
+
                # We assume a fresh install if the directory $datadir/mysql
                # does not exist and create the privilege database
                if ! test -d "$datadir/mysql"; then
@@ -340,17 +343,33 @@
                        mysql_install_db --user="$mysql_daemon_user" 
--datadir="$datadir" ||{
                                rc_failed;  rc_status -v; rc_exit
                        }
+                       echo -n "$MYSQLVER" > "$datadir"/mysql_upgrade_info
                fi
                check_obsolete
-               # Run mysql_upgrade on every package install/upgrade. Not 
allways
-               # necessary, but doesn't do any harm.
+               # Run mysql_upgrade on every package install/upgrade. Not always
+               # necessary, but doesn't do any harm. On big upgrade, require 
+               # user confirmation.
                if [ -f "/var/lib/mysql/.run-mysql_upgrade" ]; then
+                       if [ \! -f "/var/lib/mysql/.force_upgrade" ] && \
+                          [ -z "`grep "^$MYSQLVER" 
"$datadir/mysql_upgrade_info" 2> /dev/null`" ]; then
+                          echo
+                          echo "You are upgrading from different stable 
version of MySQL!"
+                          echo "Make sure you to make backup of your data 
(mostly $datadir)!"
+                          echo
+                          echo "If you want to continue upgrading your 
database, run following commands:"
+                          echo
+                          echo "   touch /var/lib/mysql/.force_upgrade"
+                          echo "   rcmysql restart"
+                          echo
+                          rc_failed;  rc_status -v; rc_exit
+
+                       fi
                        echo > "$log_upgrade"
                        echo "`LANG="" date` - upgrading MySQL..." >> 
"$log_upgrade"
                        echo >> "$log_upgrade"
                        echo "Will update MySQL now, if you encounter any 
problems, please read following file:" | tee -a "$log_upgrade"
                        echo "  /usr/share/doc/packages/mysql/README.SuSE" | 
tee -a "$log_upgrade"
-                       sed -i -e 
's|^\([^#]*skip-locking\)|#\1\nskip-external-locking|' \
+                       sed -i -e 
's|^\([^#]*skip-locking\)|\1\nskip-external-locking|' \
                               -e 's|^\([^#]*skip-federated\)|#\1|' /etc/my.cnf
                        # Check logs for inconsistencies
                        SRCLOGS=""
@@ -399,7 +418,7 @@
                        # reloads privileges tables, so we can get lock out
                        for cmd in "/usr/bin/mysql_upgrade"                  \
                                   "/usr/bin/mysql_upgrade"; do
-                       [ -z "$protected" ] || chown 
"$mysql_daemon_user:$mysql_daemon_group" "$protected"
+                       [ -z "$protected" ] || chown --no-dereference 
"$mysql_daemon_user:$mysql_daemon_group" "$protected"
                        [ "`ls -ld "$protected" | grep 
"^drwx------[\\.\+]\?[[:blank:]]\+[0-9]\+[[:blank:]]\+$mysql_daemon_user[[:blank:]]\+$mysql_daemon_group[[:blank:]]\+.*"`"
 ] || {
                                echo "Can't create secure $protected" | tee -a 
"$log_upgrade"
                                touch /var/lib/mysql/.run-mysql_upgrade
@@ -425,6 +444,7 @@
                                rc_failed; rc_status -v; rc_exit;
                        }
                        if [ "`grep "Upgrading MySQL..." "$log_upgrade"`" ]; 
then
+                               echo "Problems should be fixed now."
                                echo "Rechecking whether everything is Ok... " 
| tee -a "$log_upgrade"
                                LANG=C $cmd --no-defaults --force \
                                        --socket="$protected/mysql.sock" | \
@@ -461,11 +481,12 @@
                        rm -rf "$protected"
                        # Fix ownerships and permissions for $datadir
                        chmod 750 "$datadir"
-                       chown -R "$mysql_daemon_user:$mysql_daemon_group" 
"$datadir"
-                       rm -f /var/lib/mysql/.run-mysql_upgrade \
-                       rm -f /var/lib/mysql/.force_upgrade     \
-                       "$datadir"/{update-stamp-*,mysql/stamp-4.1} # used in 
the past
-                       chown "$mysql_daemon_user:$mysql_daemon_group" 
"$log_upgrade"
+                       chown -R --no-dereference 
"$mysql_daemon_user:$mysql_daemon_group" "$datadir"
+                       rm -f /var/adm/update-messages/mysql-*
+                       rm -f /var/lib/mysql/.run-mysql_upgrade
+                       rm -f /var/lib/mysql/.force_upgrade
+                       rm -f "$datadir"/{update-stamp-*,mysql/stamp-4.1} # 
used in the past
+                       chown --no-dereference 
"$mysql_daemon_user:$mysql_daemon_group" "$log_upgrade"
                        chmod 640 "$log_upgrade"
                fi 
 

++++++ series ++++++
--- /var/tmp/diff_new_pack.DrnnOb/_old  2013-08-13 10:15:58.000000000 +0200
+++ /var/tmp/diff_new_pack.DrnnOb/_new  2013-08-13 10:15:58.000000000 +0200
@@ -9,5 +9,6 @@
 mariadb-5.2.3-cnf.patch
 mysql-community-server-5.5.6-safe-process-in-bin.patch
 mariadb-5.5.28-group.patch
-mariadb-5.5.24-ppc64-libdir.patch
-mariadb-5.5.24-aarch64-libdir.patch
+mariadb-5.5.32-deharcode-libdir.patch
+mysql-5.5.31-upgrade-datadir.patch
+mysql-5.5-dump.patch

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to