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