]> git.pld-linux.org Git - packages/mysql.git/blobdiff - mysql.spec
- make 'service mysql status' return LSB-compatible exit values
[packages/mysql.git] / mysql.spec
index 528c644bdfbdca3eefd35c8bf6bd44f24a392544..f009e8bea32c2cabf923580a12c1d758f01b34f4 100644 (file)
@@ -1,8 +1,8 @@
 # TODO:
+# - make response_time_distribution.patch compatible with i386 alpha sparc ppc arches
+# - mysqldump ... (invalid usage) prints to stdout not stderr (idiotic if you want to create dump and get usage in .sql)
 # - unpackaged:
 #   /usr/bin/mysqlaccess.conf
-#   /usr/data/mysql/.empty
-#   /usr/data/test/.empty
 # - http://bugs.mysql.com/bug.php?id=16470
 # - innodb are dynamic (= as plugins) ?
 # - missing have_archive, have_merge
@@ -35,13 +35,13 @@ Summary(ru.UTF-8):  MySQL - быстрый SQL-сервер
 Summary(uk.UTF-8):     MySQL - швидкий SQL-сервер
 Summary(zh_CN.UTF-8):  MySQL数据库服务器
 Name:          mysql
-Version:       5.5.8
-Release:       2
+Version:       5.5.13
+Release:       5
 License:       GPL + MySQL FLOSS Exception
 Group:         Applications/Databases
 # Source0Download: http://dev.mysql.com/downloads/mysql/5.5.html#downloads
 Source0:       http://vesta.informatik.rwth-aachen.de/mysql/Downloads/MySQL-5.5/%{name}-%{version}.tar.gz
-# Source0-md5: 42e866302b61f5e213afd33e04677017
+# Source0-md5: f0e519e90ee7c00fceb0730edf859d7b
 Source100:     http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz
 # Source100-md5:       7b9b618cb9b378f949bb1b91ddcc4f54
 Source1:       %{name}.init
@@ -61,24 +61,23 @@ Source14:   my.cnf
 Source15:      lib%{name}.version
 Patch2:                %{name}-c++.patch
 Patch3:                %{name}-info.patch
-Patch4:                %{name}-sql-cxx-pic.patch
 # from fedora
 Patch5:                %{name}-versioning.patch
 Patch6:                %{name}-system-users.patch
 Patch7:                %{name}-bug-34192.patch
 Patch8:                %{name}-client-config.patch
 Patch9:                %{name}-build.patch
-Patch10:       %{name}-alpha.patch
 Patch11:       %{name}-upgrade.patch
 Patch12:       %{name}-config.patch
 Patch14:       %{name}-bug-43594.patch
 Patch18:       %{name}-sphinx.patch
 Patch19:       %{name}-chain-certs.patch
-# <percona patches, http://bazaar.launchpad.net/~percona-dev/percona-server/5.5.8/files>
-# series file shows the order of patches
+# from fedora
+Patch20:       %{name}-dubious-exports.patch
+# <percona patches, updated with percona.sh>
 Patch100:      microsec_process.patch
 Patch101:      optimizer_fix.patch
-Patch102:      %{name}_dump_ignore_ct.patch
+Patch102:      mysql_dump_ignore_ct.patch
 Patch103:      control_online_alter_index.patch
 Patch104:      show_temp.patch
 Patch105:      innodb_show_status.patch
@@ -117,11 +116,16 @@ Patch137: error_pad.patch
 Patch138:      remove_fcntl_excessive_calls.patch
 Patch139:      sql_no_fcache.patch
 Patch140:      show_slave_status_nolock.patch
-Patch141:      log_warnings_silence.patch
+Patch141:      log_warnings_suppress.patch
 Patch142:      userstat.patch
 Patch143:      bug580324.patch
 Patch144:      mysql_remove_eol_carret.patch
-Patch145:      mysql-test.diff
+Patch145:      processlist_row_stats.patch
+Patch146:      innodb_expand_fast_index_creation.patch
+Patch147:      innodb_bug60788.patch
+Patch148:      start-stop-messages.patch
+Patch149:      file-contents.patch
+Patch150:      slave_timeout_fix.patch
 # </percona>
 URL:           http://www.mysql.com/products/community/
 BuildRequires: bison
@@ -317,6 +321,7 @@ innobackup.
 Summary:       MySQL additional utilities
 Summary(pl.UTF-8):     Dodatkowe narzędzia do MySQL
 Group:         Applications/Databases
+Requires:      %{name}-client = %{version}-%{release}
 Requires:      %{name}-libs = %{version}-%{release}
 
 %description extras
@@ -373,7 +378,7 @@ Este pacote contém os clientes padrão para o MySQL.
 
 %package libs
 Summary:       Shared libraries for MySQL
-Summary(pl.UTF-8):     Biblioteki dzielone MySQL
+Summary(pl.UTF-8):     Biblioteki współdzielone MySQL
 Group:         Libraries
 Obsoletes:     libmysql10
 Obsoletes:     mysql-doc < 4.1.12
@@ -382,11 +387,11 @@ Obsoletes:        mysql-doc < 4.1.12
 Shared libraries for MySQL.
 
 %description libs -l pl.UTF-8
-Biblioteki dzielone MySQL.
+Biblioteki współdzielone MySQL.
 
 %package devel
-Summary:       MySQL - Development header files and libraries
-Summary(pl.UTF-8):     MySQL - Pliki nagłówkowe i biblioteki dla programistów
+Summary:       MySQL - development header files and other files
+Summary(pl.UTF-8):     MySQL - Pliki nagłówkowe i inne dla programistów
 Summary(pt.UTF-8):     MySQL - Medições de desempenho
 Summary(ru.UTF-8):     MySQL - хедеры и библиотеки разработчика
 Summary(uk.UTF-8):     MySQL - хедери та бібліотеки програміста
@@ -398,7 +403,7 @@ Obsoletes:  MySQL-devel
 Obsoletes:     libmysql10-devel
 
 %description devel
-This package contains the development header files and libraries
+This package contains the development header files and other files
 necessary to develop MySQL client applications.
 
 %description devel -l fr.UTF-8
@@ -407,7 +412,7 @@ developpement necessaires pour developper des applications clientes
 MySQL.
 
 %description devel -l pl.UTF-8
-Pliki nagłówkowe i biblioteki konieczne do kompilacji aplikacji
+Pliki nagłówkowe i inne pliki konieczne do kompilacji aplikacji
 klienckich MySQL.
 
 %description devel -l pt_BR.UTF-8
@@ -542,14 +547,6 @@ mv sphinx-*/mysqlse storage/sphinx
 %endif
 #%patch2 -p1 # NEEDS CHECK, which exact program needs -lc++
 %patch3 -p1
-%ifarch alpha
-# this is strange: mysqld functions for UDF modules are not explicitly defined,
-# so -rdynamic is used; in such case gcc3+ld on alpha doesn't like C++ vtables
-# in objects compiled without -fPIC
-%patch4 -p1
-# gcc 3.3.x ICE
-%patch10 -p1
-%endif
 %patch5 -p1
 %patch6 -p1
 %patch7 -p1
@@ -559,10 +556,11 @@ mv sphinx-*/mysqlse storage/sphinx
 %patch12 -p1
 %patch14 -p0
 %patch19 -p1
+%patch20 -p1
 # <percona %patches>
 %patch100 -p1
 %patch101 -p1
-#%patch102 -p1
+%patch102 -p1
 %patch103 -p1
 %patch104 -p1
 %patch105 -p1
@@ -606,6 +604,11 @@ mv sphinx-*/mysqlse storage/sphinx
 %patch143 -p1
 %patch144 -p1
 %patch145 -p1
+%patch146 -p1
+%patch147 -p1
+%patch148 -p1
+%patch149 -p1
+%patch150 -p1
 # </percona>
 
 # to get these files rebuild
@@ -631,12 +634,14 @@ install -d libmysql
 cp -a %{SOURCE15} libmysql/libmysql.version
 
 %cmake \
+       -DCMAKE_BUILD_TYPE=%{!?debug:RelWithDebInfo}%{?debug:Debug} \
        -DFEATURE_SET="community" \
-       -DCMAKE_C_FLAGS_RELEASE="%{rpmcflags} -DNDEBUG" \
-       -DCMAKE_CXX_FLAGS_RELEASE="%{rpmcxxflags} -DNDEBUG" \
+       -DCMAKE_C_FLAGS_RELEASE="%{rpmcflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
+       -DCMAKE_CXX_FLAGS_RELEASE="%{rpmcxxflags} -DNDEBUG -fno-omit-frame-pointer -fno-strict-aliasing" \
        -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
        %{?debug:-DWITH_DEBUG=ON} \
        -DWITH_FAST_MUTEXES=ON \
+       -DWITH_PIC=ON \
        -DWITH_LIBEDIT=OFF \
        -DWITH_READLINE=OFF \
 %if "%{pld_release}" == "ac"
@@ -647,6 +652,7 @@ cp -a %{SOURCE15} libmysql/libmysql.version
        -DWITH_ZLIB=system \
        -DCOMPILATION_COMMENT="PLD/Linux Distribution MySQL RPM" \
        -DWITH_LIBWRAP=%{?with_tcpd:ON}%{!?with_tcpd:OFF} \
+       -DWITH_UNIT_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \
        -DCURSES_INCLUDE_PATH=/usr/include/ncurses \
        -DMYSQL_UNIX_ADDR=/var/lib/%{name}/%{name}.sock \
        -DINSTALL_LAYOUT=RPM \
@@ -703,25 +709,22 @@ cp -a %{SOURCE12} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb-cpc
 %endif
 
 # symlinks point to the .so file, fix it
-ln -sf libmysqlclient.so.16 $RPM_BUILD_ROOT%{_libdir}/libmysqlclient_r.so.16
-ln -sf libmysqlclient.so.16.0.0 $RPM_BUILD_ROOT%{_libdir}/libmysqlclient_r.so.16.0.0
+ln -sf libmysqlclient.so.18 $RPM_BUILD_ROOT%{_libdir}/libmysqlclient_r.so.18
+ln -sf libmysqlclient.so.18.0.0 $RPM_BUILD_ROOT%{_libdir}/libmysqlclient_r.so.18.0.0
 
 sed -i -e 's,/usr//usr,%{_prefix},g' $RPM_BUILD_ROOT%{_bindir}/mysql_config
 sed -i -e '/libs/s/$ldflags//' $RPM_BUILD_ROOT%{_bindir}/mysql_config
 
 # remove known unpackaged files
-rm -rf $RPM_BUILD_ROOT%{_datadir}/mysql-support
-
-# remove .txt variants for .sys messages
-rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/*/*.txt
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql-support
 
 # rename not to be so generic name
 mv $RPM_BUILD_ROOT%{_bindir}/{,mysql_}resolve_stack_dump
 mv $RPM_BUILD_ROOT%{_mandir}/man1/{,mysql_}resolve_stack_dump.1
 
 # not useful without -debug build
-%{!?debug:rm -f $RPM_BUILD_ROOT%{_bindir}/mysql_resolve_stack_dump}
-%{!?debug:rm -f $RPM_BUILD_ROOT%{_mandir}/man1/mysql_resolve_stack_dump.1}
+%{!?debug:%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql_resolve_stack_dump}
+%{!?debug:%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_resolve_stack_dump.1}
 # generate symbols file, so one can generate backtrace using it
 # mysql_resolve_stack_dump -s %{_datadir}/%{name}/mysqld.sym -n mysqld.stack.
 # http://dev.mysql.com/doc/refman/5.0/en/using-stack-trace.html
@@ -739,35 +742,30 @@ sed -i -e 's#/usr/bin/my_print_defaults#%{_sbindir}/my_print_defaults#g' $RPM_BU
 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysqlcheck
 
 # delete - functionality in initscript / rpm
-# mysql_install_db is needed by digikam
-#rm $RPM_BUILD_ROOT%{_bindir}/mysql_install_db
-#rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql_install_db.1*
-rm $RPM_BUILD_ROOT%{_bindir}/mysqld_safe
-rm $RPM_BUILD_ROOT%{_bindir}/mysqld_multi
-rm $RPM_BUILD_ROOT%{_mandir}/man1/mysqld_{multi,safe}*
+# note: mysql_install_db (and thus resolveip) are needed by digikam
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysqld_safe
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysqld_multi
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysqld_{multi,safe}*
 #rm $RPM_BUILD_ROOT%{_datadir}/%{name}/mysql-log-rotate
 #rm $RPM_BUILD_ROOT%{_datadir}/%{name}/mysql.server
 #rm $RPM_BUILD_ROOT%{_datadir}/%{name}/binary-configure
-rm $RPM_BUILD_ROOT%{_datadir}/%{name}/errmsg-utf8.txt
-rm $RPM_BUILD_ROOT%{_bindir}/mysql_waitpid
-rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql_waitpid.1*
-rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql.server*
-rm $RPM_BUILD_ROOT%{_mandir}/man1/mysqlman.1*
-rm $RPM_BUILD_ROOT%{_bindir}/resolveip
-rm $RPM_BUILD_ROOT%{_mandir}/man1/resolveip.1*
-rm $RPM_BUILD_ROOT%{_mandir}/man1/comp_err.1*
+%{__rm} $RPM_BUILD_ROOT%{_datadir}/%{name}/errmsg-utf8.txt
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql_waitpid
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_waitpid.1*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql.server*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysqlman.1*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/comp_err.1*
 
 # we don't package those (we have no -test or -testsuite pkg) and some of them just segfault
-rm $RPM_BUILD_ROOT%{_bindir}/mysql_client_test
-rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql_client_test.1*
-rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql_client_test_embedded.1*
-rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql-stress-test.pl.1*
-rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql-test-run.pl.1*
+%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql_client_test
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_client_test.1*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_client_test_embedded.1*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql-stress-test.pl.1*
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql-test-run.pl.1*
+%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql-test
 
 # not needed
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/libdaemon_example.*
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/ha_example.*
-rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/sphinx.{a,la}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/libdaemon_example.*
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -778,6 +776,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %post
 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+/sbin/ldconfig
 /sbin/chkconfig --add mysql
 %service mysql restart
 
@@ -789,6 +788,7 @@ fi
 
 %postun
 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+/sbin/ldconfig
 
 if [ "$1" = "0" ]; then
        %userremove mysql
@@ -910,11 +910,60 @@ done
 echo 'You should run MySQL upgrade script *after* restarting MySQL server for all MySQL clusters.'
 echo 'Thus, you should invoke:'
 for config in $configs; do
+       sed -i -e '
+               s/set-variable\s*=\s* //
+               # use # as comment in config
+               s/^;/#/
+       ' $config
+
        datadir=$(awk -F= '!/^#/ && $1 ~ /datadir/{print $2}' $config | xargs)
        echo "# mysql_upgrade --datadir=$datadir"
 done
 ) | %banner -e %{name}-5.1
 
+%triggerpostun -- mysql < 5.5.0
+configs=""
+for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/%{name}/clusters.conf); do
+       if echo "$config" | grep -q '^/'; then
+               config_file="$config"
+       elif [ -f "/etc/%{name}/$config" ]; then
+               config_file=/etc/%{name}/$config
+       else
+               clusterdir=$(awk -F= "/^$config/{print \$2}" /etc/%{name}/clusters.conf)
+               if [ -z "$clusterdir" ]; then
+                       echo >&2 "Can't find cluster dir for $config!"
+                       echo >&2 "Please remove extra (leading) spaces from /etc/%{name}/clusters.conf"
+                       exit 1
+               fi
+               config_file="$clusterdir/mysqld.conf"
+       fi
+
+       if [ ! -f "$config_file" ]; then
+               echo >&2 "ERROR: Can't find real config file for $config! Please report this (with above errors, if any) to http://bugs.pld-linux.org/"
+               continue
+       fi
+       configs="$configs $config_file"
+done
+
+(
+echo 'You should run MySQL upgrade script *after* restarting MySQL server for all MySQL clusters.'
+echo 'Thus, you should invoke:'
+for config in $configs; do
+       sed -i -e '
+               s/^language *= *polish/lc-messages = pl_PL/i
+               s/set-variable\s*=\s* //
+               s/^skip-locking/skip-external-locking/
+               # this is not valid for server. it is client option
+               s/default-character-set/# client-config: &/
+               # use # as comment in config
+               s/^;/#/
+       ' $config
+
+       datadir=$(awk -F= '!/^#/ && $1 ~ /datadir/{print $2}' $config | xargs)
+       echo "# mysql_upgrade --datadir=$datadir"
+done
+) | %banner -e %{name}-5.5
+
 %files
 %defattr(644,root,root,755)
 %doc build/support-files/*.cnf build/support-files/*.ini
@@ -931,7 +980,6 @@ done
 %attr(755,root,root) %{_sbindir}/mysql_upgrade
 %attr(755,root,root) %{_sbindir}/mysqlcheck
 %attr(755,root,root) %{_sbindir}/mysqld
-%attr(755,root,root) %{_bindir}/mysql_install_db
 %dir %{_libdir}/%{name}
 %dir %{_libdir}/%{name}/plugin
 %attr(755,root,root) %{_libdir}/%{name}/plugin/adt_null.so
@@ -950,13 +998,14 @@ done
 %if %{with sphinx}
 %attr(755,root,root) %{_libdir}/%{name}/plugin/sphinx.so
 %endif
+# for plugins
+%attr(755,root,root) %{_libdir}/libmysqlservices.so
 %{_mandir}/man1/innochecksum.1*
 %{_mandir}/man1/my_print_defaults.1*
 %{_mandir}/man1/myisamchk.1*
 %{_mandir}/man1/myisamlog.1*
 %{_mandir}/man1/myisampack.1*
 #%{_mandir}/man1/mysql_fix_privilege_tables.1*
-%{_mandir}/man1/mysql_install_db.1*
 %{_mandir}/man1/mysql_upgrade.1*
 %{_mandir}/man1/mysqlcheck.1*
 %{_mandir}/man8/mysqld.8*
@@ -1016,16 +1065,20 @@ done
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/msql2mysql
 %attr(755,root,root) %{_bindir}/myisam_ftdump
+%attr(755,root,root) %{_bindir}/mysql_install_db
 %attr(755,root,root) %{_bindir}/mysql_secure_installation
 %attr(755,root,root) %{_bindir}/mysql_tzinfo_to_sql
 %attr(755,root,root) %{_bindir}/perror
 %attr(755,root,root) %{_bindir}/replace
+%attr(755,root,root) %{_bindir}/resolveip
 %{_mandir}/man1/msql2mysql.1*
 %{_mandir}/man1/myisam_ftdump.1*
+%{_mandir}/man1/mysql_install_db.1*
 %{_mandir}/man1/mysql_secure_installation.1*
 %{_mandir}/man1/mysql_tzinfo_to_sql.1*
 %{_mandir}/man1/perror.1*
 %{_mandir}/man1/replace.1*
+%{_mandir}/man1/resolveip.1*
 
 %files -n mysqlhotcopy
 %defattr(644,root,root,755)
@@ -1059,7 +1112,6 @@ done
 %attr(755,root,root) %{_bindir}/mysqldump
 %attr(755,root,root) %{_bindir}/mysqlimport
 %attr(755,root,root) %{_bindir}/mysqlshow
-#%attr(755,root,root) %{_sbindir}/mysqlmanager
 %{_mandir}/man1/mysql.1*
 %{_mandir}/man1/mysqladmin.1*
 %{_mandir}/man1/mysqlbinlog.1*
@@ -1067,16 +1119,15 @@ done
 %{_mandir}/man1/mysqldump.1*
 %{_mandir}/man1/mysqlimport.1*
 %{_mandir}/man1/mysqlshow.1*
-#%{_mandir}/man8/mysqlmanager.8*
 
 %files libs
 %defattr(644,root,root,755)
 %attr(751,root,root) %dir %{_sysconfdir}/mysql
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/mysql-client.conf
 %attr(755,root,root) %{_libdir}/libmysqlclient.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libmysqlclient.so.16
+%attr(755,root,root) %ghost %{_libdir}/libmysqlclient.so.18
 %attr(755,root,root) %{_libdir}/libmysqlclient_r.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libmysqlclient_r.so.16
+%attr(755,root,root) %ghost %{_libdir}/libmysqlclient_r.so.18
 %if %{with ndb}
 %attr(755,root,root) %{_libdir}/libndbclient.so.*.*.*
 %attr(755,root,root) %ghost %{_libdir}/libndbclient.so.3
@@ -1087,8 +1138,6 @@ done
 %attr(755,root,root) %{_bindir}/mysql_config
 %attr(755,root,root) %{_libdir}/libmysqlclient.so
 %attr(755,root,root) %{_libdir}/libmysqlclient_r.so
-# what's this?
-%attr(755,root,root) %{_libdir}/libmysqlservices.so
 %if %{with ndb}
 %attr(755,root,root) %{_libdir}/libndbclient.so
 %endif
This page took 0.048531 seconds and 4 git commands to generate.