updating from SAMBA_2_2
authorGerald Carter <jerry@samba.org>
Mon, 21 Oct 2002 15:24:16 +0000 (15:24 +0000)
committerGerald Carter <jerry@samba.org>
Mon, 21 Oct 2002 15:24:16 +0000 (15:24 +0000)
(This used to be commit f40a8baacb79f28834b4186f386e192651596ce4)

packaging/RedHat/makerpms.sh.tmpl
packaging/RedHat/smb.init
packaging/RedHat/winbind.init [new file with mode: 0644]

index 44b89a45ec8eb2dec6334dc69677e8cdac4b4574..0b207851298f4dd101336fe3358810af835ad7b0 100644 (file)
@@ -1,25 +1,52 @@
 #!/bin/sh
-# Copyright (C) John H Terpstra 1998
+# Copyright (C) John H Terpstra 1998-2002
 # Updated for RPM 3 by Jochen Wiedmann, joe@ispsoft.de
 # Changed for a generic tar file rebuild by abartlet@pcug.org.au
+# Changed by John H Terpstra to build on RH7.2 - should also work for earlier versions jht@samba.org
+
+# The following allows environment variables to override the target directories
+#   the alternative is to have a file in your home directory calles .rpmmacros
+#   containing the following:
+#   %_topdir  /home/mylogin/redhat
+#
+# Note: Under this directory rpm expects to find the same directories that are under the
+#   /usr/src/redhat directory
+#
+if [ -x ~/.rpmmacros ]; then
+       TOPDIR=`awk '/topdir/ {print $2}' < ~/.rpmmacros`
+       if [ z$TOPDIR <> "z" ]; then
+               SPECDIR=${TOPDIR}/SPECS
+               SRCDIR=${TOPDIR}/SOURCES
+       fi
+fi
+
+SPECDIR=${SPECDIR:-/usr/src/redhat/SPECS}
+SRCDIR=${SRCDIR:-/usr/src/redhat/SOURCES}
+
+# At this point the SPECDIR and SRCDIR vaiables must have a value!
+
 USERID=`id -u`
 GRPID=`id -g`
 VERSION='PVERSION'
 
-rm -f ../../samba2.*.spec
+RPMVER=`rpm --version | awk '{print $3}'`
+echo The RPM Version on this machine is: $RPMVER
 
-case `rpm --version | awk '{print $3}'` in
-    2.*)
-       sed -e "s/MANDIR_MACRO/\%\{prefix\}\/man/g" < samba2.spec > samba2.rpm2.spec
-       cp samba2.rpm2.spec ../../
+case $RPMVER in
+    2*)
+       echo Building for RPM v2.x
+       sed -e "s/MANDIR_MACRO/\%\{prefix\}\/man/g" < samba2.spec > samba.spec
+       sed -e "s/MANDIR_MACRO/\%\{prefix\}\/man/g" < samba2-devel.spec > samba-devel.spec
        ;;
-    3.*)
-       sed -e "s/MANDIR_MACRO/\%\{prefix\}\/man/g" < samba2.spec > samba2.rpm3.spec
-       cp samba2.rpm3.spec ../../
+    3*)
+       echo Building for RPM v3.x
+       sed -e "s/MANDIR_MACRO/\%\{prefix\}\/man/g" < samba2.spec > samba.spec
+       sed -e "s/MANDIR_MACRO/\%\{prefix\}\/man/g" < samba2-devel.spec > samba-devel.spec
        ;;
-    4.*)
-       sed -e "s/MANDIR_MACRO/\%\{_mandir\}/g" < samba2.spec > samba2.rpm4.spec
-       cp samba2.rpm4.spec ../../
+    4*)
+       echo Building for RPM v4.x
+       sed -e "s/MANDIR_MACRO/\%\{_mandir\}/g" < samba2.spec > samba.spec
+       sed -e "s/MANDIR_MACRO/\%\{_mandir\}/g" < samba2-devel.spec > samba-devel.spec
        ;;
     *)
        echo "Unknown RPM version: `rpm --version`"
@@ -29,10 +56,28 @@ esac
 
 ( cd ../../source; if [ -f Makefile ]; then make distclean; fi )
 ( cd ../../.. ; chown -R ${USERID}.${GRPID} samba-${VERSION} )
-( cd ../../.. ; tar --exclude=CVS -czvf samba-${VERSION}.tar.gz samba-${VERSION}/samba2.*.spec samba-${VERSION} )
 
-rpm -ta -v ../../../samba-${VERSION}.tar.gz
+# We do this to make sure that the package always has the current version in it''s name
+if [ z$1 = z"devel" ]; then
+       (cd ../../.. ; mv samba samba-${VERSION} )
+fi
+
+( cd ../../.. ; tar --exclude=CVS -czvf ${SRCDIR}/samba-${VERSION}.tar.gz samba-${VERSION} )
 
+cp -av samba.spec ${SPECDIR}
+cp -av samba-devel.spec ${SPECDIR}
 
+if [ z$1 = "zdevel" ]; then
+       echo Restoring source samba directory name
+       ( cd ../../.. ; mv samba-${VERSION} samba )
+       echo Getting Ready to build Developmental Build
+       cd ${SPECDIR}
+       rpm -ba -v samba-devel.spec
+else
+       echo Getting Ready to build release package
+       cd ${SPECDIR}
+       rpm -ba -v --clean --rmsource samba.spec
+fi
 
+echo Done.
 
index 5419b2b9c6e3d2301d547464b9a51a0ed7e7e390..f50da2c6b2a86f801a3d28527cc19147a2552a1e 100755 (executable)
@@ -24,26 +24,27 @@ case "$1" in
        echo -n "Starting SMB services: "
        daemon smbd -D  
        daemon nmbd -D 
-       if [ "`grep -i 'winbind uid' /etc/samba/smb.conf | egrep -v [\#\;]`" ]; then
-               daemon winbindd 
-       fi
        echo
        touch /var/lock/subsys/smb
        ;;
   stop)
        echo -n "Shutting down SMB services: "
-       killproc smbd -TERM
+
+       ## we have to get all the smbd process here instead of just the
+       ## main parent (i.e. killproc) because it can take a long time
+       ## for an individual process to process a TERM signal
+       smbdpids=`ps guax | grep smbd | grep -v grep | awk '{print $2}'`
+       for pid in $smbdpids; do
+               kill -TERM $pid
+       done
+       ## nmbd is ok to kill using killproc()
        killproc nmbd -TERM
-       if [ "`ps -ef | grep winbind | grep -v grep`" ]; then
-               killproc winbindd
-       fi
        rm -f /var/lock/subsys/smb
        echo ""
        ;;
   status)
        status smbd
        status nmbd
-       status winbindd
        ;;
   restart)
        echo -n "Restarting SMB services: "
diff --git a/packaging/RedHat/winbind.init b/packaging/RedHat/winbind.init
new file mode 100644 (file)
index 0000000..291c351
--- /dev/null
@@ -0,0 +1,91 @@
+#!/bin/sh
+#
+# chkconfig: 345 81 45
+# description: Starts and stops the Samba winbind daemon to provide \
+# user and group information from a domain controller to linux.
+
+# 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
+
+# Source networking configuration.
+. /etc/sysconfig/network
+
+# Check that networking is up.
+[ ${NETWORKING} = "no" ] && exit 0
+
+# Check that smb.conf exists.
+[ -f /etc/samba/smb.conf ] || exit 0
+
+RETVAL=0
+
+
+start() {
+       echo -n "Starting Winbind services: "
+       RETVAL=1
+       if [ "`grep -i 'winbind uid' /etc/samba/smb.conf | egrep -v [\#\;]`" ]; then
+               daemon winbindd
+               RETVAL=$?
+       fi
+       echo
+       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/winbind || \
+          RETVAL=1
+       return $RETVAL
+}      
+stop() {
+       echo -n "Shutting down Winbind services: "
+       RETVAL=1
+       if [ "`grep -i 'winbind uid' /etc/samba/smb.conf | egrep -v [\#\;]`" ]; then
+               killproc winbindd
+               RETVAL=$?
+       fi
+       echo
+       [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/winbind
+       return $RETVAL
+}      
+restart() {
+       stop
+       start
+}      
+reload() {
+       export TMPDIR="/var/tmp"
+        echo -n "Checking domain trusts: "
+       killproc winbindd -HUP
+       RETVAL=$?
+       echo
+       return $RETVAL
+}      
+mdkstatus() {
+       status winbindd
+}      
+
+case "$1" in
+  start)
+       start
+       ;;
+  stop)
+       stop
+       ;;
+  restart)
+       restart
+       ;;
+  reload)
+       reload
+       ;;
+  status)
+       mdkstatus
+       ;;
+  condrestart)
+       [ -f /var/lock/subsys/winbindd ] && restart || :
+       ;;
+  *)
+       echo "Usage: $0 {start|stop|restart|status|condrestart}"
+       exit 1
+esac
+
+exit $?