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