[MySQL] Allow server to be installed without client side Separate -lib and -common sub-packages

Honza Horak hhorak at fedoraproject.org
Tue Mar 12 09:58:24 UTC 2013


commit 38ff09745294b0c3ab9799c262bc9e3f1a6841f9
Author: Honza HorĂ¡k <hhorak at redhat.com>
Date:   Tue Mar 12 10:54:13 2013 +0100

    Allow server to be installed without client side
    Separate -lib and -common sub-packages

 MySQL.spec |   95 ++++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 54 insertions(+), 41 deletions(-)
---
diff --git a/MySQL.spec b/MySQL.spec
index 2dd8c13..5b7cefc 100644
--- a/MySQL.spec
+++ b/MySQL.spec
@@ -1,6 +1,6 @@
 Name: MySQL
 Version: 5.5.30
-Release: 3%{?dist}
+Release: 4%{?dist}
 
 Summary: MySQL client programs and shared libraries
 Group: Applications/Databases
@@ -66,10 +66,9 @@ BuildRequires: systemd-units, systemtap-sdt-devel
 BuildRequires: time procps
 # perl modules needed to run regression tests
 BuildRequires: perl(Socket), perl(Time::HiRes)
-# TODO: really needed? BuildRequires: perl(Data::Dumper), perl(Test::More)
 
 Requires: grep, fileutils, bash
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Requires: %{name}-common%{?_isa} = %{version}-%{release}
 %{?systemd_requires: %systemd_requires}
 
 # mariadb is MySQL replacement that is used in Fedora as a default
@@ -97,7 +96,7 @@ contains the standard MySQL client programs and generic MySQL files.
 Summary: The shared libraries required for MySQL clients
 Group: Applications/Databases
 Requires: /sbin/ldconfig
-Conflicts: mariadb-libs
+Requires: %{name}-common%{?_isa} = %{version}-%{release}
 
 %description libs
 The mysql-libs package provides the essential shared libraries for any 
@@ -105,12 +104,22 @@ MySQL client program or interface. You will need to install this package
 to use any other MySQL package or any clients that need to connect to a
 MySQL server.
 
+%package common
+
+Summary: The shared files required for MySQL server and client
+Group: Applications/Databases
+
+%description common
+The mysql-common package provides the essential shared files for any 
+MySQL program. You will need to install this package to use any other
+MySQL package.
+
 %package server
 
 Summary: The MySQL server and related files
 Group: Applications/Databases
-Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Requires: mysql%{?_isa}
+Requires: %{name}-common%{?_isa} = %{version}-%{release}
 Requires: sh-utils
 Requires(pre): /usr/sbin/useradd
 Requires(post): chkconfig
@@ -153,7 +162,6 @@ developing MySQL client applications.
 
 Summary: MySQL as an embeddable library
 Group: Applications/Databases
-Conflicts: mariadb-embedded
 
 %description embedded
 MySQL is a multi-user, multi-threaded SQL database server. This
@@ -177,7 +185,7 @@ the embedded version of the MySQL server.
 
 Summary: MySQL benchmark scripts and data
 Group: Applications/Databases
-Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: mysql%{?_isa}
 Conflicts: mariadb-bench
 
 %description bench
@@ -189,8 +197,8 @@ MySQL.
 
 Summary: The test suite distributed with MySQL
 Group: Applications/Databases
-Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: %{name}-libs%{?_isa} = %{version}-%{release}
+Requires: mysql%{?_isa}
+Requires: %{name}-common%{?_isa} = %{version}-%{release}
 Requires: %{name}-server%{?_isa} = %{version}-%{release}
 Conflicts: mariadb-test
 
@@ -272,7 +280,7 @@ cmake . -DBUILD_CONFIG=mysql_release \
 	-DINSTALL_INFODIR=share/info \
 	-DINSTALL_LIBDIR="%{_lib}/mysql" \
 	-DINSTALL_MANDIR=share/man \
-	-DINSTALL_MYSQLSHAREDIR=share/mysql \
+	-DINSTALL_MYSQLSHAREDIR=share/%{name} \
 	-DINSTALL_MYSQLTESTDIR=share/mysql-test \
 	-DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \
 	-DINSTALL_SBINDIR=libexec \
@@ -520,31 +528,32 @@ install -m 0644 mysql-test/rh-skipped-tests.list ${RPM_BUILD_ROOT}%{_datadir}/my
 %{_libdir}/mysql/libmysqlclient.so.*
 /etc/ld.so.conf.d/*
 
-%dir %{_datadir}/mysql
-%{_datadir}/mysql/english
-%lang(cs) %{_datadir}/mysql/czech
-%lang(da) %{_datadir}/mysql/danish
-%lang(nl) %{_datadir}/mysql/dutch
-%lang(et) %{_datadir}/mysql/estonian
-%lang(fr) %{_datadir}/mysql/french
-%lang(de) %{_datadir}/mysql/german
-%lang(el) %{_datadir}/mysql/greek
-%lang(hu) %{_datadir}/mysql/hungarian
-%lang(it) %{_datadir}/mysql/italian
-%lang(ja) %{_datadir}/mysql/japanese
-%lang(ko) %{_datadir}/mysql/korean
-%lang(no) %{_datadir}/mysql/norwegian
-%lang(no) %{_datadir}/mysql/norwegian-ny
-%lang(pl) %{_datadir}/mysql/polish
-%lang(pt) %{_datadir}/mysql/portuguese
-%lang(ro) %{_datadir}/mysql/romanian
-%lang(ru) %{_datadir}/mysql/russian
-%lang(sr) %{_datadir}/mysql/serbian
-%lang(sk) %{_datadir}/mysql/slovak
-%lang(es) %{_datadir}/mysql/spanish
-%lang(sv) %{_datadir}/mysql/swedish
-%lang(uk) %{_datadir}/mysql/ukrainian
-%{_datadir}/mysql/charsets
+%files common
+%dir %{_datadir}/%{name}
+%{_datadir}/%{name}/english
+%lang(cs) %{_datadir}/%{name}/czech
+%lang(da) %{_datadir}/%{name}/danish
+%lang(nl) %{_datadir}/%{name}/dutch
+%lang(et) %{_datadir}/%{name}/estonian
+%lang(fr) %{_datadir}/%{name}/french
+%lang(de) %{_datadir}/%{name}/german
+%lang(el) %{_datadir}/%{name}/greek
+%lang(hu) %{_datadir}/%{name}/hungarian
+%lang(it) %{_datadir}/%{name}/italian
+%lang(ja) %{_datadir}/%{name}/japanese
+%lang(ko) %{_datadir}/%{name}/korean
+%lang(no) %{_datadir}/%{name}/norwegian
+%lang(no) %{_datadir}/%{name}/norwegian-ny
+%lang(pl) %{_datadir}/%{name}/polish
+%lang(pt) %{_datadir}/%{name}/portuguese
+%lang(ro) %{_datadir}/%{name}/romanian
+%lang(ru) %{_datadir}/%{name}/russian
+%lang(sr) %{_datadir}/%{name}/serbian
+%lang(sk) %{_datadir}/%{name}/slovak
+%lang(es) %{_datadir}/%{name}/spanish
+%lang(sv) %{_datadir}/%{name}/swedish
+%lang(uk) %{_datadir}/%{name}/ukrainian
+%{_datadir}/%{name}/charsets
 
 %files server
 %doc support-files/*.cnf
@@ -615,11 +624,11 @@ install -m 0644 mysql-test/rh-skipped-tests.list ${RPM_BUILD_ROOT}%{_datadir}/my
 %{_mandir}/man1/mysql_tzinfo_to_sql.1*
 %{_mandir}/man8/mysqld.8*
 
-%{_datadir}/mysql/errmsg-utf8.txt
-%{_datadir}/mysql/fill_help_tables.sql
-%{_datadir}/mysql/mysql_system_tables.sql
-%{_datadir}/mysql/mysql_system_tables_data.sql
-%{_datadir}/mysql/mysql_test_data_timezone.sql
+%{_datadir}/%{name}/errmsg-utf8.txt
+%{_datadir}/%{name}/fill_help_tables.sql
+%{_datadir}/%{name}/mysql_system_tables.sql
+%{_datadir}/%{name}/mysql_system_tables_data.sql
+%{_datadir}/%{name}/mysql_test_data_timezone.sql
 %{_datadir}/mysql/my-*.cnf
 %{_datadir}/mysql/config.*.ini
 
@@ -662,6 +671,10 @@ install -m 0644 mysql-test/rh-skipped-tests.list ${RPM_BUILD_ROOT}%{_datadir}/my
 %{_mandir}/man1/mysql_client_test.1*
 
 %changelog
+* Tue Mar 12 2013 Honza Horak <hhorak at redhat.com> 5.5.30-4
+- Allow server to be installed without client side
+- Separate -lib and -common sub-packages
+
 * Mon Mar 11 2013 Honza Horak <hhorak at redhat.com> 5.5.30-3
 - Adjusting major soname number of libmysqlclient to avoid
   library name conflicts with mariadb


More information about the scm-commits mailing list