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