2 # - trigger that prepares system from pre-cluster into cluster
3 # - C(XX)FLAGS for innodb subdirs are overriden by ./configure!
4 # - http://bugs.mysql.com/bug.php?id=16470
5 # - innodb are dynamic (= as plugins) ?
6 # - missing have_archive, have_merge
7 # - is plugin_dir lib64 safe?
8 # - Using NDB Cluster... could not find sci transporter in /{include, lib}
11 %bcond_without innodb # Without InnoDB support
12 %bcond_without raid # Without raid
13 %bcond_without ssl # Without OpenSSL
14 %bcond_without tcpd # Without libwrap (tcp_wrappers) support
15 %bcond_without big_tables # Support tables with more than 4G rows even on 32 bit platforms
17 %include /usr/lib/rpm/macros.perl
18 Summary: MySQL: a very fast and reliable SQL database engine
19 Summary(de.UTF-8): MySQL: ist eine SQL-Datenbank
20 Summary(fr.UTF-8): MySQL: un serveur SQL rapide et fiable
21 Summary(pl.UTF-8): MySQL: bardzo szybka i niezawodna baza danych (SQL)
22 Summary(pt_BR.UTF-8): MySQL: Um servidor SQL rápido e confiável
23 Summary(ru.UTF-8): MySQL - быстрый SQL-сервер
24 Summary(uk.UTF-8): MySQL - швидкий SQL-сервер
25 Summary(zh_CN.UTF-8): MySQL数据库服务器
29 License: GPL + MySQL FLOSS Exception
30 Group: Applications/Databases
31 #Source0: http://mysql.dataphone.se/Downloads/MySQL-5.1/%{name}-%{version}-beta.tar.gz
32 Source0: http://mysql.mirrors.cybercity.dk/Downloads/MySQL-5.1/%{name}-%{version}-beta.tar.gz
33 # Source0-md5: fb6fd4d26335245f679572f65c299762
35 Source2: %{name}.sysconfig
36 Source3: %{name}.logrotate
37 Source4: %{name}d.conf
38 Source5: %{name}-clusters.conf
39 Source7: %{name}-ndb.init
40 Source8: %{name}-ndb.sysconfig
41 Source9: %{name}-ndb-mgm.init
42 Source10: %{name}-ndb-mgm.sysconfig
43 Source11: %{name}-ndb-cpc.init
44 Source12: %{name}-ndb-cpc.sysconfig
45 Source13: %{name}-client.conf
46 Patch0: %{name}-libs.patch
47 Patch1: %{name}-libwrap.patch
48 Patch2: %{name}-c++.patch
49 Patch3: %{name}-info.patch
50 Patch4: %{name}-sql-cxx-pic.patch
51 Patch5: %{name}-noproc.patch
52 Patch6: %{name}-fix_privilege_tables.patch
53 Patch7: %{name}-align.patch
54 Patch8: %{name}-client-config.patch
55 Patch9: %{name}-build.patch
56 Patch10: %{name}-alpha.patch
57 Patch11: %{name}-upgrade.patch
58 Patch12: %{name}-NDB_CXXFLAGS.patch
59 Patch13: %{name}-create_system_tables.patch
60 Patch14: %{name}-bug-18156.patch
61 Patch16: %{name}-bug-24747.patch
62 URL: http://www.mysql.com/products/database/mysql/community_edition.html
63 BuildRequires: autoconf
64 BuildRequires: automake
65 BuildRequires: doxygen
66 BuildRequires: libstdc++-devel >= 5:3.0
67 BuildRequires: libtool
68 %{?with_tcpd:BuildRequires: libwrap-devel}
69 BuildRequires: ncurses-devel >= 4.2
70 %{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d}
71 BuildRequires: perl-DBI
72 BuildRequires: perl-devel >= 1:5.6.1
73 BuildRequires: readline-devel >= 4.2
74 BuildRequires: rpm-perlprov >= 4.1-13
75 BuildRequires: rpmbuild(macros) >= 1.268
76 BuildRequires: sed >= 4.0
77 BuildRequires: texinfo
78 BuildRequires: zlib-devel
79 Requires(post,postun): /sbin/ldconfig
80 Requires(post,preun): /sbin/chkconfig
81 Requires(postun): /usr/sbin/groupdel
82 Requires(postun): /usr/sbin/userdel
83 Requires(pre): /bin/id
84 Requires(pre): /usr/bin/getgid
85 Requires(pre): /usr/sbin/groupadd
86 Requires(pre): /usr/sbin/useradd
87 Requires(triggerpostun): sed >= 4.0
88 Requires: %{name}-charsets = %{version}-%{release}
89 Requires: /usr/bin/setsid
90 Requires: rc-scripts >= 0.2.0
91 Provides: MySQL-server
92 Provides: group(mysql)
96 Obsoletes: mysql-server
97 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
99 %define _libexecdir %{_sbindir}
100 %define _localstatedir /var/lib/mysql
101 %define _mysqlhome /home/services/mysql
103 %define _noautoreqdep 'perl(DBD::mysql)'
105 # readline/libedit detection goes wrong
106 %undefine configure_cache
109 MySQL is a true multi-user, multi-threaded SQL (Structured Query
110 Language) database server. SQL is the most popular database language
111 in the world. MySQL is a client/server implementation that consists of
112 a server daemon mysqld and many different client programs/libraries.
114 The main goals of MySQL are speed, robustness and easy to use. MySQL
115 was originally developed because we at Tcx needed a SQL server that
116 could handle very big databases with magnitude higher speed than what
117 any database vendor could offer to us. We have now been using MySQL
118 since 1996 in a environment with more than 40 databases, 10,000
119 tables, of which more than 500 have more than 7 million rows. This is
120 about 50G of mission critical data.
122 The base upon which MySQL is built is a set of routines that have been
123 used in a highly demanding production environment for many years.
124 While MySQL is still in development, it already offers a rich and
125 highly useful function set.
127 %description -l fr.UTF-8
128 MySQL est un serveur de bases de donnees SQL vraiment multi-usagers et
129 multi-taches. Le langage SQL est le langage de bases de donnees le
130 plus populaire au monde. MySQL est une implementation client/serveur
131 qui consiste en un serveur (mysqld) et differents
132 programmes/bibliotheques clientes.
134 Les objectifs principaux de MySQL sont: vitesse, robustesse et
135 facilite d'utilisation. MySQL fut originalement developpe parce que
136 nous, chez Tcx, avions besoin d'un serveur SQL qui pouvait gerer de
137 tres grandes bases de donnees avec une vitesse d'un ordre de magnitude
138 superieur a ce que n'importe quel vendeur pouvait nous offrir. Nous
139 utilisons MySQL depuis 1996 dans un environnement avec plus de 40
140 bases de donnees, 10000 tables, desquelles plus de 500 ont plus de 7
141 millions de lignes. Ceci represente environ 50G de donnees critiques.
143 A la base de la conception de MySQL, on retrouve une serie de routines
144 qui ont ete utilisees dans un environnement de production pendant
145 plusieurs annees. Meme si MySQL est encore en developpement, il offre
146 deja une riche et utile serie de fonctions.
148 %description -l pl.UTF-8
149 MySQL to prawdziwie wieloużytkownikowy, wielowątkowy serwer baz danych
150 SQL. SQL jest najpopularniejszym na świecie językiem używanym do baz
151 danych. MySQL to implementacja klient/serwer składająca się z demona
152 mysqld i wielu różnych programów i bibliotek klienckich.
154 Głównymi celami MySQL-a są szybkość, potęga i łatwość użytkowania.
155 MySQL oryginalnie był tworzony, ponieważ autorzy w Tcx potrzebowali
156 serwera SQL do obsługi bardzo dużych baz danych z szybkością o wiele
157 większą, niż mogli zaoferować inni producenci baz danych. Używają go
158 od 1996 roku w środowisku z ponad 40 bazami danych, 10 000 tabel, z
159 których ponad 500 zawiera ponad 7 milionów rekordów - w sumie około
160 50GB krytycznych danych.
162 Baza, na której oparty jest MySQL, składa się ze zbioru procedur,
163 które były używane w bardzo wymagającym środowisku produkcyjnym przez
164 wiele lat. Pomimo, że MySQL jest ciągle rozwijany, już oferuje bogaty
165 i użyteczny zbiór funkcji.
167 %description -l de.UTF-8
168 MySQL ist eine SQL-Datenbank. Allerdings ist sie im Gegensatz zu
169 Oracle, DB2 oder PostgreSQL keine relationale Datenbank. Die Daten
170 werden zwar in zweidimensionalen Tabellen gespeichert und können mit
171 einem Primärschlüssel versehen werden. Es ist aber keine Definition
172 eines Fremdschlüssels möglich. Der Benutzer ist somit bei einer
173 MySQL-Datenbank völlig allein für die (referenzielle) Integrität der
174 Daten verantwortlich. Allein durch die Nutzung externer
175 Tabellenformate, wie InnoDB bzw Berkeley DB wird eine Relationalität
176 ermöglicht. Diese Projekte sind aber getrennt von MySQL zu betrachten.
178 %description -l pt_BR.UTF-8
179 O MySQL é um servidor de banco de dados SQL realmente multiusuário e
180 multi-tarefa. A linguagem SQL é a mais popular linguagem para banco de
181 dados no mundo. O MySQL é uma implementação cliente/servidor que
182 consiste de um servidor chamado mysqld e diversos
183 programas/bibliotecas clientes. Os principais objetivos do MySQL são:
184 velocidade, robustez e facilidade de uso. O MySQL foi originalmente
185 desenvolvido porque nós na Tcx precisávamos de um servidor SQL que
186 pudesse lidar com grandes bases de dados e com uma velocidade muito
187 maior do que a que qualquer vendedor podia nos oferecer. Estamos
188 usando o MySQL desde 1996 em um ambiente com mais de 40 bases de dados
189 com 10.000 tabelas, das quais mais de 500 têm mais de 7 milhões de
190 linhas. Isto é o equivalente a aproximadamente 50G de dados críticos.
191 A base da construção do MySQL é uma série de rotinas que foram usadas
192 em um ambiente de produção com alta demanda por muitos anos. Mesmo o
193 MySQL estando ainda em desenvolvimento, ele já oferece um conjunto de
194 funções muito ricas e úteis. Veja a documentação para maiores
197 %description -l ru.UTF-8
198 MySQL - это SQL (Structured Query Language) сервер базы данных. MySQL
199 была написана Michael'ом (monty) Widenius'ом. См. файл CREDITS в
200 дистрибутиве на предмет других участников проекта и прочей информации
203 %description -l uk.UTF-8
204 MySQL - це SQL (Structured Query Language) сервер бази даних. MySQL
205 було написано Michael'ом (monty) Widenius'ом. Див. файл CREDITS в
206 дистрибутиві для інформації про інших учасників проекту та іншої
210 Summary: MySQL - character sets definitions
211 Summary(pl.UTF-8): MySQL - definicje kodowań znaków
212 Group: Applications/Databases
214 %description charsets
215 This package contains character sets definitions needed by both client
218 %description charsets -l pl.UTF-8
219 Ten pakiet zawiera definicje kodowań znaków potrzebne dla serwera i
223 Summary: MySQL additional utilities
224 Summary(pl.UTF-8): Dodatkowe narzędzia do MySQL
225 Group: Applications/Databases
226 Requires: %{name}-libs = %{version}-%{release}
229 MySQL additional utilities except Perl scripts (they may be found in
230 %{name}-extras-perl package).
232 %description extras -l pl.UTF-8
233 Dodatkowe narzędzia do MySQL - z wyjątkiem skryptów Perla (które są w
234 pakiecie %{name}-extras-perl).
237 Summary: MySQL additional utilities written in Perl
238 Summary(pl.UTF-8): Dodatkowe narzędzia do MySQL napisane w Perlu
239 Group: Applications/Databases
240 Requires: %{name}-extras = %{version}-%{release}
241 Requires: perl(DBD::mysql)
243 %description extras-perl
244 MySQL additional utilities written in Perl.
246 %description extras-perl -l pl.UTF-8
247 Dodatkowe narzędzia do MySQL napisane w Perlu.
250 Summary: MySQL - Client
251 Summary(pl.UTF-8): MySQL - Klient
252 Summary(pt.UTF-8): MySQL - Cliente
253 Summary(ru.UTF-8): MySQL клиент
254 Summary(uk.UTF-8): MySQL клієнт
255 Group: Applications/Databases
256 Requires: %{name}-charsets = %{version}-%{release}
257 Requires: %{name}-libs = %{version}-%{release}
258 Obsoletes: MySQL-client
261 This package contains the standard MySQL clients.
263 %description client -l fr.UTF-8
264 Ce package contient les clients MySQL standards.
266 %description client -l pl.UTF-8
267 Standardowe programy klienckie MySQL.
269 %description client -l pt_BR.UTF-8
270 Este pacote contém os clientes padrão para o MySQL.
272 %description client -l ru.UTF-8
273 Этот пакет содержит только клиент MySQL.
275 %description client -l uk.UTF-8
276 Цей пакет містить тільки клієнта MySQL.
279 Summary: Shared libraries for MySQL
280 Summary(pl.UTF-8): Biblioteki dzielone MySQL
282 Obsoletes: libmysql10
283 Obsoletes: mysql-doc < 4.1.12
286 Shared libraries for MySQL.
288 %description libs -l pl.UTF-8
289 Biblioteki dzielone MySQL.
292 Summary: MySQL - Development header files and libraries
293 Summary(pl.UTF-8): MySQL - Pliki nagłówkowe i biblioteki dla programistów
294 Summary(pt.UTF-8): MySQL - Medições de desempenho
295 Summary(ru.UTF-8): MySQL - хедеры и библиотеки разработчика
296 Summary(uk.UTF-8): MySQL - хедери та бібліотеки програміста
297 Group: Development/Libraries
298 Requires: %{name}-libs = %{version}-%{release}
299 %{?with_ssl:Requires: openssl-devel}
301 Obsoletes: MySQL-devel
302 Obsoletes: libmysql10-devel
305 This package contains the development header files and libraries
306 necessary to develop MySQL client applications.
308 %description devel -l fr.UTF-8
309 Ce package contient les fichiers entetes et les librairies de
310 developpement necessaires pour developper des applications clientes
313 %description devel -l pl.UTF-8
314 Pliki nagłówkowe i biblioteki konieczne do kompilacji aplikacji
317 %description devel -l pt_BR.UTF-8
318 Este pacote contém os arquivos de cabeçalho (header files) e
319 bibliotecas necessárias para desenvolver aplicações clientes do MySQL.
321 %description devel -l ru.UTF-8
322 Этот пакет содержит хедеры и библиотеки разработчика, необходимые для
323 разработки клиентских приложений.
325 %description devel -l uk.UTF-8
326 Цей пакет містить хедери та бібліотеки програміста, необхідні для
327 розробки програм-клієнтів.
330 Summary: MySQL static libraries
331 Summary(pl.UTF-8): Biblioteki statyczne MySQL
332 Summary(ru.UTF-8): MySQL - статические библиотеки
333 Summary(uk.UTF-8): MySQL - статичні бібліотеки
334 Group: Development/Libraries
335 Requires: %{name}-devel = %{version}-%{release}
336 Obsoletes: MySQL-static
339 MySQL static libraries.
341 %description static -l pl.UTF-8
342 Biblioteki statyczne MySQL.
344 %description static -l ru.UTF-8
345 Этот пакет содержит статические библиотеки разработчика, необходимые
346 для разработки клиентских приложений.
348 %description static -l uk.UTF-8
349 Цей пакет містить статичні бібліотеки програміста, необхідні для
350 розробки програм-клієнтів.
353 Summary: MySQL - Benchmarks
354 Summary(pl.UTF-8): MySQL - Programy testujące szybkość działania bazy
355 Summary(pt.UTF-8): MySQL - Medições de desempenho
356 Summary(ru.UTF-8): MySQL - бенчмарки
357 Summary(uk.UTF-8): MySQL - бенчмарки
358 Group: Applications/Databases
359 Requires: %{name} = %{version}-%{release}
360 Requires: %{name}-client
361 Requires: perl(DBD::mysql)
362 Obsoletes: MySQL-bench
365 This package contains MySQL benchmark scripts and data.
367 %description bench -l pl.UTF-8
368 Programy testujące szybkość serwera MySQL.
370 %description bench -l pt_BR.UTF-8
371 Este pacote contém medições de desempenho de scripts e dados do MySQL.
373 %description bench -l ru.UTF-8
374 Этот пакет содержит скрипты и данные для оценки производительности
377 %description bench -l uk.UTF-8
378 Цей пакет містить скрипти та дані для оцінки продуктивності MySQL.
381 Summary: MySQL manual
382 Summary(pl.UTF-8): Podręcznik użytkownika MySQL
383 Group: Applications/Databases
386 This package contains manual in HTML format.
388 %description doc -l pl.UTF-8
389 Podręcznik MySQL-a w formacie HTML.
392 Summary: MySQL - NDB Storage Engine Daemon
393 Summary(pl.UTF-8): MySQL - demon silnika przechowywania danych NDB
394 Group: Applications/Databases
395 Requires: %{name}-libs = %{version}-%{release}
398 This package contains the standard MySQL NDB Storage Engine Daemon.
400 %description ndb -l pl.UTF-8
401 Ten pakiet zawiera standardowego demona silnika przechowywania danych
405 Summary: MySQL - NDB Clients
406 Summary(pl.UTF-8): MySQL - programy klienckie NDB
407 Group: Applications/Databases
408 Requires: %{name}-libs = %{version}-%{release}
410 %description ndb-client
411 This package contains the standard MySQL NDB Clients.
413 %description ndb-client -l pl.UTF-8
414 Ten pakiet zawiera standardowe programy klienckie MySQL NDB.
417 Summary: MySQL - NDB Management Daemon
418 Summary(pl.UTF-8): MySQL - demon zarządzający NDB
419 Group: Applications/Databases
420 Requires: %{name}-libs = %{version}-%{release}
423 This package contains the standard MySQL NDB Management Daemon.
425 %description ndb-mgm -l pl.UTF-8
426 Ten pakiet zawiera standardowego demona zarządzającego MySQL NDB.
429 Summary: MySQL - NDB CPC Daemon
430 Summary(pl.UTF-8): MySQL - demon NDB CPC
431 Group: Applications/Databases
432 Requires: %{name}-libs = %{version}-%{release}
435 This package contains the standard MySQL NDB CPC Daemon.
437 %description ndb-cpc -l pl.UTF-8
438 Ten pakiet zawiera standardowego demona MySQL NDB CPC.
441 %setup -q -n %{name}-%{version}-beta
443 #%{?with_tcpd:%patch1 -p1} # WHATS PURPOSE OF THIS PATCH?
444 #%patch2 -p1 # NEEDS CHECK, which exact program needs -lc++
447 # this is strange: mysqld functions for UDF modules are not explicitly defined,
448 # so -rdynamic is used; in such case gcc3+ld on alpha doesn't like C++ vtables
449 # in objects compiled without -fPIC
471 # The compiler flags are as per their "official" spec ;)
472 CXXFLAGS="%{rpmcflags} -felide-constructors -fno-rtti -fno-exceptions %{!?debug:-fomit-frame-pointer}"
473 CFLAGS="%{rpmcflags} %{!?debug:-fomit-frame-pointer}"
475 # NOTE: the PS, FIND_PROC, KILL, CHECK_PID are not used by PLD Linux
476 # and therefore do not add BR on these. These are here just to satisfy
481 FIND_PROC='/bin/ps p $$PID' \
483 CHECK_PID='/bin/kill -0 $$PID' \
485 --enable-largefile=yes \
488 --enable-thread-safe-client \
489 --with%{!?with_innodb:out}-innodb \
490 --with%{!?with_raid:out}-raid \
491 --with%{!?with_ssl:out}-ssl=/usr \
492 --with%{!?with_tcpd:out}-libwrap \
493 %{?with_big_tables:--with-big-tables} \
494 --with-comment="PLD Linux Distribution MySQL RPM" \
495 --with%{!?debug:out}-debug%{?debug:=full} \
496 --with%{!?debug:out}-ndb-debug \
497 --with-embedded-server \
498 --with-extra-charsets=all \
500 --with-mysqld-user=mysql \
501 --with-named-curses-libs="-lncurses" \
502 --with-named-thread-libs="-lpthread" \
503 --with-unix-socket-path=/var/lib/mysql/mysql.sock \
504 --with-archive-storage-engine \
505 --with-fast-mutexes \
515 # NOTE that /var/lib/mysql/mysql.sock is symlink to real sock file
516 # (it defaults to first cluster but user may change it to whatever
519 echo -e "all:\ninstall:\nclean:\nlink_sources:\n" > libmysqld/examples/Makefile
522 benchdir=$RPM_BUILD_ROOT%{_datadir}/sql-bench
524 %{__make} -C Docs mysql.info
527 rm -rf $RPM_BUILD_ROOT
528 install -d $RPM_BUILD_ROOT/etc/{logrotate.d,rc.d/init.d,sysconfig,mysql} \
529 $RPM_BUILD_ROOT/var/{log/{archiv,}/mysql,lib/mysql} \
530 $RPM_BUILD_ROOT{%{_infodir},%{_mysqlhome}}
534 DESTDIR=$RPM_BUILD_ROOT \
535 benchdir=%{_datadir}/sql-bench \
537 # libsdir is to avoid installing innodb static libs in $RPM_BUILD_ROOT../libs
539 install Docs/mysql.info $RPM_BUILD_ROOT%{_infodir}
541 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql
542 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/mysql
543 install %{SOURCE3} $RPM_BUILD_ROOT/etc/logrotate.d/mysql
544 # This is template for configuration file which is created after 'service mysql init'
545 install %{SOURCE4} mysqld.conf
546 install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/mysql/clusters.conf
547 touch $RPM_BUILD_ROOT/var/log/mysql/{err,log,update}
549 # remove innodb directives from mysqld.conf if mysqld is configured without
550 %if %{without innodb}
551 cp mysqld.conf mysqld.tmp
552 awk 'BEGIN { RS="\n\n" } !/innodb/ { printf("%s\n\n", $0) }' < mysqld.tmp > mysqld.conf
555 # remove berkeley-db directives from mysqld.conf if mysqld is configured without
556 cp mysqld.conf mysqld.tmp
557 awk 'BEGIN { RS="\n\n" } !/bdb/ { printf("%s\n\n", $0) }' < mysqld.tmp > mysqld.conf
559 install mysqld.conf $RPM_BUILD_ROOT%{_datadir}/mysql/mysqld.conf
560 cp -a %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/mysql/mysql-client.conf
563 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb
564 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb
565 install %{SOURCE9} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb-mgm
566 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb-mgm
567 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/mysql-ndb-cpc
568 install %{SOURCE12} $RPM_BUILD_ROOT/etc/sysconfig/mysql-ndb-cpc
570 mv -f $RPM_BUILD_ROOT%{_libdir}/mysql/lib* $RPM_BUILD_ROOT%{_libdir}
571 sed -i -e 's,%{_libdir}/mysql,%{_libdir},' $RPM_BUILD_ROOT{%{_libdir}/libmysqlclient{,_r}.la,%{_bindir}/mysql_config}
573 # remove known unpackaged files
574 rm -rf $RPM_BUILD_ROOT%{_prefix}/mysql-test
576 # remove .txt variants for .sys messages
577 rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/*/*.txt
579 # rename not to be so generic name
580 mv $RPM_BUILD_ROOT%{_bindir}/{,mysql_}resolve_stack_dump
582 # not useful without -debug build
583 %{!?debug:rm -f $RPM_BUILD_ROOT%{_bindir}/mysql_resolve_stack_dump}
584 # generate symbols file, so one can generate backtrace using it
585 # mysql_resolve_stack_dump -s %{_datadir}/mysql/mysqld.sym -n mysqld.stack.
586 # http://dev.mysql.com/doc/refman/5.0/en/using-stack-trace.html
587 %{?debug:nm -n $RPM_BUILD_ROOT%{_sbindir}/mysqld > $RPM_BUILD_ROOT%{_datadir}/mysql/mysqld.sym}
589 # do not clobber users $PATH
590 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_create_system_tables
591 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_upgrade
592 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/innochecksum
593 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/myisamchk
594 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/myisamlog
595 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/myisampack
596 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysql_fix_privilege_tables
597 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/my_print_defaults
598 mv $RPM_BUILD_ROOT{%{_bindir},%{_sbindir}}/mysqlcheck
600 # functionality in initscript / rpm
601 rm $RPM_BUILD_ROOT%{_bindir}/mysql_install_db
602 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql_install_db.1*
603 rm $RPM_BUILD_ROOT%{_bindir}/mysqld_safe
604 rm $RPM_BUILD_ROOT%{_bindir}/mysqld_multi
605 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysqld_{multi,safe}*
606 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/mysql-log-rotate
607 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/mysql.server
608 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/binary-configure
609 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/errmsg.txt
610 rm $RPM_BUILD_ROOT%{_bindir}/mysql_waitpid
611 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysql.server*
612 rm $RPM_BUILD_ROOT%{_mandir}/man1/mysqlman.1*
613 rm $RPM_BUILD_ROOT%{_bindir}/resolveip
615 # we don't package those (we have no -test or -testsuite pkg) and some of them just segfault
616 rm $RPM_BUILD_ROOT%{_bindir}/mysql_client_test
617 rm $RPM_BUILD_ROOT%{_datadir}/mysql/mi_test_all
618 rm $RPM_BUILD_ROOT%{_datadir}/mysql/mi_test_all.res
621 rm $RPM_BUILD_ROOT%{_datadir}/%{name}/*.{ini,cnf}
624 rm $RPM_BUILD_ROOT%{_libdir}/mysql/ha_{example,blackhole,federated}.{a,la}
627 rm -rf $RPM_BUILD_ROOT
630 %groupadd -g 89 mysql
631 %useradd -u 89 -d %{_mysqlhome} -s /bin/sh -g mysql -c "MySQL Server" mysql
634 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
636 /sbin/chkconfig --add mysql
637 %service mysql restart
640 if [ "$1" = "0" ]; then
641 %service -q mysql stop
642 /sbin/chkconfig --del mysql
646 [ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
649 if [ "$1" = "0" ]; then
655 /sbin/chkconfig --add mysql-ndb
656 %service mysql-ndb restart "mysql NDB engine"
659 if [ "$1" = "0" ]; then
660 %service mysql-ndb stop
661 /sbin/chkconfig --del mysql-ndb
665 /sbin/chkconfig --add mysql-ndb-mgm
666 %service mysql-ndb-mgm restart "mysql NDB management node"
669 if [ "$1" = "0" ]; then
670 %service mysql-ndb-mgm stop
671 /sbin/chkconfig --del mysql-ndb-mgm
675 /sbin/chkconfig --add mysql-ndb-cpc
676 %service mysql-ndb-cpc restart "mysql NDB CPC"
679 if [ "$1" = "0" ]; then
680 %service mysql-ndb-cpc stop
681 /sbin/chkconfig --del mysql-ndb-cpc
684 %post libs -p /sbin/ldconfig
685 %postun libs -p /sbin/ldconfig
687 %triggerpostun -- mysql <= 4.0.20-2
688 # For clusters in /etc/mysql/clusters.conf
689 if [ -f "/etc/sysconfig/mysql" ]; then
690 . /etc/sysconfig/mysql
691 if [ -n "$MYSQL_DB_CLUSTERS" ]; then
692 for i in "$MYSQL_DB_CLUSTERS"; do
693 echo "$i/mysqld.conf=$i" >> /etc/mysql/clusters.conf
695 echo "# Do not use **obsolete** option MYSQL_DB_CLUSTERS" >> /etc/sysconfig/mysql
696 echo "# USE /etc/mysql/clusters.conf instead" >> /etc/sysconfig/mysql
697 echo "Converted clusters from MYSQL_DB_CLUSTERS to /etc/mysql/clusters.conf."
698 echo "You NEED to fix your /etc/sysconfig/mysql and verify /etc/mysql/clusters.conf."
702 %triggerpostun -- mysql <= 4.1.1
703 # For better compatibility with prevoius versions:
704 for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/mysql/clusters.conf); do
705 if echo "$config" | grep -q '^/'; then
706 config_file="$config"
707 elif [ -f "/etc/mysql/$config" ]; then
708 config_file=/etc/mysql/$config
710 clusterdir=$(awk -F= "/^$config/{print \$2}" /etc/mysql/clusters.conf)
711 if [ -z "$clusterdir" ]; then
712 echo >&2 "Can't find cluster dir for $config!"
713 echo >&2 "Please remove extra (leading) spaces from /etc/mysql/clusters.conf"
716 config_file="$clusterdir/mysqld.conf"
719 if [ ! -f "$config_file" ]; then
720 echo >&2 "Lost myself! Please report this (with above errors, if any) to http://bugs.pld-linux.org/"
723 echo "Adding option old-passwords to config: $config_file"
724 echo "If you want to use new, better passwords - remove it"
726 # sed magic to add 'old-passwords' to [mysqld] section
727 sed -i -e '/./{H;$!d;};x;/\[mysqld\]/{
729 a; Compatibility options:
735 %banner -e %{name}-4.1.x <<-EOF
736 If you want to use new help tables in MySQL 4.1.x then You'll need to import the help data:
737 mysql -u mysql mysql < %{_datadir}/%{name}/fill_help_tables.sql
741 %triggerpostun -- mysql < 5.1
743 for config in $(awk -F= '!/^#/ && /=/{print $1}' /etc/mysql/clusters.conf); do
744 if echo "$config" | grep -q '^/'; then
745 config_file="$config"
746 elif [ -f "/etc/mysql/$config" ]; then
747 config_file=/etc/mysql/$config
749 clusterdir=$(awk -F= "/^$config/{print \$2}" /etc/mysql/clusters.conf)
750 if [ -z "$clusterdir" ]; then
751 echo >&2 "Can't find cluster dir for $config!"
752 echo >&2 "Please remove extra (leading) spaces from /etc/mysql/clusters.conf"
755 config_file="$clusterdir/mysqld.conf"
758 if [ ! -f "$config_file" ]; then
759 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/"
762 configs="$configs $config_file"
766 echo 'You should run MySQL upgrade scripts for all MySQL clusters.'
767 echo 'Thus, you should invoke:'
768 for config in $configs; do
769 datadir=$(awk -F= '!/^#/ && $1 ~ /datadir/{print $2}' $config)
770 echo "# mysql_upgrade --datadir=$datadir"
772 ) | %banner -e %{name}-5.1
775 %defattr(644,root,root,755)
776 %doc support-files/*.cnf support-files/*.ini
777 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/mysql
778 %attr(754,root,root) /etc/rc.d/init.d/mysql
779 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql
780 %attr(640,root,mysql) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/clusters.conf
781 %attr(755,root,root) %{_sbindir}/innochecksum
782 %attr(755,root,root) %{_sbindir}/myisamchk
783 %attr(755,root,root) %{_sbindir}/myisamlog
784 %attr(755,root,root) %{_sbindir}/myisampack
785 %attr(755,root,root) %{_sbindir}/my_print_defaults
786 %attr(755,root,root) %{_sbindir}/mysqlcheck
787 %attr(755,root,root) %{_sbindir}/mysql_create_system_tables
788 %attr(755,root,root) %{_sbindir}/mysqld
789 %attr(755,root,root) %{_sbindir}/mysql_fix_privilege_tables
790 %attr(755,root,root) %{_sbindir}/mysql_upgrade
791 %dir %{_libdir}/mysql
792 %attr(755,root,root) %{_libdir}/mysql/ha_blackhole.so.*.*.*
793 %attr(755,root,root) %{_libdir}/mysql/ha_example.so.*.*.*
794 %attr(755,root,root) %{_libdir}/mysql/ha_federated.so.*.*.*
795 %{_mandir}/man1/my_print_defaults.1*
796 %{_mandir}/man1/myisamchk.1*
797 %{_mandir}/man1/myisamlog.1*
798 %{_mandir}/man1/myisampack.1*
799 %{_mandir}/man1/mysql_fix_privilege_tables.1*
800 %{_mandir}/man1/mysql_upgrade.1*
801 %{_mandir}/man1/mysqlcheck.1*
802 #%{_mandir}/man1/mysqld.1*
803 %{_mandir}/man8/mysqld.8*
805 %attr(700,mysql,mysql) %{_mysqlhome}
806 # root:root is proper here for AC mysql.rpm while mysql:mysql is potential security hole
807 %attr(751,root,root) /var/lib/mysql
808 %attr(750,mysql,mysql) %dir /var/log/mysql
809 %attr(750,mysql,mysql) %dir /var/log/archiv/mysql
810 %attr(640,mysql,mysql) %ghost /var/log/mysql/*
812 %{_infodir}/mysql.info*
813 # This is template for configuration file which is created after 'service mysql init'
814 %{_datadir}/mysql/mysqld.conf
815 %{_datadir}/mysql/english
816 %{_datadir}/mysql/fill_help_tables.sql
817 %{_datadir}/mysql/mysql_fix_privilege_tables.sql
818 %lang(cs) %{_datadir}/mysql/czech
819 %lang(da) %{_datadir}/mysql/danish
820 %lang(de) %{_datadir}/mysql/german
821 %lang(el) %{_datadir}/mysql/greek
822 %lang(es) %{_datadir}/mysql/spanish
823 %lang(et) %{_datadir}/mysql/estonian
824 %lang(fr) %{_datadir}/mysql/french
825 %lang(hu) %{_datadir}/mysql/hungarian
826 %lang(it) %{_datadir}/mysql/italian
827 %lang(ja) %{_datadir}/mysql/japanese
828 %lang(ko) %{_datadir}/mysql/korean
829 %lang(nl) %{_datadir}/mysql/dutch
830 %lang(nb) %{_datadir}/mysql/norwegian
831 %lang(nn) %{_datadir}/mysql/norwegian-ny
832 %lang(pl) %{_datadir}/mysql/polish
833 %lang(pt) %{_datadir}/mysql/portuguese
834 %lang(ro) %{_datadir}/mysql/romanian
835 %lang(ru) %{_datadir}/mysql/russian
836 %lang(sr) %{_datadir}/mysql/serbian
837 %lang(sk) %{_datadir}/mysql/slovak
838 %lang(sv) %{_datadir}/mysql/swedish
839 %lang(uk) %{_datadir}/mysql/ukrainian
842 %defattr(644,root,root,755)
843 %dir %{_datadir}/mysql
844 %{_datadir}/mysql/charsets
847 %defattr(644,root,root,755)
848 %attr(755,root,root) %{_bindir}/msql2mysql
849 %attr(755,root,root) %{_bindir}/myisam_ftdump
850 %attr(755,root,root) %{_bindir}/mysql_secure_installation
851 %attr(755,root,root) %{_bindir}/mysql_tzinfo_to_sql
852 %attr(755,root,root) %{_bindir}/perror
853 %attr(755,root,root) %{_bindir}/replace
854 %{_mandir}/man1/msql2mysql.1*
855 %{_mandir}/man1/myisam_ftdump.1*
856 %{_mandir}/man1/mysql_tzinfo_to_sql.1*
857 %{_mandir}/man1/perror.1*
858 %{_mandir}/man1/replace.1*
861 %defattr(644,root,root,755)
862 %attr(755,root,root) %{_bindir}/mysql_convert_table_format
863 %attr(755,root,root) %{_bindir}/mysql_find_rows
864 %attr(755,root,root) %{_bindir}/mysql_fix_extensions
865 %attr(755,root,root) %{_bindir}/mysql_setpermission
866 %attr(755,root,root) %{_bindir}/mysql_zap
867 %attr(755,root,root) %{_bindir}/mysqlaccess
868 %attr(755,root,root) %{_bindir}/mysqldumpslow
869 %attr(755,root,root) %{_bindir}/mysqlhotcopy
870 %{_mandir}/man1/mysql_zap.1*
871 %{_mandir}/man1/mysqlaccess.1*
872 %{_mandir}/man1/mysqlhotcopy.1*
875 %defattr(644,root,root,755)
876 %attr(755,root,root) %{_bindir}/mysql
877 %attr(755,root,root) %{_bindir}/mysqladmin
878 %attr(755,root,root) %{_bindir}/mysqlbinlog
879 %attr(755,root,root) %{_bindir}/mysqlbug
880 %attr(755,root,root) %{_bindir}/mysqldump
881 %attr(755,root,root) %{_bindir}/mysqlimport
882 %attr(755,root,root) %{_bindir}/mysqlshow
883 %attr(755,root,root) %{_bindir}/mysqlslap
884 %attr(755,root,root) %{_bindir}/mysqltest*
885 %attr(755,root,root) %{_sbindir}/mysqlmanager*
886 %{_mandir}/man1/mysql.1*
887 %{_mandir}/man1/mysqladmin.1*
888 %{_mandir}/man1/mysqlbinlog.1*
889 %{_mandir}/man1/mysqldump.1*
890 %{_mandir}/man1/mysqlimport.1*
891 #%{_mandir}/man1/mysqlmanager.1*
892 %{_mandir}/man1/mysqlshow.1*
893 %{_mandir}/man1/mysqlslap.1*
894 %{_mandir}/man8/mysqlmanager.8*
897 %defattr(644,root,root,755)
898 %doc EXCEPTIONS-CLIENT
899 %attr(755,root,root) %{_libdir}/lib*.so.*.*
900 %attr(751,root,root) %dir %{_sysconfdir}/mysql
901 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/mysql/mysql-client.conf
904 %defattr(644,root,root,755)
905 %attr(755,root,root) %{_bindir}/mysql_config
906 %attr(755,root,root) %{_libdir}/lib*.so
907 %{?debug:%attr(755,root,root) %{_bindir}/*resolve_stack_dump}
908 %{?debug:%{_datadir}/mysql/mysqld.sym}
910 %{_libdir}/lib*[!tr].a
912 %{_mandir}/man1/mysql_config.1*
915 %defattr(644,root,root,755)
916 %{_libdir}/lib*[tr].a
919 %defattr(644,root,root,755)
920 %attr(755,root,root) %{_bindir}/mysqltest
921 %dir %{_datadir}/sql-bench
922 %{_datadir}/sql-bench/[CDRl]*
923 %attr(755,root,root) %{_datadir}/sql-bench/[bcgirst]*
926 #%defattr(644,root,root,755)
927 #%doc Docs/manual.html Docs/manual_toc.html
930 %defattr(644,root,root,755)
931 %attr(755,root,root) %{_sbindir}/ndbd
932 %attr(754,root,root) /etc/rc.d/init.d/mysql-ndb
933 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb
936 %defattr(644,root,root,755)
937 %attr(755,root,root) %{_bindir}/ndb_config
938 %attr(755,root,root) %{_bindir}/ndb_delete_all
939 %attr(755,root,root) %{_bindir}/ndb_desc
940 %attr(755,root,root) %{_bindir}/ndb_drop_index
941 %attr(755,root,root) %{_bindir}/ndb_drop_table
942 %attr(755,root,root) %{_bindir}/ndb_error_reporter
943 %attr(755,root,root) %{_bindir}/ndb_mgm
944 %attr(755,root,root) %{_bindir}/ndb_print_backup_file
945 %attr(755,root,root) %{_bindir}/ndb_print_schema_file
946 %attr(755,root,root) %{_bindir}/ndb_print_sys_file
947 %attr(755,root,root) %{_bindir}/ndb_restore
948 %attr(755,root,root) %{_bindir}/ndb_select_all
949 %attr(755,root,root) %{_bindir}/ndb_select_count
950 %attr(755,root,root) %{_bindir}/ndb_show_tables
951 %attr(755,root,root) %{_bindir}/ndb_size.pl
952 %attr(755,root,root) %{_bindir}/ndb_test_platform
953 %attr(755,root,root) %{_bindir}/ndb_waiter
954 %attr(755,root,root) %{_datadir}/mysql/ndb_size.tmpl
955 %{_mandir}/man1/ndb_config.1*
956 %{_mandir}/man1/ndb_delete_all.1*
957 %{_mandir}/man1/ndb_desc.1*
958 %{_mandir}/man1/ndb_size.pl.1*
961 %defattr(644,root,root,755)
962 %attr(755,root,root) %{_sbindir}/ndb_mgmd
963 %attr(754,root,root) /etc/rc.d/init.d/mysql-ndb-mgm
964 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb-mgm
967 %defattr(644,root,root,755)
968 %attr(755,root,root) %{_sbindir}/ndb_cpcd
969 %attr(754,root,root) /etc/rc.d/init.d/mysql-ndb-cpc
970 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/mysql-ndb-cpc