rpms/mysql/devel mysql.init,1.28,1.29 mysql.spec,1.146,1.147

Tom Lane tgl at fedoraproject.org
Mon Feb 22 02:10:02 UTC 2010


Author: tgl

Update of /cvs/pkgs/rpms/mysql/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25575

Modified Files:
	mysql.init mysql.spec 
Log Message:
Add Obsoletes: mysql-cluster, and improve init script's LSB compliance


Index: mysql.init
===================================================================
RCS file: /cvs/pkgs/rpms/mysql/devel/mysql.init,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -p -r1.28 -r1.29
--- mysql.init	2 Jan 2010 01:44:16 -0000	1.28
+++ mysql.init	22 Feb 2010 02:10:00 -0000	1.29
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 #
 # mysqld	This shell script takes care of starting and stopping
 #		the MySQL subsystem (mysqld).
@@ -16,7 +16,13 @@
 . /etc/sysconfig/network
 
 
-prog="MySQL"
+exec="/usr/bin/mysqld_safe"
+prog="mysqld"
+
+[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
+
+lockfile=/var/lock/subsys/$prog
+
 
 # extract value of a MySQL option from config files
 # Usage: get_mysql_option SECTION VARNAME DEFAULT
@@ -40,7 +46,22 @@ errlogfile="$result"
 get_mysql_option mysqld_safe pid-file "/var/run/mysqld/mysqld.pid"
 mypidfile="$result"
 
+
 start(){
+    [ -x $exec ] || exit 5
+    # check to see if it's already running
+    RESPONSE=`/usr/bin/mysqladmin --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1`
+    if [ $? = 0 ]; then
+	# already running, do nothing
+	action $"Starting $prog: " /bin/true
+	ret=0
+    elif echo "$RESPONSE" | grep -q "Access denied for user"
+    then
+	# already running, do nothing
+	action $"Starting $prog: " /bin/true
+	ret=0
+    else
+    	# prepare for start
 	touch "$errlogfile"
 	chown mysql:mysql "$errlogfile" 
 	chmod 0640 "$errlogfile"
@@ -71,7 +92,7 @@ start(){
 	# and some users might prefer to configure logging to syslog.)
 	# Note: set --basedir to prevent probes that might trigger SELinux
 	# alarms, per bug #547485
-	/usr/bin/mysqld_safe   --datadir="$datadir" --socket="$socketfile" \
+	$exec   --datadir="$datadir" --socket="$socketfile" \
 		--pid-file="$mypidfile" \
 		--basedir=/usr --user=mysql >/dev/null 2>&1 &
 	safe_pid=$!
@@ -98,42 +119,49 @@ start(){
 	fi
 	if [ $ret -eq 0 ]; then
 	    action $"Starting $prog: " /bin/true
-	    touch /var/lock/subsys/mysqld
+	    touch $lockfile
 	else
 	    action $"Starting $prog: " /bin/false
 	fi
-	return $ret
+    fi
+    return $ret
 }
 
 stop(){
-        MYSQLPID=`cat "$mypidfile"  2>/dev/null `
-        if [ -n "$MYSQLPID" ]; then
-            /bin/kill "$MYSQLPID" >/dev/null 2>&1
-            ret=$?
-            if [ $ret -eq 0 ]; then
-                STOPTIMEOUT=60
-                while [ $STOPTIMEOUT -gt 0 ]; do
-                    /bin/kill -0 "$MYSQLPID" >/dev/null 2>&1 || break
-                    sleep 1
-                    let STOPTIMEOUT=${STOPTIMEOUT}-1
-                done
-                if [ $STOPTIMEOUT -eq 0 ]; then
-                    echo "Timeout error occurred trying to stop MySQL Daemon."
-                    ret=1
-                    action $"Stopping $prog: " /bin/false
-                else
-                    rm -f /var/lock/subsys/mysqld
-                    rm -f "$socketfile"
-                    action $"Stopping $prog: " /bin/true
-                fi
-            else
-                action $"Stopping $prog: " /bin/false
-            fi
-        else
-            ret=1
-            action $"Stopping $prog: " /bin/false
-        fi
-        return $ret
+	if [ ! -f "$mypidfile" ]; then
+	    # not running; per LSB standards this is "ok"
+	    action $"Stopping $prog: " /bin/true
+	    return 0
+	fi
+	MYSQLPID=`cat "$mypidfile"`
+	if [ -n "$MYSQLPID" ]; then
+	    /bin/kill "$MYSQLPID" >/dev/null 2>&1
+	    ret=$?
+	    if [ $ret -eq 0 ]; then
+		STOPTIMEOUT=60
+		while [ $STOPTIMEOUT -gt 0 ]; do
+		    /bin/kill -0 "$MYSQLPID" >/dev/null 2>&1 || break
+		    sleep 1
+		    let STOPTIMEOUT=${STOPTIMEOUT}-1
+		done
+		if [ $STOPTIMEOUT -eq 0 ]; then
+		    echo "Timeout error occurred trying to stop MySQL Daemon."
+		    ret=1
+		    action $"Stopping $prog: " /bin/false
+		else
+		    rm -f $lockfile
+		    rm -f "$socketfile"
+		    action $"Stopping $prog: " /bin/true
+		fi
+	    else
+		action $"Stopping $prog: " /bin/false
+	    fi
+	else
+	    # failed to read pidfile, probably insufficient permissions
+	    action $"Stopping $prog: " /bin/false
+	    ret=4
+	fi
+	return $ret
 }
  
 restart(){
@@ -142,9 +170,10 @@ restart(){
 }
 
 condrestart(){
-    [ -e /var/lock/subsys/mysqld ] && restart || :
+    [ -e $lockfile ] && restart || :
 }
 
+
 # See how we were called.
 case "$1" in
   start)
@@ -154,17 +183,23 @@ case "$1" in
     stop
     ;;
   status)
-    status mysqld
+    status $prog
     ;;
   restart)
     restart
     ;;
-  condrestart)
+  condrestart|try-restart)
     condrestart
     ;;
+  reload)
+    exit 3
+    ;;
+  force-reload)
+    restart
+    ;;
   *)
-    echo $"Usage: $0 {start|stop|status|condrestart|restart}"
-    exit 1
+    echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
+    exit 2
 esac
 
 exit $?


Index: mysql.spec
===================================================================
RCS file: /cvs/pkgs/rpms/mysql/devel/mysql.spec,v
retrieving revision 1.146
retrieving revision 1.147
diff -u -p -r1.146 -r1.147
--- mysql.spec	20 Feb 2010 23:20:43 -0000	1.146
+++ mysql.spec	22 Feb 2010 02:10:00 -0000	1.147
@@ -1,6 +1,6 @@
 Name: mysql
 Version: 5.1.44
-Release: 1%{?dist}
+Release: 2%{?dist}
 Summary: MySQL client programs and shared libraries
 Group: Applications/Databases
 URL: http://www.mysql.com
@@ -55,8 +55,11 @@ BuildRequires: perl(Socket)
 Requires: grep, fileutils
 Requires: %{name}-libs = %{version}-%{release}
 Requires: bash
+
+# MySQL (with caps) is upstream's spelling of their own RPMs for mysql
 Conflicts: MySQL
-Obsoletes: mysql-client mysql-perl
+# mysql-cluster used to be built from this SRPM, but no more
+Obsoletes: mysql-cluster < 5.1.44
 
 # Working around perl dependency checking bug in rpm FTTB. Remove later.
 %global __perl_requires %{SOURCE999}
@@ -83,9 +86,14 @@ MySQL server.
 
 Summary: The MySQL server and related files
 Group: Applications/Databases
-Requires: /sbin/chkconfig, /usr/sbin/useradd
 Requires: %{name} = %{version}-%{release}
 Requires: sh-utils
+Requires(pre): /usr/sbin/useradd
+Requires(post): chkconfig
+Requires(preun): chkconfig
+# This is for /sbin/service
+Requires(preun): initscripts
+Requires(postun): initscripts
 # mysqlhotcopy needs DBI/DBD support
 Requires: perl-DBI, perl-DBD-MySQL
 Conflicts: MySQL-server
@@ -363,6 +371,7 @@ fi
 
 %preun server
 if [ $1 = 0 ]; then
+    /sbin/service mysqld stop >/dev/null 2>&1
     /sbin/chkconfig --del mysqld
 fi
 
@@ -371,7 +380,6 @@ if [ $1 = 0 ] ; then
     /sbin/ldconfig
 fi
 
-
 %postun server
 if [ $1 -ge 1 ]; then
     /sbin/service mysqld condrestart >/dev/null 2>&1 || :
@@ -560,6 +568,12 @@ fi
 %{_mandir}/man1/mysql_client_test.1*
 
 %changelog
+* Sun Feb 21 2010 Tom Lane <tgl at redhat.com> 5.1.44-2
+- Add "Obsoletes: mysql-cluster" to fix upgrade-in-place from F-12
+- Bring init script into some modicum of compliance with Fedora/LSB standards
+Related: #557711
+Related: #562749
+
 * Sat Feb 20 2010 Tom Lane <tgl at redhat.com> 5.1.44-1
 - Update to MySQL 5.1.44, for various fixes described at
   http://dev.mysql.com/doc/refman/5.1/en/news-5-1-44.html



More information about the scm-commits mailing list