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]
