2 # - http://bugs.mysql.com/bug.php?id=16470
3 # - innodb are dynamic (= as plugins) ?
4 # - missing have_archive, have_merge
5 # - is plugin_dir lib64 safe?
6 # - Using NDB Cluster... could not find sci transporter in /{include, lib}
9 %bcond_without innodb # InnoDB storage engine support
10 %bcond_without big_tables # Support tables with more than 4G rows even on 32 bit platforms
11 %bcond_without federated # Federated storage engine support
12 %bcond_without raid # RAID support
13 %bcond_without ssl # OpenSSL support
14 %bcond_without tcpd # libwrap (tcp_wrappers) support
15 %bcond_with autodeps # BR packages needed only for resolving deps
16 %bcond_with sphinx # Sphinx storage engine support
17 %bcond_with tests # FIXME: don't run correctly
19 %include /usr/lib/rpm/macros.perl
20 Summary: MySQL: a very fast and reliable SQL database engine
21 Summary(de.UTF-8): MySQL: ist eine SQL-Datenbank
22 Summary(fr.UTF-8): MySQL: un serveur SQL rapide et fiable
23 Summary(pl.UTF-8): MySQL: bardzo szybka i niezawodna baza danych (SQL)
24 Summary(pt_BR.UTF-8): MySQL: Um servidor SQL rápido e confiável
25 Summary(ru.UTF-8): MySQL - быстрый SQL-сервер
26 Summary(uk.UTF-8): MySQL - швидкий SQL-сервер
27 Summary(zh_CN.UTF-8): MySQL数据库服务器
31 License: GPL + MySQL FLOSS Exception
32 Group: Applications/Databases
33 #Source0Download: http://dev.mysql.com/downloads/mysql/5.1.html#source
34 Source0: http://mysql.easynet.be/Downloads/MySQL-5.1/%{name}-%{version}.tar.gz
35 # Source0-md5: b658e58887a74dce65224ae0fc8ee06a
36 Source100: http://www.sphinxsearch.com/downloads/sphinx-0.9.7.tar.gz
37 # Source100-md5: 32f2b7e98d8485c86108851d52c5cef4
39 Source2: %{name}.sysconfig
40 Source3: %{name}.logrotate
41 Source4: %{name}d.conf
42 Source5: %{name}-clusters.conf
43 Source7: %{name}-ndb.init
44 Source8: %{name}-ndb.sysconfig
45 Source9: %{name}-ndb-mgm.init
46 Source10: %{name}-ndb-mgm.sysconfig
47 Source11: %{name}-ndb-cpc.init
48 Source12: %{name}-ndb-cpc.sysconfig
49 Source13: %{name}-client.conf
50 Patch0: %{name}-libs.patch
51 Patch1: %{name}-libwrap.patch
52 Patch2: %{name}-c++.patch
53 Patch3: %{name}-info.patch
54 Patch4: %{name}-sql-cxx-pic.patch
55 Patch5: %{name}-noproc.patch
56 Patch6: %{name}-system-users.patch
57 Patch7: %{name}-bug-34192.patch
58 Patch8: %{name}-client-config.patch
59 Patch9: %{name}-build.patch
60 Patch10: %{name}-alpha.patch
61 Patch11: %{name}-upgrade.patch
62 Patch12: %{name}-config.patch
63 Patch13: %{name}-errorlog-no-rename.patch
64 # <percona patches, http://www.percona.com/percona-lab.html>
65 Patch14: %{name}-userstats.patch
66 Patch15: %{name}-microslow.patch
67 Patch16: %{name}-acc-pslist.patch
69 URL: http://www.mysql.com/products/database/mysql/community_edition.html
70 BuildRequires: autoconf
71 BuildRequires: automake
72 BuildRequires: doxygen
73 BuildRequires: libstdc++-devel >= 5:3.0
74 BuildRequires: libtool
75 %{?with_tcpd:BuildRequires: libwrap-devel}
76 BuildRequires: ncurses-devel >= 4.2
77 %{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d}
78 %{?with_autodeps:BuildRequires: perl-DBI}
79 BuildRequires: perl-devel >= 1:5.6.1
80 BuildRequires: readline-devel >= 4.2
81 BuildRequires: rpm-perlprov >= 4.1-13
82 BuildRequires: rpmbuild(macros) >= 1.414
83 BuildRequires: sed >= 4.0
84 BuildRequires: texinfo
85 BuildRequires: zlib-devel
86 Requires(post,preun): /sbin/chkconfig
87 Requires(postun): /usr/sbin/groupdel
88 Requires(postun): /usr/sbin/userdel
89 Requires(pre): /bin/id
90 Requires(pre): /usr/bin/getgid
91 Requires(pre): /usr/sbin/groupadd
92 Requires(pre): /usr/sbin/useradd
93 Requires(triggerpostun): sed >= 4.0
94 Requires: %{name}-charsets = %{version}-%{release}
95 Requires: %{name}-libs = %{version}-%{release}
96 Requires: /usr/bin/setsid
97 Requires: logrotate >= 3.7-4
98 Requires: rc-scripts >= 0.2.0
99 Suggests: mysql-client
100 %{?with_tcpd:Suggests: tcp_wrappers}
101 Provides: MySQL-server
102 Provides: group(mysql)
103 Provides: msqlormysql
104 Provides: user(mysql)
106 Obsoletes: mysql-server
107 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
109 %define _libexecdir %{_sbindir}
110 %define _localstatedir /var/lib/mysql
111 %define _mysqlhome /home/services/mysql
113 %define _noautoreqdep 'perl(DBD::mysql)'
115 # readline/libedit detection goes wrong
116 %undefine configure_cache
119 MySQL is a true multi-user, multi-threaded SQL (Structured Query
120 Language) database server. SQL is the most popular database language
121 in the world. MySQL is a client/server implementation that consists of
122 a server daemon mysqld and many different client programs/libraries.
124 The main goals of MySQL are speed, robustness and easy to use. MySQL
125 was originally developed because we at Tcx needed a SQL server that
126 could handle very big databases with magnitude higher speed than what
127 any database vendor could offer to us. We have now been using MySQL
128 since 1996 in a environment with more than 40 databases, 10,000
129 tables, of which more than 500 have more than 7 million rows. This is
130 about 50G of mission critical data.
132 The base upon which MySQL is built is a set of routines that have been
133 used in a highly demanding production environment for many years.
134 While MySQL is still in development, it already offers a rich and
135 highly useful function set.
137 %description -l fr.UTF-8
138 MySQL est un serveur de bases de donnees SQL vraiment multi-usagers et
139 multi-taches. Le langage SQL est le langage de bases de donnees le
140 plus populaire au monde. MySQL est une implementation client/serveur
141 qui consiste en un serveur (mysqld) et differents
142 programmes/bibliotheques clientes.
144 Les objectifs principaux de MySQL sont: vitesse, robustesse et
145 facilite d'utilisation. MySQL fut originalement developpe parce que
146 nous, chez Tcx, avions besoin d'un serveur SQL qui pouvait gerer de
147 tres grandes bases de donnees avec une vitesse d'un ordre de magnitude
148 superieur a ce que n'importe quel vendeur pouvait nous offrir. Nous
149 utilisons MySQL depuis 1996 dans un environnement avec plus de 40
150 bases de donnees, 10000 tables, desquelles plus de 500 ont plus de 7
151 millions de lignes. Ceci represente environ 50G de donnees critiques.
153 A la base de la conception de MySQL, on retrouve une serie de routines
154 qui ont ete utilisees dans un environnement de production pendant
155 plusieurs annees. Meme si MySQL est encore en developpement, il offre
156 deja une riche et utile serie de fonctions.
158 %description -l pl.UTF-8
159 MySQL to prawdziwie wieloużytkownikowy, wielowątkowy serwer baz danych
160 SQL. SQL jest najpopularniejszym na świecie językiem używanym do baz
161 danych. MySQL to implementacja klient/serwer składająca się z demona
162 mysqld i wielu różnych programów i bibliotek klienckich.
164 Głównymi celami MySQL-a są szybkość, potęga i łatwość użytkowania.
165 MySQL oryginalnie był tworzony, ponieważ autorzy w Tcx potrzebowali
166 serwera SQL do obsługi bardzo dużych baz danych z szybkością o wiele
167 większą, niż mogli zaoferować inni producenci baz danych. Używają go
168 od 1996 roku w środowisku z ponad 40 bazami danych, 10 000 tabel, z
169 których ponad 500 zawiera ponad 7 milionów rekordów - w sumie około
170 50GB krytycznych danych.
172 Baza, na której oparty jest MySQL, składa się ze zbioru procedur,
173 które były używane w bardzo wymagającym środowisku produkcyjnym przez
174 wiele lat. Pomimo, że MySQL jest ciągle rozwijany, już oferuje bogaty
175 i użyteczny zbiór funkcji.
177 %description -l de.UTF-8
178 MySQL ist eine SQL-Datenbank. Allerdings ist sie im Gegensatz zu
179 Oracle, DB2 oder PostgreSQL keine relationale Datenbank. Die Daten
180 werden zwar in zweidimensionalen Tabellen gespeichert und können mit
181 einem Primärschlüssel versehen werden. Es ist aber keine Definition
182 eines Fremdschlüssels möglich. Der Benutzer ist somit bei einer
183 MySQL-Datenbank völlig allein für die (referenzielle) Integrität der
184 Daten verantwortlich. Allein durch die Nutzung externer
185 Tabellenformate, wie InnoDB bzw Berkeley DB wird eine Relationalität
186 ermöglicht. Diese Projekte sind aber getrennt von MySQL zu betrachten.
188 %description -l pt_BR.UTF-8
189 O MySQL é um servidor de banco de dados SQL realmente multiusuário e
190 multi-tarefa. A linguagem SQL é a mais popular linguagem para banco de
191 dados no mundo. O MySQL é uma implementação cliente/servidor que
192 consiste de um servidor chamado mysqld e diversos
193 programas/bibliotecas clientes. Os principais objetivos do MySQL são:
194 velocidade, robustez e facilidade de uso. O MySQL foi originalmente
195 desenvolvido porque nós na Tcx precisávamos de um servidor SQL que
196 pudesse lidar com grandes bases de dados e com uma velocidade muito
197 maior do que a que qualquer vendedor podia nos oferecer. Estamos
198 usando o MySQL desde 1996 em um ambiente com mais de 40 bases de dados
199 com 10.000 tabelas, das quais mais de 500 têm mais de 7 milhões de
200 linhas. Isto é o equivalente a aproximadamente 50G de dados críticos.
201 A base da construção do MySQL é uma série de rotinas que foram usadas
202 em um ambiente de produção com alta demanda por muitos anos. Mesmo o
203 MySQL estando ainda em desenvolvimento, ele já oferece um conjunto de
204 funções muito ricas e úteis. Veja a documentação para maiores
207 %description -l ru.UTF-8
208 MySQL - это SQL (Structured Query Language) сервер базы данных. MySQL
209 была написана Michael'ом (monty) Widenius'ом. См. файл CREDITS в
210 дистрибутиве на предмет других участников проекта и прочей информации
213 %description -l uk.UTF-8
214 MySQL - це SQL (Structured Query Language) сервер бази даних. MySQL
215 було написано Michael'ом (monty) Widenius'ом. Див. файл CREDITS в
216 дистрибутиві для інформації про інших учасників проекту та іншої
220 Summary: MySQL - character sets definitions
221 Summary(pl.UTF-8): MySQL - definicje kodowań znaków
222 Group: Applications/Databases
224 %description charsets
225 This package contains character sets definitions needed by both client
228 %description charsets -l pl.UTF-8
229 Ten pakiet zawiera definicje kodowań znaków potrzebne dla serwera i
233 Summary: MySQL additional utilities
234 Summary(pl.UTF-8): Dodatkowe narzędzia do MySQL
235 Group: Applications/Databases
236 Requires: %{name}-libs = %{version}-%{release}
239 MySQL additional utilities except Perl scripts (they may be found in
240 %{name}-extras-perl package).
242 %description extras -l pl.UTF-8
243 Dodatkowe narzędzia do MySQL - z wyjątkiem skryptów Perla (które są w
244 pakiecie %{name}-extras-perl).
247 Summary: MySQL additional utilities written in Perl
248 Summary(pl.UTF-8): Dodatkowe narzędzia do MySQL napisane w Perlu
249 Group: Applications/Databases
250 Requires: %{name}-extras = %{version}-%{release}
251 Requires: perl(DBD::mysql)
253 %description extras-perl
254 MySQL additional utilities written in Perl.
256 %description extras-perl -l pl.UTF-8
257 Dodatkowe narzędzia do MySQL napisane w Perlu.
260 Summary: MySQL - Client
261 Summary(pl.UTF-8): MySQL - Klient
262 Summary(pt.UTF-8): MySQL - Cliente
263 Summary(ru.UTF-8): MySQL клиент
264 Summary(uk.UTF-8): MySQL клієнт
265 Group: Applications/Databases
266 Requires: %{name}-charsets = %{version}-%{release}
267 Requires: %{name}-libs = %{version}-%{release}
268 Obsoletes: MySQL-client
271 This package contains the standard MySQL clients.
273 %description client -l fr.UTF-8
274 Ce package contient les clients MySQL standards.
276 %description client -l pl.UTF-8
277 Standardowe programy klienckie MySQL.
279 %description client -l pt_BR.UTF-8
280 Este pacote contém os clientes padrão para o MySQL.
282 %description client -l ru.UTF-8
283 Этот пакет содержит только клиент MySQL.
285 %description client -l uk.UTF-8
286 Цей пакет містить тільки клієнта MySQL.
289 Summary: Shared libraries for MySQL
290 Summary(pl.UTF-8): Biblioteki dzielone MySQL
292 Obsoletes: libmysql10
293 Obsoletes: mysql-doc < 4.1.12
296 Shared libraries for MySQL.
298 %description libs -l pl.UTF-8
299 Biblioteki dzielone MySQL.
302 Summary: MySQL - Development header files and libraries
303 Summary(pl.UTF-8): MySQL - Pliki nagłówkowe i biblioteki dla programistów
304 Summary(pt.UTF-8): MySQL - Medições de desempenho
305 Summary(ru.UTF-8): MySQL - хедеры и библиотеки разработчика
306 Summary(uk.UTF-8): MySQL - хедери та бібліотеки програміста
307 Group: Development/Libraries
308 Requires: %{name}-libs = %{version}-%{release}
309 %{?with_ssl:Requires: openssl-devel}
311 Obsoletes: MySQL-devel
312 Obsoletes: libmysql10-devel
315 This package contains the development header files and libraries
316 necessary to develop MySQL client applications.
318 %description devel -l fr.UTF-8
319 Ce package contient les fichiers entetes et les librairies de
320 developpement necessaires pour developper des applications clientes
323 %description devel -l pl.UTF-8
324 Pliki nagłówkowe i biblioteki konieczne do kompilacji aplikacji
327 %description devel -l pt_BR.UTF-8
328 Este pacote contém os arquivos de cabeçalho (header files) e
329 bibliotecas necessárias para desenvolver aplicações clientes do MySQL.
331 %description devel -l ru.UTF-8
332 Этот пакет содержит хедеры и библиотеки разработчика, необходимые для
333 разработки клиентских приложений.
335 %description devel -l uk.UTF-8
336 Цей пакет містить хедери та бібліотеки програміста, необхідні для
337 розробки програм-клієнтів.
340 Summary: MySQL static libraries
341 Summary(pl.UTF-8): Biblioteki statyczne MySQL
342 Summary(ru.UTF-8): MySQL - статические библиотеки
343 Summary(uk.UTF-8): MySQL - статичні бібліотеки
344 Group: Development/Libraries
345 Requires: %{name}-devel = %{version}-%{release}
346 Obsoletes: MySQL-static
349 MySQL static libraries.
351 %description static -l pl.UTF-8
352 Biblioteki statyczne MySQL.
354 %description static -l ru.UTF-8
355 Этот пакет содержит статические библиотеки разработчика, необходимые
356 для разработки клиентских приложений.
358 %description static -l uk.UTF-8
359 Цей пакет містить статичні бібліотеки програміста, необхідні для
360 розробки програм-клієнтів.
363 Summary: MySQL - Benchmarks
364 Summary(pl.UTF-8): MySQL - Programy testujące szybkość działania bazy
365 Summary(pt.UTF-8): MySQL - Medições de desempenho
366 Summary(ru.UTF-8): MySQL - бенчмарки
367 Summary(uk.UTF-8): MySQL - бенчмарки
368 Group: Applications/Databases
369 Requires: %{name} = %{version}-%{release}
370 Requires: %{name}-client
371 Requires: perl(DBD::mysql)
372 Obsoletes: MySQL-bench
375 This package contains MySQL benchmark scripts and data.
377 %description bench -l pl.UTF-8
378 Programy testujące szybkość serwera MySQL.
380 %description bench -l pt_BR.UTF-8
381 Este pacote contém medições de desempenho de scripts e dados do MySQL.
383 %description bench -l ru.UTF-8
384 Этот пакет содержит скрипты и данные для оценки производительности
387 %description bench -l uk.UTF-8
388 Цей пакет містить скрипти та дані для оцінки продуктивності MySQL.
391 Summary: MySQL manual
392 Summary(pl.UTF-8): Podręcznik użytkownika MySQL
393 Group: Applications/Databases
396 This package contains manual in HTML format.
398 %description doc -l pl.UTF-8
399 Podręcznik MySQL-a w formacie HTML.
402 Summary: MySQL - NDB Storage Engine Daemon
403 Summary(pl.UTF-8): MySQL - demon silnika przechowywania danych NDB
404 Group: Applications/Databases
405 Requires: %{name}-libs = %{version}-%{release}
408 This package contains the standard MySQL NDB Storage Engine Daemon.
410 %description ndb -l pl.UTF-8
411 Ten pakiet zawiera standardowego demona silnika przechowywania danych
415 Summary: MySQL - NDB Clients
416 Summary(pl.UTF-8): MySQL - programy klienckie NDB
417 Group: Applications/Databases
418 Requires: %{name}-libs = %{version}-%{release}
420 %description ndb-client
421 This package contains the standard MySQL NDB Clients.
423 %description ndb-client -l pl.UTF-8
424 Ten pakiet zawiera standardowe programy klienckie MySQL NDB.
427 Summary: MySQL - NDB Management Daemon
428 Summary(pl.UTF-8): MySQL - demon zarządzający NDB
429 Group: Applications/Databases
430 Requires: %{name}-libs = %{version}-%{release}
433 This package contains the standard MySQL NDB Management Daemon.
435 %description ndb-mgm -l pl.UTF-8
436 Ten pakiet zawiera standardowego demona zarządzającego MySQL NDB.
439 Summary: MySQL - NDB CPC Daemon
440 Summary(pl.UTF-8): MySQL - demon NDB CPC
441 Group: Applications/Databases
442 Requires: %{name}-libs = %{version}-%{release}
445 This package contains the standard MySQL NDB CPC Daemon.
447 %description ndb-cpc -l pl.UTF-8
448 Ten pakiet zawiera standardowego demona MySQL NDB CPC.
451 %setup -q %{?with_sphinx:-a100}
453 mv sphinx-*/mysqlse storage/sphinx
456 #%{?with_tcpd:%patch1 -p1} # WHATS PURPOSE OF THIS PATCH?
457 #%patch2 -p1 # NEEDS CHECK, which exact program needs -lc++
460 # this is strange: mysqld functions for UDF modules are not explicitly defined,
461 # so -rdynamic is used; in such case gcc3+ld on alpha doesn't like C++ vtables
462 # in objects compiled without -fPIC
481 %{__aclocal} -I config/ac-macros
485 # The compiler flags are as per their "official" spec ;)
486 CXXFLAGS="%{rpmcflags} -felide-constructors -fno-rtti -fno-exceptions %{!?debug:-fomit-frame-pointer}"
487 CFLAGS="%{rpmcflags} %{!?debug:-fomit-frame-pointer}"
489 # NOTE: the PS, FIND_PROC, KILL, CHECK_PID are not used by PLD Linux
490 # and therefore do not add BR on these. These are here just to satisfy
495 FIND_PROC='/bin/ps p $$PID' \
497 CHECK_PID='/bin/kill -0 $$PID' \
499 --enable-largefile=yes \
502 --enable-thread-safe-client \
503 --with%{!?with_innodb:out}-innodb \
504 --with%{!?with_raid:out}-raid \
505 --with%{!?with_ssl:out}-ssl=/usr \
506 --with%{!?with_tcpd:out}-libwrap \
507 %{?with_big_tables:--with-big-tables} \
508 --with-comment="PLD Linux Distribution MySQL RPM" \
509 --with%{!?debug:out}-debug%{?debug:=full} \
510 --with%{!?debug:out}-ndb-debug \
511 --with-embedded-server \
512 --with-extra-charsets=all \
514 --with-mysqld-user=mysql \
515 --with-named-curses-libs="-lncurses" \
516 --with-named-thread-libs="-lpthread" \
517 --with-unix-socket-path=/var/lib/mysql/mysql.sock \
518 --with-archive-storage-engine \
520 %{?with_federated:--with-federated-storage-engine} \
521 --with-fast-mutexes \
531 # NOTE that /var/lib/mysql/mysql.sock is symlink to real sock file
532 # (it defaults to first cluster but user may change it to whatever
535 echo -e "all:\ninstall:\nclean:\nlink_sources:\n" > libmysqld/examples/Makefile
538 benchdir=$RPM_BUILD_ROOT%{_datadir}/sql-bench
540 %{__make} -C Docs mysql.info
542 %{?with_tests:%{__make} test}
545 rm -rf $RPM_BUILD_ROOT
546 install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,mysql} \
547 $RPM_BUILD_ROOT/var/{log/{archive,}/mysql,lib/mysql} \
548 $RPM_BUILD_ROOT{%{_infodir},%{_mysqlhome}}
552 DESTDIR=$RPM_BUILD_ROOT \
553 benchdir=%{_datadir}/sql-bench \
555 # libsdir is to avoid installing innodb static libs in $RPM_BUILD_ROOT../libs
557 install Docs/mysql.info $RPM_BUILD_ROOT%{_infodir}
559 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql
560 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/mysql
561 install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mysql
562 # This is template for configuration file which is created after 'service mysql init'
563 install %{SOURCE4} mysqld.conf
564 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/mysql/clusters.conf
565 touch $RPM_BUILD_ROOT/var/log/mysql/{err,log,update}
567 # remove innodb directives from mysqld.conf if mysqld is configured without
568 %if %{without innodb}
569 cp mysqld.conf mysqld.tmp
570 awk 'BEGIN { RS="\n\n" } !/innodb/ { printf("%s\n\n", $0) }' < mysqld.tmp > mysqld.conf
573 # remove berkeley-db directives from mysqld.conf if mysqld is configured without
574 cp mysqld.conf mysqld.tmp
575 awk 'BEGIN { RS="\n\n" } !/bdb/ { printf("%s\n\n", $0) }' < mysqld.tmp > mysqld.conf
577 install mysqld.conf $RPM_BUILD_ROOT%{_datadir}/mysql/mysqld.conf
578 cp -a %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/mysql/mysql-client.conf
581 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb
582 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb
583 install %{SOURCE9} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb-mgm
584 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb-mgm
585 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb-cpc
586 install %{SOURCE12} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb-cpc
588 mv -f $RPM_BUILD_ROOT%{_libdir}/mysql/lib* $RPM_BUILD_ROOT%{_libdir}
589 sed -i -e 's,%{_libdir}/mysql,%{_libdir},' $RPM_BUILD_ROOT{%{_libdir}/libmysqlclient{,_r}.la,%{_bindir}/mysql_config}
590 sed -i -e '/libs/s/$ldflags//' $RPM_BUILD_ROOT%{_bindir}/mysql_config
592 # remove known unpackaged files
593 rm -rf $RPM_BUILD_ROOT%{_prefix}/mysql-test
595 # remove .txt variants for .sys messages
596 rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/*/*.txt
598 # rename not to be so generic name
599 mv $RPM_BUILD_ROOT%{_bindir}/{,mysql_}resolve_stack_dump
600 mv $RPM_BUILD_ROOT%{_mandir}/man1/{,mysql_}resolve_stack_dump.1
602 # not useful without -debug build
603 %{!?debug:rm -f $RPM_BUILD_ROOT%{_bindir}/mysql_resolve_stack_dump}
604 %{!?debug:rm -f $RPM_BUILD_ROOT%{_mandir}/man1/mysql_resolve_stack_dump.1}
605 # generate symbols file, so one can generate backtrace using it
606 # mysql_resolve_stack_dump -s %{_datadir}/mysql/mysqld.sym -n mysqld.stack.
607 # http://dev.mysql.com/doc/refman/5.0/en/using-stack-trace.html
608 %{?debug:nm -n $RPM_BUILD_ROOT%{_sbindir}/mysqld > $RPM_BUILD_ROOT%{_datadir}/mysql/mysqld.sym}
610 # do not clobber users $PATH
611 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_upgrade
612 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/innochecksum
613 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/myisamchk
614 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/myisamlog
615 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/myisampack
616 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_fix_privilege_tables
617 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/my_print_defaults
618 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysqlcheck
620 # functionality in initscript / rpm
621 rm $RPM_BUILD_ROOT%{_bindir}/mysql_install_db
622 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql_install_db.1*
623 rm $RPM_BUILD_ROOT%{_bindir}/mysqld_safe
624 rm $RPM_BUILD_ROOT%{_bindir}/mysqld_multi
625 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysqld_{multi,safe}*
626 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/mysql-log-rotate
627 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/mysql.server
628 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/binary-configure
629 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/errmsg.txt
630 rm $RPM_BUILD_ROOT%{_bindir}/mysql_waitpid
631 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql_waitpid.1*
632 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql.server*
633 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysqlman.1*
634 rm $RPM_BUILD_ROOT%{_bindir}/resolveip
635 rm $RPM_BUILD_ROOT%{_mandir}/man1/resolveip.1*
636 rm $RPM_BUILD_ROOT%{_mandir}/man1/make_win_bin_dist.1*
637 rm $RPM_BUILD_ROOT%{_mandir}/man1/comp_err.1*
638 rm $RPM_BUILD_ROOT%{_datadir}/mysql/ChangeLog
640 # we don't package those (we have no -test or -testsuite pkg) and some of them just segfault
641 rm $RPM_BUILD_ROOT%{_bindir}/mysql_client_test
642 rm $RPM_BUILD_ROOT%{_datadir}/mysql/mi_test_all
643 rm $RPM_BUILD_ROOT%{_datadir}/mysql/mi_test_all.res
644 rm $RPM_BUILD_ROOT%{_datadir}/mysql/mysqld_multi.server
645 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql_client_test.1*
646 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql_client_test_embedded.1*
647 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql-stress-test.pl.1*
648 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql-test-run.pl.1*
651 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/*.{ini,cnf}
654 rm -f $RPM_BUILD_ROOT%{_libdir}/mysql/plugin/ha_example.{a,la}
657 rm -rf $RPM_BUILD_ROOT
660 %groupadd -g 89 mysql
661 %useradd -u 89 -d %{_mysqlhome} -s /bin/sh -g mysql -c "MySQL Server" mysql
664 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
665 /sbin/chkconfig --add mysql
666 %service mysql restart
669 if [ "$1" = "0" ]; then
670 %service -q mysql stop
671 /sbin/chkconfig --del mysql
675 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
677 if [ "$1" = "0" ]; then
683 /sbin/chkconfig --add mysql-ndb
684 %service mysql-ndb restart "mysql NDB engine"
687 if [ "$1" = "0" ]; then
688 %service mysql-ndb stop
689 /sbin/chkconfig --del mysql-ndb
693 /sbin/chkconfig --add mysql-ndb-mgm
694 %service mysql-ndb-mgm restart "mysql NDB management node"
697 if [ "$1" = "0" ]; then
698 %service mysql-ndb-mgm stop
699 /sbin/chkconfig --del mysql-ndb-mgm
703 /sbin/chkconfig --add mysql-ndb-cpc
704 %service mysql-ndb-cpc restart "mysql NDB CPC"
707 if [ "$1" = "0" ]; then
708 %service mysql-ndb-cpc stop
709 /sbin/chkconfig --del mysql-ndb-cpc
712 %post libs -p /sbin/ldconfig
713 %postun libs -p /sbin/ldconfig
715 %triggerpostun -- mysql < 4.0.20-2.4
716 # For clusters in /etc/mysql/clusters.conf
717 if [ -f /etc/sysconfig/mysql ]; then
718 . /etc/sysconfig/mysql
719 if [ -n "$MYSQL_DB_CLUSTERS" ]; then
720 for i in "$MYSQL_DB_CLUSTERS"; do
721 echo "$i/mysqld.conf=$i" >> /etc/mysql/clusters.conf
723 echo "# Do not use **obsolete** option MYSQL_DB_CLUSTERS" >> /etc/sysconfig/mysql
724 echo "# USE /etc/mysql/clusters.conf instead" >> /etc/sysconfig/mysql
725 echo "Converted clusters from MYSQL_DB_CLUSTERS to /etc/mysql/clusters.conf."
726 echo "You NEED to fix your /etc/sysconfig/mysql and verify /etc/mysql/clusters.conf."
730 %triggerpostun -- mysql < 4.1.1
731 # For better compatibility with prevoius versions:
732 for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/mysql/clusters.conf); do
733 if echo "$config" | grep -q '^/'; then
734 config_file="$config"
735 elif [ -f "/etc/mysql/$config" ]; then
736 config_file=/etc/mysql/$config
738 clusterdir=$(awk -F= "/^$config/{print \$2}" /etc/mysql/clusters.conf)
739 if [ -z "$clusterdir" ]; then
740 echo >&2 "Can't find cluster dir for $config!"
741 echo >&2 "Please remove extra (leading) spaces from /etc/mysql/clusters.conf"
744 config_file="$clusterdir/mysqld.conf"
747 if [ ! -f "$config_file" ]; then
748 echo >&2 "Lost myself! Please report this (with above errors, if any) to http://bugs.pld-linux.org/"
751 echo "Adding option old-passwords to config: $config_file"
752 echo "If you want to use new, better passwords - remove it"
754 # sed magic to add 'old-passwords' to [mysqld] section
755 sed -i -e '/./{H;$!d;};x;/\[mysqld\]/{
757 a; Compatibility options:
763 %banner -e %{name}-4.1.x <<-EOF
764 If you want to use new help tables in MySQL 4.1.x then You'll need to import the help data:
765 mysql -u mysql mysql < %{_datadir}/%{name}/fill_help_tables.sql
769 %triggerpostun -- mysql < 5.1.0
771 for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/mysql/clusters.conf); do
772 if echo "$config" | grep -q '^/'; then
773 config_file="$config"
774 elif [ -f "/etc/mysql/$config" ]; then
775 config_file=/etc/mysql/$config
777 clusterdir=$(awk -F= "/^$config/{print \$2}" /etc/mysql/clusters.conf)
778 if [ -z "$clusterdir" ]; then
779 echo >&2 "Can't find cluster dir for $config!"
780 echo >&2 "Please remove extra (leading) spaces from /etc/mysql/clusters.conf"
783 config_file="$clusterdir/mysqld.conf"
786 if [ ! -f "$config_file" ]; then
787 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/"
790 configs="$configs $config_file"
794 echo 'You should run MySQL upgrade script *after* restarting MySQL server for all MySQL clusters.'
795 echo 'Thus, you should invoke:'
796 for config in $configs; do
797 datadir=$(awk -F= '!/^#/ && $1 ~ /datadir/{print $2}' $config | xargs)
798 echo "# mysql_upgrade --datadir=$datadir"
800 ) | %banner -e %{name}-5.1
803 %defattr(644,root,root,755)
804 %doc support-files/*.cnf support-files/*.ini ChangeLog
805 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/mysql
806 %attr(754,root,root) /etc/rc.d/init.d/mysql
807 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql
808 %attr(640,root,mysql) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/clusters.conf
809 %attr(755,root,root) %{_sbindir}/innochecksum
810 %attr(755,root,root) %{_sbindir}/my_print_defaults
811 %attr(755,root,root) %{_sbindir}/myisamchk
812 %attr(755,root,root) %{_sbindir}/myisamlog
813 %attr(755,root,root) %{_sbindir}/myisampack
814 %attr(755,root,root) %{_sbindir}/mysql_fix_privilege_tables
815 %attr(755,root,root) %{_sbindir}/mysql_upgrade
816 %attr(755,root,root) %{_sbindir}/mysqlcheck
817 %attr(755,root,root) %{_sbindir}/mysqld
818 %dir %{_libdir}/mysql
819 %dir %{_libdir}/mysql/plugin
820 %attr(755,root,root) %{_libdir}/mysql/plugin/ha_example.so.*.*.*
821 %attr(755,root,root) %{_libdir}/mysql/plugin/ha_example.so.0
822 %attr(755,root,root) %{_libdir}/mysql/plugin/ha_example.so
823 %{_mandir}/man1/innochecksum.1*
824 %{_mandir}/man1/my_print_defaults.1*
825 %{_mandir}/man1/myisamchk.1*
826 %{_mandir}/man1/myisamlog.1*
827 %{_mandir}/man1/myisampack.1*
828 %{_mandir}/man1/mysql_fix_privilege_tables.1*
829 %{_mandir}/man1/mysql_upgrade.1*
830 %{_mandir}/man1/mysqlcheck.1*
831 %{_mandir}/man8/mysqld.8*
834 %attr(755,root,root) %{_bindir}/*resolve_stack_dump
835 %{_datadir}/mysql/mysqld.sym
836 %{_mandir}/man1/*resolve_stack_dump.1*
839 %attr(700,mysql,mysql) %{_mysqlhome}
840 # root:root is proper here for mysql.rpm while mysql:mysql is potential security hole
841 %attr(751,root,root) /var/lib/mysql
842 %attr(750,mysql,mysql) %dir /var/log/mysql
843 %attr(750,mysql,mysql) %dir /var/log/archive/mysql
844 %attr(640,mysql,mysql) %ghost /var/log/mysql/*
846 %{_infodir}/mysql.info*
847 # This is template for configuration file which is created after 'service mysql init'
848 %{_datadir}/mysql/mysqld.conf
849 %{_datadir}/mysql/mysql_system_tables.sql
850 %{_datadir}/mysql/mysql_system_tables_data.sql
851 %{_datadir}/mysql/mysql_test_data_timezone.sql
853 %{_datadir}/mysql/english
854 %{_datadir}/mysql/fill_help_tables.sql
855 %{_datadir}/mysql/mysql_fix_privilege_tables.sql
856 %lang(cs) %{_datadir}/mysql/czech
857 %lang(da) %{_datadir}/mysql/danish
858 %lang(de) %{_datadir}/mysql/german
859 %lang(el) %{_datadir}/mysql/greek
860 %lang(es) %{_datadir}/mysql/spanish
861 %lang(et) %{_datadir}/mysql/estonian
862 %lang(fr) %{_datadir}/mysql/french
863 %lang(hu) %{_datadir}/mysql/hungarian
864 %lang(it) %{_datadir}/mysql/italian
865 %lang(ja) %{_datadir}/mysql/japanese
866 %lang(ko) %{_datadir}/mysql/korean
867 %lang(nl) %{_datadir}/mysql/dutch
868 %lang(nb) %{_datadir}/mysql/norwegian
869 %lang(nn) %{_datadir}/mysql/norwegian-ny
870 %lang(pl) %{_datadir}/mysql/polish
871 %lang(pt) %{_datadir}/mysql/portuguese
872 %lang(ro) %{_datadir}/mysql/romanian
873 %lang(ru) %{_datadir}/mysql/russian
874 %lang(sr) %{_datadir}/mysql/serbian
875 %lang(sk) %{_datadir}/mysql/slovak
876 %lang(sv) %{_datadir}/mysql/swedish
877 %lang(uk) %{_datadir}/mysql/ukrainian
880 %defattr(644,root,root,755)
881 %dir %{_datadir}/mysql
882 %{_datadir}/mysql/charsets
885 %defattr(644,root,root,755)
886 %attr(755,root,root) %{_bindir}/msql2mysql
887 %attr(755,root,root) %{_bindir}/myisam_ftdump
888 %attr(755,root,root) %{_bindir}/mysql_secure_installation
889 %attr(755,root,root) %{_bindir}/mysql_tzinfo_to_sql
890 %attr(755,root,root) %{_bindir}/perror
891 %attr(755,root,root) %{_bindir}/replace
892 %{_mandir}/man1/msql2mysql.1*
893 %{_mandir}/man1/myisam_ftdump.1*
894 %{_mandir}/man1/mysql_secure_installation.1*
895 %{_mandir}/man1/mysql_tzinfo_to_sql.1*
896 %{_mandir}/man1/perror.1*
897 %{_mandir}/man1/replace.1*
900 %defattr(644,root,root,755)
901 %attr(755,root,root) %{_bindir}/mysql_convert_table_format
902 %attr(755,root,root) %{_bindir}/mysql_find_rows
903 %attr(755,root,root) %{_bindir}/mysql_fix_extensions
904 %attr(755,root,root) %{_bindir}/mysql_setpermission
905 %attr(755,root,root) %{_bindir}/mysql_zap
906 %attr(755,root,root) %{_bindir}/mysqlaccess
907 %attr(755,root,root) %{_bindir}/mysqldumpslow
908 %attr(755,root,root) %{_bindir}/mysqlhotcopy
909 %{_mandir}/man1/mysql_convert_table_format.1*
910 %{_mandir}/man1/mysql_find_rows.1*
911 %{_mandir}/man1/mysql_fix_extensions.1*
912 %{_mandir}/man1/mysql_setpermission.1*
913 %{_mandir}/man1/mysql_zap.1*
914 %{_mandir}/man1/mysqlaccess.1*
915 %{_mandir}/man1/mysqlhotcopy.1*
918 %defattr(644,root,root,755)
919 %attr(755,root,root) %{_bindir}/mysql
920 %attr(755,root,root) %{_bindir}/mysqladmin
921 %attr(755,root,root) %{_bindir}/mysqlbinlog
922 %attr(755,root,root) %{_bindir}/mysqlbug
923 %attr(755,root,root) %{_bindir}/mysqldump
924 %attr(755,root,root) %{_bindir}/mysqlimport
925 %attr(755,root,root) %{_bindir}/mysqlshow
926 %attr(755,root,root) %{_sbindir}/mysqlmanager
927 %{_mandir}/man1/mysql.1*
928 %{_mandir}/man1/mysqladmin.1*
929 %{_mandir}/man1/mysqlbinlog.1*
930 %{_mandir}/man1/mysqlbug.1*
931 %{_mandir}/man1/mysqldump.1*
932 %{_mandir}/man1/mysqlimport.1*
933 %{_mandir}/man1/mysqlshow.1*
934 %{_mandir}/man8/mysqlmanager.8*
937 %defattr(644,root,root,755)
938 %doc EXCEPTIONS-CLIENT
939 %attr(751,root,root) %dir %{_sysconfdir}/mysql
940 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/mysql-client.conf
941 %attr(755,root,root) %{_libdir}/libmysqlclient.so.*.*.*
942 %attr(755,root,root) %ghost %{_libdir}/libmysqlclient.so.16
943 %attr(755,root,root) %{_libdir}/libmysqlclient_r.so.*.*.*
944 %attr(755,root,root) %ghost %{_libdir}/libmysqlclient_r.so.16
945 %attr(755,root,root) %{_libdir}/libndbclient.so.*.*.*
946 %attr(755,root,root) %ghost %{_libdir}/libndbclient.so.3
949 %defattr(644,root,root,755)
950 %attr(755,root,root) %{_bindir}/mysql_config
951 %attr(755,root,root) %{_libdir}/libmysqlclient.so
952 %attr(755,root,root) %{_libdir}/libmysqlclient_r.so
953 %attr(755,root,root) %{_libdir}/libndbclient.so
954 %{_libdir}/libmysqlclient.la
955 %{_libdir}/libmysqlclient_r.la
956 %{_libdir}/libndbclient.la
960 %{_libdir}/libmyisam.a
961 %{_libdir}/libmyisammrg.a
962 %{_libdir}/libmysqld.a
963 %{_libdir}/libmystrings.a
964 %{_libdir}/libmysys.a
967 %{_aclocaldir}/mysql.m4
968 %{_mandir}/man1/mysql_config.1*
971 %defattr(644,root,root,755)
972 %{_libdir}/libmysqlclient.a
973 %{_libdir}/libmysqlclient_r.a
974 %{_libdir}/libndbclient.a
977 %defattr(644,root,root,755)
978 %attr(755,root,root) %{_bindir}/mysqlslap
979 %attr(755,root,root) %{_bindir}/mysqltest
980 %dir %{_datadir}/sql-bench
981 %{_datadir}/sql-bench/[CDRl]*
982 %attr(755,root,root) %{_datadir}/sql-bench/[bcgirst]*
983 %{_mandir}/man1/mysqlslap.1*
984 %{_mandir}/man1/mysqltest.1*
985 %{_mandir}/man1/mysqltest_embedded.1*
988 #%defattr(644,root,root,755)
989 #%doc Docs/manual.html Docs/manual_toc.html
992 %defattr(644,root,root,755)
993 %attr(755,root,root) %{_sbindir}/ndbd
994 %attr(754,root,root) /etc/rc.d/init.d/mysql-ndb
995 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb
996 %{_mandir}/man1/ndbd_redo_log_reader.1*
997 %{_mandir}/man8/ndbd.8*
1000 %defattr(644,root,root,755)
1001 %attr(755,root,root) %{_bindir}/ndb_config
1002 %attr(755,root,root) %{_bindir}/ndb_delete_all
1003 %attr(755,root,root) %{_bindir}/ndb_desc
1004 %attr(755,root,root) %{_bindir}/ndb_drop_index
1005 %attr(755,root,root) %{_bindir}/ndb_drop_table
1006 %attr(755,root,root) %{_bindir}/ndb_error_reporter
1007 %attr(755,root,root) %{_bindir}/ndb_mgm
1008 %attr(755,root,root) %{_bindir}/ndb_print_backup_file
1009 %attr(755,root,root) %{_bindir}/ndb_print_schema_file
1010 %attr(755,root,root) %{_bindir}/ndb_print_sys_file
1011 %attr(755,root,root) %{_bindir}/ndb_restore
1012 %attr(755,root,root) %{_bindir}/ndb_select_all
1013 %attr(755,root,root) %{_bindir}/ndb_select_count
1014 %attr(755,root,root) %{_bindir}/ndb_show_tables
1015 %attr(755,root,root) %{_bindir}/ndb_size.pl
1016 %attr(755,root,root) %{_bindir}/ndb_test_platform
1017 %attr(755,root,root) %{_bindir}/ndb_waiter
1018 %{_mandir}/man1/ndb_config.1*
1019 %{_mandir}/man1/ndb_delete_all.1*
1020 %{_mandir}/man1/ndb_desc.1*
1021 %{_mandir}/man1/ndb_drop_index.1*
1022 %{_mandir}/man1/ndb_drop_table.1*
1023 %{_mandir}/man1/ndb_error_reporter.1*
1024 %{_mandir}/man1/ndb_mgm.1*
1025 %{_mandir}/man1/ndb_print_backup_file.1*
1026 %{_mandir}/man1/ndb_print_schema_file.1*
1027 %{_mandir}/man1/ndb_print_sys_file.1*
1028 %{_mandir}/man1/ndb_restore.1*
1029 %{_mandir}/man1/ndb_select_all.1*
1030 %{_mandir}/man1/ndb_select_count.1*
1031 %{_mandir}/man1/ndb_show_tables.1*
1032 %{_mandir}/man1/ndb_size.pl.1*
1033 %{_mandir}/man1/ndb_waiter.1*
1036 %defattr(644,root,root,755)
1037 %attr(755,root,root) %{_sbindir}/ndb_mgmd
1038 %attr(754,root,root) /etc/rc.d/init.d/mysql-ndb-mgm
1039 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb-mgm
1040 %{_mandir}/man8/ndb_mgmd.8*
1043 %defattr(644,root,root,755)
1044 %attr(755,root,root) %{_sbindir}/ndb_cpcd
1045 %attr(754,root,root) /etc/rc.d/init.d/mysql-ndb-cpc
1046 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb-cpc
1047 %{_mandir}/man1/ndb_cpcd.1*