[mariadb/f19] Multilib issues solved by alternatives Resolves: #986959

Honza Horak hhorak at fedoraproject.org
Tue Aug 13 16:27:10 UTC 2013


commit 303b28f2af4a4285814b0dd3f123420281fb8183
Author: Honza HorĂ¡k <hhorak at redhat.com>
Date:   Tue Aug 13 15:35:55 2013 +0200

    Multilib issues solved by alternatives
    Resolves: #986959
    
    Conflicts:
    	mariadb.spec

 mariadb.spec |   69 +++++++++++++++++++++++++++++++++++----------------------
 scriptstub.c |   32 --------------------------
 2 files changed, 42 insertions(+), 59 deletions(-)
---
diff --git a/mariadb.spec b/mariadb.spec
index e2f137b..e019548 100644
--- a/mariadb.spec
+++ b/mariadb.spec
@@ -3,7 +3,7 @@
 
 Name: mariadb
 Version: 5.5.32
-Release: 6%{?dist}
+Release: 7%{?dist}
 Epoch: 1
 
 Summary: A community developed branch of MySQL
@@ -32,7 +32,6 @@ License: GPLv2 with exceptions and LGPLv2 and BSD
 
 Source0: http://ftp.osuosl.org/pub/mariadb/mariadb-%{version}/kvm-tarbake-jaunty-x86/mariadb-%{version}.tar.gz
 Source3: my.cnf
-Source4: scriptstub.c
 Source5: my_config.h
 Source6: README.mysql-docs
 Source7: README.mysql-license
@@ -76,6 +75,8 @@ BuildRequires: perl(Data::Dumper), perl(Test::More), perl(Env)
 
 Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
 Requires: grep, fileutils, bash
+Requires(post): /sbin/update-alternatives
+Requires(postun): /sbin/update-alternatives
 
 %{?systemd_requires: %systemd_requires}
 
@@ -132,9 +133,9 @@ Requires(pre): /usr/sbin/useradd
 Requires: systemd
 # Make sure it's there when scriptlets run, too
 Requires(pre): systemd
-Requires(post): systemd
+Requires(post): systemd /sbin/update-alternatives
 Requires(preun): systemd
-Requires(postun): systemd
+Requires(postun): systemd /sbin/update-alternatives
 Requires(posttrans): systemd
 # mysqlhotcopy needs DBI/DBD support
 Requires: perl-DBI, perl-DBD-MySQL
@@ -340,11 +341,6 @@ cmake . -DBUILD_CONFIG=mysql_release \
 	-DTMPDIR=/var/tmp \
 	-DWITH_MYSQLD_LDFLAGS="-Wl,-z,relro,-z,now"
 
-# this work-around works quite similar to links but using binary
-# we avoid multilib conflicts, because binaries can conflict,
-# while 64bit binary is prefered
-gcc $CFLAGS $LDFLAGS -o scriptstub "-DLIBDIR=\"%{_libdir}/mysql\"" %{SOURCE4}
-
 make %{?_smp_mflags} VERBOSE=1
 
 # debuginfo extraction scripts fail to find source files in their real
@@ -456,10 +452,10 @@ chmod 644 ${RPM_BUILD_ROOT}%{_datadir}/mysql/config.*.ini
 
 # Fix scripts for multilib safety
 mv ${RPM_BUILD_ROOT}%{_bindir}/mysql_config ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysql_config
-install -p -m 0755 scriptstub ${RPM_BUILD_ROOT}%{_bindir}/mysql_config
+touch ${RPM_BUILD_ROOT}%{_bindir}/mysql_config
 
 mv ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysqlbug
-install -p -m 0755 scriptstub ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug
+touch ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug
 
 # Remove libmysqld.a
 rm -f ${RPM_BUILD_ROOT}%{_libdir}/mysql/libmysqld.a
@@ -515,6 +511,10 @@ rm -f ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/mysql
 # remove solaris files
 rm -rf ${RPM_BUILD_ROOT}%{_datadir}/mysql/solaris/
 
+%post
+/sbin/update-alternatives --install %{_bindir}/mysql_config \
+	mysql_config %{_libdir}/mysql/mysql_config %{__isa_bits}
+
 %pre server
 /usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || :
 /usr/sbin/useradd -M -N -g mysql -o -r -d /var/lib/mysql -s /bin/bash \
@@ -541,8 +541,16 @@ fi
 /bin/chmod 0755 /var/lib/mysql
 /bin/touch /var/log/mysqld.log
 
+/sbin/update-alternatives --install %{_bindir}/mysqlbug \
+	mysqlbug %{_libdir}/mysql/mysqlbug %{__isa_bits}
+
 %post embedded -p /sbin/ldconfig
 
+%postun
+if [ $1 -eq 0 ] ; then
+    /sbin/update-alternatives --remove mysql_config %{_libdir}/mysql/mysql_config
+fi
+
 %preun server
 %systemd_preun mysqld.service
 
@@ -550,6 +558,9 @@ fi
 
 %postun server
 %systemd_postun_with_restart mysqld.service
+if [ $1 -eq 0 ] ; then
+    /sbin/update-alternatives --remove mysqlbug %{_libdir}/mysql/mysqlbug
+fi
 
 %postun embedded -p /sbin/ldconfig
 
@@ -560,7 +571,7 @@ fi
 
 %{_bindir}/msql2mysql
 %{_bindir}/mysql
-%{_bindir}/mysql_config
+%ghost %{_bindir}/mysql_config
 %{_bindir}/mysql_find_rows
 %{_bindir}/mysql_waitpid
 %{_bindir}/mysqlaccess
@@ -648,7 +659,7 @@ fi
 %{_bindir}/mysql_tzinfo_to_sql
 %{_bindir}/mysql_upgrade
 %{_bindir}/mysql_zap
-%{_bindir}/mysqlbug
+%ghost %{_bindir}/mysqlbug
 %{_bindir}/mysqldumpslow
 %{_bindir}/mysqld_multi
 %{_bindir}/mysqld_safe
@@ -752,7 +763,11 @@ fi
 %{_mandir}/man1/mysql_client_test.1*
 
 %changelog
-* Tue Jul 30 2013 Honza Horak <hhorak at redhat.com> 5.5.32-6
+* Tue Aug 13 2013 Honza Horak <hhorak at redhat.com> - 1:5.5.32-7
+- Multilib issues solved by alternatives
+  Resolves: #986959
+
+* Tue Jul 30 2013 Honza Horak <hhorak at redhat.com> - 1:5.5.32-6
 - Remove unneeded systemd-sysv requires
 - Provide mysql-compat-server symbol
 - Create mariadb.service symlink
@@ -761,21 +776,21 @@ fi
 - Use scriptstub instead of links to avoid multilib conflicts
 - Add condition for doc placement in F20+
 
-* Sun Jul 28 2013 Dennis Gilmore <dennis at ausil.us> - 5.5.32-5
+* Sun Jul 28 2013 Dennis Gilmore <dennis at ausil.us> - 1:5.5.32-5
 - remove "Requires(pretrans): systemd" since its not possible
 - when installing mariadb and systemd at the same time. as in a new install
 
-* Sat Jul 27 2013 Kevin Fenzi <kevin at scrye.com> 5.5.32-4
+* Sat Jul 27 2013 Kevin Fenzi <kevin at scrye.com> 1:5.5.32-4
 - Set rpm doc macro to install docs in unversioned dir
 
-* Fri Jul 26 2013 Dennis Gilmore <dennis at ausil.us> 5.5.32-3
+* Fri Jul 26 2013 Dennis Gilmore <dennis at ausil.us> 1:5.5.32-3
 - add Requires(pre) on systemd for the server package
 
-* Tue Jul 23 2013 Dennis Gilmore <dennis at ausil.us> 5.5.32-2
+* Tue Jul 23 2013 Dennis Gilmore <dennis at ausil.us> 1:5.5.32-2
 - replace systemd-units requires with systemd
 - remove solaris files
 
-* Fri Jul 19 2013 Honza Horak <hhorak at redhat.com> 5.5.32-1
+* Fri Jul 19 2013 Honza Horak <hhorak at redhat.com> 1:5.5.32-1
 - Rebase to 5.5.32
   https://kb.askmonty.org/en/mariadb-5532-changelog/
 - Clean-up un-necessary systemd snippets
@@ -783,26 +798,26 @@ fi
 * Wed Jul 17 2013 Petr Pisar <ppisar at redhat.com> - 1:5.5.31-7
 - Perl 5.18 rebuild
 
-* Mon Jul  1 2013 Honza Horak <hhorak at redhat.com> 5.5.31-6
+* Mon Jul  1 2013 Honza Horak <hhorak at redhat.com> 1:5.5.31-6
 - Test suite params enhanced to decrease server condition influence
 - Fix misleading error message when uninstalling built-in plugins
   Related: #966873
 
-* Thu Jun 27 2013 Honza Horak <hhorak at redhat.com> 5.5.31-5
+* Thu Jun 27 2013 Honza Horak <hhorak at redhat.com> 1:5.5.31-5
 - Apply fixes found by Coverity static analysis tool
 
-* Wed Jun 19 2013 Honza Horak <hhorak at redhat.com> 5.5.31-4
+* Wed Jun 19 2013 Honza Horak <hhorak at redhat.com> 1:5.5.31-4
 - Do not use pretrans scriptlet, which doesn't work in anaconda
   Resolves: #975348
 
-* Fri Jun 14 2013 Honza Horak <hhorak at redhat.com> 5.5.31-3
+* Fri Jun 14 2013 Honza Horak <hhorak at redhat.com> 1:5.5.31-3
 - Explicitly enable mysqld if it was enabled in the beggining
   of the transaction.
 
-* Thu Jun 13 2013 Honza Horak <hhorak at redhat.com> 5.5.31-2
+* Thu Jun 13 2013 Honza Horak <hhorak at redhat.com> 1:5.5.31-2
 - Apply man page fix from Jan Stanek
 
-* Fri May 24 2013 Honza Horak <hhorak at redhat.com> 5.5.31-1
+* Fri May 24 2013 Honza Horak <hhorak at redhat.com> 1:5.5.31-1
 - Rebase to 5.5.31
   https://kb.askmonty.org/en/mariadb-5531-changelog/
 - Preserve time-stamps in case of installed files
@@ -811,11 +826,11 @@ fi
   Resolves: #962087
 - Fix test suite requirements
 
-* Sun May  5 2013 Honza Horak <hhorak at redhat.com> 5.5.30-2
+* Sun May  5 2013 Honza Horak <hhorak at redhat.com> 1:5.5.30-2
 - Remove mytop utility, which is packaged separately
 - Resolve multilib conflicts in mysql/private/config.h
 
-* Fri Mar 22 2013 Honza Horak <hhorak at redhat.com> 5.5.30-1
+* Fri Mar 22 2013 Honza Horak <hhorak at redhat.com> 1:5.5.30-1
 - Rebase to 5.5.30
   https://kb.askmonty.org/en/mariadb-5530-changelog/
 


More information about the scm-commits mailing list