From e275d14da3de27ab02fce061c44265c2ecefa6ea Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Mon, 21 Oct 2002 15:24:16 +0000 Subject: updating from SAMBA_2_2 (This used to be commit f40a8baacb79f28834b4186f386e192651596ce4) --- packaging/RedHat/makerpms.sh.tmpl | 73 +++++++++++++++++++++++++------ packaging/RedHat/smb.init | 17 ++++---- packaging/RedHat/winbind.init | 91 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 159 insertions(+), 22 deletions(-) create mode 100644 packaging/RedHat/winbind.init diff --git a/packaging/RedHat/makerpms.sh.tmpl b/packaging/RedHat/makerpms.sh.tmpl index 44b89a45ec..0b20785129 100644 --- a/packaging/RedHat/makerpms.sh.tmpl +++ b/packaging/RedHat/makerpms.sh.tmpl @@ -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. diff --git a/packaging/RedHat/smb.init b/packaging/RedHat/smb.init index 5419b2b9c6..f50da2c6b2 100755 --- a/packaging/RedHat/smb.init +++ b/packaging/RedHat/smb.init @@ -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 index 0000000000..291c351df3 --- /dev/null +++ b/packaging/RedHat/winbind.init @@ -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 $? -- cgit