summaryrefslogtreecommitdiffstats
path: root/source/n/yptools
diff options
context:
space:
mode:
Diffstat (limited to 'source/n/yptools')
-rw-r--r--source/n/yptools/rc.yp153
-rwxr-xr-xsource/n/yptools/yptools.SlackBuild15
2 files changed, 120 insertions, 48 deletions
diff --git a/source/n/yptools/rc.yp b/source/n/yptools/rc.yp
index 4c3b8decf..eda9634e4 100644
--- a/source/n/yptools/rc.yp
+++ b/source/n/yptools/rc.yp
@@ -10,49 +10,114 @@
# documentation in /usr/doc/yp-tools, /usr/doc/ypbind,
# /usr/doc/ypserv, and /usr/doc/Linux-HOWTOs/NIS-HOWTO.
-# # First, we must setup the NIS domainname. NOTE: this is not necessarily
-# # the same as your DNS domainname, set in /etc/resolv.conf. The NIS
-# # domainname is the name of a domain served by your NIS server.
-#
-# if [ -r /etc/defaultdomain ]; then
-# nisdomainname `cat /etc/defaultdomain`
-# fi
-#
-# # NIS SERVER CONFIGURATION:
-# # If you are the master server for the NIS domain, you must run ypserv to
-# # service clients on the domain.
-# if [ -x /usr/sbin/ypserv ]; then
-# echo "Starting NIS server: /usr/sbin/ypserv"
-# /usr/sbin/ypserv
-# fi
-#
-# # If you are the master server for the NIS domain, you must also run
-# # rpc.yppasswdd, which is the RPC server that lets users change their
-# # passwords. You might also want users to be able to change their shell
-# # and GECOS information, in which case you should comment out the first
-# # yppasswdd line and uncomment out the second one.
-# if [ -x /usr/sbin/rpc.yppasswdd ]; then
-# echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd"
-# /usr/sbin/rpc.yppasswdd
-# # echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd -e chsh -e chfn"
-# # /usr/sbin/rpc.yppasswdd -e chsh -e chfn
-# fi
-#
-# # If you have NIS slave servers, you might also want to start up
-# # rpc.ypxfrd, which transfers changes in the NIS domain to slave servers.
-# # Alternatively, rpc.ypxfrd can be run out of inetd.
-# if [ -x /usr/sbin/rpc.ypxfrd ]; then
-# echo "Starting NIS transfer server: /usr/sbin/rpc.ypxfrd"
-# /usr/sbin/rpc.ypxfrd
-# fi
-#
-# # NIS CLIENT CONFIGURATION:
-# # If you are a NIS client, all you need to do is run ypbind, which will
-# # broadcast across the network to find a server. Your NIS server might
-# # also be a client.
-# if [ -d /var/yp ]; then
-# echo "Starting NIS services: /usr/sbin/ypbind -broadcast"
-# /usr/sbin/ypbind -broadcast
-# fi
+# Set non-zero to enable yp client functions
+YP_CLIENT_ENABLE=1
+
+# Set non-zero to enable yp server functions
+YP_SERVER_ENABLE=0
+
+# If YP_SERVER_ENABLE is set, a non-zero YP_XFRD_ENABLE setting will
+# enable ypxfrd.
+YP_XFRD_ENABLE=0
+
+PID_PATH=/var/run
+
+yp_start() {
+
+ if [ $YP_SERVER_ENABLE -ne 0 ]; then
+ # NIS SERVER CONFIGURATION:
+ # If you are the master server for the NIS domain, you must run ypserv to
+ # service clients on the domain.
+ if [ -x /usr/sbin/ypserv ]; then
+ echo "Starting NIS server: /usr/sbin/ypserv"
+ /usr/sbin/ypserv
+ fi
+
+ # If you are the master server for the NIS domain, you must also run
+ # rpc.yppasswdd, which is the RPC server that lets users change their
+ # passwords. You might also want users to be able to change their shell
+ # and GECOS information, in which case you should comment out the first
+ # yppasswdd line and uncomment out the second one.
+
+ if [ -x /usr/sbin/rpc.yppasswdd ]; then
+ echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd"
+ /usr/sbin/rpc.yppasswdd
+ # echo "Starting NIS master password server: /usr/sbin/rpc.yppasswdd -e chsh -e chfn"
+ # /usr/sbin/rpc.yppasswdd -e chsh -e chfn
+ fi
+
+ # If you have NIS slave servers, you might also want to start up
+ # rpc.ypxfrd, which transfers changes in the NIS domain to slave servers.
+ # Alternatively, rpc.ypxfrd can be run out of inetd.
+ if [ $YP_XFRD_ENABLE -ne 0 ]; then
+ if [ -x /usr/sbin/rpc.ypxfrd ]; then
+ echo "Starting NIS transfer server: /usr/sbin/rpc.ypxfrd"
+ /usr/sbin/rpc.ypxfrd
+ fi
+ fi
+ fi
+
+ if [ $YP_CLIENT_ENABLE -ne 0 ]; then
+ # NIS CLIENT CONFIGURATION:
+ # If you are a NIS client, all you need to do is run ypbind, which will
+ # broadcast across the network to find a server. Your NIS server might
+ # also be a client.
+ if [ -d /var/yp ]; then
+ echo "Starting NIS services: /usr/sbin/ypbind -broadcast"
+ /usr/sbin/ypbind -broadcast
+ fi
+ fi
+}
+
+yp_stop() {
+ if [ -r ${PID_PATH}/ypbind.pid ]; then
+ echo "Stopping NIS services."
+ kill $(cat ${PID_PATH}/ypbind.pid)
+ fi
+
+ if [ -r ${PID_PATH}/ypxfrd.pid ]; then
+ echo "Stopping NIS transfer server."
+ kill $(cat ${PID_PATH}/ypxfrd.pid)
+ fi
+
+ if [ -r ${PID_PATH}/yppasswdd.pid ]; then
+ echo "Stopping NIS master password server."
+ kill $(cat ${PID_PATH}/yppasswdd.pid)
+ fi
+
+ if [ -r ${PID_PATH}/ypserv.pid ]; then
+ echo "Stopping NIS server."
+ kill $(cat ${PID_PATH}/ypserv.pid)
+ fi
+}
+
+# First, we must setup the NIS domainname. NOTE: this is not necessarily
+# the same as your DNS domainname, set in /etc/resolv.conf. The NIS
+# domainname is the name of a domain served by your NIS server.
#
+# If /etc/defaultdomain has not been configured we'll bail out.
+if [ -r /etc/defaultdomain -a -x /bin/nisdomainname ]; then
+ if [ "$(nisdomainname)" == "(none)" ]; then
+ nisdomainname `cat /etc/defaultdomain`
+ fi
+else
+ echo "/etc/rc.d/rc.yp: NIS not configured. Hint: set up /etc/defaultdomain."
+ exit 0
+fi
+
+case "$1" in
+'start')
+ yp_start
+ ;;
+'stop')
+ yp_stop
+ ;;
+'restart')
+ yp_stop
+ yp_start
+ ;;
+*)
+ echo "usage $0 start|stop|restart"
+esac
+
# # Done setting up NIS.
diff --git a/source/n/yptools/yptools.SlackBuild b/source/n/yptools/yptools.SlackBuild
index 6a213b2a6..42d96a30b 100755
--- a/source/n/yptools/yptools.SlackBuild
+++ b/source/n/yptools/yptools.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
# Package version number:
VERSION=2.12
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
YPTOOLS=$VERSION
YPBINDMT=1.32
@@ -208,7 +208,7 @@ make CFLAGS="$SLKCFLAGS" || exit 1
mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/yp
( cd scripts
for file in create_printcap match_printcap pwupdate ypinit ypxfr_1perday ypxfr_1perhour ypxfr_2perday ; do
- cat $file > $PKG/usr/lib${LIBDIRSUFFIX}/yp/$file
+ cat $file | sed -e "s#/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" > $PKG/usr/lib${LIBDIRSUFFIX}/yp/$file
chmod 755 $PKG/usr/lib${LIBDIRSUFFIX}/yp/$file
done
for file in pwupdate.8 ypinit.8 ; do
@@ -246,7 +246,7 @@ chown root:root $PKG/usr/doc/ypserv-$YPSERV/*
mkdir -p $PKG/etc/rc.d
zcat $CWD/rc.yp.gz > $PKG/etc/rc.d/rc.yp.new
-chmod 755 $PKG/etc/rc.d/rc.yp.new
+chmod 644 $PKG/etc/rc.d/rc.yp.new
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
@@ -266,6 +266,13 @@ config() {
# Otherwise, we leave the .new copy for the admin to consider...
}
+# Keep same perms on rc.yp.new:
+if [ -e etc/rc.d/rc.yp ]; then
+ cp -a etc/rc.d/rc.yp etc/rc.d/rc.yp.new.incoming
+ cat etc/rc.d/rc.yp.new > etc/rc.d/rc.yp.new.incoming
+ mv etc/rc.d/rc.yp.new.incoming etc/rc.d/rc.yp.new
+fi
+
config etc/nsswitch.conf-nis.new
config etc/netgroup.new
config etc/yp.conf.new