summaryrefslogtreecommitdiff
path: root/source/n/yptools
diff options
context:
space:
mode:
authorPatrick J Volkerding <volkerdi@slackware.com>2012-09-26 01:10:42 +0000
committerEric Hameleers <alien@slackware.com>2018-05-31 22:51:55 +0200
commit9664bee729d487bcc0a0bc35859f8e13d5421c75 (patch)
treeb428a16618e36ed864a8d76ea3435e19a452bf90 /source/n/yptools
parent75a4a592e5ccda30715f93563d741b83e0dcf39e (diff)
downloadcurrent-9664bee729d487bcc0a0bc35859f8e13d5421c75.tar.gz
Slackware 14.0slackware-14.0
Wed Sep 26 01:10:42 UTC 2012 Slackware 14.0 x86_64 stable is released! We're perfectionists here at Slackware, so this release has been a long time a-brewing. But we think you'll agree that it was worth the wait. Slackware 14.0 combines modern components, ease of use, and flexible configuration... our "KISS" philosophy demands it. The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware project by picking up a copy from store.slackware.com. We're taking pre-orders now, and offer a discount if you sign up for a subscription. Thanks to everyone who helped make this happen. The Slackware team, the upstream developers, and (of course) the awesome Slackware user community. Have fun! :-)
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 4c3b8dec..eda9634e 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 6a213b2a..42d96a30 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