summaryrefslogtreecommitdiff
path: root/packaging/RedHat
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/RedHat')
-rw-r--r--packaging/RedHat/makerpms.sh.tmpl73
-rwxr-xr-xpackaging/RedHat/smb.init17
-rw-r--r--packaging/RedHat/winbind.init91
3 files changed, 159 insertions, 22 deletions
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 $?