diff options
Diffstat (limited to 'usr.sbin/amd/text')
-rw-r--r-- | usr.sbin/amd/text/COPYRIGHT | 3 | ||||
-rw-r--r-- | usr.sbin/amd/text/INSTALL | 194 | ||||
-rw-r--r-- | usr.sbin/amd/text/README | 37 | ||||
-rw-r--r-- | usr.sbin/amd/text/amd.start.ex | 87 |
4 files changed, 321 insertions, 0 deletions
diff --git a/usr.sbin/amd/text/COPYRIGHT b/usr.sbin/amd/text/COPYRIGHT new file mode 100644 index 0000000..f2e96a6 --- /dev/null +++ b/usr.sbin/amd/text/COPYRIGHT @@ -0,0 +1,3 @@ +Copyright (c) 1990 Jan-Simon Pendry +Copyright (c) 1990 Imperial College of Science, Technology & Medicine +Copyright (c) 1990, 1993 The Regents of the University of California. diff --git a/usr.sbin/amd/text/INSTALL b/usr.sbin/amd/text/INSTALL new file mode 100644 index 0000000..d35aaaa --- /dev/null +++ b/usr.sbin/amd/text/INSTALL @@ -0,0 +1,194 @@ +Installation Notes for Amd. + +NOTE: Please read all of this before starting. + It is not very long and may save you time in the long term. + +1. ``Getting started...'' + +If you don't know what an Automounter does for you then read the +documentation in doc/amdref.texinfo. You can either use TeX to print +it out or read it directly using the GNU info package. + +2. ``Find out what version of UN*X you are running...'' + +To install Amd you need a port for your version of UN*X. In the +config/ directory are several files called os-*.h. One of these +should correspond to your version of UN*X. Run the program +"config/os-type" to find out what system Amd thinks you have. Check +the correspondong config/os-??? file to make sure that you and Amd are +in agreement. If os-type returns "unknown" then either no-one has yet +done a port, or your version of UN*X is so braindead that a port is +not possible (e.g. System V without reliable signals). The current +known operating systems (grouped by architecture) are: + + acis43 (AOS) ACIS 4.3BSD on an IBM RT + aix3 AIX 3.2 + aux Apple A/UX + bsd44 4.4 BSD on whatever + concentrix Concentrix on an Alliant + dgux Data General AViiON + fpx4 Celerity FPX 4.1/2 + hlh42 4.2 BSD on HLH Orion 1/05 + hpux HP-UX 6.* and 7.* on a HP9000/300 + irix3 SGI Iris + irix4 SGI Iris w/Irix 4.0.x + next NeXT + riscix 4.3 BSD on an Acorn Archimedes + sos3, sos4 SunOS 3.* and 4.* on a Sun-3 and Sun-4 + u2_2 Ultrix 2.2 (or 2.*?) on a VAX (broken) + u3_0 Ultrix 3.0 (or 3.*?) on a VAX (broken) + u4_2 Ultrix 4.2 + umax43 4.3 BSD on an Encore Multimax + xinu43 More/BSD (4.3 BSD) on a VAX or HP9000/300 + + + some others... + +If you do define a new operating system type foo, you may need to create a +file called Makefile.foo which defines the special Makefile parameters. + +3. ``Hacking the Makefile...'' + +Amd tries very hard to determine what type of machine you are using +and how best to compile itself. If this does not work then you will +have to find some heuristic which can differentiate your +configuration. You may need to edit "config/arch" and +"config/os-type". If you do make sure your changes can cope if +/etc/motd is missing and please send it to the address below. + +To check whether things are working, run: + sh config/arch + sh config/os-type + +You may care to tailor some site specific preferences in "Makefile.com". The +variables most likely to be changes are at the top. Any changes should be +added to a file called config/Makefile.local (if they are applicable to all +operating systems at your site) or Makefile.local.foo (where foo is the OS type +as determined in part 2). + +Additionally, some configuration options may be altered in +"config/Makefile.config". This means that you should not need to edit any +distributed files apart from "config/Makefile.config". As a minimum, you +should check: + +* You are using the correct C compiler. Amd, as shipped, does not use GCC. + Note that using GCC version 1.34 or later (e.g. 1.36) gives structure + passing problems with some parts of Sun's RPC library at least on Sun-4's. + The current workaround is to use the system CC to compile the part of the + automounter that gets hit by this problem. [[This is not the same problem + that is fixed by -fpcc-struct-return.]] Amd contains no "register" + declarations, so using old PCC based code generators is probably bad news. + + To use GNU CC, add the following to config/Makefile.local{.os-type}: + + CC = gcc ${GCCOPTS} + +* The installation directory (ETC) is set up correctly. + +* If you are running tests then it may be worth switching on the DEBUG flag + which will cause a running commentary to be printed to the log file. To + compile in the debug code, add the following to + config/Makefile.local{.os-type}: + + DEBUG = -DDEBUG + CCOPTS = -g + + The -g option will also allow you to use gdb. Using dbx is not advisable + since it puts a breakpoint on exit() which causes all of Amd's child + processes to dump core. gdb does not suffer from this problem. + +4. ``Build the executable...'' + +Now you need to compile the automounter. To do this you type: + + make + +in the top-level directory. You can also go into each of the program +directories and just run make there. + +If you are porting to a new machine you may want to do: + + make OS=foo + +where foo is the name of your version of UN*X as determined in part 1, until +you have made the changes to config/os-type and/or config/arch. When the +compilation is complete you will end up with a program called "A.arch_foo/amd". + +Try running: + + A.arch_foo/amd -v + +and check the output. It should look something like: + + Copyright (c) 1990 Jan-Simon Pendry + Copyright (c) 1990 Imperial College of Science, Technology & Medicine + Copyright (c) 1990 The Regents of the University of California. + amd 5.2.1.5 of 90/09/16 13:22:46 5.3Alpha5 #0: Sun Sep 16 13:23:28 BST 1990 + Built by pendry@okeeffe.Berkeley.EDU for a tahoe running bsd44 (big-endian) + Map support for: root, passwd, nis, file, error. + fstypes: ufs, nfs, nfsx, host, link, program, auto, direct, toplvl, error. + +Make sure the O/S and architecture types were correctly derived during the +build. + +5. ``Installation...'' + +If you are not just testing Amd, then you can install it by typing: + + make install + +to install "A.arch_foo/amd" in "/usr/local/etc/amd" (or as otherwise +modified in part 3). + +6. ``Update /etc/rpc'' + +Amq uses Sun RPC to talk to Amd using program number 300019 which has +been registered with Sun. Add the following lines to /etc/rpc or your +YP or Hesiod master: + +# Automount control protocol +amd 300019 amq + +Amd does not require this addition - it just keeps rpcinfo happy. + +7. ``Hanging your machine...'' + +WARNING: THIS MAY HANG YOUR MACHINE IF YOU GET IT WRONG. + +Running Amd with a carelessly thought out mount map can cause your Amd to +enter a deadlock inside the kernel. For example, attempting to automount a +directory which is automounted. This will cause the automounter to issue a mount +request causing the kernel to send an NFS request back to the same automounter, +which is currently stuck in a system call and unable to respond - even +kill -KILL won't get you out of this one. + +There is nothing you can do to fix it without rebooting your machine, so... + +Find a diskless workstation and play with that first before trying this on +your main 200 user service machine (unless you hate your users). Something +like a diskless Sun-4 is best for development testing - you can compile on a +Sun-4 server and run the binary on the diskless node. They reboot very fast +as well between tests. + +Now you can try running Amd. Please read the documentation in doc/Amd.tex +for more details. The configuration file "maps/a_master" provides a sample for +you to play with. Something like: + + ./amd -c 40 -D test,nodaemon /tmp/amnt ../maps/a_master & + +is good for testing. Note that Amd will clean up correctly if you send it a +SIGINT or SIGTERM. Other signals are either ignored or will blow it away, +leaving your machine in a potentially dangerous state. + +Remember that Amd needs to run as root in order to do mounts/unmounts +though it does check this condition somewhere near line one of main(). +It will also need write permission in the working directory if you +have built it with DEBUG defined and your system's mount table is +reflected in a file. In this case watch out for NFS stepping in and +mapping root to nobody. + +8. ``Report what happened...'' + +If anything interesting happened, eg it didn't work, please report it to me +-- Jan-Simon Pendry <jsp@doc.ic.ac.uk> -- as detailed in the README file. + +$Id: INSTALL,v 5.2.2.2 1992/05/31 16:49:22 jsp Exp $ diff --git a/usr.sbin/amd/text/README b/usr.sbin/amd/text/README new file mode 100644 index 0000000..01d3a8b --- /dev/null +++ b/usr.sbin/amd/text/README @@ -0,0 +1,37 @@ +This program is an automounter. + +This automounter is a value-added, replacement for the SunOS 4 +automount(8) program. Though based on that program in spirit, it +contains no proprietary UN*X source code. + +The version you have here is release 5.3Alpha. + +This program is NOT in the Public Domain - it is covered by +the usual Berkeley software distribution license - but feel free +to take it and change it. + +It is believed to work correctly on Sun-3's (SunOS 3.5, 4.0, 4.1), +Sun-4's (SunOS 4.0, 4.1), HP-9000/300 (HP-UX, MORE/bsd & BSD 4.3 Reno), +IBM RTs (AOS 4.3), IBM RISC System/6000 (AIX 3.1), VAXen (Ultrix 4.0, +MORE/bsd & BSD 4.3 Reno) and a wide variety of other systems. If +your machine is not supported please feel free to try a port, but be +sure to send me a record of the changes you had to make. + + +This is the file text/README. + +See the file text/INSTALL for installation instructions. + +The documentation is in doc/amdref.texinfo. This is in GNU TeXinfo format +and you will need a TeX system before you can print it out. + +Please forward *all* bug reports to Jan-Simon Pendry <jsp@doc.ic.ac.uk> +quoting the details of the release and your configuration, which can be +obtained by running the command "amd -v". Also send any additional +information which may be relevant such as command line options and the maps +being used. Thanks. + +The manual page (amd/amd.8) only lists the command line options. See the +texinfo document doc/amdref.texinfo for a more detailed discussion. + +$Id: README,v 5.2.2.1 1992/02/09 15:11:35 jsp beta $ diff --git a/usr.sbin/amd/text/amd.start.ex b/usr.sbin/amd/text/amd.start.ex new file mode 100644 index 0000000..d7cdc1f --- /dev/null +++ b/usr.sbin/amd/text/amd.start.ex @@ -0,0 +1,87 @@ +#!/bin/sh - +# +# Copyright (c) 1989 Jan-Simon Pendry +# Copyright (c) 1989 Imperial College of Science, Technology & Medicine +# Copyright (c) 1989, 1993 +# The Regents of the University of California. All rights reserved. +# +# This code is derived from software contributed to Berkeley by +# Jan-Simon Pendry at Imperial College, London. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. All advertising materials mentioning features or use of this software +# must display the following acknowledgement: +# This product includes software developed by the University of +# California, Berkeley and its contributors. +# 4. Neither the name of the University nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# @(#)amd.start.ex 8.1 (Berkeley) 6/6/93 +# +# Start amd +# +# $Id: amd.start.ex,v 5.2.2.1 1992/02/09 15:11:32 jsp beta $ +# +PATH=/usr/sbin:/bin:/usr/bin:$PATH export PATH + +# +# Either name of logfile or "syslog" +# +#LOGFILE=syslog +LOGFILE=/var/run/amd.log + +# +# Figure out whether domain name is in host name +# If the hostname is just the machine name then +# pass in the name of the local domain so that the +# hostnames in the map are domain stripped correctly. +# +case `hostname` in +*.*) dmn= ;; +*) dmn='-d doc.ic.ac.uk' +esac + +# +# Zap earlier log file +# +case "$LOGFILE" in +*/*) + mv "$LOGFILE" "$LOGFILE"- + > "$LOGFILE" + ;; +syslog) + : nothing + ;; +esac + +cd /usr/sbin +# +# -r restart +# -d dmn local domain +# -w wait wait between unmount attempts +# -l log logfile or "syslog" +# +eval nice --4 ./amd -p > /var/run/amd.pid -r $dmn -w 240 -l "$LOGFILE" \ + /homes amd.homes -cache:=inc \ + /home amd.home -cache:=inc \ + /vol amd.vol -cache:=inc |