List:Internals« Previous MessageNext Message »
From:Petr Chardin Date:April 16 2005 9:57pm
Subject:bk commit into 5.0 tree (petr:1.1894)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of cps. When cps does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.1894 05/04/16 23:57:15 petr@stripped +2 -0
  mysql.server script fixed to use mysqld_safe by default + lots of minor additions

  support-files/mysql.server.sh
    1.42 05/04/16 23:57:12 petr@stripped +96 -20
    mysql.server init.d script fixed back to use mysqld_safe by default, as mysqlmanager
does not handle all
    installation scenarious yet. + libexecdir template was added for mysqlmanager to deal
nicely  with the
    source distribution

  scripts/make_binary_distribution.sh
    1.79 05/04/16 23:57:12 petr@stripped +1 -1
    add libexec expansion handling to make_binary_distribution

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	petr
# Host:	owlet.
# Root:	/home/cps/mysql/trees/mysql-5.0-build

--- 1.78/scripts/make_binary_distribution.sh	2005-04-06 18:23:32 +04:00
+++ 1.79/scripts/make_binary_distribution.sh	2005-04-16 23:57:12 +04:00
@@ -233,7 +233,7 @@
   chmod a+x $BASE/bin/*
   $CP scripts/* $BASE/bin
   $BASE/bin/replace \@localstatedir\@ ./data \@bindir\@ ./bin \@scriptdir\@ ./bin
\@libexecdir\@ ./bin \@sbindir\@ ./bin \@prefix\@ . \@HOSTNAME\@ @HOSTNAME@
\@pkgdatadir\@ ./support-files < $SOURCE/scripts/mysql_install_db.sh >
$BASE/scripts/mysql_install_db
-  $BASE/bin/replace \@prefix\@ /usr/local/mysql \@bindir\@ ./bin \@sbindir\@ ./bin
\@MYSQLD_USER\@ mysql \@localstatedir\@ /usr/local/mysql/data \@HOSTNAME\@ @HOSTNAME@
< $SOURCE/support-files/mysql.server.sh > $BASE/support-files/mysql.server
+  $BASE/bin/replace \@prefix\@ /usr/local/mysql \@bindir\@ ./bin \@sbindir\@ ./bin
\@libexecdir\@ ./bin \@MYSQLD_USER\@ @MYSQLD_USER@ \@localstatedir\@
/usr/local/mysql/data \@HOSTNAME\@ @HOSTNAME@ < $SOURCE/support-files/mysql.server.sh
> $BASE/support-files/mysql.server
   $BASE/bin/replace /my/gnu/bin/hostname /bin/hostname -- $BASE/bin/mysqld_safe
   mv $BASE/support-files/binary-configure $BASE/configure
   chmod a+x $BASE/bin/* $BASE/scripts/* $BASE/support-files/mysql-*
$BASE/support-files/mysql.server $BASE/configure

--- 1.41/support-files/mysql.server.sh	2005-04-01 12:13:28 +04:00
+++ 1.42/support-files/mysql.server.sh	2005-04-16 23:57:12 +04:00
@@ -48,15 +48,21 @@
 
 # Set some defaults
 pid_file=
+server_pid_file=
+use_mysqld_safe=1
+user=@MYSQLD_USER@
 if test -z "$basedir"
 then
   basedir=@prefix@
   bindir=@bindir@
   datadir=@localstatedir@
   sbindir=@sbindir@
+  libexecdir=@libexecdir@
 else
   bindir="$basedir/bin"
-  sbindir="$basedir/sbin"
+  datadir="$basedir/data"
+  sbindir="$basedir/bin"
+  libexecdir="$basedir/bin"
 fi
 
 #
@@ -66,8 +72,14 @@
 if test -f $lsb_functions ; then
   source $lsb_functions
 else
-  alias log_success_msg="echo \ SUCCESS! "
-  alias log_failure_msg="echo \ ERROR! "
+  log_success_msg()
+  {
+    echo " SUCCESS! $@"
+  }
+  log_failure_msg()
+  {
+    echo " ERROR! $@"
+  }
 fi
 
 PATH=/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin
@@ -84,8 +96,17 @@
 parse_server_arguments() {
   for arg do
     case "$arg" in
-      --basedir=*)  basedir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
+      --basedir=*)  basedir=`echo "$arg" | sed -e 's/^[^=]*=//'`
+                    bindir="$basedir/bin"
+		    datadir="$basedir/data"
+		    sbindir="$basedir/bin"
+		    libexecdir="$basedir/bin"
+        ;;
       --datadir=*)  datadir=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
+      --user=*)  user=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
+      --pid-file=*) server_pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
+      --use-mysqld_safe) use_mysqld_safe=1;;
+      --use-manager)     use_mysqld_safe=0;;
     esac
   done
 }
@@ -94,6 +115,7 @@
   for arg do
     case "$arg" in
       --pid-file=*) pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
+      --user=*)  user=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
     esac
   done
 }
@@ -165,17 +187,22 @@
 fi
 
 #
-# Test if someone changed datadir;  In this case we should also read the
-# default arguments from this directory
+# Read defaults file from 'basedir'.   If there is no defaults file there
+# check if it's in the old (depricated) place (datadir) and read it from there
 #
 
 extra_args=""
-if test "$datadir" != "@localstatedir@"
+if test -r "$basedir/my.cnf"
 then
-  extra_args="-e $datadir/my.cnf"
+  extra_args="-e $basedir/my.cnf"
+else
+  if test -r "$datadir/my.cnf"
+  then
+    extra_args="-e $datadir/my.cnf"
+  fi
 fi
 
-parse_server_arguments `$print_defaults $extra_args mysqld`
+parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server
mysql.server`
 
 # Look for the pidfile 
 parse_manager_arguments `$print_defaults $extra_args manager`
@@ -192,9 +219,15 @@
     * )  pid_file="$datadir/$pid_file" ;;
   esac
 fi
-
-user=@MYSQLD_USER@
-USER_OPTION="--user=$user"
+if test -z "$server_pid_file"
+then
+  server_pid_file=$datadir/`@HOSTNAME@`.pid
+else
+  case "$server_pid_file" in
+    /* ) ;;
+    * )  server_pid_file="$datadir/$server_pid_file" ;;
+  esac
+fi
 
 # Safeguard (relative paths, core dumps..)
 cd $basedir
@@ -203,12 +236,21 @@
   'start')
     # Start daemon
 
-    if test -x $sbindir/mysqlmanager
+    manager=$bindir/mysqlmanager
+    if test -x $libexecdir/mysqlmanager
+    then
+      manager=$libexecdir/mysqlmanager
+    elif test -x $bindir/mysqlmanager
+    then
+      manager=$sbindir/mysqlmanager
+    fi
+
+    echo $echo_n "Starting MySQL"
+    if test -x $manager -a "$use_mysqld_safe" = "0"
     then
       # Give extra arguments to mysqld with the my.cnf file. This script may
       # be overwritten at next upgrade.
-      echo $echo_n "Starting MySQL"
-      $sbindir/mysqlmanager $USER_OPTION --pid-file=$pid_file >/dev/null 2>&1
&
+      $manager --user=$user --pid-file=$pid_file >/dev/null 2>&1 &
       wait_for_pid created
 
       # Make lock for RedHat / SuSE
@@ -216,14 +258,38 @@
       then
         touch /var/lock/subsys/mysqlmanager
       fi
+    elif test -x $bindir/mysqld_safe
+    then
+      # Give extra arguments to mysqld with the my.cnf file. This script
+      # may be overwritten at next upgrade.
+      pid_file=$server_pid_file
+      $bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file >/dev/null
2>&1 &
+      wait_for_pid created
+
+      # Make lock for RedHat / SuSE
+      if test -w /var/lock/subsys
+      then
+        touch /var/lock/subsys/mysql
+      fi
     else
-      log_failure_msg "Can't execute $sbindir/mysqlmanager"
+      log_failure_msg "Couldn't find MySQL manager or server"
     fi
     ;;
 
   'stop')
     # Stop daemon. We use a signal here to avoid having to know the
     # root password.
+
+    # The RedHat / SuSE lock directory to remove
+    lock_dir=/var/lock/subsys/mysqlmanager
+
+    # If the manager pid_file doesn't exist, try the server's
+    if test ! -s "$pid_file"
+    then
+      pid_file=$server_pid_file
+      lock_dir=/var/lock/subsys/mysql
+    fi
+
     if test -s "$pid_file"
     then
       mysqlmanager_pid=`cat $pid_file`
@@ -233,12 +299,12 @@
       wait_for_pid removed
 
       # delete lock for RedHat / SuSE
-      if test -f /var/lock/subsys/mysqlmanager
+      if test -f $lock_dir
       then
-        rm -f /var/lock/subsys/mysqlmanager
+        rm -f $lock_dir
       fi
     else
-      log_failure_msg "mysqlmanager PID file could not be found!"
+      log_failure_msg "MySQL manager or server PID file could not be found!"
     fi
     ;;
 
@@ -249,9 +315,19 @@
     $0 start
     ;;
 
+  'reload')
+    if test -s "$server_pid_file" ; then
+      mysqld_pid=`cat $server_pid_file`
+      kill -HUP $mysqld_pid && log_success_msg "Reloading service MySQL"
+      touch $server_pid_file
+    else
+      log_failure_msg "MySQL PID file could not be found!"
+    fi
+    ;;
+
   *)
     # usage
-    echo "Usage: $0 start|stop|restart"
+    echo "Usage: $0 start|stop|restart|reload"
     exit 1
     ;;
 esac
Thread
bk commit into 5.0 tree (petr:1.1894)Petr Chardin16 Apr