Multilib support re-worked
This commit is contained in:
parent
2d84ddd461
commit
4f5c8ebe4f
65
mariadb.spec
65
mariadb.spec
@ -52,6 +52,7 @@ License: GPLv2 with exceptions and LGPLv2 and BSD
|
|||||||
%global mysqld_running_flag_file %{_localstatedir}/lib/rpm-state/mysqld_running
|
%global mysqld_running_flag_file %{_localstatedir}/lib/rpm-state/mysqld_running
|
||||||
|
|
||||||
Source0: http://mirrors.syringanetworks.net/mariadb/mariadb-%{version}/source/mariadb-%{version}.tar.gz
|
Source0: http://mirrors.syringanetworks.net/mariadb/mariadb-%{version}/source/mariadb-%{version}.tar.gz
|
||||||
|
Source2: mysql_config.sh
|
||||||
Source3: my.cnf
|
Source3: my.cnf
|
||||||
Source4: my_config.h
|
Source4: my_config.h
|
||||||
Source5: README.mysql-cnf
|
Source5: README.mysql-cnf
|
||||||
@ -106,8 +107,6 @@ BuildRequires: perl(Data::Dumper), perl(Test::More), perl(Env)
|
|||||||
|
|
||||||
Requires: grep, fileutils, bash
|
Requires: grep, fileutils, bash
|
||||||
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release}
|
Requires: %{name}-common%{?_isa} = %{epoch}:%{version}-%{release}
|
||||||
Requires(post): %{_sbindir}/update-alternatives
|
|
||||||
Requires(postun): %{_sbindir}/update-alternatives
|
|
||||||
|
|
||||||
%{?systemd_requires: %systemd_requires}
|
%{?systemd_requires: %systemd_requires}
|
||||||
|
|
||||||
@ -175,9 +174,9 @@ Requires(pre): /usr/sbin/useradd
|
|||||||
Requires: systemd
|
Requires: systemd
|
||||||
# Make sure it's there when scriptlets run, too
|
# Make sure it's there when scriptlets run, too
|
||||||
Requires(pre): systemd
|
Requires(pre): systemd
|
||||||
Requires(post): systemd %{_sbindir}/update-alternatives
|
Requires(post): systemd
|
||||||
Requires(preun): systemd
|
Requires(preun): systemd
|
||||||
Requires(postun): systemd %{_sbindir}/update-alternatives
|
Requires(postun): systemd
|
||||||
Requires(posttrans): systemd
|
Requires(posttrans): systemd
|
||||||
# mysqlhotcopy needs DBI/DBD support
|
# mysqlhotcopy needs DBI/DBD support
|
||||||
Requires: perl-DBI, perl-DBD-MySQL
|
Requires: perl-DBI, perl-DBD-MySQL
|
||||||
@ -457,22 +456,18 @@ find $RPM_BUILD_ROOT -print | sed "s|^$RPM_BUILD_ROOT||" | sort > ROOTFILES
|
|||||||
|
|
||||||
# multilib header hacks
|
# multilib header hacks
|
||||||
# we only apply this to known Red Hat multilib arches, per bug #181335
|
# we only apply this to known Red Hat multilib arches, per bug #181335
|
||||||
case `uname -i` in
|
unamei=$(uname -i)
|
||||||
i386 | x86_64 | ppc | ppc64 | ppc64p7 | s390 | s390x | sparc | sparc64 | aarch64 )
|
%ifarch %{arm}
|
||||||
mv $RPM_BUILD_ROOT%{_includedir}/mysql/my_config.h $RPM_BUILD_ROOT%{_includedir}/mysql/my_config_`uname -i`.h
|
unamei=arm
|
||||||
mv $RPM_BUILD_ROOT%{_includedir}/mysql/private/config.h $RPM_BUILD_ROOT%{_includedir}/mysql/private/my_config_`uname -i`.h
|
%endif
|
||||||
install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_includedir}/mysql/
|
%ifarch %{arm} aarch64 %{ix86} x86_64 ppc %{power64} %{sparc} s390 s390x
|
||||||
install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_includedir}/mysql/private/config.h
|
mv $RPM_BUILD_ROOT%{_includedir}/mysql/my_config.h $RPM_BUILD_ROOT%{_includedir}/mysql/my_config_${unamei}.h
|
||||||
;;
|
mv $RPM_BUILD_ROOT%{_includedir}/mysql/private/config.h $RPM_BUILD_ROOT%{_includedir}/mysql/private/my_config_${unamei}.h
|
||||||
arm* )
|
install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_includedir}/mysql/
|
||||||
mv $RPM_BUILD_ROOT%{_includedir}/mysql/my_config.h $RPM_BUILD_ROOT%{_includedir}/mysql/my_config_arm.h
|
install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_includedir}/mysql/private/config.h
|
||||||
mv $RPM_BUILD_ROOT%{_includedir}/mysql/private/config.h $RPM_BUILD_ROOT%{_includedir}/mysql/private/my_config_arm.h
|
mv $RPM_BUILD_ROOT%{_bindir}/mysql_config $RPM_BUILD_ROOT%{_bindir}/mysql_config-%{__isa_bits}
|
||||||
install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_includedir}/mysql/
|
install -p -m 0755 %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/mysql_config
|
||||||
install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{_includedir}/mysql/private/config.h
|
%endif
|
||||||
;;
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# cmake generates some completely wacko references to -lprobes_mysql when
|
# cmake generates some completely wacko references to -lprobes_mysql when
|
||||||
# building with dtrace support. Haven't found where to shut that off,
|
# building with dtrace support. Haven't found where to shut that off,
|
||||||
@ -518,13 +513,6 @@ install -p -m 644 %{SOURCE15} ${RPM_BUILD_ROOT}%{_libexecdir}/
|
|||||||
mkdir -p $RPM_BUILD_ROOT%{_tmpfilesdir}
|
mkdir -p $RPM_BUILD_ROOT%{_tmpfilesdir}
|
||||||
install -p -m 0644 %{SOURCE10} $RPM_BUILD_ROOT%{_tmpfilesdir}/%{name}.conf
|
install -p -m 0644 %{SOURCE10} $RPM_BUILD_ROOT%{_tmpfilesdir}/%{name}.conf
|
||||||
|
|
||||||
# Fix scripts for multilib safety
|
|
||||||
mv ${RPM_BUILD_ROOT}%{_bindir}/mysql_config ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysql_config
|
|
||||||
touch ${RPM_BUILD_ROOT}%{_bindir}/mysql_config
|
|
||||||
|
|
||||||
mv ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysqlbug
|
|
||||||
touch ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug
|
|
||||||
|
|
||||||
# Remove libmysqld.a
|
# Remove libmysqld.a
|
||||||
rm -f ${RPM_BUILD_ROOT}%{_libdir}/mysql/libmysqld.a
|
rm -f ${RPM_BUILD_ROOT}%{_libdir}/mysql/libmysqld.a
|
||||||
|
|
||||||
@ -580,10 +568,6 @@ rm -f ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/mysql
|
|||||||
# remove solaris files
|
# remove solaris files
|
||||||
rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}/solaris/
|
rm -rf ${RPM_BUILD_ROOT}%{_datadir}/%{name}/solaris/
|
||||||
|
|
||||||
%post devel
|
|
||||||
%{_sbindir}/update-alternatives --install %{_bindir}/mysql_config \
|
|
||||||
mysql_config %{_libdir}/mysql/mysql_config %{__isa_bits}
|
|
||||||
|
|
||||||
%pre server
|
%pre server
|
||||||
/usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || :
|
/usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || :
|
||||||
/usr/sbin/useradd -M -N -g mysql -o -r -d %{_localstatedir}/lib/mysql -s /sbin/nologin \
|
/usr/sbin/useradd -M -N -g mysql -o -r -d %{_localstatedir}/lib/mysql -s /sbin/nologin \
|
||||||
@ -622,16 +606,8 @@ fi
|
|||||||
%systemd_post %{name}.service
|
%systemd_post %{name}.service
|
||||||
/bin/chmod 0755 %{_localstatedir}/lib/mysql
|
/bin/chmod 0755 %{_localstatedir}/lib/mysql
|
||||||
|
|
||||||
%{_sbindir}/update-alternatives --install %{_bindir}/mysqlbug \
|
|
||||||
mysqlbug %{_libdir}/mysql/mysqlbug %{__isa_bits}
|
|
||||||
|
|
||||||
%post embedded -p /sbin/ldconfig
|
%post embedded -p /sbin/ldconfig
|
||||||
|
|
||||||
%postun devel
|
|
||||||
if [ $1 -eq 0 ] ; then
|
|
||||||
%{_sbindir}/update-alternatives --remove mysql_config %{_libdir}/mysql/mysql_config
|
|
||||||
fi
|
|
||||||
|
|
||||||
%preun server
|
%preun server
|
||||||
%systemd_preun %{name}.service
|
%systemd_preun %{name}.service
|
||||||
|
|
||||||
@ -639,9 +615,6 @@ fi
|
|||||||
|
|
||||||
%postun server
|
%postun server
|
||||||
%systemd_postun_with_restart %{name}.service
|
%systemd_postun_with_restart %{name}.service
|
||||||
if [ $1 -eq 0 ] ; then
|
|
||||||
%{_sbindir}/update-alternatives --remove mysqlbug %{_libdir}/mysql/mysqlbug
|
|
||||||
fi
|
|
||||||
|
|
||||||
%postun embedded -p /sbin/ldconfig
|
%postun embedded -p /sbin/ldconfig
|
||||||
|
|
||||||
@ -740,7 +713,7 @@ fi
|
|||||||
%{_bindir}/mysql_tzinfo_to_sql
|
%{_bindir}/mysql_tzinfo_to_sql
|
||||||
%{_bindir}/mysql_upgrade
|
%{_bindir}/mysql_upgrade
|
||||||
%{_bindir}/mysql_zap
|
%{_bindir}/mysql_zap
|
||||||
%ghost %{_bindir}/mysqlbug
|
%{_bindir}/mysqlbug
|
||||||
%{_bindir}/mysqldumpslow
|
%{_bindir}/mysqldumpslow
|
||||||
%{_bindir}/mysqld_multi
|
%{_bindir}/mysqld_multi
|
||||||
%{_bindir}/mysqld_safe
|
%{_bindir}/mysqld_safe
|
||||||
@ -761,8 +734,6 @@ fi
|
|||||||
%{_libdir}/mysql/INFO_SRC
|
%{_libdir}/mysql/INFO_SRC
|
||||||
%{_libdir}/mysql/INFO_BIN
|
%{_libdir}/mysql/INFO_BIN
|
||||||
|
|
||||||
%{_libdir}/mysql/mysqlbug
|
|
||||||
|
|
||||||
%{_libdir}/mysql/plugin
|
%{_libdir}/mysql/plugin
|
||||||
|
|
||||||
%{_mandir}/man1/msql2mysql.1*
|
%{_mandir}/man1/msql2mysql.1*
|
||||||
@ -822,7 +793,8 @@ fi
|
|||||||
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
|
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
%ghost %{_bindir}/mysql_config
|
%{_bindir}/mysql_config
|
||||||
|
%{_bindir}/mysql_config-%{__isa_bits}
|
||||||
%{_includedir}/mysql
|
%{_includedir}/mysql
|
||||||
%{_datadir}/aclocal/mysql.m4
|
%{_datadir}/aclocal/mysql.m4
|
||||||
%{_libdir}/mysql/libmysqlclient.so
|
%{_libdir}/mysql/libmysqlclient.so
|
||||||
@ -861,6 +833,7 @@ fi
|
|||||||
- Separate -lib and -common sub-packages
|
- Separate -lib and -common sub-packages
|
||||||
- Require /etc/my.cnf instead of shipping it
|
- Require /etc/my.cnf instead of shipping it
|
||||||
- Include README.mysql-cnf
|
- Include README.mysql-cnf
|
||||||
|
- Multilib support re-worked
|
||||||
|
|
||||||
* Wed Jun 18 2014 Mikko Tiihonen <mikko.tiihonen@iki.fi> - 1:10.0.12-2
|
* Wed Jun 18 2014 Mikko Tiihonen <mikko.tiihonen@iki.fi> - 1:10.0.12-2
|
||||||
- Use -fno-delete-null-pointer-checks to avoid segfaults with gcc 4.9
|
- Use -fno-delete-null-pointer-checks to avoid segfaults with gcc 4.9
|
||||||
|
26
mysql_config.sh
Normal file
26
mysql_config.sh
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
#
|
||||||
|
# Wrapper script for mysql_config to support multilib
|
||||||
|
#
|
||||||
|
# This command respects setarch
|
||||||
|
|
||||||
|
bits=$(rpm --eval %__isa_bits)
|
||||||
|
|
||||||
|
case $bits in
|
||||||
|
32|64) status=known ;;
|
||||||
|
*) status=unknown ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ "$status" = "unknown" ] ; then
|
||||||
|
echo "$0: error: command 'rpm --eval %__isa_bits' returned unknown value: $bits"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ -x /usr/bin/mysql_config-$bits ] ; then
|
||||||
|
/usr/bin/mysql_config-$bits "$@"
|
||||||
|
else
|
||||||
|
echo "$0: error: needed binary: /usr/bin/mysql_config-$bits is missing"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
Loading…
Reference in New Issue
Block a user