X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=mysql.spec;h=0794cd330037e44e6999bda2b01a497135d46c60;hb=b9dfaa43a89da8831ac95a78a4e712a82a0d9387;hp=776e77f2aa4c964e9a786b9ee5bf48d15f5f37e5;hpb=4ef9d368d6672af717d70173fb6df20cbc289be1;p=packages%2Fmysql.git diff --git a/mysql.spec b/mysql.spec index 776e77f..0794cd3 100644 --- a/mysql.spec +++ b/mysql.spec @@ -1,8 +1,6 @@ # TODO: -# - unpackaged: -# /usr/bin/mysqlaccess.conf -# /usr/data/mysql/.empty -# /usr/data/test/.empty +# - 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) # - http://bugs.mysql.com/bug.php?id=16470 # - innodb are dynamic (= as plugins) ? # - missing have_archive, have_merge @@ -21,10 +19,11 @@ %bcond_without raid # RAID support %bcond_without ssl # OpenSSL support %bcond_without tcpd # libwrap (tcp_wrappers) support -%bcond_with sphinx # Sphinx storage engine support +%bcond_without sphinx # Sphinx storage engine support %bcond_with tests # FIXME: don't run correctly %bcond_with ndb # NDB is now a separate product, this here is broken, so disable it +%define percona_rel 30.2 %include /usr/lib/rpm/macros.perl Summary: MySQL: a very fast and reliable SQL database engine Summary(de.UTF-8): MySQL: ist eine SQL-Datenbank @@ -35,15 +34,16 @@ Summary(ru.UTF-8): MySQL - быстрый SQL-сервер Summary(uk.UTF-8): MySQL - швидкий SQL-сервер Summary(zh_CN.UTF-8): MySQL数据库服务器 Name: mysql -Version: 5.5.9 -Release: 2 +Version: 5.5.30 +Release: 3 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: 701c0c44b7f1c2300adc0dc45729f903 -Source100: http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz -# Source100-md5: 7b9b618cb9b378f949bb1b91ddcc4f54 +# Source0: http://vesta.informatik.rwth-aachen.de/mysql/Downloads/MySQL-5.5/%{name}-%{version}.tar.gz +Source0: http://www.percona.com/redir/downloads/Percona-Server-5.5/LATEST/source/Percona-Server-%{version}-rel%{percona_rel}.tar.gz +# Source0-md5: 82604d750e9d858e927c3abcda784431 +Source100: http://sphinxsearch.com/files/sphinx-2.0.6-release.tar.gz +# Source100-md5: de6be5ee20b1bfafa2a0cea7155a8331 Source1: %{name}.init Source2: %{name}.sysconfig Source3: %{name}.logrotate @@ -59,70 +59,22 @@ Source13: %{name}-client.conf Source14: my.cnf # from fedora Source15: lib%{name}.version -Patch2: %{name}-c++.patch -Patch3: %{name}-info.patch -Patch4: %{name}-sql-cxx-pic.patch + +Patch2: mysqlhotcopy-5.0-5.5.patch +Patch3: bug-67402.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 -# -# series file shows the order of patches -Patch100: microsec_process.patch -Patch101: optimizer_fix.patch -Patch102: %{name}_dump_ignore_ct.patch -Patch103: control_online_alter_index.patch -Patch104: show_temp.patch -Patch105: innodb_show_status.patch -Patch106: innodb_io_patches.patch -Patch107: innodb_opt_lru_count.patch -Patch108: innodb_extra_rseg.patch -Patch109: innodb_overwrite_relay_log_info.patch -Patch110: innodb_thread_concurrency_timer_based.patch -Patch111: innodb_dict_size_limit.patch -Patch112: innodb_split_buf_pool_mutex.patch -Patch113: innodb_expand_import.patch -Patch114: innodb_show_sys_tables.patch -Patch115: innodb_stats.patch -Patch116: innodb_recovery_patches.patch -Patch117: innodb_admin_command_base.patch -Patch118: innodb_show_lock_name.patch -Patch119: innodb_extend_slow.patch -Patch120: innodb_lru_dump_restore.patch -Patch121: innodb_separate_doublewrite.patch -Patch122: innodb_pass_corrupt_table.patch -Patch123: innodb_fast_checksum.patch -Patch124: innodb_files_extend.patch -Patch125: innodb_fix_misc.patch -Patch126: innodb_deadlock_count.patch -Patch127: innodb_adaptive_hash_index_partitions.patch -Patch128: innodb_buffer_pool_pages_i_s.patch -Patch129: innodb_buffer_pool_shm.patch -Patch130: innodb_show_status_extend.patch -Patch131: slow_extended.patch -Patch132: percona_support.patch -Patch133: query_cache_enhance.patch -Patch134: log_connection_error.patch -Patch135: mysql_syslog.patch -Patch136: response_time_distribution.patch -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 -Patch142: userstat.patch -Patch143: bug580324.patch -Patch144: mysql_remove_eol_carret.patch -Patch145: mysql-test.diff -# +# from fedora +Patch20: %{name}-dubious-exports.patch URL: http://www.mysql.com/products/community/ BuildRequires: bison BuildRequires: cmake >= 2.6 @@ -164,15 +116,13 @@ Provides: msqlormysql Provides: user(mysql) Obsoletes: MySQL Obsoletes: mysql-server -Conflicts: logrotate < 3.7-4 +Conflicts: logrotate < 3.8.0 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _libexecdir %{_sbindir} %define _localstatedir /var/lib/mysql %define _mysqlhome /home/services/mysql -%define _noautoreqdep 'perl(DBD::mysql)' - %description MySQL is a true multi-user, multi-threaded SQL (Structured Query Language) database server. SQL is the most popular database language @@ -535,83 +485,30 @@ This package contains the standard MySQL NDB CPC Daemon. Ten pakiet zawiera standardowego demona MySQL NDB CPC. %prep -%setup -q %{?with_sphinx:-a100} +%setup -q -n Percona-Server-%{version}-rel%{percona_rel} %{?with_sphinx:-a100} %if %{with sphinx} # http://www.sphinxsearch.com/docs/manual-0.9.9.html#sphinxse-mysql51 mv sphinx-*/mysqlse storage/sphinx %patch18 -p1 %endif -#%patch2 -p1 # NEEDS CHECK, which exact program needs -lc++ + +%patch2 -p1 %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 + %patch8 -p1 %patch9 -p1 %patch11 -p1 %patch12 -p1 %patch14 -p0 %patch19 -p1 -# -%patch100 -p1 -%patch101 -p1 -#%patch102 -p1 -%patch103 -p1 -%patch104 -p1 -%patch105 -p1 -%patch106 -p1 -%patch107 -p1 -%patch108 -p1 -%patch109 -p1 -%patch110 -p1 -%patch111 -p1 -%patch112 -p1 -%patch113 -p1 -%patch114 -p1 -%patch115 -p1 -%patch116 -p1 -%patch117 -p1 -%patch118 -p1 -%patch119 -p1 -%patch120 -p1 -%patch121 -p1 -%patch122 -p1 -%patch123 -p1 -%patch124 -p1 -%patch125 -p1 -%patch126 -p1 -%patch127 -p1 -%patch128 -p1 -%patch129 -p1 -%patch130 -p1 -%patch131 -p1 -%patch132 -p1 -%patch133 -p1 -%patch134 -p1 -%patch135 -p1 -%patch136 -p1 -%patch137 -p1 -%patch138 -p1 -%patch139 -p1 -%patch140 -p1 -%patch141 -p1 -%patch142 -p1 -%patch143 -p1 -%patch144 -p1 -%patch145 -p1 -# +%patch20 -p1 # to get these files rebuild -rm sql/sql_yacc.cc -rm sql/sql_yacc.h +[ -f sql/sql_yacc.cc ] && rm sql/sql_yacc.cc +[ -f sql/sql_yacc.h ] && rm sql/sql_yacc.h %build install -d build @@ -632,10 +529,12 @@ 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 -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 \ + -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ %{?debug:-DWITH_DEBUG=ON} \ -DWITH_FAST_MUTEXES=ON \ -DWITH_PIC=ON \ @@ -647,6 +546,7 @@ cp -a %{SOURCE15} libmysql/libmysql.version -DWITH_SSL=%{?with_ssl:system}%{!?with_ssl:no} \ %endif -DWITH_ZLIB=system \ + -DWITH_PAM=ON \ -DCOMPILATION_COMMENT="PLD/Linux Distribution MySQL RPM" \ -DWITH_LIBWRAP=%{?with_tcpd:ON}%{!?with_tcpd:OFF} \ -DWITH_UNIT_TESTS=%{?with_tests:ON}%{!?with_tests:OFF} \ @@ -656,6 +556,8 @@ cp -a %{SOURCE15} libmysql/libmysql.version -DINSTALL_MYSQLTESTDIR_RPM="" \ -DINSTALL_SQLBENCHDIR=%{_datadir} \ -DINSTALL_SUPPORTFILESDIR=%{_datadir}/%{name}-support \ + -DINSTALL_PLUGINDIR=%{_libdir}/%{name}/plugin \ + -DINSTALL_LIBDIR=%{_lib} \ .. %{__make} @@ -666,7 +568,8 @@ cp -a %{SOURCE15} libmysql/libmysql.version rm -rf $RPM_BUILD_ROOT install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,mysql,skel} \ $RPM_BUILD_ROOT/var/{log/{archive,}/mysql,lib/mysql} \ - $RPM_BUILD_ROOT{%{_infodir},%{_mysqlhome}} + $RPM_BUILD_ROOT{%{_infodir},%{_mysqlhome}} \ + $RPM_BUILD_ROOT%{_libdir} %{__make} -C build install \ DESTDIR=$RPM_BUILD_ROOT @@ -706,8 +609,8 @@ 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 @@ -719,6 +622,9 @@ sed -i -e '/libs/s/$ldflags//' $RPM_BUILD_ROOT%{_bindir}/mysql_config mv $RPM_BUILD_ROOT%{_bindir}/{,mysql_}resolve_stack_dump mv $RPM_BUILD_ROOT%{_mandir}/man1/{,mysql_}resolve_stack_dump.1 +# move to _sysconfdir +mv $RPM_BUILD_ROOT{%{_bindir},%{_sysconfdir}}/mysqlaccess.conf + # not useful without -debug build %{!?debug:%{__rm} $RPM_BUILD_ROOT%{_bindir}/mysql_resolve_stack_dump} %{!?debug:%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/mysql_resolve_stack_dump.1} @@ -728,6 +634,7 @@ mv $RPM_BUILD_ROOT%{_mandir}/man1/{,mysql_}resolve_stack_dump.1 %{?debug:nm -n $RPM_BUILD_ROOT%{_sbindir}/mysqld > $RPM_BUILD_ROOT%{_datadir}/%{name}/mysqld.sym} # do not clobber users $PATH +mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_plugin mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_upgrade mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/innochecksum mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/myisamchk @@ -762,7 +669,8 @@ mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysqlcheck %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mysql-test # not needed -%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/libdaemon_example.* +%{__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/libdaemon_example.* \ +${__rm} $RPM_BUILD_ROOT%{_libdir}/%{name}/plugin/daemon_example.ini %clean rm -rf $RPM_BUILD_ROOT @@ -773,6 +681,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 @@ -784,6 +693,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 @@ -901,16 +811,20 @@ for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/%{name}/clusters.conf); do 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/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="" @@ -936,14 +850,24 @@ for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/%{name}/clusters.conf); do 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* // - /^skip-locking/skip-external-locking/ - s/default-character-set/character-set-server/ + 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 + + socket=$(awk -F= '!/^#/ && $1 ~ /socket/{print $2}' $config | xargs) + echo "# mysql_upgrade ${socket:+--socket=$socket}" done +) | %banner -e %{name}-5.5 %files %defattr(644,root,root,755) @@ -958,6 +882,7 @@ done %attr(755,root,root) %{_sbindir}/myisamlog %attr(755,root,root) %{_sbindir}/myisampack #%attr(755,root,root) %{_sbindir}/mysql_fix_privilege_tables +%attr(755,root,root) %{_sbindir}/mysql_plugin %attr(755,root,root) %{_sbindir}/mysql_upgrade %attr(755,root,root) %{_sbindir}/mysqlcheck %attr(755,root,root) %{_sbindir}/mysqld @@ -965,8 +890,11 @@ done %dir %{_libdir}/%{name}/plugin %attr(755,root,root) %{_libdir}/%{name}/plugin/adt_null.so %attr(755,root,root) %{_libdir}/%{name}/plugin/auth.so +%attr(755,root,root) %{_libdir}/%{name}/plugin/auth_pam.so +%attr(755,root,root) %{_libdir}/%{name}/plugin/auth_pam_compat.so %attr(755,root,root) %{_libdir}/%{name}/plugin/auth_socket.so %attr(755,root,root) %{_libdir}/%{name}/plugin/auth_test_plugin.so +%attr(755,root,root) %{_libdir}/%{name}/plugin/dialog.so %attr(755,root,root) %{_libdir}/%{name}/plugin/ha_archive.so %attr(755,root,root) %{_libdir}/%{name}/plugin/ha_blackhole.so %attr(755,root,root) %{_libdir}/%{name}/plugin/ha_federated.so @@ -977,14 +905,17 @@ done %attr(755,root,root) %{_libdir}/%{name}/plugin/semisync_master.so %attr(755,root,root) %{_libdir}/%{name}/plugin/semisync_slave.so %if %{with sphinx} -%attr(755,root,root) %{_libdir}/%{name}/plugin/sphinx.so +%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_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_plugin.1* %{_mandir}/man1/mysql_upgrade.1* %{_mandir}/man1/mysqlcheck.1* %{_mandir}/man8/mysqld.8* @@ -1073,6 +1004,7 @@ done %attr(755,root,root) %{_bindir}/mysql_zap %attr(755,root,root) %{_bindir}/mysqlaccess %attr(755,root,root) %{_bindir}/mysqldumpslow +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysqlaccess.conf %{_mandir}/man1/mysql_convert_table_format.1* %{_mandir}/man1/mysql_find_rows.1* %{_mandir}/man1/mysql_fix_extensions.1* @@ -1104,9 +1036,9 @@ done %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 @@ -1117,8 +1049,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