From cd3275f872684fa9d7acf4867aaf4a883a7dc4b2 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Wed, 22 Jun 2016 14:03:19 +0200 Subject: [PATCH] multilib fixes Delegate most of the multilib decisions to multilib-rpm-config, this allows us to maintain the rules at central place. Move the pkgconfig file to architecture dependant location. Version: 10.2.0-3 --- mariadb.spec | 39 ++++++++++++++++++++------------------- my_config.h | 33 --------------------------------- 2 files changed, 20 insertions(+), 52 deletions(-) delete mode 100644 my_config.h diff --git a/mariadb.spec b/mariadb.spec index 7e95d53..f96f561 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -123,7 +123,7 @@ Name: mariadb Version: %{compatver}.%{bugfixver} -Release: 2%{?with_debug:.debug}%{?dist} +Release: 3%{?with_debug:.debug}%{?dist} Epoch: 1 Summary: A community developed branch of MySQL @@ -136,7 +136,6 @@ License: GPLv2 with exceptions and LGPLv2 and BSD Source0: http://mirrors.syringanetworks.net/mariadb/mariadb-%{version}/source/mariadb-%{version}.tar.gz Source2: mysql_config_multilib.sh Source3: my.cnf.in -Source4: my_config.h Source5: README.mysql-cnf Source6: README.mysql-docs Source7: README.mysql-license @@ -190,6 +189,7 @@ BuildRequires: perl BuildRequires: perl-generators BuildRequires: systemtap-sdt-devel BuildRequires: zlib-devel +BuildRequires: multilib-rpm-config # auth_pam.so plugin will be build if pam-devel is installed BuildRequires: pam-devel # use either new enough version of pcre or provide bundles(pcre) @@ -699,22 +699,20 @@ cp -p -f mysql_config.tmp %{buildroot}%{_bindir}/mysql_config chmod 755 %{buildroot}%{_bindir}/mysql_config # multilib header support +for header in mysql/my_config.h mysql/private/config.h; do +%multilib_fix_c_header --file %{_includedir}/$header +done + +# multilib support for shell scripts # we only apply this to known Red Hat multilib arches, per bug #181335 -unamei=$(uname -i) -%ifarch %{arm} -unamei=arm -%endif -%ifarch %{power64} -unamei=ppc64 -%endif -%ifarch %{arm} aarch64 %{ix86} x86_64 ppc %{power64} %{sparc} s390 s390x -mv %{buildroot}%{_includedir}/mysql/my_config.h %{buildroot}%{_includedir}/mysql/my_config_${unamei}.h -mv %{buildroot}%{_includedir}/mysql/private/config.h %{buildroot}%{_includedir}/mysql/private/my_config_${unamei}.h -install -p -m 644 %{SOURCE4} %{buildroot}%{_includedir}/mysql/ -install -p -m 644 %{SOURCE4} %{buildroot}%{_includedir}/mysql/private/config.h +if %multilib_capable; then mv %{buildroot}%{_bindir}/mysql_config %{buildroot}%{_bindir}/mysql_config-%{__isa_bits} install -p -m 0755 scripts/mysql_config_multilib %{buildroot}%{_bindir}/mysql_config -%endif +fi + +# Upstream install this into arch-independent directory, TODO: report +mkdir -p %{buildroot}/%{_libdir}/pkgconfig +mv %{buildroot}/%{_datadir}/pkgconfig/*.pc %{buildroot}/%{_libdir}/pkgconfig # install INFO_SRC, INFO_BIN into libdir (upstream thinks these are doc files, # but that's pretty wacko --- see also %%{name}-file-contents.patch) @@ -858,7 +856,7 @@ rm -f %{buildroot}%{_mandir}/man1/{mysql_client_test_embedded,mysqltest_embedded rm -f %{buildroot}%{_bindir}/mysql_config* rm -rf %{buildroot}%{_includedir}/mysql rm -f %{buildroot}%{_datadir}/aclocal/mysql.m4 -rm -f %{buildroot}%{_datadir}/pkgconfig/mariadb.pc +rm -f %{buildroot}%{_libdir}/pkgconfig/mariadb.pc rm -f %{buildroot}%{_libdir}/mysql/libmysqlclient*.so rm -f %{buildroot}%{_mandir}/man1/mysql_config.1* %endif @@ -1242,11 +1240,10 @@ fi %if %{with devel} %files devel -%{_bindir}/mysql_config -%{_bindir}/mysql_config-%{__isa_bits} +%{_bindir}/mysql_config* %{_includedir}/mysql %{_datadir}/aclocal/mysql.m4 -%{_datadir}/pkgconfig/mariadb.pc +%{_libdir}/pkgconfig/mariadb.pc %if %{with clibrary} %{_libdir}/mysql/libmysqlclient.so %{_libdir}/mysql/libmysqlclient_r.so @@ -1280,6 +1277,10 @@ fi %endif %changelog +* Tue Jun 21 2016 Pavel Raiskup - 10.2.0-3 +- BR multilib-rpm-config and use it for multilib workarounds +- install architecture dependant pc file to arch-dependant location + * Thu May 26 2016 Jakub Dorňák - 1:10.2.0-2 - Fix mysql-prepare-db-dir Resolves: #1335849 diff --git a/my_config.h b/my_config.h deleted file mode 100644 index 02baa3d..0000000 --- a/my_config.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Kluge to support multilib installation of both 32- and 64-bit RPMS: - * we need to arrange that header files that appear in both RPMs are - * identical. Hence, this file is architecture-independent and calls - * in an arch-dependent file that will appear in just one RPM. - * - * To avoid breaking arches not explicitly supported by Red Hat, we - * use this indirection file *only* on known multilib arches. - * - * Note: this may well fail if user tries to use gcc's -I- option. - * But that option is deprecated anyway. - */ -#if defined(__x86_64__) -#include "my_config_x86_64.h" -#elif defined(__i386__) -#include "my_config_i386.h" -#elif defined(__ppc64__) || defined(__powerpc64__) -#include "my_config_ppc64.h" -#elif defined(__ppc__) || defined(__powerpc__) -#include "my_config_ppc.h" -#elif defined(__s390x__) -#include "my_config_s390x.h" -#elif defined(__s390__) -#include "my_config_s390.h" -#elif defined(__sparc__) && defined(__arch64__) -#include "my_config_sparc64.h" -#elif defined(__sparc__) -#include "my_config_sparc.h" -#elif defined(__arm__) -#include "my_config_arm.h" -#elif defined(__aarch64__) -#include "my_config_aarch64.h" -#endif