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