[mariadb/el5] Remove alternatives, use old good scriptstub
Honza Horak
hhorak at fedoraproject.org
Tue Nov 26 09:22:34 UTC 2013
commit 325c9574eef1f693526985c7c86d71bb2950e3dc
Author: Honza HorĂ¡k <hhorak at redhat.com>
Date: Tue Nov 26 09:26:45 2013 +0100
Remove alternatives, use old good scriptstub
mariadb.spec | 44 +++++++++++---------------------------------
scriptstub.c | 32 ++++++++++++++++++++++++++++++++
2 files changed, 43 insertions(+), 33 deletions(-)
---
diff --git a/mariadb.spec b/mariadb.spec
index d10092c..a50fbea 100644
--- a/mariadb.spec
+++ b/mariadb.spec
@@ -5,18 +5,9 @@
# variable tokudb allows to build with TokuDB storage engine
%bcond_with tokudb
-# RHEL-5 doesn't know __isa_bits macro, so let's define it manually
-%{!?__isa_bits:
- %ifarch x86_64 ppc64 ppc64p7 s390x sparc64
- %global __isa_bits 64
- %else
- %global __isa_bits 32
- %endif
-}
-
Name: mariadb
Version: 5.5.34
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: A community developed branch of MySQL
Group: Applications/Databases
@@ -32,6 +23,7 @@ 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,8 +68,6 @@ BuildRequires: perl(Data::Dumper), perl(Test::More), perl(Env)
Requires: real-%{name}-libs%{?_isa} = %{version}-%{release}
Requires: grep, fileutils, bash
-Requires(post): %{_sbindir}/update-alternatives
-Requires(postun): %{_sbindir}/update-alternatives
# MariaDB replaces mysql packages
Provides: mysql = %{version}-%{release}
@@ -128,8 +118,6 @@ Requires: real-%{name}%{?_isa} = %{version}-%{release}
Requires: real-%{name}-libs%{?_isa} = %{version}-%{release}
Requires: sh-utils
Requires(pre): /usr/sbin/useradd
-Requires(post): %{_sbindir}/update-alternatives
-Requires(postun): %{_sbindir}/update-alternatives
# mysqlhotcopy needs DBI/DBD support
Requires: perl-DBI, perl-DBD-MySQL
Conflicts: MySQL-server
@@ -342,6 +330,8 @@ cmake . -DBUILD_CONFIG=mysql_release \
-DTMPDIR=%{_localstatedir}/tmp \
-DWITH_MYSQLD_LDFLAGS="-Wl,-z,relro,-z,now"
+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
@@ -446,10 +436,10 @@ install -p -m 755 %{SOURCE11} ${RPM_BUILD_ROOT}%{_sysconfdir}/rc.d/init.d/mysqld
# 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
+install -m 0755 scriptstub ${RPM_BUILD_ROOT}%{_bindir}/mysql_config
mv ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysqlbug
-touch ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug
+install -m 0755 scriptstub ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug
# Remove libmysqld.a
rm -f ${RPM_BUILD_ROOT}%{_libdir}/mysql/libmysqld.a
@@ -508,10 +498,6 @@ rm -rf ${RPM_BUILD_ROOT}%{_datadir}/mysql/solaris/
%clean
rm -rf $RPM_BUILD_ROOT
-%post
-%{_sbindir}/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 %{_localstatedir}/lib/mysql -s /bin/bash \
@@ -527,16 +513,8 @@ fi
/bin/chmod 0755 %{_localstatedir}/lib/mysql
/bin/touch %{_localstatedir}/log/mysqld.log
-%{_sbindir}/update-alternatives --install %{_bindir}/mysqlbug \
- mysqlbug %{_libdir}/mysql/mysqlbug %{__isa_bits}
-
%post embedded -p /sbin/ldconfig
-%postun
-if [ $1 -eq 0 ] ; then
- %{_sbindir}/update-alternatives --remove mysql_config %{_libdir}/mysql/mysql_config
-fi
-
%preun server
if [ $1 = 0 ]; then
# Package removal, not upgrade
@@ -547,9 +525,6 @@ fi
%postun libs -p /sbin/ldconfig
%postun server
-if [ $1 -eq 0 ] ; then
- %{_sbindir}/update-alternatives --remove mysqlbug %{_libdir}/mysql/mysqlbug
-fi
if [ $1 -ge 1 ]; then
# Package upgrade, not uninstall
/sbin/service mysqld condrestart >/dev/null 2>&1 || :
@@ -565,7 +540,7 @@ fi
%{_bindir}/msql2mysql
%{_bindir}/mysql
-%ghost %{_bindir}/mysql_config
+%{_bindir}/mysql_config
%{_bindir}/mysql_find_rows
%{_bindir}/mysql_waitpid
%{_bindir}/mysqlaccess
@@ -656,7 +631,7 @@ fi
%{_bindir}/mysql_tzinfo_to_sql
%{_bindir}/mysql_upgrade
%{_bindir}/mysql_zap
-%ghost %{_bindir}/mysqlbug
+%{_bindir}/mysqlbug
%{_bindir}/mysqldumpslow
%{_bindir}/mysqld_multi
%{_bindir}/mysqld_safe
@@ -762,6 +737,9 @@ fi
%{_mandir}/man1/mysql_client_test.1*
%changelog
+* Tue Nov 26 2013 Honza Horak <hhorak at redhat.com> 1:5.5.34-3
+- Remove alternatives, use old good scriptstub
+
* Mon Nov 25 2013 Honza Horak <hhorak at redhat.com> 1:5.5.34-2
- Use proper priority for alternatives
diff --git a/scriptstub.c b/scriptstub.c
new file mode 100644
index 0000000..de942c1
--- /dev/null
+++ b/scriptstub.c
@@ -0,0 +1,32 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+/* Translate call of myself into call of same-named script in LIBDIR */
+/* The macro LIBDIR must be defined as a double-quoted string */
+
+int main (int argc, char **argv)
+{
+ char *basename;
+ char *fullname;
+ char **newargs;
+ int i;
+
+ basename = strrchr(argv[0], '/');
+ if (basename)
+ basename++;
+ else
+ basename = argv[0];
+ fullname = malloc(strlen(LIBDIR) + strlen(basename) + 2);
+ sprintf(fullname, "%s/%s", LIBDIR, basename);
+ newargs = malloc((argc+1) * sizeof(char *));
+ newargs[0] = fullname;
+ for (i = 1; i < argc; i++)
+ newargs[i] = argv[i];
+ newargs[argc] = NULL;
+
+ execvp(fullname, newargs);
+
+ return 1;
+}
More information about the scm-commits
mailing list