/[packages]/cauldron/mariadb/current/SPECS/mariadb.spec
ViewVC logotype

Contents of /cauldron/mariadb/current/SPECS/mariadb.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 482934 - (show annotations) (download)
Sat Sep 21 11:27:38 2013 UTC (10 years, 6 months ago) by alien
File size: 31471 byte(s)
- Fix boost glibc compilation issue
1 #(ie. use with rpm --rebuild):
2 #
3 # --with debug Compile with debugging code
4 #
5 # enable build with debugging code: will _not_ strip away any debugging code,
6 # will _add_ -g3 to CFLAGS, will _add_ --enable-maintainer-mode to
7 # configure.
8
9 %define build_debug 0
10 %define build_test 0
11
12 # commandline overrides:
13 # rpm -ba|--rebuild --with 'xxx'
14 %{?_with_debug: %{expand: %%define build_debug 1}}
15 %{?_with_test: %{expand: %%define build_test 1}}
16 %{?_without_test: %global build_test 0}
17
18 %if %{build_debug}
19 # disable build root strip policy
20 %define __spec_install_post %{_libdir}/rpm/brp-compress || :
21
22 # This gives extra debuggin and huge binaries
23 %{expand:%%define optflags %{optflags} %([ ! $DEBUG ] && echo '-g3')}
24 %endif
25
26 %if %{build_debug}
27 %define build_debug 1
28 %endif
29
30 %if %{build_test}
31 %define build_test 1
32 %endif
33
34 %define major 18
35 %define libmysqlembedded_major 0
36 %define libmysqlembedded_minor 0.1
37 %define libname %mklibname mariadb %{major}
38 %define libmariadbservices %mklibname mariadbservices
39 %define libmariadbembedded %mklibname mariadb-embedded %{major}
40 %define develname %mklibname -d mariadb
41 %define old_staticdevelname %mklibname -d -s mariadb
42 %define libmariadbembedded_devel %mklibname -d mariadb-embedded
43
44 %define mysql_libname %mklibname mysql %{major}
45 %define mysql_develname %mklibname -d mysql
46 %define libmysqlservices %mklibname mysqlservices
47 %define libmysqlembedded %mklibname mysqld %{libmysqlembedded_major}
48 %define libmysqlembedded_devel %mklibname -d mariadb-embedded
49
50 %define mirror http://ftp.osuosl.org/pub/mariadb
51
52 %define boostver 1_53_0
53
54 %define muser mysql
55 Summary: A very fast and reliable SQL database engine
56 Name: mariadb
57 Version: 5.5.33a
58 Release: %mkrel 1
59 Group: Databases
60 License: GPLv2 with exceptions
61 URL: http://mariadb.org/
62 Source0: %{mirror}/%{name}-%{version}/kvm-tarbake-jaunty-x86/%{name}-%{version}.tar.gz
63 Source2: mysqld.sysconfig
64 Source3: my.cnf
65 Source10: mysql.tmpfiles.d
66 Source11: mysqld.service
67 Source12: mysqld-prepare-db-dir
68 Source13: mysqld-wait-ready
69 # the following patches are rediffed from the mysql-5.5 src.rpm to mariadb-5.5
70 # fedora patches
71 Patch1: mariadb-5.5-errno.patch
72 Patch3: mariadb-5.5-install-test.patch
73 Patch4: mysql-expired-certs.patch
74
75 # mandriva patches
76 Patch101: mariadb-5.5-logrotate.patch
77 Patch106: mariadb-5.5-hotcopy.patch
78 Patch107: mariadb-5.5-mysql_install_db-quiet.patch
79
80 # mageia patches
81 Patch120: mariadb-5.5.25-forgotten-files.patch
82 Patch132: mariadb-5.5-no-anonymous-user.patch
83
84 Requires(post): systemd >= %{systemd_required_version}
85 Requires(post): rpm-helper >= 0.24.8-1
86 Requires(preun): rpm-helper >= 0.24.8-1
87 Requires(post): %{name}-common%{_isa} = %{version}-%{release}
88 Requires(preun): %{name}-common%{_isa} = %{version}-%{release}
89 Requires(post): %{name}-client%{_isa} = %{version}-%{release}
90 Requires(preun): %{name}-client%{_isa} = %{version}-%{release}
91 Requires(postun): %{name}-common%{_isa} = %{version}-%{release}
92 Requires(postun): %{name}-client%{_isa} = %{version}-%{release}
93 Requires: %{name}-common%{_isa} = %{version}-%{release}
94 Requires: %{name}-core%{_isa} = %{version}-%{release}
95 Requires: %{name}-client%{_isa} = %{version}-%{release}
96 Provides: mysql = %{version}-%{release}
97 Obsoletes: mysql < %{version}-%{release}
98 Obsoletes: %{libmariadbservices} < 5.5.18-0.3194.20111227.1
99 Obsoletes: %{libmysqlservices} < %{version}-%{release}
100 Conflicts: %{name}-extra%{_isa} < %{version}-%{release}
101 Conflicts: %{name}-feedback%{_isa} < %{version}-%{release}
102 Conflicts: %{name}-obsolete%{_isa} < %{version}-%{release}
103 Suggests: %{name}-extra%{_isa}
104 BuildRequires: bison
105 BuildRequires: cmake
106 BuildRequires: doxygen
107 BuildRequires: glibc-devel
108 BuildRequires: libaio-devel
109 BuildRequires: libstdc++-devel
110 BuildRequires: libtermcap-devel
111 BuildRequires: multiarch-utils >= 1.0.3
112 BuildRequires: ncurses-devel
113 BuildRequires: openssl-devel
114 BuildRequires: wrap-devel
115 BuildRequires: python
116 BuildRequires: systemtap
117 BuildRequires: tetex
118 BuildRequires: texinfo
119 BuildRequires: xfs-devel
120 BuildRequires: zlib-devel
121 BuildRequires: libaio-devel
122 BuildRequires: pam-devel
123 BuildConflicts: edit-devel
124
125 ## internal BOOST sources
126 Source200: http://download.sourceforge.net/boost/boost_%{boostver}.tar.bz2
127 # https://svn.boost.org/trac/boost/ticket/6150
128 Patch204: boost-1.50.0-fix-non-utf8-files.patch
129 # https://bugzilla.redhat.com/show_bug.cgi?id=756005
130 # https://svn.boost.org/trac/boost/ticket/6131
131 Patch207: boost-1.50.0-foreach.patch
132 # https://bugzilla.redhat.com/show_bug.cgi?id=783660
133 # https://svn.boost.org/trac/boost/ticket/6459 fixed
134 Patch210: boost-1.50.0-long-double-1.patch
135 # https://bugzilla.redhat.com/show_bug.cgi?id=828856
136 # https://bugzilla.redhat.com/show_bug.cgi?id=828857
137 Patch215: boost-1.50.0-pool.patch
138 Patch216: boost-1.54.0-glibc.patch
139 BuildRequires: python-devel
140 BuildRequires: icu-devel
141 BuildRequires: bzip2-devel
142
143 %description
144 The MariaDB software delivers a very fast, multi-threaded, multi-user, and
145 robust SQL (Structured Query Language) database server. MariaDB Server is
146 intended for mission-critical, heavy-load production systems as well as for
147 embedding into mass-deployed software.
148
149 The mariadb server is compiled with the following storage engines:
150
151 - Aria Storage Engine
152 - Archive Storage Engine
153 - Blackhole Storage Engine
154 - CSV Storage Engine
155 - FederatedX Storage Engine (Federated replacement)
156 - Heap Storage Engine
157 - MyISAM Storage Engine
158 - MyISAMMRG Storage Engine
159 - Partition Storage Engine
160 - Perfschema Storage Engine
161 - XtraDB Storage Engine (InnoDB replacement)
162
163 The following extra storage engines are provided by the mariadb-extra package
164
165 - OQGraph Storage Engine
166 - Sphinx Storage Engine
167
168 The feedback storage engine is provided by the mariadb-feedback package
169
170 - Feedback Storage Engine
171
172 The following storage engines are provided in the mariadb-obsolete package
173
174 - Federated Storage Engine
175 - InnoDB Storage Engine
176
177 %package -n mysql-MariaDB
178 Summary: A MySQL drop-in replacement
179 Group: System/Servers
180 Requires: %{name}%{_isa}
181
182 %description -n mysql-MariaDB
183 MariaDB is a complete MySQL drop-in replacement with additional fixes and
184 storage engines.
185
186 This package is used as a transitional virtual package, which requires
187 MariaDB so that people who used to use mysql can find it nicely.
188
189 %package feedback
190 Summary: MariaDB feedback storage engine
191 Group: System/Servers
192 Requires: %{name}-common-core%{_isa} >= %{version}-%{release}
193 Conflicts: %{name}-common-core%{_isa} < %{version}-%{release}
194
195 %description feedback
196 MariaDB feedback storage engine submits feedback about your mariadb server.
197 Results can be seen on http://mariadb.org/feedback_plugin/ .
198
199 %package extra
200 Summary: MariaDB extra storage engines
201 Group: System/Servers
202 Requires: %{name}-common-core%{_isa} >= %{version}-%{release}
203 Conflicts: %{name}-common-core%{_isa} < %{version}-%{release}
204
205 %description extra
206 MariaDB oqgraph and sphinx storage engines.
207
208 %package obsolete
209 Summary: MariaDB obsolete storage engines
210 Group: System/Servers
211 Requires: %{name}-common-core%{_isa} >= %{version}-%{release}
212 Conflicts: %{name}-common-core%{_isa} < %{version}-%{release}
213 Conflicts: mysql-core < 5.5.18
214
215 %description obsolete
216 MariaDB obsolete storage engines. InnoDB and Federated are being replaced by
217 XtraDB and FederatedX storage engines. These obsolete storage engines are
218 provided in case you need the vanilla mysql storage engines.
219
220 %package core
221 Summary: Server core binary
222 Group: System/Servers
223 Requires: %{name}-common-core%{_isa} >= %{version}-%{release}
224 Provides: mysql-core = %{version}-%{release}
225 Obsoletes: mysql-core < %{version}-%{release}
226
227 %description core
228 Core mysqld server binary. For a full MariaDB database server, install
229 package 'mariadb'.
230
231 %package common-core
232 Summary: Common files required by core binary
233 Group: System/Servers
234 Provides: mysql-common-core = %{version}-%{release}
235 Obsoletes: mysql-common-core < %{version}-%{release}
236
237 %description common-core
238 Common files minimally required by mysqld server binary.
239
240 %package common
241 Summary: Common files
242 Group: System/Servers
243 Requires(post): rpm-helper
244 Requires(preun): rpm-helper
245 Requires(pre): rpm-helper
246 Requires(postun): rpm-helper
247 Requires(post): %{name}-client%{_isa} >= %{version}-%{release}
248 Requires(preun): %{name}-client%{_isa} >= %{version}-%{release}
249 Requires: %{name}-client%{_isa} >= %{version}-%{release}
250 Requires: %{name}-common-core%{_isa} >= %{version}-%{release}
251 Provides: mysql-common = %{version}-%{release}
252 Obsoletes: mysql-common < %{version}-%{release}
253
254 %description common
255 Common files for the MariaDB database server.
256
257 %package client
258 Summary: Client
259 Group: Databases
260 Requires(post): %{libname}%{_isa} >= %{version}-%{release}
261 Requires(preun): %{libname}%{_isa} >= %{version}-%{release}
262 Requires: %{libname}%{_isa} >= %{version}-%{release}
263 Provides: mysql-client = %{version}-%{release}
264 Obsoletes: mysql-client < %{version}-%{release}
265
266 %description client
267 This package contains the standard MariaDB clients.
268
269 %package bench
270 Summary: Benchmarks and test system
271 Group: System/Servers
272 Requires(post): %{name}-client%{_isa} >= %{version}-%{release}
273 Requires(preun): %{name}-client%{_isa} >= %{version}-%{release}
274 Requires: %{name}-client%{_isa} >= %{version}-%{release}
275 Suggests: %{name}%{_isa} >= %{version}-%{release}
276 Provides: mysql-bench = %{version}-%{release}
277 Obsoletes: mysql-bench < %{version}-%{release}
278
279 %description bench
280 This package contains MariaDB benchmark scripts and data.
281
282 %package -n %{libname}
283 Summary: Shared libraries
284 Group: System/Libraries
285 Provides: %{name}-shared-libs = %{version}-%{release}
286 Provides: %{name}-shared = %{version}-%{release}
287 Provides: %{mysql_libname} = %{version}-%{release}
288 Obsoletes: %{mysql_libname} < %{version}-%{release}
289
290 %description -n %{libname}
291 This package contains the shared libraries (*.so*) which certain languages and
292 applications need to dynamically load and use MariaDB.
293
294 %package -n %{develname}
295 Summary: Development header files and libraries
296 Group: Development/Other
297 Requires(post): %{libname} >= %{version}-%{release}
298 Requires(preun): %{libname} >= %{version}-%{release}
299 Requires(post): %{name}-common%{_isa} >= %{version}-%{release}
300 Requires(preun): %{name}-common%{_isa} >= %{version}-%{release}
301 Requires(post): %{name}-client%{_isa} >= %{version}-%{release}
302 Requires(preun): %{name}-client%{_isa} >= %{version}-%{release}
303 Requires: %{libname} = %{version}-%{release}
304 Requires: %{name}-common%{_isa} >= %{version}-%{release}
305 Requires: %{name}-client%{_isa} >= %{version}-%{release}
306 Provides: %{name}-devel = %{version}-%{release}
307 Provides: %{libname}-devel = %{version}-%{release}
308 Obsoletes: %{libname}-devel < %{version}-%{release}
309 Obsoletes: %{old_staticdevelname} < %{version}-%{release}
310 Provides: %{mysql_develname} = %{version}-%{release}
311 Obsoletes: %{mysql_develname} < %{version}-%{release}
312 Provides: mysql-devel = %{version}-%{release}
313
314 %description -n %{develname}
315 This package contains the development header files and libraries necessary to
316 develop MariaDB client applications.
317
318 %package -n %{libmariadbembedded}
319 Summary: MariaDB as an embeddable library
320 Group: System/Libraries
321 Provides: %{name}-embedded = %{version}-%{release}
322 Obsoletes: %{name}-embedded < %{version}-%{release}
323 Provides: %{libmysqlembedded} = %{version}-%{release}
324 Obsoletes: %{libmysqlembedded} < %{version}-%{release}
325
326 %description -n %{libmariadbembedded}
327 MariaDB is a multi-user, multi-threaded SQL database server. This
328 package contains a version of the MariaDB server that can be embedded
329 into a client application instead of running as a separate process.
330
331 The API is identical for the embedded MariaDB version and the client/server
332 version.
333
334 %package -n %{libmariadbembedded_devel}
335 Summary: Development files for MySQL as an embeddable library
336 Group: Development/Other
337 Provides: %{name}-embedded-devel = %{version}-%{release}
338 Obsoletes: %{name}-embedded-devel < %{version}-%{release}
339 Requires: %{libmariadbembedded} = %{version}-%{release}
340 Requires: %{develname} = %{version}-%{release}
341 Provides: %{libmysqlembedded_devel} = %{version}-%{release}
342 Obsoletes: %{libmysqlembedded_devel} < %{version}-%{release}
343 Provides: mysql-embedded-devel = %{version}-%{release}
344
345 %description -n %{libmariadbembedded_devel}
346 MariaDB is a multi-user, multi-threaded SQL database server. This
347 package contains files needed for developing and testing with
348 the embedded version of the MariaDB server.
349
350 The API is identical for the embedded MariaDB version and the client/server
351 version.
352
353
354 %prep
355 %setup -q
356 %patch1 -p1
357 %patch3 -p1
358 %patch4 -p1
359 %patch101 -p1
360 %patch106 -p1
361 %patch107 -p1
362 %patch120 -p1
363 %patch132 -p1
364
365 mkdir -p Mageia
366 cp %{SOURCE2} Mageia/mysqld.sysconfig
367 cp %{SOURCE3} Mageia/my.cnf
368
369 # remove the sql_yacc.cc file so that bison will regenerate it properly, even if it's patched
370 rm -f sql/sql_yacc.cc
371
372 # lib64 fix
373 perl -pi -e "s|/usr/lib/|%{_libdir}/|g" Mageia/my.cnf
374
375 # antiborker
376 perl -pi -e "s|\@bindir\@|%{_bindir}|g" support-files/* scripts/*
377 perl -pi -e "s|\@sbindir\@|%{_sbindir}|g" support-files/* scripts/*
378 perl -pi -e "s|\@libexecdir\@|%{_sbindir}|g" support-files/* scripts/*
379 perl -pi -e "s|\@localstatedir\@|/var/lib/mysql|g" support-files/* scripts/*
380 perl -pi -e "s|^basedir=.*|basedir=%{_prefix}|g" support-files/* scripts/mysql_install_db*
381
382 # this may be part of the problems with mysql-test
383 # http://bugs.mysql.com/bug.php?id=52223
384 #perl -pi -e "s|basedir/lib\b|basedir/%{_lib}\b|g" mysql-test/mysql-test-run.pl
385 #perl -pi -e "s|basedir/lib/|basedir/%{_lib}/|g" mysql-test/mysql-test-run.pl
386
387 # workaround for upstream bug #56342
388 rm -f mysql-test/t/ssl_8k_key-master.opt
389 rm -f mysql-test/t/file_contents.test
390
391 # fix distribution name
392 sed -i 's/Source distribution/%{_vendor} MariaDB Server/' mysql-test/suite/percona/innodb_sys_index.result
393
394 ## prep internal BOOST
395 %setup -q -D -T -b 200
396 cd ../boost_%{boostver}
397 %patch204 -p1
398 %patch207 -p2
399 %patch210 -p1
400 %patch215 -p0
401 %patch216 -p1
402 cd ..
403
404 %build
405
406 pushd ../boost_%{boostver}
407 ## build internal BOOST
408 %define gcc_ver %(rpm -q --queryformat="%%{VERSION}" gcc)
409 cat > ./tools/build/v2/user-config.jam << EOF
410 using gcc : %gcc_ver : gcc : <cflags>"%optflags -I%{_includedir}/python%{py_ver}" <cxxflags>"%optflags -I%{_includedir}/python%{py_ver}" <linkflags>"%ldflags" ;
411 using python : %py_ver : %{_bindir}/python%{py_ver} : %{_includedir}/python%{py_ver} : %{_libdir} ;
412 EOF
413 ./bootstrap.sh --with-toolset=gcc --with-icu --prefix=%{_prefix} --libdir=%{_libdir}
414 ./b2 -d+2 -q %{?_smp_mflags} --without-mpi \
415 --prefix=%{_prefix} --libdir=%{_libdir} \
416 linkflags="%{ldflags} -lpython%{py_ver} -lstdc++ -lm" \
417 -sHAVE_ICU=1 \
418 link=shared threading=multi debug-symbols=off --layout=system
419
420 ## install internal BOOST
421 ./b2 -d+2 -q %{?_smp_mflags} --without-mpi \
422 --prefix=%{buildroot}/../boost%{_prefix} --libdir=%{buildroot}/../boost%{_libdir} \
423 link=shared \
424 install
425 popd
426
427 ## let oqgraph find boost
428 sed -i '1iSET(BOOST_ROOT %{buildroot}/../boost%{_prefix})' storage/oqgraph/CMakeLists.txt
429
430 ## MariaDB
431 %serverbuild
432 export CFLAGS="${CFLAGS:-%{optflags}}"
433 export CXXFLAGS="${CXXFLAGS:-%{optflags}}"
434 export FFLAGS="${FFLAGS:-%{optflags}}"
435
436 %cmake \
437 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
438 -DCMAKE_INSTALL_PREFIX=%{_prefix} \
439 -DINSTALL_SBINDIR=sbin \
440 -DMYSQL_DATADIR=/var/lib/mysql \
441 -DSYSCONFDIR=%{_sysconfdir} \
442 -DINSTALL_PLUGINDIR=%{_lib}/mysql/plugin \
443 -DINSTALL_MANDIR=share/man \
444 -DINSTALL_SHAREDIR=share/mysql \
445 -DINSTALL_LIBDIR=%{_lib} \
446 -DINSTALL_INCLUDEDIR=include/mysql \
447 -DINSTALL_INFODIR=share/info \
448 -DINSTALL_MYSQLDATADIR=/var/lib/mysql \
449 -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test \
450 -DINSTALL_SQLBENCHDIR=share/mysql \
451 -DINSTALL_SUPPORTFILESDIR=share/mysql \
452 -DINSTALL_MYSQLSHAREDIR=share/mysql \
453 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
454 -DWITH_READLINE=0 \
455 -DWITH_LIBEDIT=0 \
456 -DWITH_LIBWRAP=1 \
457 -DWITH_SSL=system \
458 -DWITH_ZLIB=system \
459 -DWITH_PIC=1 \
460 -DMYSQL_TCP_PORT=3306 \
461 -DEXTRA_CHARSETS=all \
462 -DENABLED_LOCAL_INFILE=1 \
463 -DENABLE_DTRACE=1 \
464 -DWITH_EMBEDDED_SERVER=1 \
465 -DMYSQL_USER=%{muser} \
466 %if %{build_debug}
467 -DWITH_DEBUG=1 \
468 %else
469 -DWITH_DEBUG=0 \
470 %endif
471 -DWITHOUT_TOKUDB_STORAGE_ENGINE=1 \
472 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
473 -DWITHOUT_NDBCLUSTER_STORAGE_ENGINE=1 \
474 -DWITHOUT_DAEMON_EXAMPLE=1 \
475 -DWITH_PLUGIN_PBXT=0 \
476 -DFEATURE_SET="community" \
477 -DRPM=1 \
478 -DCOMPILATION_COMMENT="%{_vendor} MariaDB Server"
479
480 %make
481
482 %install
483 rm -rf %{buildroot}
484
485 # don't fiddle with the initscript!
486 export DONT_GPRINTIFY=1
487
488 %if %{build_debug}
489 export DONT_STRIP=1
490 %endif
491
492 install -d %{buildroot}%{_sysconfdir}/sysconfig
493 install -d %{buildroot}%{_var}/log/mysqld
494 install -d %{buildroot}/var/lib/mysql/{mysql,test}
495
496 %makeinstall_std -C build
497
498 # exclude loaddata7 from being converted
499 export EXCLUDE_FROM_EOL_CONVERSION="std_data/loaddata7.dat"
500
501 # install configuration files
502 install -m0644 Mageia/mysqld.sysconfig %{buildroot}%{_sysconfdir}/sysconfig/mysqld
503 install -m0644 Mageia/my.cnf %{buildroot}%{_sysconfdir}/my.cnf
504
505 install -m 0644 -D %{SOURCE10} %{buildroot}%{_tmpfilesdir}/mysql.conf
506 install -m 0644 -D %{SOURCE11} %{buildroot}%{_unitdir}/mysqld.service
507 install -m 0755 %{SOURCE12} %{buildroot}%{_sbindir}/mysqld-prepare-db-dir
508 install -m 0755 %{SOURCE13} %{buildroot}%{_sbindir}/mysqld-wait-ready
509
510 # bork
511 mv %{buildroot}%{_bindir}/mysqlaccess.conf %{buildroot}%{_sysconfdir}/
512 chmod 644 %{buildroot}%{_sysconfdir}/mysqlaccess.conf
513 mv %{buildroot}%{_datadir}/mysql/aclocal %{buildroot}%{_datadir}/aclocal
514
515 pushd %{buildroot}%{_bindir}
516 ln -sf mysqlcheck mysqlrepair
517 ln -sf mysqlcheck mysqlanalyze
518 ln -sf mysqlcheck mysqloptimize
519 popd
520
521 # nuke -Wl,--as-needed from the mysql_config file
522 perl -pi -e "s|^ldflags=.*|ldflags=\'-rdynamic\'|g" %{buildroot}%{_bindir}/mysql_config
523
524 # cmake generates some completely wacko references to -lprobes_mysql when
525 # building with dtrace support. Haven't found where to shut that off,
526 # so resort to this blunt instrument. While at it, let's not reference
527 # libmysqlclient_r anymore either.
528 sed -e 's/-lprobes_mysql//' -e 's/-lmysqlclient_r/-lmysqlclient/' \
529 %{buildroot}%{_bindir}/mysql_config >mysql_config.tmp
530 cp -f mysql_config.tmp %{buildroot}%{_bindir}/mysql_config
531 chmod 755 %{buildroot}%{_bindir}/mysql_config
532 install -m 0755 -d %{buildroot}/var/lib/mysql
533
534 # Remove libmysqld.a, + hardlink libmysqld.so.%{libmysqlembedded_major} so that it's provided
535 rm -f %{buildroot}%{_libdir}/libmysqld.a
536 ln %{buildroot}%{_libdir}/libmysqld.so.%{major} %{buildroot}%{_libdir}/libmysqld.so.%{libmysqlembedded_major}.%{libmysqlembedded_minor}
537 ln -s libmysqld.so.%{libmysqlembedded_major}.%{libmysqlembedded_minor} %{buildroot}%{_libdir}/libmysqld.so.%{libmysqlembedded_major}
538
539 # libmysqlclient_r is no more. Upstream tries to replace it with symlinks
540 # but that really doesn't work (wrong soname in particular). We'll keep
541 # just the devel libmysqlclient_r.so link, so that rebuilding without any
542 # source change is enough to get rid of dependency on libmysqlclient_r.
543 rm -f %{buildroot}%{_libdir}/libmysqlclient_r.so*
544 ln -s libmysqlclient.so %{buildroot}%{_libdir}/libmysqlclient_r.so
545
546 # remove static libs
547 rm -f %{buildroot}%{_libdir}/libmysqlclient.a
548 rm -f %{buildroot}%{_libdir}/libmysqlclient_r.a
549
550 # mysql-test includes one executable that doesn't belong under /usr/share,
551 # so move it and provide a symlink
552 mv %{buildroot}%{_datadir}/mysql/mysql-test/lib/My/SafeProcess/my_safe_process %{buildroot}%{_bindir}
553 ln -s %{_bindir}/my_safe_process %{buildroot}%{_datadir}/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
554
555 # mysql client statically built against a local embedded library, pretty useless
556 rm -f %{buildroot}%{_bindir}/mysql_embedded
557
558 # this command enables plugins, but needs ini file + configuration in my.cnf
559 # before executing... and oh yeah, mysql must be stopped... => useless
560 # however, apparently tests seem to want it, even thought they don't use it.
561 #rm -f %{buildroot}%{_bindir}/mysql_plugin
562 rm -f %{buildroot}%{_libdir}/mysql/plugin/daemon_example.ini
563
564 # remove more useless plugins
565 rm -f %{buildroot}%{_libdir}/mysql/plugin/auth_0x0100.so
566 rm -f %{buildroot}%{_libdir}/mysql/plugin/auth_test_plugin.so
567 rm -f %{buildroot}%{_libdir}/mysql/plugin/dialog_examples.so
568
569 # no RHEL4 selinux files for us
570 rm -rf %{buildroot}%{_datadir}/mysql/SELinux
571 # no solaris files for us
572 rm -rf %{buildroot}%{_datadir}/mysql/solaris
573 # no init script for us
574 rm -f %{buildroot}%{_initrddir}/mysql
575 rm -f %{buildroot}%{_initrddir}/mysqld
576 # no split up config yet
577 rm -rf %{buildroot}%{_sysconfdir}/my.cnf.d
578
579 # house cleaning
580 rm -rf %{buildroot}%{_datadir}/info
581 rm -f %{buildroot}%{_bindir}/client_test
582 rm -f %{buildroot}%{_bindir}/make_win_binary_distribution
583 rm -f %{buildroot}%{_bindir}/make_win_src_distribution
584 rm -f %{buildroot}%{_datadir}/mysql/binary-configure
585 rm -f %{buildroot}%{_datadir}/mysql/config.huge.ini
586 rm -f %{buildroot}%{_datadir}/mysql/config.medium.ini
587 rm -f %{buildroot}%{_datadir}/mysql/config.small.ini
588 rm -f %{buildroot}%{_datadir}/mysql/mysqld_multi.server
589 rm -f %{buildroot}%{_datadir}/mysql/mysql-log-rotate
590 rm -f %{buildroot}%{_datadir}/mysql/mysql.server
591 rm -f %{buildroot}%{_datadir}/mysql/ndb-config-2-node.ini
592 rm -f %{buildroot}%{_datadir}/mysql/binary-configure
593 rm -f %{buildroot}%{_mandir}/man1/make_win_bin_dist.1*
594 rm -f %{buildroot}%{_mandir}/man1/make_win_src_distribution.1*
595 rm -f %{buildroot}%{_datadir}/mysql/magic
596
597 # no idea how to fix this
598 rm -rf %{buildroot}%{_prefix}/data
599 rm -rf %{buildroot}%{_prefix}/docs
600 rm -rf %{buildroot}%{_prefix}/scripts
601 rm -rf %{buildroot}%{_datadir}/doc
602 rm -rf %{buildroot}%{_sysconfdir}/init.d/mysql
603 rm -rf %{buildroot}%{_sysconfdir}/logrotate.d/mysql
604
605 %multiarch_binaries %{buildroot}%{_bindir}/mysql_config
606 %multiarch_includes %{buildroot}%{_includedir}/mysql/my_config.h
607
608 cat > README.urpmi <<EOF
609
610 NOTE: MariaDB is installed without root password, it is recommended to set the
611 root password with the following command as soon as possible:
612
613 mysqladmin password
614
615 The initscript used to start mysql has been reverted to use the one shipped
616 by MariaDB. This means the following changes:
617
618 * The generation of the initial system mysql database is now done when mysql
619 is started from the initscript and only if the /var/lib/mysql/mysql
620 directory is empty (mysql_install_db). Previousely this was quite hidden and
621 silently done at (rpm) install time. As a consequence to this change you may
622 have to perform some manual tasks to upgrade the mysql system database and
623 such. So, doing something like this might help you:
624
625 /etc/init.d/mysqld stop
626 TMPDIR=/var/tmp mysql_install_db
627 mysql_upgrade
628
629 The cluster functionalities (ndb) has been deactivated and will be removed in
630 future mysql versions. Oracle has a new product named mysql-cluster that
631 replaces the cluster functionalities.
632
633 The mysql-common-core package ships with a default /etc/my.cnf file that is
634 based on the my-medium.cnf file that comes with the source code.
635 EOF
636
637 ################################################################################
638 # run the tests
639 %if %{build_test}
640 # disable failing tests
641 pushd build/mysql-test
642 export LANG=C
643 export LC_ALL=C
644 export LANGUAGE=C
645 perl ./mysql-test-run.pl \
646 --mtr-build-thread="$((${RANDOM} % 100))" \
647 --retry=0 \
648 --ssl \
649 --big-test \
650 --force \
651 --max-test-fail=0 \
652 --testcase-timeout=60 \
653 --suite-timeout=1200 || false
654 popd
655 %endif
656
657 %pre
658 # enable plugins
659 if [ -f %{_sysconfdir}/my.cnf ]; then
660 perl -pi -e "s|^#plugin-load|plugin-load|g" %{_sysconfdir}/my.cnf
661 perl -pi -e "s|^#federated|federated|g" %{_sysconfdir}/my.cnf
662 # switch to federatedx provider
663 perl -pi -e "s|;ha_federated\.so$|;ha_federatedx\.so|g" %{_sysconfdir}/my.cnf
664 fi
665
666 %pre common
667 # delete the mysql group if no mysql user is found, before adding the user
668 if [ -z "`getent passwd %{muser}`" ] && ! [ -z "`getent group %{muser}`" ]; then
669 %{_sbindir}/groupdel %{muser} 2> /dev/null || :
670 fi
671
672 %_pre_useradd %{muser} /var/lib/mysql /bin/bash
673
674 %post
675 %_tmpfilescreate mysql
676 %_post_service mysqld
677
678 %preun
679 %_preun_service mysqld
680
681 %postun
682 if [ "$1" = "1" ]; then
683 if [ -f /var/lock/subsys/mysqld ]; then
684 %{_initrddir}/mysqld restart > /dev/null 2>/dev/null || :
685 fi
686 fi
687
688 %pre common-core
689 # enable plugins
690 if [ -f %{_sysconfdir}/my.cnf ]; then
691 perl -pi -e "s|^#plugin-load|plugin-load|g" %{_sysconfdir}/my.cnf
692 perl -pi -e "s|^#federated|federated|g" %{_sysconfdir}/my.cnf
693 # switch to federatedx provider
694 perl -pi -e "s|;ha_federated\.so$|;ha_federatedx\.so|g" %{_sysconfdir}/my.cnf
695 fi
696
697 %files
698 %doc README.urpmi
699 %{_tmpfilesdir}/mysql.conf
700 %{_unitdir}/mysqld.service
701 %{_sbindir}/mysqld-prepare-db-dir
702 %{_sbindir}/mysqld-wait-ready
703 %dir %{_libdir}/mysql/plugin
704 # authentication plugins
705 %{_libdir}/mysql/plugin/auth_socket.so
706 %{_libdir}/mysql/plugin/auth_pam.so
707 %{_libdir}/mysql/plugin/dialog.so
708 %{_libdir}/mysql/plugin/mysql_clear_password.so
709 # replication plugins
710 %{_libdir}/mysql/plugin/semisync_master.so
711 %{_libdir}/mysql/plugin/semisync_slave.so
712 # storage engines
713 %{_libdir}/mysql/plugin/ha_archive.so
714 %{_libdir}/mysql/plugin/ha_blackhole.so
715 %{_libdir}/mysql/plugin/ha_federatedx.so
716 # sql logging plugin
717 %{_libdir}/mysql/plugin/sql_errlog.so
718 # upstream describes this as "junk"
719 %{_libdir}/mysql/plugin/adt_null.so
720 %{_libdir}/mysql/plugin/mypluglib.so
721 %{_libdir}/mysql/plugin/qa_auth_client.so
722 %{_libdir}/mysql/plugin/qa_auth_interface.so
723 %{_libdir}/mysql/plugin/qa_auth_server.so
724 # example plugins, not usefull at all, removing
725 #%{_libdir}/mysql/plugin/auth_0x0100.so
726 #%{_libdir}/mysql/plugin/auth_test_plugin.so
727 #%{_libdir}/mysql/plugin/dialog_examples.so
728
729 %files -n mysql-MariaDB
730
731 %files obsolete
732 %{_libdir}/mysql/plugin/ha_innodb.so
733 %{_libdir}/mysql/plugin/ha_federated.so
734
735 %files feedback
736 %{_libdir}/mysql/plugin/feedback.so
737
738 %files extra
739 %{_libdir}/mysql/plugin/ha_oqgraph.so
740 %{_libdir}/mysql/plugin/ha_sphinx.so
741 %{_libdir}/mysql/plugin/handlersocket.so
742 # new optional functionality
743 %{_libdir}/mysql/plugin/query_cache_info.so
744 # sphinx has 2 plugins now? odd, but wth
745 %{_libdir}/mysql/plugin/sphinx.so
746
747 %files client
748 %config(noreplace) %{_sysconfdir}/mysqlaccess.conf
749 %{_bindir}/msql2mysql
750 %{_bindir}/mysql
751 %{_bindir}/mysqlaccess
752 %{_bindir}/mysqladmin
753 %{_bindir}/mysqlanalyze
754 %{_bindir}/mysqlbinlog
755 %{_bindir}/mysqlcheck
756 %{_bindir}/mysqldump
757 %{_bindir}/mysqldumpslow
758 %{_bindir}/mysql_find_rows
759 %{_bindir}/mysqlimport
760 %{_bindir}/mysqloptimize
761 %{_bindir}/mysqlrepair
762 %{_bindir}/mysqlshow
763 %{_bindir}/mysqlslap
764 %{_bindir}/mysql_waitpid
765 %{_mandir}/man1/msql2mysql.1*
766 %{_mandir}/man1/myisam_ftdump.1*
767 %{_mandir}/man1/mysql.1*
768 %{_mandir}/man1/mysqlaccess.1*
769 %{_mandir}/man1/mysqladmin.1*
770 %{_mandir}/man1/mysqlbinlog.1*
771 %{_mandir}/man1/mysqlcheck.1*
772 %{_mandir}/man1/mysqldump.1*
773 %{_mandir}/man1/mysqldumpslow.1*
774 %{_mandir}/man1/mysql_find_rows.1*
775 %{_mandir}/man1/mysqlimport.1*
776 %{_mandir}/man1/mysqlshow.1*
777 %{_mandir}/man1/mysql_waitpid.1*
778
779 %files bench
780 %doc build/sql-bench/README
781 %{_bindir}/my_safe_process
782 %{_bindir}/mysql_client_test
783 %{_bindir}/mysql_client_test_embedded
784 %{_bindir}/mysqltest_embedded
785 %{_datadir}/mysql/sql-bench
786 %attr(-,mysql,mysql) %{_datadir}/mysql/mysql-test
787 %{_mandir}/man1/mysql-stress-test.pl.1*
788 %{_mandir}/man1/mysql-test-run.pl.1*
789 %{_mandir}/man1/mysql_client_test.1*
790 %{_mandir}/man1/mysql_client_test_embedded.1*
791 %{_mandir}/man1/mysqltest.1*
792 %{_mandir}/man1/mysqltest_embedded.1*
793
794 %files core
795 %{_sbindir}/mysqld
796
797 %files common-core
798 %config(noreplace) %{_sysconfdir}/my.cnf
799 %dir %{_datadir}/mysql
800 %{_datadir}/mysql/english
801 %{_datadir}/mysql/charsets
802
803 %files common
804 %doc README COPYING
805 %config(noreplace) %{_sysconfdir}/sysconfig/mysqld
806 %{_bindir}/aria_chk
807 %{_bindir}/aria_dump_log
808 %{_bindir}/aria_ftdump
809 %{_bindir}/aria_pack
810 %{_bindir}/aria_read_log
811 %{_bindir}/innochecksum
812 %{_bindir}/myisamchk
813 %{_bindir}/myisam_ftdump
814 %{_bindir}/myisamlog
815 %{_bindir}/myisampack
816 %{_bindir}/my_print_defaults
817 %{_bindir}/mysqlbug
818 %{_bindir}/mysql_convert_table_format
819 %{_bindir}/mysqld_multi
820 %{_bindir}/mysqld_safe
821 %{_bindir}/mysql_fix_extensions
822 %{_bindir}/mysqlhotcopy
823 %{_bindir}/mysql_install_db
824 %{_bindir}/mysql_plugin
825 %{_bindir}/mysql_secure_installation
826 %{_bindir}/mysql_setpermission
827 %{_bindir}/mysqltest
828 %{_bindir}/mysql_tzinfo_to_sql
829 %{_bindir}/mysql_upgrade
830 %{_bindir}/mysql_zap
831 %{_bindir}/mytop
832 %{_bindir}/perror
833 %{_bindir}/replace
834 %{_bindir}/resolveip
835 %{_bindir}/resolve_stack_dump
836 %attr(0755,%{muser},%{muser}) %dir /var/lib/mysql
837 %attr(0755,%{muser},%{muser}) %dir /var/lib/mysql/mysql
838 %attr(0755,%{muser},%{muser}) %dir /var/lib/mysql/test
839 %attr(0755,%{muser},%{muser}) %dir %{_var}/log/mysqld
840 %{_datadir}/mysql/*.cnf
841 %{_datadir}/mysql/fill_help_tables.sql
842 %{_datadir}/mysql/mysql_performance_tables.sql
843 %{_datadir}/mysql/mysql_system_tables.sql
844 %{_datadir}/mysql/mysql_system_tables_data.sql
845 %{_datadir}/mysql/mysql_test_data_timezone.sql
846 %{_datadir}/mysql/errmsg-utf8.txt
847 %{_datadir}/mysql/czech
848 %{_datadir}/mysql/danish
849 %{_datadir}/mysql/dutch
850 %{_datadir}/mysql/estonian
851 %{_datadir}/mysql/french
852 %{_datadir}/mysql/german
853 %{_datadir}/mysql/greek
854 %{_datadir}/mysql/hungarian
855 %{_datadir}/mysql/italian
856 %{_datadir}/mysql/japanese
857 %{_datadir}/mysql/korean
858 %{_datadir}/mysql/norwegian
859 %{_datadir}/mysql/norwegian-ny
860 %{_datadir}/mysql/polish
861 %{_datadir}/mysql/portuguese
862 %{_datadir}/mysql/romanian
863 %{_datadir}/mysql/russian
864 %{_datadir}/mysql/serbian
865 %{_datadir}/mysql/slovak
866 %{_datadir}/mysql/spanish
867 %{_datadir}/mysql/swedish
868 %{_datadir}/mysql/ukrainian
869 %{_mandir}/man1/innochecksum.1*
870 %{_mandir}/man1/myisamchk.1*
871 %{_mandir}/man1/myisamlog.1*
872 %{_mandir}/man1/myisampack.1*
873 %{_mandir}/man1/my_print_defaults.1*
874 %{_mandir}/man1/mysqlbug.1*
875 %{_mandir}/man1/mysql_convert_table_format.1*
876 %{_mandir}/man1/mysqld_multi.1*
877 %{_mandir}/man1/mysqld_safe.1*
878 %{_mandir}/man1/mysql_fix_extensions.1*
879 %{_mandir}/man1/mysql_fix_privilege_tables.1*
880 %{_mandir}/man1/mysqlhotcopy.1*
881 %{_mandir}/man1/mysql_install_db.1*
882 %{_mandir}/man1/mysqlman.1*
883 %{_mandir}/man1/mysql_plugin.1*
884 %{_mandir}/man1/mysql_secure_installation.1*
885 %{_mandir}/man1/mysql.server.1*
886 %{_mandir}/man1/mysql_setpermission.1*
887 %{_mandir}/man1/mysqlslap.1*
888 %{_mandir}/man1/mysql_tzinfo_to_sql.1*
889 %{_mandir}/man1/mysql_upgrade.1*
890 %{_mandir}/man1/mysql_zap.1*
891 %{_mandir}/man1/perror.1*
892 %{_mandir}/man1/replace.1*
893 %{_mandir}/man1/resolveip.1*
894 %{_mandir}/man1/resolve_stack_dump.1*
895 %{_mandir}/man8/mysqld.8*
896 %{_mandir}/man8/mysqlmanager.8*
897
898 %files -n %{libname}
899 %{_libdir}/libmysqlclient.so.%{major}*
900
901 %files -n %{develname}
902 %doc INSTALL-SOURCE
903 %multiarch %{multiarch_bindir}/mysql_config
904 %{_bindir}/mysql_config
905 %{_libdir}/libmysqlclient_r.so
906 %{_libdir}/libmysqlclient.so
907 %dir %{_includedir}/mysql
908 %dir %{_includedir}/mysql/psi
909 %{_includedir}/mysql/*.h
910 %{_includedir}/mysql/private/*.h
911 %{_includedir}/mysql/private/atomic/*.h
912 %{_includedir}/mysql/psi/*.h
913 %multiarch %{multiarch_includedir}/mysql/my_config.h
914 %{_mandir}/man1/comp_err.1*
915 %{_mandir}/man1/mysql_config.1*
916 %{_datadir}/aclocal/mysql.m4
917 # mysqlservices library is static, because it doesn't contain any code
918 # itself, and is meant to be statically linked to all plugins.
919 %{_libdir}/libmysqlservices.a
920
921 %files -n %{libmariadbembedded}
922 %doc README COPYING
923 %{_libdir}/libmysqld.so.%{major}
924 %{_libdir}/libmysqld.so.%{libmysqlembedded_major}*
925
926 %files -n %{libmariadbembedded_devel}
927 %{_libdir}/libmysqld.so
928 %{_bindir}/mysql_client_test_embedded
929 %{_bindir}/mysqltest_embedded
930 %{_mandir}/man1/mysql_client_test_embedded.1*
931 %{_mandir}/man1/mysqltest_embedded.1*

  ViewVC Help
Powered by ViewVC 1.1.30