From 516ba6c1980b6ee0fbf4c1d7cef33fbbf581031f Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Wed, 6 Oct 2004 18:05:45 +0000 Subject: [PATCH] Fix multilib problems, also minor bugs 128852, 129409. --- mysql.init | 3 ++- mysql.spec | 20 +++++++++++++++++++- scriptstub.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 scriptstub.c diff --git a/mysql.init b/mysql.init index 26ed7c6..f385336 100644 --- a/mysql.init +++ b/mysql.init @@ -3,7 +3,7 @@ # mysqld This shell script takes care of starting and stopping # the MySQL subsystem (mysqld). # -# chkconfig: - 78 12 +# chkconfig: - 64 36 # description: MySQL database server. # processname: mysqld # config: /etc/my.cnf @@ -76,6 +76,7 @@ stop(){ restart(){ stop + sleep 2 start } diff --git a/mysql.spec b/mysql.spec index 2fa9579..96c1728 100644 --- a/mysql.spec +++ b/mysql.spec @@ -1,10 +1,11 @@ Name: mysql Version: 3.23.58 -Release: 11 +Release: 12 Source0: http://www.mysql.com/Downloads/MySQL-3.23/mysql-%{version}.tar.gz Source1: mysql.init Source2: mysql.logrotate Source3: my.cnf +Source4: scriptstub.c # Working around perl dependency checking bug in rpm FTTB. Remove later. Source999: filter-requires-mysql.sh Patch0: mysql-3.23.51-manfixes.patch @@ -15,6 +16,7 @@ Patch4: mysql-3.23.58-setpermission.patch Patch5: mysql-3.23.58-typo.patch Patch6: mysql-3.23.58-symlink.patch Patch7: mysql-3.23.58-dropdb.patch +Patch8: mysql-3.23.58-config.patch URL: http://www.mysql.com BuildRoot: %{_tmppath}/%{name}-%{version}-root Summary: MySQL client programs and shared libraries. @@ -94,6 +96,7 @@ MySQL. %patch5 -p1 %patch6 -p1 %patch7 -p1 +%patch8 -p1 libtoolize --force aclocal @@ -127,6 +130,8 @@ export CFLAGS CXXFLAGS --with-berkeley-db \ --enable-thread-safe-client +gcc $CFLAGS $LDFLAGS -o scriptstub "-DLIBDIR=\"%{_libdir}/mysql\"" %{SOURCE4} + # Not enabling assembler make %{?_smp_mflags} @@ -158,6 +163,11 @@ install -m 0644 %{SOURCE3} $RPM_BUILD_ROOT/etc/my.cnf rm -f $RPM_BUILD_ROOT/%{_infodir}/dir* mv $RPM_BUILD_ROOT/usr/sql-bench $RPM_BUILD_ROOT%{_datadir}/sql-bench +mv ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysqlbug +install -m 0755 scriptstub ${RPM_BUILD_ROOT}%{_bindir}/mysqlbug +mv ${RPM_BUILD_ROOT}%{_bindir}/mysql_config ${RPM_BUILD_ROOT}%{_libdir}/mysql/mysql_config +install -m 0755 scriptstub ${RPM_BUILD_ROOT}%{_bindir}/mysql_config + # Doesn't contain anything rm -f Docs/manual.ps rm -fr $RPM_BUILD_ROOT/usr/mysql-test @@ -243,6 +253,8 @@ fi %{_mandir}/man1/* %dir %{_libdir}/mysql %{_libdir}/mysql/libmysqlclient*.so.* +%{_libdir}/mysql/mysqlbug +%{_libdir}/mysql/mysql_config %dir %{_datadir}/mysql %{_datadir}/mysql/english @@ -295,6 +307,12 @@ fi %{_datadir}/sql-bench %changelog +* Wed Oct 06 2004 Tom Lane 3.23.58-12 +- fix multilib problem with mysqlbug and mysql_config +- adjust chkconfig priority per bug #128852 +- remove bogus quoting per bug #129409 (MySQL 4.0 has done likewise) +- add sleep to mysql.init restart(); may or may not fix bug #133993 + * Tue Oct 05 2004 Tom Lane 3.23.58-11 - fix low-priority security issues CAN-2004-0388, CAN-2004-0381, CAN-2004-0457 (bugs #119442, 125991, 130347, 130348) 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 +#include +#include +#include + +/* 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; +}