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