rpms/cyrus-imapd/F-11 cyrus-imapd.init, 1.2, 1.3 cyrus-imapd.spec, 1.56, 1.57

Michal Hlavinka mhlavink at fedoraproject.org
Fri Oct 9 12:20:16 UTC 2009


Author: mhlavink

Update of /cvs/extras/rpms/cyrus-imapd/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15677

Modified Files:
	cyrus-imapd.init cyrus-imapd.spec 
Log Message:
* Fri Oct 09 2009 Michal Hlavinka <mhlavink at redhat.com> - 2.3.15-2
- fix cyrus user shell for db import (#528126)
- make init script lsb compliant



Index: cyrus-imapd.init
===================================================================
RCS file: /cvs/extras/rpms/cyrus-imapd/F-11/cyrus-imapd.init,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- cyrus-imapd.init	28 Feb 2006 20:04:01 -0000	1.2
+++ cyrus-imapd.init	9 Oct 2009 12:20:16 -0000	1.3
@@ -11,45 +11,28 @@
 # version:	2005111100
 # changed:	add quickstart/stop option to init script to bypass db import/export
 
-# Source function library
-if [ -f /etc/init.d/functions ]; then
-  . /etc/init.d/functions
-elif [ -f /etc/rc.d/init.d/functions ]; then
-  . /etc/rc.d/init.d/functions
-else
-  exit 0
-fi
+. /etc/init.d/functions
 
-# Source networking configuration.
-. /etc/sysconfig/network
+config=/etc/imapd.conf
+config2=/etc/cyrus.conf
+exec=/usr/lib/cyrus-imapd/cyrus-master
+lockfile=/var/lock/subsys/cyrus-imapd
+pidfile=/var/run/cyrus-master.pid
+prog="cyrus-imapd"
 
-# Check that networking is up.
-[ ${NETWORKING} = "no" ] && exit 0
+if [ -f /etc/sysconfig/dovecot ]; then
+    . /etc/sysconfig/dovecot
+fi
 
 # check if the config files are present
-[ -f /etc/cyrus.conf ] || exit 0
-[ -f /etc/imapd.conf ] || exit 0
+configok=true
+[ -f $config -a $config2 ] || configok=false
  
-# This is our service name
-BASENAME=$(basename $0)
-if [ -L $0 ]; then
-  BASENAME=$(find $0 -name $BASENAME -printf %l)
-  BASENAME=$(basename $BASENAME)
-fi
-
-# Source service configuration.
-if [ -f /etc/sysconfig/$BASENAME ]; then
-  . /etc/sysconfig/$BASENAME
-else
-  echo "$BASENAME: configfile /etc/sysconfig/$BASENAME does NOT exist !"
-  exit 1
-fi
-
 # get_config [config default]
 # extracts config option from config file
 get_config() {
-  if config=$(grep "^$1" /etc/imapd.conf); then
-    echo $config | cut -d: -f2
+  if conf=$(grep "^$1" /etc/imapd.conf); then
+    echo $conf | cut -d: -f2
   else
     echo $2
   fi
@@ -61,66 +44,65 @@ CYRUSMASTER=/usr/lib/cyrus-imapd/cyrus-m
 CYRUS_PROC_NAME=$(basename $CYRUSMASTER)
 ALWAYS_CONVERT=1
 
-# fallback to su if runuser not available
-if [ -x /sbin/runuser ]; then
-  RUNUSER=runuser
-else
-  RUNUSER=su
-fi
-
 RETVAL=0
 RETVAL2=1
 QUICK=0
 
 start() {
+  [ $UID -eq 0 ] || exit 4
+  [ -x $exec ] || exit 5
+  $configok || exit 6
   if [ $(/sbin/pidof -s $CYRUSMASTER) ]; then
-    echo -n $"$BASENAME already running."
-    false
+    echo -n $"$prog already running."
+    true
     echo
   else
     if [ $QUICK -eq 0 ]; then
-      echo -n $"Importing $BASENAME databases: "
+      echo -n $"Importing $prog databases: "
       cd $CONFIGDIRECTORY
-      $RUNUSER - cyrus -c "umask 166 ; /usr/lib/cyrus-imapd/cvt_cyrusdb_all > ${CONFIGDIRECTORY}/rpm/db_import.log 2>&1" < /dev/null
+      runuser - cyrus -s /bin/sh -c "umask 166 ; /usr/lib/cyrus-imapd/cvt_cyrusdb_all > ${CONFIGDIRECTORY}/rpm/db_import.log 2>&1" < /dev/null
       RETVAL=$?
       if [ $RETVAL -eq 0 ]; then
-        success $"$BASENAME importing databases"
+        success $"$prog importing databases"
       else
-        failure $"$BASENAME error importing databases, check ${CONFIGDIRECTORY}/rpm/db_import.log"
+        failure $"$prog error importing databases, check ${CONFIGDIRECTORY}/rpm/db_import.log"
       fi
       echo
     fi
     if [ $RETVAL -eq 0 ]; then
-      echo -n $"Starting $BASENAME: "
+      echo -n $"Starting $prog: "
       daemon $CYRUSMASTER -d $CYRUSOPTIONS
       RETVAL2=$?
       echo
     fi
   fi
-  [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/$BASENAME
+  [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch $lockfile
   return $RETVAL
 }
 
 stop() {
-  echo -n $"Shutting down $BASENAME: "
+  [ $UID -eq 0 ] || exit 4
+  [ -x $exec ] || exit 5
+
+  echo -n $"Shutting down $prog: "
   killproc $CYRUSMASTER
   RETVAL=$?
   if [ $QUICK -eq 0 ]; then
     if [ ! $(/sbin/pidof -s $CYRUSMASTER) ]; then
       echo
-      echo -n $"Exporting $BASENAME databases: "
+      echo -n $"Exporting $prog databases: "
       cd $CONFIGDIRECTORY
-      $RUNUSER - cyrus -c "umask 166 ; /usr/lib/cyrus-imapd/cvt_cyrusdb_all export > ${CONFIGDIRECTORY}/rpm/db_export.log 2>&1" < /dev/null
+      runuser - cyrus -s /bin/sh -c "umask 166 ; /usr/lib/cyrus-imapd/cvt_cyrusdb_all export > ${CONFIGDIRECTORY}/rpm/db_export.log 2>&1" < /dev/null
       RETVAL2=$?
       if [ $RETVAL2 -eq 0 ]; then
-        success $"$BASENAME exporting databases"
+        success $"$prog exporting databases"
       else
-        failure $"$BASENAME error exporting databases, check ${CONFIGDIRECTORY}/rpm/db_export.log"
+        failure $"$prog error exporting databases, check ${CONFIGDIRECTORY}/rpm/db_export.log"
       fi
     fi
   fi
   echo
-  [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/$BASENAME
+  [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f $lockfile
   return $RETVAL
 }
 
@@ -137,16 +119,6 @@ reload() {
   return $RETVAL
 }
  
-condrestart() {
-  [ -e /var/lock/subsys/$BASENAME ] && restart || :
-}
-
-rhstatus() {
-  status $CYRUSMASTER
-  RETVAL=$?
-  return $RETVAL
-}
-
 case "$1" in
   start)
     start
@@ -154,17 +126,21 @@ case "$1" in
   stop)
     stop
     ;;
-  restart)
+  force-reload|restart)
     restart
     ;;
   reload)
     reload
     ;;
-  condrestart)
-    condrestart
+  condrestart|try-restart)
+    if [ -f $lockfile ]; then
+        stop
+        start
+    fi
     ;;
   status)
-    rhstatus
+    status -p $pidfile $prog 
+    RETVAL=$?
     ;;
   quickstart)
     QUICK=1
@@ -175,8 +151,9 @@ case "$1" in
     stop
     ;;
   *)
-    echo $"Usage: $BASENAME {start|stop|restart|reload|condrestart|status|quickstart|quickstop}"
-    RETVAL=1
+    echo $"Usage: $0 {start|stop|restart|reload|force-reload|condrestart|try-restart|status|quickstart|quickstop}"
+    RETVAL=2
+    [ "$1" = "usage" ] && RETVAL=0
 esac
 
 exit $RETVAL


Index: cyrus-imapd.spec
===================================================================
RCS file: /cvs/extras/rpms/cyrus-imapd/F-11/cyrus-imapd.spec,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -p -r1.56 -r1.57
--- cyrus-imapd.spec	18 Sep 2009 13:58:19 -0000	1.56
+++ cyrus-imapd.spec	9 Oct 2009 12:20:16 -0000	1.57
@@ -1,6 +1,6 @@
 Name: cyrus-imapd
 Version: 2.3.15
-Release: 1%{?dist}
+Release: 2%{?dist}
 
 # ********************** BUILD TIME OPTIONS START **********************
 
@@ -529,10 +529,10 @@ fi
 %if %{SASLGROUP}
 /usr/sbin/groupadd -g %{gid} -r %{_saslgroup} 2> /dev/null || :
 /usr/sbin/useradd -c "Cyrus IMAP Server" -d %{_vardata} -g %{_cyrusgroup} \
-  -G %{_saslgroup} -s /bin/nologin -u %{uid} -r %{_cyrususer} 2> /dev/null || :
+  -G %{_saslgroup} -s /sbin/nologin -u %{uid} -r %{_cyrususer} 2> /dev/null || :
 %else
 /usr/sbin/useradd -c "Cyrus IMAP Server" -d %{_vardata} -g %{_cyrusgroup} \
-  -s /bin/nologin -u %{uid} -r %{_cyrususer} 2> /dev/null || :
+  -s /sbin/nologin -u %{uid} -r %{_cyrususer} 2> /dev/null || :
 %endif
 
 %post utils
@@ -731,6 +731,10 @@ fi
 %{_mandir}/man1/*
 
 %changelog
+* Fri Oct 09 2009 Michal Hlavinka <mhlavink at redhat.com> - 2.3.15-2
+- fix cyrus user shell for db import (#528126)
+- make init script lsb compliant
+
 * Fri Sep 18 2009 Michal Hlavinka <mhlavink at redhat.com> - 2.3.15-1
 - fix another buffer overflow in cyrus sieve (CVE-2009-3235)
 




More information about the fedora-extras-commits mailing list