death-to-package-20060801
authorRuss Allbery <rra@stanford.edu>
Tue, 1 Aug 2006 23:27:20 +0000 (23:27 +0000)
committerRuss Allbery <rra@stanford.edu>
Tue, 1 Aug 2006 23:27:20 +0000 (23:27 +0000)
Remove package, mpp, and wsadmin, along with the remainder of configure
support for obsolete programs and the corresponding documentation.

89 files changed:
Makefile.in
README.OBSOLETE [deleted file]
acinclude.m4
configure.in
doc/man-pages/pod1/package_test.pod [deleted file]
doc/man-pages/pod5/package.pod [deleted file]
doc/man-pages/pod8/package.pod [deleted file]
src/SOURCE-MAP
src/mpp/.cvsignore [deleted file]
src/mpp/Makefile.in [deleted file]
src/mpp/mpp.1 [deleted file]
src/mpp/mpp.c [deleted file]
src/package/.cvsignore [deleted file]
src/package/Makefile.in [deleted file]
src/package/README [deleted file]
src/package/check.c [deleted file]
src/package/conftree.c [deleted file]
src/package/fileops.c [deleted file]
src/package/globals.h [deleted file]
src/package/globfuncs.c [deleted file]
src/package/gram.y [deleted file]
src/package/lex.l [deleted file]
src/package/makepkgfiles [deleted file]
src/package/messages.c [deleted file]
src/package/misc.c [deleted file]
src/package/package.8 [deleted file]
src/package/package.c [deleted file]
src/package/package.h [deleted file]
src/package/package.help [deleted file]
src/package/package.ms [deleted file]
src/package/systype.h [deleted file]
src/package/tags [deleted file]
src/package/test.c [deleted file]
src/package/test_gram.y [deleted file]
src/package/update.c [deleted file]
src/package/validupdates.h [deleted file]
src/package/y.tab.h.hidden [deleted file]
src/wsadmin.lib/aix_22.generic [deleted file]
src/wsadmin.lib/aix_22.generic.dev [deleted file]
src/wsadmin.lib/aix_22.readonly [deleted file]
src/wsadmin.lib/aix_22.readwrite [deleted file]
src/wsadmin.lib/base.generic [deleted file]
src/wsadmin.lib/devel [deleted file]
src/wsadmin.lib/pmax_31.generic [deleted file]
src/wsadmin.lib/pmax_31.generic.dev [deleted file]
src/wsadmin.lib/pmax_31.readonly [deleted file]
src/wsadmin.lib/pmax_31.readwrite [deleted file]
src/wsadmin.lib/rt_r4.generic [deleted file]
src/wsadmin.lib/rt_r4.generic.dev [deleted file]
src/wsadmin.lib/rt_r4.generic.dkload [deleted file]
src/wsadmin.lib/rt_r4.generic.printer [deleted file]
src/wsadmin.lib/rt_r4.readonly [deleted file]
src/wsadmin.lib/rt_r4.readwrite [deleted file]
src/wsadmin.lib/sun3_35.generic [deleted file]
src/wsadmin.lib/sun3_35.generic.dev [deleted file]
src/wsadmin.lib/sun3_35.readonly [deleted file]
src/wsadmin.lib/sun3_35.readwrite [deleted file]
src/wsadmin.lib/sun3_40.generic [deleted file]
src/wsadmin.lib/sun3_40.generic.dev [deleted file]
src/wsadmin.lib/sun3_40.readonly [deleted file]
src/wsadmin.lib/sun3_40.readwrite [deleted file]
src/wsadmin.lib/sun3_40x.generic [deleted file]
src/wsadmin.lib/sun3_40x.generic.dev [deleted file]
src/wsadmin.lib/sun3_40x.readonly [deleted file]
src/wsadmin.lib/sun3_40x.readwrite [deleted file]
src/wsadmin.lib/sun4_40.generic [deleted file]
src/wsadmin.lib/sun4_40.generic.dev [deleted file]
src/wsadmin.lib/sun4_40.readonly [deleted file]
src/wsadmin.lib/sun4_40.readwrite [deleted file]
src/wsadmin.lib/sun4_40c.generic [deleted file]
src/wsadmin.lib/sun4_40c.generic.dev [deleted file]
src/wsadmin.lib/sun4_40c.readonly [deleted file]
src/wsadmin.lib/sun4_40c.readwrite [deleted file]
src/wsadmin.lib/vax_30.generic [deleted file]
src/wsadmin.lib/vax_30.generic.dev [deleted file]
src/wsadmin.lib/vax_30.readonly [deleted file]
src/wsadmin.lib/vax_30.readwrite [deleted file]
src/wsadmin.src/.cvsignore [deleted file]
src/wsadmin.src/.rhosts [deleted file]
src/wsadmin.src/Makefile.in [deleted file]
src/wsadmin.src/admin [deleted file]
src/wsadmin.src/hosts.equiv [deleted file]
src/wsadmin.src/inetd.conf.pmax_31 [deleted file]
src/wsadmin.src/inetd.conf.rt_r4 [deleted file]
src/wsadmin.src/staff.dkload.proto [deleted file]
src/wsadmin.src/staff.printer.proto [deleted file]
src/wsadmin.src/staff.proto [deleted file]
src/wsadmin.src/syslog.conf [deleted file]
src/wsadmin.src/user.permits [deleted file]

index 586a2e6..6cca560 100644 (file)
 srcdir=@srcdir@
 include @TOP_OBJDIR@/src/config/Makefile.config
 
-# Enable build+install of obsolete and insecure packages
-# Set to anything other than YES, or comment out to disable the build
-WITH_OBSOLETE=@WITH_OBSOLETE@
-
 ENABLE_KERNEL_MODULE=@ENABLE_KERNEL_MODULE@
 
 # To compile AFS from scratch in the src tree run "make".
@@ -562,14 +558,14 @@ jafs: libjafs
 
 jafsadm: libjafsadm
 
-finale: project cmd comerr afsd butc tbutc @ENABLE_KERNEL_MODULE@ libuafs audit kauth log package \
+finale: project cmd comerr afsd butc tbutc @ENABLE_KERNEL_MODULE@ libuafs audit kauth log \
        ptserver scout bu_utils ubik uss bozo vfsck volser tvolser tsalvaged \
        venus update xstat afsmonitor rxdebug libafsrpc \
        libafsauthent shlibafsrpc shlibafsauthent libadmin man-pages \
        platform
        ${COMPILE_PART1} finale ${COMPILE_PART2}
 
-finale_nolibafs: project cmd comerr afsd butc tbutc libuafs audit kauth log package \
+finale_nolibafs: project cmd comerr afsd butc tbutc libuafs audit kauth log \
        ptserver scout bu_utils ubik uss bozo vfsck volser tvolser tsalvaged \
        venus update xstat afsmonitor rxdebug libafsrpc \
        libafsauthent shlibafsrpc shlibafsauthent libadmin man-pages \
@@ -674,8 +670,6 @@ clean2:
        -${COMPILE_PART1} libadmin/samples ${COMPILE_CLEAN}
        -${COMPILE_PART1} JAVA/libjafs ${COMPILE_CLEAN}
        -${COMPILE_PART1} finale ${COMPILE_CLEAN}
-       -${COMPILE_PART1} mpp ${COMPILE_CLEAN}
-       -${COMPILE_PART1} package ${COMPILE_CLEAN}
        -${COMPILE_PART1} libafs ${COMPILE_CLEAN}
        -${COMPILE_PART1} libuafs ${COMPILE_CLEAN}
        -${COMPILE_PART1} tests ${COMPILE_CLEAN}
@@ -751,9 +745,7 @@ distclean: clean
        src/log/Makefile \
        src/lwp/test/Makefile \
        src/lwp/Makefile \
-       src/mpp/Makefile \
        src/null/Makefile \
-       src/package/Makefile \
        src/pam/Makefile \
        src/procmgmt/Makefile \
        src/procmgmt/test/Makefile \
@@ -798,7 +790,6 @@ distclean: clean
        src/vol/Makefile \
        src/vol/test/Makefile \
        src/volser/Makefile \
-       src/wsadmin.src/Makefile \
        src/xstat/Makefile  \
        src/helper-splint.sh
        if test -d doc/man-pages ; then \
@@ -809,27 +800,3 @@ pristine: distclean
        /bin/rm -f src/config/afsconfig.h.in configure configure-libafs aclocal.m4
 
 maintainer-clean: pristine
-
-#
-# Below targets are all deprecated, obsolete, 
-# see README.OBSOLETE for more info
-#
-
-mpp: project
-       @case ${WITH_OBSOLETE} in \
-       YES)    ${COMPILE_PART1} mpp ${COMPILE_PART2} ;; \
-       *)      echo skipping deprecated target: mpp ;; \
-       esac
-
-package: project mpp
-       @case ${WITH_OBSOLETE} in \
-       YES)    ${COMPILE_PART1} package ${COMPILE_PART2} ;; \
-       *)      echo skipping deprecated target: package ;; \
-       esac
-
-package.files: package
-       @case ${WITH_OBSOLETE} in \
-       YES)    ${DESTDIR}/bin/makepkgfiles afs.dev ;; \
-       *)      echo skipping deprecated target: package.files ;; \
-       esac
-
diff --git a/README.OBSOLETE b/README.OBSOLETE
deleted file mode 100644 (file)
index b7ccaad..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-The ntp, mpp and package included with AFS are obsolete.
-
-The ntp package is intended to only maintain time on servers; Clients
-get time from servers unless afsd is started with -nosettime. That said,
-if you're running servers, you should get and install ntp from:
-ftp://ftp.udel.edu/pub/ntp/ntp4/
-(Their home page can be found at http://www.ntp.org/)
-Newer versions of ntp include support for authentication. They also make
-more efficient use of the network.
-
-Disk management tools like package (and the preprocessor included for use 
-with it, mpp) are not strictly part of a distributed filesystem package.
-However, Carnegie Mellon Computing Services has continued to use
-and occasionally develop them, and current versions can be found at:
-ftp://ftp.andrew.cmu.edu/pub/AFS-Tools
-
-To enable building of the obsolete code included with OpenAFS,
-run configure with the --enable-obsolete switch
index 5b22618..0d25700 100644 (file)
@@ -13,8 +13,6 @@ SRCDIR_PARENT=`pwd`
 AC_ARG_WITH(afs-sysname,
 [  --with-afs-sysname=sys    use sys for the afs sysname]
 )
-AC_ARG_ENABLE( obsolete,
-[  --enable-obsolete                   enable obsolete portions of AFS (mpp and package)],, enable_obsolete="no")
 AC_ARG_ENABLE( afsdb,
 [  --disable-afsdb                     disable AFSDB DNS RR support],, enable_afsdb="yes")
 AC_ARG_ENABLE( pam,
@@ -918,11 +916,6 @@ if test "x$PTHREAD_LIBS" = xerror; then
 fi
 AC_SUBST(PTHREAD_LIBS)
 
-WITH_OBSOLETE=NO
-if test "$enable_obsolete" = "yes"; then
-       WITH_OBSOLETE=YES
-fi
-
 HOST_CPU="$host_cpu"
 
 if test "x$with_bsd_kernel_headers" != "x"; then
@@ -1136,7 +1129,6 @@ AC_SUBST(TOP_SRCDIR)
 AC_SUBST(TOP_INCDIR)
 AC_SUBST(TOP_LIBDIR)
 AC_SUBST(DEST)
-AC_SUBST(WITH_OBSOLETE)
 AC_SUBST(DARWIN_INFOFILE)
 AC_SUBST(IRIX_BUILD_IP35)
 
index c4a0839..c2ee450 100644 (file)
@@ -73,9 +73,7 @@ src/log/Makefile \
 src/log/test/Makefile \
 src/lwp/Makefile \
 src/lwp/test/Makefile \
-src/mpp/Makefile \
 src/null/Makefile \
-src/package/Makefile \
 src/pam/Makefile \
 src/platform/Makefile \
 src/platform/${MKAFS_OSTYPE}/Makefile \
@@ -121,7 +119,6 @@ src/vlserver/Makefile \
 src/vol/Makefile \
 src/vol/test/Makefile \
 src/volser/Makefile \
-src/wsadmin.src/Makefile \
 src/xstat/Makefile \
 src/helper-splint.sh \
 )
diff --git a/doc/man-pages/pod1/package_test.pod b/doc/man-pages/pod1/package_test.pod
deleted file mode 100644 (file)
index bcb1d20..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-=head1 NAME
-
-package_test - Tests the validity of a package configuration file
-
-=head1 SYNOPSIS
-
-=for html
-<div class="synopsis">
-
-S<<< B<package_test> <I<config file>> >>>
-
-=for html
-</div>
-
-=head1 DESCRIPTION
-
-The B<package_test> command tests the validity of a B<package>
-configuration file created when a prototype file is compiled. The command
-interpreter prints error messages on the standard output stream.
-
-This command does not use the syntax conventions of the AFS command
-suites. Provide the command name in full.
-
-=head1 OPTIONS
-
-=over 4
-
-=item <I<config file>>
-
-Specifies the package configuration file to validate.
-
-=back
-
-=head1 EXAMPLES
-
-The following example tests the validity of the package configuration file
-C<staff.sun4x_56>.
-
-   % package_test staff.sun4x_56
-
-=head1 PRIVILEGE REQUIRED
-
-None
-
-=head1 SEE ALSO
-
-L<package(5)>,
-L<package(8)>
-
-=head1 COPYRIGHT
-
-IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
-
-This documentation is covered by the IBM Public License Version 1.0.  It was
-converted from HTML to POD by software written by Chas Williams and Russ
-Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
diff --git a/doc/man-pages/pod5/package.pod b/doc/man-pages/pod5/package.pod
deleted file mode 100644 (file)
index 06da41b..0000000
+++ /dev/null
@@ -1,728 +0,0 @@
-=head1 NAME
-
-package - Provides instructions for the package command
-
-=head1 DESCRIPTION
-
-The package configuration file defines the file system elements that the
-B<package> command creates or alters on the local disk of an AFS client
-machine it is configuring. Use the B<-config> or B<-fullconfig> argument
-to the B<package> command to identify the configuration file to use.
-
-=head2 Summary of Configuration File Instructions
-
-The configuration file can include one or more instances of each of the
-following instructions, each on its own line. A more detailed description
-of each instruction's syntax follows this list.
-
-=over 4
-
-=item B
-
-Defines a block special device, such as a disk, which deals with input in
-units of multi-byte command blocks.
-
-=item C
-
-Defines a character special device, such as a terminal or tty, which deals
-with input in single character units.
-
-=item D
-
-Creates a directory.
-
-=item F
-
-Creates or alters a file to match the contents of a specified source file.
-
-=item L
-
-Creates a symbolic link.
-
-=item S
-
-Defines a socket, which is a communications device for UDP and TCP/IP
-connections.
-
-=item %define
-
-Defines a variable or declares a string as defined.
-
-=item %ifdef
-
-Specifies an action to perform if a certain string is declared or defined.
-
-=item %ifndef
-
-Specifies an action to perform if a certain string is not declared or
-defined.
-
-=item %include
-
-Includes a library file.
-
-=item %undef
-
-Declares a string not to be defined, or a variable no longer to have a
-value.
-
-=back
-
-=head2 The B and C Instructions for Defining Special Devices
-
-The C<B> instruction in a package configuration file defines a block
-special device, such as a disk, that deals with input in units of
-multi-byte command blocks. The C<C> instruction defines a character
-special device, such as a terminal or tty, that deals with input in single
-character units. They share a common syntax:
-
-   (B | C) <device> <major> <minor> <owner> <group> <mode>
-
-where
-
-=over 4
-
-=item B
-
-Indicates the definition of a block special device. It must be a capital
-letter.
-
-=item C
-
-Indicates the definition of character special device. It must be a capital
-letter.
-
-=item <device>
-
-Names the special device to define. To learn the name format appropriate
-to the machine's system type, consult the hardware or operating system
-documentation.
-
-=item <major>
-
-Specifies the device's major device number in decimal format.  To learn
-the correct value for the machine's system type, consult the hardware or
-operating system documentation.
-
-=item <minor>
-
-Specifies the device's minor device number in one of hexadecimal, octal,
-or decimal format. Precede a hexadecimal number with the string C<0x>
-(zero and the letter C<x>) or an octal number with a C<0> (zero). A number
-without either prefix is interpreted as a decimal. To learn the correct
-value for the machine's system type, consult the hardware or operating
-system documentation.
-
-=item <owner>
-
-Specifies the username or UNIX user ID (UID) of the user to be designated
-the device's owner in the output from the UNIX C<ls -l> command.
-
-=item <group>
-
-Specifies the group name or UNIX group ID (GID) of the group to be
-designated the device's group in the output from the UNIX C<ls -lg>
-command.
-
-=item <mode>
-
-Defines the device's UNIX mode bits. Acceptable values are the standard
-three- or four-digit numbers corresponding to combinations of
-permissions. Examples: C<755> corresponds to C<rwxr-xr-x>, and C<644> to
-C<rw-r--r-->.
-
-=back
-
-=head2 The D Instruction for Creating a Directory
-
-The C<D> instruction in a package configuration file creates a directory
-on the local disk. If a symbolic link, file, or other element on the local
-disk has the same name, it is replaced with a directory. If the directory
-already exists, its owner, group, and mode bits are changed if necessary
-to conform with the instruction. The instruction has the following syntax:
-
-   D[I<update_code>] <directory> <owner> <group> <mode>
-
-where
-
-=over 4
-
-=item D
-
-Indicates the creation of a directory. It must be a capital letter.
-
-=item <update_code>
-
-Modulates the directory creation instruction. It is optional and follows
-the letter C<D> directly, without an intervening space.  Choose one of the
-two acceptable values:
-
-=over 4
-
-=item X
-
-Indicates that the directory is a lost+found directory (used by the
-B<fsck> program).
-
-=item R
-
-Removes any subdirectory (along its contents) or file that exists in the
-existing directory on the local disk but for which an instruction does not
-appear in the configuration file.
-
-=back
-
-=item <directory>
-
-Specifies the full pathname of the directory to create.
-
-=item <owner>
-
-Specifies the username or UNIX user ID (UID) of the user to be designated
-the directory's owner in the output from the UNIX C<ls -ld> command.
-
-=item <group>
-
-Specifies the name or UNIX group ID (GID) of the group to be designated
-the directory's group in the output from the UNIX C<ls -lgd> command.
-
-=item <mode>
-
-Defines the directory's UNIX mode bits. Acceptable values are the standard
-three- or four-digit numbers corresponding to combinations of
-permissions. Examples: C<755> corresponds to C<drwxr-xr-x>, and C<644> to
-C<drw-r--r-->.
-
-=back
-
-=head2 The F Instruction for Creating or Updating a File
-
-The C<F> instruction in a package configuration file creates or updates a
-file on the local disk by copying in the contents of the indicated source
-file, which can reside in AFS or on the local disk. If the B<package>
-command interpreter cannot access the source file, it exits without
-executing any instruction in the configuration file.
-
-If a file with the same name already exists on disk, the package command
-overwrites it with the contents of the source file, unless the C<I> update
-code is used to prevent that. To add a C<.old> extension to the current
-version of the file, include the C<O> update code. To have the machine
-reboot automatically after the B<package> program completes, include the
-C<Q> update code.
-
-If a symbolic link, directory, or other element on the local disk has the
-same name, it is replaced with the file (a directory's contents are first
-removed as necessary).
-
-The instruction has the following syntax:
-
-   F[<update_code>] <file> <source> [<owner> <group> <mode>]
-
-where
-
-=over 4
-
-=item F
-
-Indicates the creation or update of a file. It must be a capital letter.
-
-=item <update_code>
-
-Modulates the file creation instruction. It is optional and follows the
-letter C<F> directly, without an intervening space. Choose one or more of
-the four acceptable values, and list them in any order:
-
-=over 4
-
-=item A
-
-Indicates that the pathname in the <source> field is the complete pathname
-of the source file, including the filename. If this argument is omitted,
-the B<package> command appends the pathname in the <file> field to the
-pathname in the <source> field to derive the source file's full name. This
-code allows the source and target filenames to differ.
-
-=item I
-
-Preserves the existing file called <file>, rather than overwriting it.
-
-=item O
-
-Saves the existing version of the file by appending a C<.old> extension to
-it.
-
-=item Q
-
-Causes the package command to exit with status code C<4> if it overwrites
-the file. If the standard B<package>-related changes have been made to the
-machine's AFS initialization file, then status code C<4> causes the
-machine to reboot automatically. Use this code when the machine must
-reboot if updates to the file are to have any effect (for example, if the
-operating system file -- F</vmunix> or equivalent -- has changed).
-
-=back
-
-=item <file>
-
-Specifies the complete pathname on the local disk of the file to create or
-update, including the filename as the final element.
-
-=item <source>
-
-Specifies the pathname (local or AFS) of the file to copy to the local
-disk.
-
-If the C<A> update code is included, specify the source file's complete
-pathname. Otherwise, the B<package> command derives the source file's full
-name by appending the I<file> pathname to this pathname. For example, if
-the C<A> update code is not included and the file
-F</afs/abc.com/rs_aix42/bin/grep> is the source file for the F</bin/grep>
-binary, the proper value in this field is F</afs/abc.com/rs_aix42>.
-
-=item <owner>
-
-Specifies the username or UNIX user ID (UID) of the user to be designated
-the file's owner in the output from the UNIX C<ls -l> command.
-
-To copy the source file's owner to the target file, leave this field
-empty. In this case, the <group> and <mode> fields must also be empty.
-
-=item <group>
-
-Specifies the name or UNIX group ID (GID) of the group to be designated
-the file's group in the output from the UNIX C<ls -lg> command.
-
-To copy the source file's group to the target file, leave this field
-empty. In this case, the <owner> and <mode> fields must also be empty.
-
-=item <mode>
-
-Defines the file's UNIX mode bits. Acceptable values are the standard
-three- or four-digit numbers corresponding to combinations of
-permissions. Examples: C<755> corresponds to C<rwxr-xr-x>, and C<644> to
-C<rw-r--r-->.
-
-To copy the source file's mode bits to the target file, leave this field
-empty. In this case, the <owner> and <group> fields must also be empty.
-
-=back
-
-=head2 The L Instruction for Creating a Symbolic Link
-
-The C<L> instruction in a package configuration file creates a symbolic
-link on the local disk to a directory or file that exists either in AFS or
-elsewhere on the local disk. As with the standard UNIX C<ln -s> command,
-the link is created even if the actual file or directory does not exist.
-
-If a file or directory on the local disk already has the same name, the
-B<package> command replaces it with a symbolic link.
-
-The instruction has the following syntax:
-
-   L[I<update_code>] <link> <path> [<owner> <group> <mode>]
-
-where
-
-=over 4
-
-=item L
-
-Indicates the creation of a symbolic link. It must be a capital letter.
-
-=item <update_code>
-
-Modulates the link creation instruction. It is optional and follows the
-letter C<L> directly, without an intervening space. Choose one or both of
-the acceptable values, and list them in any order:
-
-=over 4
-
-=item A
-
-Indicates that the pathname in the <path> field is the complete pathname
-of the actual directory or file (including the filename for a file). If
-this argument is omitted, the B<package> command appends the value in the
-<link> field to the pathname in the <path> field to derive the actual
-directory or file's full name. This code allows the name of the symbolic
-link and actual directory or file to differ.
-
-=item I
-
-Preserves the existing symbolic link called <link>, rather than
-overwriting it.
-
-=back
-
-=item <link>
-
-Specifies the complete local disk pathname of the symbolic link to create.
-
-=item <path>
-
-Specifies the pathname (local or AFS) of the directory or file to which
-the link refers. If the C<A> update code is included, specify the
-directory or file's complete pathname. Otherwise, the B<package> command
-derives the actual directory or file's full name by appending the value in
-the I<link> field to this pathname. For example, if the C<A> update code
-is not included and F</etc/ftpd> is a symbolic link to the file
-F</afs/abc.com/sun4x_56/etc/ftpd>, the proper value in this field is
-F</afs/abc.com/sun4x_56>.
-
-The package command interpreter correctly handles pathnames that begin
-with the C<./> (period, slash) or C<../> (two periods, slash) notation,
-interpreting them relative to the current working directory from which the
-B<package> command is invoked.
-
-=item <owner>
-
-Specifies the username or UNIX user ID (UID) of the user to be designated
-the symbolic link's owner in the output from the UNIX C<ls -l> command.
-
-To designate the issuer of the package command (usually, the local
-superuser C<root>) as the symbolic link's owner, leave this field
-empty. In this case, the <group> and <mode> fields must also be empty.
-
-=item <group>
-
-Specifies the name or UNIX group ID (GID) of the group to be designated
-the link's group in the output from the UNIX C<ls -lg> command.
-
-To have the symbolic link's group match the default group associated with
-the B<package> command's issuer, leave this field empty. The issuer is
-usually the local superuser C<root> and the default group is designated in
-the issuer's entry in the local F</etc/passwd> file or equivalent. If this
-field is left empty, the <owner> and <mode> fields must also be empty.
-
-=item <mode>
-
-Defines the symbolic link's UNIX mode bits. Acceptable values are the
-standard three- or four-digit numbers corresponding to combinations of
-permissions. Examples: C<755> corresponds to C<rwxr-xr-x>, and C<644> to
-C<rw-r--r-->.
-
-Leaving this field empty sets the symbolic link's mode bits to C<777>
-(C<rwxrwxrwx>). In this case, the <owner> and <group> fields must also be
-empty.
-
-=back
-
-=head2 The S Instruction for Creating a Socket
-
-The C<S> instruction in a package configuration file creates a socket (a
-communications device for UDP or TCP/IP connections) on the local
-disk. The instruction has the following syntax:
-
-   S <socket> [<owner> <group> <mode>]
-
-where
-
-=over 4
-
-=item S
-
-Indicates the creation of a socket. It must be a capital letter.
-
-=item <socket>
-
-Names the socket. The proper format depends on the local machine's
-operating system.
-
-=item <owner>
-
-Specifies the username or UNIX user ID (UID) of the user to be designated
-the socket's owner in the output from the UNIX C<ls -l> command.
-
-To designate the issuer of the package command (usually, the local
-superuser C<root>) as the socket's owner, leave this field empty. In this
-case, the <group> and <mode> fields must also be empty.
-
-=item <group>
-
-Specifies the name or UNIX group ID (GID) of the group to be designated
-the socket's group in the output from the UNIX C<ls -lg> command.
-
-To have the symbolic link's group match the default group associated with
-the B<package> command's issuer, leave this field empty. The issuer is
-usually the local superuser C<root> and the default group is designated in
-the issuer's entry in the local F</etc/passwd> file or equivalent. If this
-field is left empty, the <owner> and <mode> fields must also be empty.
-
-=item <mode>
-
-Defines the socket's UNIX mode bits. Acceptable values are the standard
-three- or four-digit numbers corresponding to combinations of
-permissions. Examples: C<755> corresponds to C<rwxr-xr-x>, and C<644> to
-C<rw-r--r-->.
-
-Leaving this field empty sets the symbolic link's mode bits to C<777>
-(C<rwxrwxrwx>), modulated by the cell's umask. In this case, the <owner>
-and <group> fields must also be empty.
-
-=back
-
-=head2 The %define or %undef Instructions
-
-The C<%define> instruction in a package configuration file declares or
-defines a variable, depending on its number of arguments:
-
-=over 4
-
-=item *
-
-If followed by a single argument, it declares that argument to be
-defined. The argument is then available as a controller when mentioned in
-C<%ifdef> and C<%ifndef> statements, which evaluate to C<true> and
-C<false> respectively.
-
-=item *
-
-If followed by two arguments, it defines the second argument as the value
-of the first. When the first argument appears later in this prototype or
-other prototype or library files as a variable -- surrounded by curly
-braces and preceded by a dollar sign, as in the example C<${variable}> --
-the B<package> command interpreter substitutes the second argument for it.
-
-=back
-
-The C<%undef> statement negates the effect of a previous C<%define>
-statement, declaring its argument to be defined no longer, or to have a
-value no longer if it is a variable.
-
-The syntax for the two types of instruction are as follows:
-
-   %define <declaration>
-   %define <variable> <value>
-   %undef  <declaration>
-   %undef  <variable>
-
-where
-
-=over 4
-
-=item %define
-
-Indicates a definition statement.
-
-=item %undef
-
-Indicates a statement that negates a definition.
-
-=item <declaration>
-
-Names the string being declared by a C<%define> statement, or
-negated by an C<%undef> statement.
-
-=item <variable>
-
-Specifies the name of the variable that a C<%define> statement is
-defining, or an C<%undef> statement is negating.
-
-=item <value>
-
-Specifies the value to substitute for the string in the <variable> field
-when it appears in the appropriate format (surrounded by curly braces and
-preceded by a dollar sign, as in the example C<${variable}>), in this or
-other prototype and library files. It can include one or more words.
-
-=back
-
-=head2 The %ifdef and %ifndef Instructions
-
-The C<%ifdef> instruction in a package configuration file specifies one or
-more actions to perform if the indicated string has been declared by a
-single-argument C<%define> statement, or is a variable for which a value
-has been defined by a two-argument C<%define> statement.
-
-Similarly, the C<%ifndef> instruction specifies one or more actions to
-perform if the indicated string has not been declared or is a variable
-without a value, either because no C<%define> statement has defined it or
-an C<%undef> statement has undefined it.
-
-In both cases, the optional C<%else> statement specifies one or more
-alternate actions to perform if the first statement evaluates to
-C<false>. (For an C<%ifdef> statement, the C<%else> statement is executed
-if the indicated string has never been declared or is a variable without a
-value, or if an C<%undef> statement has undefined either one; for an
-C<%ifndef> statement, it is executed if the string has been declared or is
-a variable with a value.)
-
-It is possible to nest any number of C<%ifdef> and C<%ifndef> statements.
-
-The two types of statement share a common syntax:
-
-   (%ifdef | %ifndef) <declaration>
-       <action>+
-   [%else [<declaration>]
-       <alternate_action>+]
-   %endif <declaration>
-
-where
-
-=over 4
-
-=item %ifdef
-
-Indicates that the statement evaluates as true if the string in the
-<declaration> field is declared or is a variable with a defined value.
-
-=item %ifndef
-
-Indicates that the statement evaluates as true if the string in the
-<declaration> field is not declared or is a variable without a defined
-value.
-
-=item <declaration>
-
-Specifies the string that must be declared or the variable name that must
-have a defined value for an C<%ifdef> statement to evaluate as C<true>,
-which results in the specified action being performed.  For an C<%ifndef>
-statement, the string must not be declared or the variable must have no
-defined value for the statement to evaluate as C<true>. The first and
-third occurrences of <declaration> (the latter following the string
-C<%endif>) are required. The second occurrence (following the string
-C<%else>) is optional, serving only to clarify to which C<%ifdef> or
-C<%ifndef> statement the C<%else> statement belongs.
-
-=item <action>
-
-Specifies each action to perform if the C<%ifdef> or C<%ifndef> statement
-evaluates as C<true>. Each action must appear on a separate
-line. Acceptable types of actions are other statements beginning with a
-percent sign and definition instructions.
-
-=item <alternate_action>
-
-Specifies each action to perform if the C<%ifdef> or C<%ifndef> statement
-evaluates to C<false>. Each action must appear on a separate
-line. Acceptable types of actions are other statements beginning with a
-percent sign and definition instructions.
-
-=back
-
-=head2 The %include Instruction for Including a Library File
-
-The C<%include> instruction in a package configuration file includes the
-contents of the indicated library file in a configuration file that
-results from the compilation of the prototype file in which the
-C<%include> instruction appears. It has the following syntax:
-
-   %include <pathname>
-
-where
-
-=over 4
-
-=item %include
-
-Indicates a library file include statement.
-
-=item <pathname>
-
-Specifies the complete pathname of the library file to include. It can be
-in AFS or on the local disk, and can include one or more variables.
-
-=back
-
-=head1 CAUTIONS
-
-The configuration file must be completely correct. If there are any syntax
-errors or incorrect values, the B<package> command interpreter exits
-without executing any instruction.
-
-=head1 EXAMPLES
-
-The following example C<B> and C<C> instructions define a disk
-F</dev/hd0a> with major and minor device numbers C<1> and C<0> and mode
-bits of C<-rw-r--r-->, and a tty F</dev/ttyp5> with major and minor device
-numbers C<6> and C<5> and mode bits of C<-rw-rw-rw>. In both cases, the
-owner is C<root> and the owning group C<wheel>.
-
-   B /dev/hd0a 1 0 root wheel 644
-   C /dev/ttyp5 6 5 root wheel 666
-
-The following example C<D> instruction creates the local F</usr> directory
-with owner C<root> and group C<wheel> and mode bits of C<drwxr-xr-x>. The
-C<R> update code removes any files and subdirectories that reside in the
-F</usr> directory (if it already exists) but do not appear in the
-configuration file.
-
-   DR /usr root wheel 755
-
-The following example C<F> instruction, appropriate for a machine running
-AIX 4.2 in the ABC Corporation cell, creates or updates the local disk
-file F</bin/grep>, using F</afs/abc.com/rs_aix42/bin/grep> as the source.
-
-   F /bin/grep /afs/abc.com/rs_aix42 root wheel 755
-
-The next example C<F> instruction creates the F</usr/vice/etc/ThisCell>
-file and specifies an absolute pathname for the source file, as indicated
-by the C<A> update code. The C<Q> code makes the B<package> command return
-status code 4 as it exits, prompting a reboot of the machine if the
-standard B<package>-related changes have been made to the machine's AFS
-initialization file. No values are provided for the owner, group and mode
-bits, so the file inherits them from the source file.
-
-   FAQ /usr/vice/etc/ThisCell /afs/abc.com/common/etc/ThisCell
-
-The following example C<L> instruction, appropriate for a machine running
-AIX 4.2 in the ABC Corporation cell, creates a symbolic link from
-F</etc/ftpd> on the local disk to the file
-F</afs/abc.com/rs_aix42/etc/ftpd>.
-
-   L /etc/ftpd /afs/abc.com/rs_aix42 root wheel 644
-
-The following example S instruction defines the socket F</dev/printer>.
-
-   S /dev/printer root wheel 777
-
-The following example C<%define> instruction defines the value for the
-variable C<${diskmode}>. This variable is used elsewhere in the template
-to fill the <owner>, <group>, and <mode> fields in a C<D>, C<F>, or C<L>
-instruction.
-
-   %define diskmode root wheel 644
-
-The following example C<%undef> instruction declares the string B<afsd>
-not to be defined.
-
-   %undef afsd
-
-The following example C<%ifdef> instruction specifies that if the string
-C<rs_aix42> is currently declared, then when the prototype file containing
-the instruction is compiled the three indicated library files are
-included. There is no alternate action defined. There must be C<%define>
-statements earlier in the prototype file to declare C<rs_aix42> and to
-assign a value to the C<${wsadmin}> variable.
-
-   %ifdef rs_aix42
-   %include ${wsadmin}/lib/rs_aix42.readonly
-   %include ${wsadmin}/lib/rs_aix42.generic
-   %include ${wsadmin}/lib/rs_aix42.generic.dev
-   %endif rs_aix42
-
-The following example C<%ifndef> instruction, appropriate for the State
-University cell, defines C<stateu.edu> as the value of the C<${cell}>
-variable if it does not already have a value.
-
-   %ifndef cell
-   %define cell stateu.edu
-   %endif cell
-
-The following example C<%include> instruction includes the library file
-C<base.generic> from the F<lib> subdirectory of the directory in which
-B<package>-related files reside. The C<${wsadmin}> variable resolves to an
-actual pathname (such as F</afs/abc.com/wsadmin>) during compilation.
-
-   %include ${wsadmin}/lib/base.generic
-
-=head1 SEE ALSO
-
-L<package(8)>
-
-=head1 COPYRIGHT
-
-IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
-
-This documentation is covered by the IBM Public License Version 1.0.  It was
-converted from HTML to POD by software written by Chas Williams and Russ
-Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
diff --git a/doc/man-pages/pod8/package.pod b/doc/man-pages/pod8/package.pod
deleted file mode 100644 (file)
index ea95f41..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-=head1 NAME
-
-package - Configures files and directories on the local disk
-
-=head1 SYNOPSIS
-
-=for html
-<div class="synopsis">
-
-B<package> [I<initcmd>] S<<< [B<-config> <I<base name of configuration file>>] >>>
-    S<<< [B<-fullconfig> <I<full name of configuration file, or stdin>>] >>>
-    [B<-overwrite>] [B<-noaction>] [B<-verbose>] [B<-silent>]
-    [B<-rebootfiles>] [B<-debug>] [B<-help>]
-
-B<package> [B<i>] S<<< [B<-c> <I<base name of configuration file>>] >>>
-    S<<< [B<-f> <I<full name of configuration file, or stdin>>] >>>
-    [B<-o>] [B<-n>] [B<-v>] [B<-s>] [B<-r>] [B<-d>] [B<-h>]
-
-=for html
-</div>
-
-=head1 DESCRIPTION
-
-The B<package> command configures the machine's local disk to comply with
-the instructions in the configuration file named by the B<-config> or
-B<-fullconfig> argument.
-
-By default, the package command alters any existing local disk element
-whose contents or configuration does not match the element defined in the
-configuration file. For example, if a configuration file C<D> instruction
-defines a directory that has the same name as a symbolic link on the local
-disk, the B<package> command replaces the symbolic link with the
-directory. The C<F> and C<L> instructions include an optional
-I<update_code> field that alters this behavior.
-
-Also by default, the package command takes no action on elements on the
-local disk that are not mentioned in the configuration file. Use the C<D>
-instruction's C<R> update code to remove files from the disk directory
-that are not mentioned in the configuration file.
-
-Before running the package command, the administrator must create the
-template file and other files on the local disk. For instructions, see the
-I<IBM AFS Administration Guide>.
-
-It is not possible to configure a remote client machine's disk using this
-command.
-
-=head1 CAUTIONS
-
-The package command interpreter exits without executing any instruction if
-there are any syntax errors or incorrect values in the configuration file.
-
-=head1 OPTIONS
-
-=over 4
-
-=item [I<initcmd>]
-
-Accommodates the command's use of the AFS command parser, and is optional.
-
-=item B<-config> <I<base name of configuration file>>
-
-Specifies the pathname of the configuration file to use, ending in the
-file's base name, which omits the suffix that indicates the machine
-type. The B<package> command determines the machine's system type name and
-automatically appends it to the base name. An example of the proper value
-for this argument is C<staff> rather than C<staff.rs_aix42>. Partial
-pathnames are interpreted relative to the current working directory.
-
-Provide this argument or the B<-fullconfig> argument.
-
-=item B<-fullconfig> <I<full name of configuration file, or stdin>>
-
-Specifies the configuration file to use. Two types of values are
-acceptable:
-
-=over 4
-
-=item *
-
-The full pathname of the configuration file to use, complete with an
-extension indicating the machine type (examples: C<staff.rs_aix42>,
-C<admin.sun4x_56>).
-
-=item *
-
-The string C<stdin> to indicate that the issuer is providing configuration
-information via the standard input stream, either by piping in the
-contents of a file, or by typing configuration lines at the shell.  In the
-latter case, type Ctrl-D to conclude the input.
-
-=back
-
-Provide this argument or the B<-config> argument.
-
-=item B<-overwrite>
-
-Overwrites elements on the local disk with the source version indicated in
-the configuration file, even if the owner write (C<w>) mode bit is turned
-on the disk element. Files protected by the C<I> update code on an C<F>
-line in the configuration file are not overwritten.
-
-=item B<-noaction>
-
-Checks the sequence of operations to be performed when the command
-actually runs and reports any problems that the B<package> command
-interpreter expects to encounter. No elements on the local disk or in AFS
-are changed. If the B<-verbose> flag is also provided, the trace includes
-all actions to be performed as well as anticipated errors.
-
-=item B<-silent>
-
-Suppresses some of the trace messages sent to the standard output stream
-by default. The output still reports major problems.
-
-=item B<-verbose>
-
-Produces on the standard output stream a detailed trace of the command's
-execution. If this argument is omitted, only warnings and error messages
-appear.
-
-=item B<-rebootfiles>
-
-Prevents overwriting of any file marked with the C<Q> update code on an
-C<F> line in the configuration file. This effectively prevents the machine
-from rebooting automatically again when the B<package> command is invoked
-in the machine's AFS initialization file.
-
-=item B<-debug>
-
-Enables debugging output, which is directed to the standard output stream
-by default. By default, no debugging output is produced.
-
-=item B<-help>
-
-Prints the online help for this command. All other valid options are
-ignored.
-
-=back
-
-=head1 EXAMPLES
-
-This command is usually invoked in a client machine's AFS initialization
-file (F</etc/rc> or equivalent), rather than issued at the command shell
-prompt.
-
-The following command invokes the version of the staff configuration file
-appropriate for this machine's system type, and produces verbose output.
-
-   # /etc/package -c staff -v
-
-The following example uses the configuration file whose basename is
-defined in the F</.package> file on the local machine. This method enables
-the administrator to use the same B<package> command in every machine's
-AFS initialization file but still customize configuration by putting the
-appropriate basename in the F</.package> file.
-
-   # /etc/package -c `cat /.package` -v
-
-=head1 PRIVILEGE REQUIRED
-
-The issuer must be logged in as the local superuser C<root>.
-
-=head1 SEE ALSO
-
-L<package(5)>
-
-=head1 COPYRIGHT
-
-IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.
-
-This documentation is covered by the IBM Public License Version 1.0.  It was
-converted from HTML to POD by software written by Chas Williams and Russ
-Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.
index 8375c66..a525cd2 100644 (file)
@@ -57,10 +57,8 @@ log        - programs to show and forget tokens (and optionally forget tokens
 login      - afs aware login replacement, and optional replacement which
             gets kerberos tickets
 lwp        - lightweight process library
-mpp        - macro processor for use with package
 ntp        - out of date bundled NTP implementation
 null       - empty archive library
-package    - package system for local disk software maintenance
 pam        - pluggable authentication modules for afs authentication.
 pinstall   - "portable" install command
 procmgmt   - "portable" process management library.
@@ -93,8 +91,6 @@ viced      - fileserver.
 vlserver   - volume location server
 vol        - volume library for managing volumes on-disk.
 volser     - volume server package. includes volserver and vos client.
-wsadmin.src - sample package files
-wsadmin.lib - sample package files
 xstat      - extended statistics clients for cachemanagers and fileservers
 xinstall   - unused more modern install program
 tools      - contributed configuration/maintenance tools
@@ -103,5 +99,3 @@ include    - build-time include file install area; may be used in automake time
 cf         - autoconf config files
 afsinstall - leftovers from IBM AFS including installation notes and helper
             scripts
-
-
diff --git a/src/mpp/.cvsignore b/src/mpp/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/src/mpp/Makefile.in b/src/mpp/Makefile.in
deleted file mode 100644 (file)
index 6a5852e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-#      (C) Copyright 10/17/86 by Carnegie Mellon University
-#
-srcdir=@srcdir@
-include @TOP_OBJDIR@/src/config/Makefile.config
-
-include ../config/Makefile.version
-
-all: ${PROGRAM}
-
-install: mpp
-       ${INSTALL} -d ${DESTDIR}${sbindir}
-       ${INSTALL_PROGRAM} mpp ${DESTDIR}${sbindir}/mpp
-
-dest: mpp
-       ${INSTALL} -d ${DEST}/etc
-       ${INSTALL_PROGRAM} mpp ${DEST}/etc/mpp
-
-installdoc: mpp.1
-       ${INSTALL} -c mpp.1 ${DEST}/man/man1
-
-clean:
-       -$(RM) -f core a.out *.o *.out mpp AFS_component_version_number.c
-
-mpp: AFS_component_version_number.c
-       ${CC} ${CFLAGS} $@.c -o $@ ${XLIBS}
-
-mpp: mpp.c
diff --git a/src/mpp/mpp.1 b/src/mpp/mpp.1
deleted file mode 100644 (file)
index 37b6748..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-.TH MPP 1 "October 18, 1986"
-.UC 4
-.SH NAME
-mpp \- macro preproccessor
-.SH SYNOPSIS
-.B mpp
-[
-.B \-sp
-]
-[
-.B \-cCHAR
-]
-[
-.B \-Dname=value
-]
-[
-.B \-Uname
-]
-files
-.SH DESCRIPTION
-.I Mpp
-is a generic macropreproccessor.
-The directives %ifdef, %else, %endif, %define, %undef, and %include are
-understood by
-.I mpp.
-The concationated output of all input files is send to stdout.
-.PP
-.I Mpp
-understands the following switches:
-.TP
-.B \-cC
-Changed special charactor to C. (Percent sign is the default.)
-.TP
-.B \-s
-Strip out all comments beginning with a pound sign.
-.TP
-.B \-p
-Read stdin as if it were an input file.
-.TP
-.B \-Dname=value
-Define macro with name to be value.
-.TP
-.B \-Uname
-Remove current definition of name.
diff --git a/src/mpp/mpp.c b/src/mpp/mpp.c
deleted file mode 100644 (file)
index aab27c2..0000000
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- *     (C) Copyright 10/17/86 by Carnegie Mellon University
- */
-#include <stdio.h>
-#include <unistd.h>
-
-extern char *malloc();
-
-#define        maxinputdepth   16
-#define        maxlinesize     1024
-#define        macrohashsize   1023
-#define        macronamesize   32
-#define        maxnestdepth    128
-
-#define        inline  xxinline
-
-struct nest {
-    int status;
-};
-
-struct file {
-    char *name;
-    FILE *stream;
-    int lineno;
-};
-
-struct macro {
-    struct macro *next;
-    enum macromode { rdwr, rdonly } mode;
-    char *name;
-    char *value;
-};
-
-static stripcomments = 0;
-static specialchar = '%';
-static struct nest nests[maxnestdepth];
-static struct nest *nestp = &nests[0];
-static struct nest *lastnestp = &nests[maxnestdepth - 1];
-
-static struct file files[maxinputdepth];
-static struct file *lastfilep = &files[maxinputdepth - 1];
-static struct file *filep = &files[0];
-
-static char inline[maxlinesize];
-static char outline[maxlinesize];
-static struct macro *macrohashtable[macrohashsize];
-
-static int
-error(char *a0, char *a1)
-{
-    fprintf(stderr, a0, a1);
-    putc('\n', stderr);
-    exit(1);
-}
-
-static int
-fileerror(char *a0, char *a1);
-{
-    fprintf(stderr, "%s; line %d: ", filep->name, filep->lineno);
-    error(a0, a1);
-}
-
-static struct macro **
-macrolookup(char *name)
-{
-    register struct macro **mpp, *mp;
-    register char *cp;
-    register unsigned hv;
-
-    for (cp = name, hv = 0; *cp; hv += *cp++);
-    mpp = &macrohashtable[hv % macrohashsize];
-    while ((mp = *mpp) && strcmp(mp->name, name))
-       mpp = &mp->next;
-    return mpp;
-}
-
-static void
-macroundefine(char *name)
-{
-    register struct macro **mpp, *mp;
-
-    mpp = macrolookup(name);
-    if (mp = *mpp) {
-       *mpp = mp->next;
-       free(mp->value);
-       free(mp->name);
-       free(mp);
-    }
-}
-
-static void
-macrodefine(char *name, char *value, enum macromode mode)
-{
-    register struct macro **mpp, *mp;
-
-    mpp = macrolookup(name);
-    if (mp = *mpp) {
-       if (mp->mode == rdonly)
-           return;
-       free(mp->value);
-    } else {
-       if ((mp = (struct macro *)malloc(sizeof(struct macro))) == 0)
-           error("Out of memory");
-       mp->name = strdup(name);
-       mp->next = 0;
-       *mpp = mp;
-    }
-    mp->mode = mode;
-    mp->value = strdup(value);
-}
-
-
-static char *
-macroexpand(register char *dst, register char *src)
-{
-    char name[macronamesize];
-    register char *np;
-    register struct macro *mp;
-
-    while (*src) {
-       if (*src != '$') {
-           *dst++ = *src++;
-           continue;
-       }
-       src++;
-       if (*src == '$') {
-           *dst++ = '$';
-           src++;
-           continue;
-       }
-       np = name;
-       if (*src == '{' || *src == '(') {
-           src++;
-           while (*src) {
-               if (*src == '}' || *src == ')') {
-                   src++;
-                   break;
-               }
-               if (np >= &name[macronamesize])
-                   src++;
-               else
-                   *np++ = *src++;
-           }
-       } else {
-           *np++ = *src++;
-       }
-       *np = 0;
-       if (mp = *macrolookup(name))
-           dst = macroexpand(dst, mp->value);
-    }
-    *dst = 0;
-    return dst;
-}
-
-
-
-static int
-readline(char *line)
-{
-    while (filep >= &files[0]) {
-       filep->lineno++;
-       if (fgets(line, maxlinesize, filep->stream) != NULL)
-           return -1;
-       if (fclose(filep->stream) == EOF)
-           error("Error closing %s", filep->name);
-       free(filep->name);
-       if (filep == &files[0])
-           return 0;
-       filep--;
-    }
-    return 0;
-}
-
-static void
-writeline(char *line)
-{
-    fputs(line, stdout);
-}
-
-
-static int
-directive(char *what)
-{
-    char *arg[3], *cp;
-    int n;
-
-    if (*what++ != specialchar)
-       return nestp->status;
-    if (cp = strrchr(what, '\n'))
-       *cp = 0;
-    for (n = 0; n < 2; n++) {
-       while (*what == ' ' || *what == '\t')
-           what++;
-       arg[n] = what;
-       while (*what != ' ' && *what != '\t' && *what != 0)
-           what++;
-       if (*what)
-           *what++ = 0;
-    }
-    while (*what == ' ' || *what == '\t')
-       what++;
-    arg[2] = what;
-    if (strcmp(arg[0], "ifdef") == 0) {
-       if (nestp == lastnestp)
-           fileerror("If Depth overflow");
-       if (nestp->status == 2 || nestp->status == 1) {
-           nestp++;
-           nestp->status = 2;
-           return 1;
-       }
-       nestp++;
-       nestp->status = (*macrolookup(arg[1])) ? 0 : 1;
-       return 1;
-    }
-    if (strcmp(arg[0], "ifndef") == 0) {
-       if (nestp == lastnestp)
-           fileerror("If Depth overflow");
-       if (nestp->status == 2 || nestp->status == 1) {
-           nestp++;
-           nestp->status = 2;
-           return 1;
-       }
-       nestp++;
-       nestp->status = (*macrolookup(arg[1])) ? 1 : 0;
-       return 1;
-    }
-    if (strcmp(arg[0], "else") == 0) {
-       if (nestp->status == 2)
-           return 1;
-       if (nestp == &nests[0])
-           fileerror("If less else");
-       nestp->status = nestp->status ? 0 : 1;
-       return 1;
-    }
-    if (strcmp(arg[0], "endif") == 0) {
-       if (nestp == &nests[0])
-           fileerror("If less endif");
-       nestp--;
-       return 1;
-    }
-    if (nestp->status)
-       return 1;
-    if (strcmp(arg[0], "include") == 0) {
-       if (filep == lastfilep)
-           fileerror("Include file overflow");
-       filep++;
-       if ((filep->stream = fopen(arg[1], "r")) == NULL) {
-           filep--;
-           fileerror("Can't open %s", arg[1]);
-       }
-       filep->name = strdup(arg[1]);
-       filep->lineno = 0;
-       return 1;
-    }
-    if (strcmp(arg[0], "define") == 0) {
-       macrodefine(arg[1], arg[2], rdwr);
-       return 1;
-    }
-    if (strcmp(arg[0], "undef") == 0) {
-       macroundefine(arg[1]);
-       return 1;
-    }
-    fileerror("Unknown directive %s", arg[0]);
-}
-
-void 
-expandfile(char *name)
-{
-    if (strcmp(name, "-") == 0) {
-       filep->stream = stdin;
-       filep->name = strdup("(stdin)");
-    } else {
-       if ((filep->stream = fopen(name, "r")) == NULL) {
-           fileerror("Can't open %s", name);
-           exit(1);
-       }
-       filep->name = strdup(name);
-    }
-    filep->lineno = 0;
-    while (readline(inline)) {
-       if (stripcomments) {
-           char *cp;
-           for (cp = inline; *cp != 0 && *cp != '#'; cp++)
-               continue;
-           *cp = 0;
-           if (cp == inline)
-               continue;
-       }
-       (void)macroexpand(outline, inline);
-       if (directive(outline))
-           continue;
-       writeline(outline);
-    }
-}
-
-static int
-usage()
-{
-    fprintf(stderr, "Usage: mpp [-cC][-s][-Dname=value][-Uname][-][files]\n");
-    exit(1);
-}
-
-#include "AFS_component_version_number.c"
-
-int
-main(int argc, char **argv)
-{
-    argv++, argc--;
-    if (argc == 0)
-       usage();
-    while (argc > 0) {
-       if (**argv == '-') {
-           if (strcmp(*argv, "-s") == 0) {
-               stripcomments++;
-               argv++, argc--;
-               continue;
-           }
-           if (strncmp(*argv, "-c", sizeof("-c") - 1) == 0) {
-               specialchar = argv[0][sizeof("-c")];
-               argv++, argc--;
-               continue;
-           }
-           if (strncmp(*argv, "-U", sizeof("-U") - 1) == 0) {
-               macroundefine(&argv[0][sizeof("-U")]);
-               argv++, argc--;
-               continue;
-           }
-           if (strncmp(*argv, "-D", sizeof("-D") - 1) == 0) {
-               char *cp, *cp2;
-
-               cp = &argv[0][sizeof("-D") - 1];
-               if (cp2 = strrchr(cp, '='))
-                   *cp2++ = 0;
-               if (cp2 == 0)
-                   cp2 = "";
-               macrodefine(cp, cp2, rdonly);
-               argv++, argc--;
-               continue;
-           }
-           if (strcmp(*argv, "-"))
-               usage();
-       }
-       expandfile(*argv);
-       argv++, argc--;
-    }
-    exit(0);
-}
diff --git a/src/package/.cvsignore b/src/package/.cvsignore
deleted file mode 100644 (file)
index f3c7a7c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/src/package/Makefile.in b/src/package/Makefile.in
deleted file mode 100644 (file)
index a3be173..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License.  For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-#
-# Makefile for package, the AFS workstation configuration tool.
-#
-srcdir=@srcdir@
-include @TOP_OBJDIR@/src/config/Makefile.config
-
-CFLAGS   = ${COMMON_CFLAGS} -DKFLAG -DANDREW -DVICE -UDEBUG
-
-OBJS =  package.o \
-       gram.o \
-       lex.o \
-       conftree.o \
-       check.o \
-       update.o \
-       fileops.o \
-       messages.o \
-       misc.o \
-       globfuncs.o
-
-TEST_OBJS = test.o \
-       test_gram.o \
-       lex.o \
-       conftree.o \
-       messages.o \
-       misc.o \
-       globfuncs.o
-
-LIBS=${TOP_LIBDIR}/libsys.a \
-        ${TOP_LIBDIR}/libcmd.a \
-       ${TOP_LIBDIR}/libcom_err.a \
-        ${TOP_LIBDIR}/librx.a \
-       ${TOP_LIBDIR}/libsys.a \
-       ${TOP_LIBDIR}/util.a \
-       ${TOP_LIBDIR}/liblwp.a \
-       ${XLIBS}
-
-include ../config/Makefile.version
-
-all    : package package_test
-
-package        : $(OBJS)
-       $(CC) $(CFLAGS) -o $@ $(OBJS) $(NON_SHARED) ${LIBS}
-
-package_test : $(TEST_OBJS)
-       $(CC) $(CFLAGS) -o package_test $(TEST_OBJS) ${LIBS}
-
-package.o: package.c AFS_component_version_number.o
-test.o: test.c AFS_component_version_number.o
-
-lex.c:
-       -$(RM) -f lex.c
-       $(LEX)  -t lex.l > lex.c
-
-clean  :
-       $(RM) -f *.o gram.c test_gram.c core package package_test *.BAK y.output yacc.tmp yacc.acts\
-       AFS_component_version_number.c lex.c y.tab.h
-
-install: package package_test makepkgfiles
-       ${INSTALL} -d ${DESTDIR}${sbindir}
-       ${INSTALL_PROGRAM} package ${DESTDIR}${sbindir}/package
-       ${INSTALL_PROGRAM} package_test ${DESTDIR}${sbindir}/package_test
-       ${INSTALL_PROGRAM} makepkgfiles ${DESTDIR}${sbindir}/makepkgfiles
-
-dest: package package_test makepkgfiles
-       ${INSTALL} -d ${DEST}/etc
-       ${INSTALL_PROGRAM} package ${DEST}/etc/package
-       ${INSTALL_PROGRAM} package_test ${DEST}/etc/package_test
-       ${INSTALL_PROGRAM} makepkgfiles ${DEST}/etc/makepkgfiles
diff --git a/src/package/README b/src/package/README
deleted file mode 100644 (file)
index 4ec4385..0000000
+++ /dev/null
@@ -1 +0,0 @@
-ci lex.l first
diff --git a/src/package/check.c b/src/package/check.c
deleted file mode 100644 (file)
index 97434dc..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*------------------------------------------------------------------------
- * check.c
- *
- * Description:
- *     Check the integrity of the configuration tree for package, the
- *     AFS workstation configuration tool.
- *
- *------------------------------------------------------------------------*/
-
-#include <afs/param.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <dirent.h>
-#include "globals.h"
-#include "package.h"
-
-char *emalloc();
-char *strcpy();
-CTREEPTR LocateChildNode();
-
-static char path2[MAXPATHLEN + 1];     /* $$get rid of this */
-static char path3[MAXPATHLEN + 1];     /* $$get rid of this */
-
-/*------------------------------------------------------------------------
- * [static] CheckMount
- *
- * Description:
- *     Check the assertion that the given path is a Unix mountpoint.
- *
- * Arguments:
- *     char *path : Path to check.
- *
- * Returns:
- *     0 on success,
- *     Exit from package on failure.
- *
- * Environment:
- *     This routine is private to the module.
- *
- * Side Effects:
- *     May exit from package.
- *------------------------------------------------------------------------*/
-
-static void
-CheckMount(char *path)
-{                              /*CheckMount */
-    struct stat stb;           /*Parent's stat block */
-    struct stat stb2;          /*Child's stat block */
-    char dir[MAXPATHLEN];      /*Pathname of candidate mount point */
-    char parent[MAXPATHLEN];   /*Parent's pathname */
-    register char *ep, *dp, *sp;       /*Sliding ptr to above strings */
-    int ret;                   /*Return value */
-
-    debug_message("%% CheckMount called on path %s", path);
-    ret = 0;
-
-    /*
-     * Copy out the candidate mountpoint's pathname into dir, throwing
-     * off any leaf component from the original path.
-     */
-    ep = strrchr(path, '/');
-    for (sp = path, dp = dir; sp < ep; *dp++ = *sp++);
-    if (dp == dir)
-       *dp++ = '/';
-    *dp = '\0';
-
-    /*
-     * Copy out the parent's pathname into parent.
-     */
-    ep = strrchr(dir, '/');
-    for (sp = dir, dp = parent; sp < ep; *dp++ = *sp++);
-    if (dp == parent)
-       *dp++ = '/';
-    *dp = '\0';
-
-    /*
-     * Only perform the following test if the candidate mountpoint is
-     * something other than `/', which we know is a mountpoint.
-     */
-    if (strcmp(dir, "/")) {
-       /*
-        * Stat the given directory and its parent.  If either is not a
-        * directory or if the device numbers are the same, then the
-        * candidate has failed and is not a Unix mountpoint.
-        */
-       if (stat(dir, &stb) < 0)
-           ret = -1;
-       if (stat(parent, &stb2) < 0)
-           ret = -1;
-       if ((stb.st_mode & S_IFMT) != S_IFDIR)
-           ret = -1;
-       if ((stb2.st_mode & S_IFMT) != S_IFDIR)
-           ret = -1;
-       if (stb2.st_dev == stb.st_dev)
-           ret = -1;
-    }
-
-    if (ret < 0) {
-       /*
-        * Our assertion that the given path is a mountpoint is false.
-        * Tell our caller, then croak off.
-        */
-       fatal("** %s is not a Unix mountpoint, as was expected!", dir);
-    }
-
-    /*
-     * The candidate mountpoint has passed the test.  If we're being
-     * verbose, tell everyone.
-     */
-    verbose_message("Found Unix mountpoint %s", dir);
-}                              /*CheckMount */
-
-/*------------------------------------------------------------------------
- * check
- *
- * Description:
- *     Check the validity of the given node compared to the associated
- *     pathname.
- *
- * Arguments:
- *     CTREEPTR np : Node pointer to check.
- *     char *path  : Associated pathname.
- *
- * Returns:
- *     0 upon success,
- *     Exits the program otherwise.
- *
- * Environment:
- *     This is one of the routines applied to the entire configuration
- *     tree.
- *
- * Side Effects:
- *     May exit from package.
- *------------------------------------------------------------------------*/
-
-int
-check(register CTREEPTR np, char *path)
-{                              /*check */
-
-    register CTREEPTR np2;     /*Node ptr for np's child */
-    register struct dirent *de;        /*Ptr to directory entry */
-    DIR *dp;                   /*Ptr to directory being read */
-    struct stat stb;           /*Stat block for path2 */
-    int retval;                        /*Return value */
-
-    retval = 0;
-    debug_message("[check] Checking pathname %s", path, np);
-
-    if ((np->flag & F_TYPE) && (np->updtspec & U_LOSTFOUND))
-       CheckMount(path);
-    if (!(np->flag & F_PROTO)) {
-       if (!(np->flag & F_TYPE))
-           fatal("** Incomplete: %s", path);
-       else if ((np->type == S_IFCHR) || (np->type == S_IFBLK))
-           /* $$Note: Actually, the parser takes care of this */
-           fatal("** No device numbers specified for device %s\n", path);
-       return (retval);
-    }
-
-    /*
-     * No checks needed for character & block special devices (& sockets
-     * & named pipes).
-     */
-    if ((np->type == S_IFCHR)
-       || (np->type == S_IFBLK)
-#ifndef AFS_AIX_ENV
-       || (np->type == S_IFSOCK)
-#endif /* AFS_AIX_ENV */
-#ifdef S_IFIFO
-       || (np->type == S_IFIFO)
-#endif /* S_IFIFO */
-       )
-       return (retval);
-
-    /*
-     * Construct the target path, either absolute or prefixed.
-     */
-    if (np->updtspec & U_ABSPATH)
-       /*
-        * Absolute path.
-        */
-       sprintf(path2, "%s", np->proto.info.path);
-    else
-       /*
-        * Prefixed path.
-        */
-       sprintf(path2, "%s%s", np->proto.info.path, path);
-
-    debug_message("[check] Statting %s", path2);
-
-    /*
-     * If this is a symlink, lstat the guy and warn people if it
-     * isn't found.
-     */
-    if ((np->flag & F_TYPE) && (np->type == S_IFLNK)) {
-       if (lstat(path2, &stb) < 0)
-           verbose_message("* Warning: symlink %s not found", path2);
-       return (retval);
-    }
-
-    /*
-     * Do a normal stat, failing if it does.
-     */
-    if (stat(path2, &stb) < 0)
-       fatal("** Stat failed for %s; %m", path2);
-
-    if (np->flag & F_TYPE) {
-       if (np->type == S_IFLNK)
-           return (retval);
-       if ((stb.st_mode & S_IFMT) != np->type)
-           fatal("** Type conflict for %s", path2);
-    } else {
-       np->type = stb.st_mode & S_IFMT;
-       np->flag |= F_TYPE;
-    }
-
-    if (!(np->flag & F_MODE)) {
-       /*Fill in the mode (protection) info from the stat block */
-       np->mode |= stb.st_mode & ~S_IFMT;
-       np->flag |= F_MODE;
-    }
-
-    if (!(np->flag & F_UID)) {
-       /*Fill in the user info from the stat block */
-       np->uid = stb.st_uid;
-       np->flag |= F_UID;
-    }
-
-    if (!(np->flag & F_GID)) {
-       /*Fill in the group info from the stat block */
-#ifdef VICE
-       np->gid = (stb.st_gid == 32767) ? 0 : stb.st_gid;
-#else /* VICE */
-       np->gid = stb.st_gid;
-#endif /* VICE */
-       np->flag |= F_GID;
-    }
-
-    if (!(np->flag & F_MTIME)) {
-       /*Fill in the last modified time from the stat block */
-       np->mtime = stb.st_mtime;
-       np->flag |= F_MTIME;
-    }
-
-    /*
-     * If we've reached a non-directory, we're all done.
-     */
-    if (np->type != S_IFDIR) {
-       debug_message("[check] Reached leaf node, returning");
-       return (retval);
-    }
-
-    /*
-     * Open up the directory and sweep through it, checking all its
-     * entries.
-     */
-    verbose_message("Scanning directory %s", path2);
-    if ((dp = opendir(path2)) == 0)
-       fatal("** Opendir failed on %s; %m", path2);
-
-    while ((de = readdir(dp)) != 0) {
-       if (de->d_name[0] == '.') {
-           /*
-            * Don't process dot, the current directory, or dotdot, the
-            * parent.
-            */
-           if (de->d_name[1] == 0)
-               continue;
-           if (de->d_name[1] == '.' && de->d_name[2] == 0)
-               continue;
-       }
-
-       if ((np2 =
-            LocateChildNode(np, de->d_name, C_LOCATE | C_CREATE)) == NULL)
-           fatal("** Bad path: %s/%s", path, de->d_name);
-
-       if (!(np2->flag & F_PROTO)) {
-           if (np->updtspec & U_ABSPATH) {
-               np2->updtspec |= U_ABSPATH;
-               sprintf(path3, "%s/%s", np->proto.info.path, de->d_name);
-               np2->proto.info.path = emalloc((unsigned)(strlen(path3) + 1));
-               (void)strcpy(np2->proto.info.path, path3);
-           } else {
-               np2->proto.info.path = np->proto.info.path;
-           }
-           np2->flag |= F_PROTO;
-           continue;
-       }
-       if ((np2->updtspec & U_ABSPATH) != (np->updtspec & U_ABSPATH))
-           fatal
-               ("** Prototype conflict: %s/%s: Absolute & relative paths given",
-                path, de->d_name);
-       if (np->updtspec & U_ABSPATH) {
-           sprintf(path3, "%s/%s", np->proto, de->d_name);
-           if (strcmp(path3, np2->proto.info.path))
-               fatal("** Prototype conflict: %s/%s: Previously %s", path,
-                     de->d_name, np2->proto.info.path);
-       } else {
-           if (strcmp(np->proto.info.path, np2->proto.info.path))
-               fatal("** Prototype conflict: %s/%s: Mismatch for %s and %s",
-                     path, de->d_name, np->proto.info.path,
-                     np2->proto.info.path);
-       }
-    }                          /*For each directory entry */
-
-    /*
-     * Make sure to close the directory before we leave.
-     */
-    (void)closedir(dp);
-    return (retval);
-}                              /*check */
diff --git a/src/package/conftree.c b/src/package/conftree.c
deleted file mode 100644 (file)
index 1fdfda5..0000000
+++ /dev/null
@@ -1,784 +0,0 @@
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*------------------------------------------------------------------------
- * conftree.c
- *
- * Description:
- *     Configuration tree module for package, the AFS workstation
- *     configuration tool.
- *
- *------------------------------------------------------------------------*/
-
-#include <afs/param.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <pwd.h>
-#include <grp.h>
-
-#include "globals.h"
-#include "package.h"
-
-#include "validupdates.h"
-
-char *emalloc();
-FILE *efopen();
-char *strcpy();
-extern FILE *yyin;             /*Input file for the YACC parser */
-
-/*------------------------------------------------------------------------
- * [static] namehash
- *
- * Description:
- *     Returns a hash value for the given name.
- *
- * Arguments:
- *     char *name : Ptr to name to hash.
- *
- * Returns:
- *     Hash value associated with the given name.
- *
- * Environment:
- *     This routine is private to the module.
- *
- * Side Effects:
- *     As advertised.
- *------------------------------------------------------------------------*/
-
-static int
-namehash(register char *name)
-{                              /*namehash */
-
-    register int hash;
-
-    hash = 0;
-    while (*name != '\0')
-       hash += (hash << 6) + *name++;
-    return (hash);
-
-}                              /*namehash */
-
-/*------------------------------------------------------------------------
- * [static] AllocConfigNode
- *
- * Description:
- *      Allocate storage for a configuration tree node.
- *
- * Arguments:
- *     None.
- *
- * Returns:
- *     Ptr to the freshly-allocated node if successful,
- *     Otherwise we'll exit the program.
- *
- * Environment:
- *     This routine is private to the module.
- *
- * Side Effects:
- *     May exit from package entirely.
- *------------------------------------------------------------------------*/
-
-static CTREEPTR
-AllocConfigNode()
-{                              /*AllocConfigNode */
-
-    register CTREEPTR np;
-
-    np = (CTREEPTR) emalloc(sizeof(CTREE));
-    memset((char *)np, 0, sizeof(CTREE));
-    return (np);
-
-}                              /*AllocConfigNode */
-
-/*------------------------------------------------------------------------
- * [static] ValidUpdtSpec
- *
- * Description:
- *     Checks whether the given update specification is valid for a file
- *     of the given filetype.
- *
- * Arguments:
- *     u_short ftype : The type of file to be updated.
- *     u_short uspec : The update spec to check.
- *
- * Returns:
- *     TRUE if the check succeeds,
- *     FALSE otherwise.
- *
- * Environment:
- *     This routine is private to the module.
- *
- * Side Effects:
- *     As advertised.
- *------------------------------------------------------------------------*/
-
-static int
-ValidUpdtSpec(u_short ftype, u_short uspec)
-{                              /*ValidUpdtSpec */
-
-    register struct updatetype *u;
-
-    /*
-     * Scan the list of valid update specs, succeed if you find an
-     * exact match.
-     */
-    for (u = validupdates; u->filetype != 0; u++)
-       if ((u->filetype == ftype) && (u->updtflags == uspec))
-           return (TRUE);
-    return (FALSE);
-
-}                              /*ValidUpdtSpec */
-
-/*------------------------------------------------------------------------
- * [static] ValidateUserName
- *
- * Description:
- *     Given a pointer to a user name, see if that name is a valid one
- *     by possibly looking in the password file.  If it's valid, return
- *     the associated uid via the uidp parameter.
- *
- * Arguments:
- *     char *name  : Ptr to user name to validate.
- *     short *uidp : Matching uid is placed here upon success.
- *
- * Returns:
- *     TRUE on success,
- *     FALSE otherwise.
- *
- * Environment:
- *     This routine is private to the module.
- *
- * Side Effects:
- *     The passwd structure pointer, pw, is a static.  Thus, we
- *     recall the last search into the password file.  Before
- *     doing a lookup, we check to see if we've lucked out and
- *     the results are already cached.
- *------------------------------------------------------------------------*/
-
-static int
-ValidateUserName(register char *name, register short *uidp)
-{                              /*ValidateUserName */
-
-    register afs_int32 uid;
-    char *nptr;
-    static struct passwd *pw = NULL;   /*Ptr to passwd file entry */
-
-    /*
-     * We always know what root is; don't bother with a passwd lookup
-     * in this case.
-     */
-    if (strcmp(name, "root") == 0) {
-       *uidp = 0;
-       return (TRUE);
-    }
-
-    /*
-     * If we have the results from a previous search, don't do it
-     * again.  Otherwise, take the plunge.
-     */
-    if (pw == NULL || strcmp(pw->pw_name, name))
-       pw = getpwnam(name);
-
-    if (pw == NULL) {
-       uid = strtol(name, &nptr, 10);
-       if ((int)(nptr - name) == strlen(name))
-           pw = getpwuid((uid_t) uid);
-    }
-
-    if (pw != NULL) {
-       /*
-        * Found the given name.  Return the matching pid.
-        */
-       *uidp = pw->pw_uid;
-       return (TRUE);
-    } else
-       /*
-        * Abject failure.
-        */
-       return (FALSE);
-
-}                              /*ValidateUserName */
-
-/*------------------------------------------------------------------------
- * [static] ValidateGroupName
- *
- * Description:
- *     Given a pointer to a group name, see if that name is a valid one
- *     by possibly looking in the group file.  If it's valid, return
- *     the associated gid via the gidp parameter.
- *
- * Arguments:
- *     char *name  : Ptr to group name to validate.
- *     short *gidp : Matching gid is placed here upon success.
- *
- * Returns:
- *     TRUE on success,
- *     FALSE otherwise.
- *
- * Environment:
- *     This routine is private to the module.
- *
- * Side Effects:
- *     The group structure pointer, gr, is a static.  Thus, we
- *     recall the last search into the group file.  Before
- *     doing a lookup, we check to see if we've lucked out and
- *     the results are already cached.
- *------------------------------------------------------------------------*/
-
-static int
-ValidateGroupName(register char *name, register short *gidp)
-{                              /*ValidateGroupName */
-
-    register afs_int32 gid;
-    char *nptr;
-    static struct group *gr = NULL;    /*Ptr to group structure */
-
-    /*
-     * We always know the group number for wheel, so don't bother doing
-     * any lookups.
-     */
-    if (strcmp(name, "wheel") == 0) {
-       *gidp = 0;
-       return (TRUE);
-    }
-
-    /*
-     * If we have the results from a previous search, don't do it
-     * again.  Otherwise, take the plunge.
-     */
-    if (gr == NULL || strcmp(gr->gr_name, name))
-       gr = getgrnam(name);
-
-    if (gr == NULL) {
-       gid = strtol(name, &nptr, 10);
-       if ((int)(nptr - name) == strlen(name))
-           gr = getgrgid((gid_t) gid);
-    }
-
-    if (gr != NULL) {
-       /*
-        * Found the given group.  Return the matching gid.
-        */
-       *gidp = gr->gr_gid;
-       return (TRUE);
-    } else
-       return (FALSE);
-
-}                              /*ValidateGroupName */
-
-/*------------------------------------------------------------------------
- * InitializeConfigTree
- *
- * Description:
- *     Allocates storage for the root of the configuration tree.
- *
- * Arguments:
- *     None.
- *
- * Returns:
- *     0 if successful.  On failure, package exits.
- *
- * Environment:
- *     The newly-allocated space is recorded in the global variable
- *     config_root.
- *
- * Side Effects:
- *     As described; may exit from package.
- *------------------------------------------------------------------------*/
-
-int
-InitializeConfigTree()
-{                              /*InitializeConfigTree */
-
-    config_root = AllocConfigNode();
-    return (0);
-
-}                              /*InitializeConfigTree */
-
-/*------------------------------------------------------------------------
- * LocateChildNode
- *
- * Description:
- *     Locate the node corresponding to the given name in the entries
- *     corresponding to the specified directory node.
- *
- * Arguments:
- *     CTREEPTR dp : Config tree node whose entries are to be searched
- *                     for the given name.
- *     char *name  : Ptr to the string name to search for.
- *     int lmode   : Lookup mode, either C_LOCATE or C_CREATE.
- *
- * Returns:
- *     Ptr to located node if it existed, else
- *     Ptr to newly-created node if no match found and C_CREATE mode used,
- *     Otherwise a null pointer.  Null will also be returned if the given
- *             directory node isn't really for a directory.
- *
- * Environment:
- *     Nothing interesting.
- *
- * Side Effects:
- *     May create entries and nodes; may exit package if any of these
- *     creations fail.
- *------------------------------------------------------------------------*/
-
-CTREEPTR
-LocateChildNode(register CTREEPTR dp, register char *name, register int lmode)
-{                              /*LocateChildNode */
-
-    register int hash;         /*Hash value for given name */
-    register ENTRYPTR ep;      /*Ptr to entry being examined */
-    register int found_entry;  /*Found entry we want? */
-
-    /*
-     * First, make sure dp corresponds to a directory
-     */
-    if (dp->type != S_IFDIR)
-       return (NULL);
-
-    /*
-     * Set up to search the entries hanging off the directory node.
-     * Precompute the hash value for the name.
-     */
-    hash = namehash(name);
-    ep = dp->entryp;
-    found_entry = FALSE;
-
-    /*
-     * Sweep through the list of entries until we find our match or
-     * fall off the end.
-     */
-    while ((ep != NULL) && !found_entry) {
-       /*
-        * We compare the hash value first, and only if that succeeds
-        * do we do the string compare.
-        */
-       if ((ep->hash == hash) && (strcmp(ep->name, name) == 0))
-           found_entry = TRUE;
-       else
-           /*
-            * No match.  Move on to the next entry, if any.
-            */
-           ep = ep->nextp;
-
-    }                          /*Search list of entries */
-
-    /*
-     * If we found it, return the node hanging off the entry.
-     */
-    if (found_entry)
-       return (ep->nodep);
-
-    /*
-     * We didn't find the given name.  If we aren't supposed to create
-     * a node for the name, we return failure.
-     */
-    if (!(lmode & C_CREATE))
-       return (NULL);
-
-    /*
-     * Create a new entry and node to stand for the given name, link it
-     * in, and return it to our caller.
-     */
-    ep = (ENTRYPTR) emalloc(sizeof(ENTRY));
-    ep->nodep = AllocConfigNode();
-    ep->name = (char *)emalloc((unsigned)(strlen(name) + 1));
-    ep->hash = hash;
-    (void)strcpy(ep->name, name);
-    ep->nextp = dp->entryp;
-    dp->entryp = ep;
-    return (ep->nodep);
-
-}                              /*LocateChildNode */
-
-/*------------------------------------------------------------------------
- * LocatePathNode
- *
- * Description:
- *     Locates the configuration tree node corresponding to the given
- *     file or directory.
- *
- * Arguments:
- *     CTREEPTR dp : Config tree node from which search is to begin.
- *                     (Actually, config_root!!)
- *     char *path  : Path to be searched for.
- *     int lmode   : Search mode to use (C_LOCATE, C_CREATE).
- *
- * Returns:
- *     Ptr to located node if it existed, else
- *     Ptr to newly-created node if no match found and C_CREATE mode used,
- *     Otherwise a null pointer.  Null will also be returned if the given
- *             directory node isn't really for a directory.
- *
- * Environment:
- *     The search is breadth-first, plucking out each piece of the path
- *     from left to right.
- *
- * Side Effects:
- *     Exits from package.
- *------------------------------------------------------------------------*/
-
-CTREEPTR
-LocatePathNode(register CTREEPTR dp, register char *path, register int lmode)
-{                              /*LocatePathNode */
-    register char *name;       /*Points to start of new subdir/file in path */
-    register char savech;      /*Saves chars being murdered during search */
-
-    /*
-     * Skip over leading slashes.
-     */
-    while (*path == '/')
-       path++;
-
-    while (dp != NULL && *path != '\0') {
-       /*
-        * Pull off the leftmost portion of the (remaining) pathname,
-        * then search for it through all the entries for the current
-        * directory node serving as the root of the search.
-        */
-       name = path;
-       while (*path != '\0' && *path != '/')
-           path++;
-       savech = *path;
-       *path = '\0';
-       if ((lmode & C_CREATE) && (dp->type == 0))
-           /*
-            * This is an unfilled non-leaf node.  Mark it as being
-            * a directory node
-            */
-           dp->type = S_IFDIR;
-
-       /*
-        * Look for the name fragment among all entries corresponding
-        * to the root node.
-        */
-       dp = LocateChildNode(dp, name, lmode);
-
-       /*
-        * Restore the char we overwrote with a null, then bump the
-        * path to the start of the next component.
-        */
-       *path = savech;
-       while (*path == '/')
-           path++;
-
-    }                          /*while loop */
-
-    /*
-     * dp now contains the path associated with the given path, so
-     * just return it.
-     */
-    return (dp);
-}                              /*LocatePathNode */
-
-/*------------------------------------------------------------------------
- * BuildConfigTree
- *
- * Description:
- *     Builds a configuration tree from its YACC specification.
- *
- * Arguments:
- *     FILE *f : File containing the configuration info.
- *
- * Returns:
- *     Value returned by the YACC parser (0 for success, else 1), or
- *     Exits if there is insufficient memory in which to build the tree.
- *
- * Environment:
- *     Nothing interesting.
- *
- * Side Effects:
- *     May exit from package.
- *------------------------------------------------------------------------*/
-
-int
-BuildConfigTree(FILE *f)
-{                              /*BuildConfigTree */
-    int ret;
-
-    yyin = f;
-    ret = yyparse();
-    return (ret);
-}                              /*BuildConfigTree */
-
-/*------------------------------------------------------------------------
- * [static] AddEntry
- *
- * Description:
- *     Adds an entry to the configuration tree.
- *
- * Arguments:
- *     u_short filetype    : Specifies type of file to be updated (regular
- *                             file, directory, device, etc.)
- *     u_short updtspec    : Specifies actions during update, if necessary.
- *     char *filename      : Name of file to be updated.
- *     PROTOTYPE prototype : Prototype for filename (e.g., dev numbers,
- *                             directory prefix, etc.)
- *     OWNER ownershipinfo : Ownership info for filename.
- *     MODE mode           : Protection (mode) bits for filename.
- *
- * Returns:
- *     0 on success,
- *     Error value otherwise.
- *     If there is insufficient memory to add the entry, or if invalid
- *             parameters are encountered, the entire program exits.
- *
- * Environment:
- *     Searches always start from the root of the configuration tree.
- *
- * Side Effects:
- *     As advertised; may exit from package.
- *------------------------------------------------------------------------*/
-
-int
-AddEntry(u_short filetype, u_short updtspec, char *filename, PROTOTYPE prototype, OWNER ownershipinfo, MODE mode)
-{                              /*AddEntry */
-    CTREEPTR np;               /*Ptr to config tree node holding info on filename */
-    short uid, gid;            /*Uid, gid returned from validation functions */
-
-    debug_message("[AddEntry] Called for filename %s", filename);
-
-    /*
-     * Check that the given update specification is a legal one.
-     */
-    if (ValidUpdtSpec(filetype, updtspec) == FALSE)
-       fatal("** Invalid update specification for file %s", filename);
-
-    /*
-     * Find the node corresponding to the given filename, creating one if
-     * necessary.
-     */
-    if ((np =
-        LocatePathNode(config_root, filename, C_LOCATE | C_CREATE)) == NULL)
-       fatal("** Invalid path encountered: %s", filename);
-
-    /*
-     * Start adding entries to np after checking for potential conflicts.
-     *
-     * Should we print out a warning if the same file appears twice even
-     * in the absence of a type confict?
-     */
-    if ((np->flag & F_TYPE) && (np->type != filetype))
-       fatal("** Type conflict for file %s", filename);
-
-    np->flag |= F_TYPE;
-    np->type = filetype;
-
-#if 0
-    if ((np->flag & F_UPDT) && (np->updtspec != updtspec))
-       fatal("** Update specification conflict for file %s", filename);
-    else
-#endif /* 0 */
-    {
-       np->flag |= F_UPDT;
-       np->updtspec |= updtspec;
-    }
-
-    if ((filetype == S_IFCHR)
-       || (filetype == S_IFBLK)
-#ifdef S_IFIFO
-       || (filetype == S_IFIFO)
-#endif /* S_IFIFO */
-       ) {
-       /*
-        * Device prototype
-        */
-       if ((np->flag & F_PROTO) && (prototype.flag != P_NONE)) {
-           if ((prototype.flag != P_DEV)
-               || ((np->proto.info.rdev != prototype.info.rdev)))
-               fatal("** Device number conflict for device %s", filename);
-       } else if (prototype.flag == P_FILE)
-           fatal("** Prototype conflict for device %s", filename);
-       else if (prototype.flag == P_DEV) {
-           np->flag |= F_PROTO;
-           np->proto.flag = P_DEV;
-           np->proto.info.rdev = prototype.info.rdev;
-       }
-    } else {
-       /*
-        * File prototype, if any
-        */
-       if ((np->flag & F_PROTO) && (prototype.flag != P_NONE)) {
-           if ((prototype.flag != P_FILE)
-               || (strcmp(np->proto.info.path, prototype.info.path)))
-               fatal("** Prototype conflict for file %s", filename);
-       } else if (prototype.flag == P_DEV)
-           fatal("** Prototype conflict for file %s", filename);
-       else if (prototype.flag == P_FILE) {
-           np->flag |= F_PROTO;
-           np->proto.flag = P_FILE;
-           np->proto.info.path =
-               emalloc((unsigned)(strlen(prototype.info.path) + 1));
-           (void)strcpy(np->proto.info.path, prototype.info.path);
-       }
-    }
-
-    if (ownershipinfo.username != NULL) {
-       /*
-        * Ownership info, if any
-        */
-       if (ValidateUserName(ownershipinfo.username, &uid) == FALSE)
-           fatal("** Unknown user %s for file %s", ownershipinfo.username,
-                 filename);
-       else if ((np->flag & F_UID) && (np->uid != uid))
-           fatal("** Uid conflict for file %s (new val: %d, old val: %d)",
-                 filename, np->uid, uid);
-       else {
-           np->flag |= F_UID;
-           np->uid = uid;
-       }
-    }
-    /*Process user ownership info */
-    if (ownershipinfo.groupname != NULL) {
-       if (ValidateGroupName(ownershipinfo.groupname, &gid) == FALSE)
-           fatal("** Unknown group %s for file %s", ownershipinfo.groupname,
-                 filename);
-       else if ((np->flag & F_GID) && (np->gid != gid))
-           fatal("** Gid conflict for file %s (new val: %d, old val: %d)",
-                 filename, np->gid, gid);
-       else {
-           np->flag |= F_GID;
-           np->gid = gid;
-       }
-    }
-    /*Process group ownership info */
-    if (mode.inherit_flag != TRUE) {
-       if (mode.modeval > (u_short) ~ S_IFMT)
-           fatal("** Bad mode %d for file %s", mode.modeval, filename);
-       if ((np->flag & F_MODE) && ((np->mode & ~S_IFMT) != mode.modeval))
-           fatal("** Mode conflict for file %s", filename);
-       else {
-           np->flag |= F_MODE;
-           np->mode |= mode.modeval;
-       }
-    }
-
-    /*Mode inherit flag turned off */
-    /*
-     * If we reached this point, everything must have been OK
-     */
-    return (0);
-
-}                              /*AddEntry */
-
-/*------------------------------------------------------------------------
- * ApplyConfigTree
- *
- * Description:
- *     Apply the given function to each node of the configuration tree
- *     in pre-order fashion.
- *
- * Arguments:
- *     int (*func)() : Function to apply.
- *
- * Returns:
- *     Void.
- *
- * Environment:
- *     Nothing interesting.
- *
- * Side Effects:
- *     Whatever the given function does.
- *------------------------------------------------------------------------*/
-
-void
-ApplyConfigTree(int (*func) ())
-{                              /*ApplyConfigTree */
-
-    char *path;                        /*Path to pass on down */
-
-    /*
-     * Create room for the largest path possible, and set it to the
-     * null string.  This forces the application to be started at
-     * ``/''.
-     */
-    path = (char *)emalloc(MAXPATHLEN + 1);
-    path[0] = '\0';
-
-    TraverseConfigTree(config_root, path, func);
-
-}                              /*ApplyConfigTree */
-
-/*------------------------------------------------------------------------
- * TraverseConfigTree
- *
- * Description:
- *     Traverses the subtree of the configuration tree rooted at np
- *     in pre-order fashion, applying function func to each node.
- *
- * Arguments:
- *     CTREEPTR np   : Root of config tree to traverse.
- *     char *path    : Path on which to start traversal.
- *     int (*func)() : Function to apply to each node.
- *
- * Returns:
- *     Void.
- *
- * Environment:
- *     Nothing interesting.
- *
- * Side Effects:
- *     Whatever func might do.
- *------------------------------------------------------------------------*/
-
-void
-TraverseConfigTree(register CTREEPTR np, char *path, int (*func) ())
-{                              /*TraverseConfigTree */
-    register char *endp;       /*Marks the end of a string */
-    register ENTRYPTR ep;      /*Current entry pointer */
-    register int len;          /*Length of the pathname */
-
-    /*
-     * If the path is empty, start it off with "/".
-     */
-    len = strlen(path);
-    if (len == 0)
-       (void)strcpy(path, "/");
-
-    /*
-     * Apply the function to the current node.
-     */
-    (void)(*func) (np, path);
-
-    if (len == 0)
-       (void)strcpy(path, "");
-
-    /*
-     * If we've reached a leaf node (a non-directory), start heading
-     * back up.
-     */
-    if ((np->type) != S_IFDIR)
-       return;
-
-    /*
-     * We're currently at a directory node.  For each entry in the entry
-     * list for this node, conjure up the name associated with the entry's
-     * node and call ourselves recursively.  This calling sequence gives
-     * us the preorder traversal.
-     */
-    endp = path + len;
-    *endp++ = '/';
-    *endp = 0;
-    for (ep = np->entryp; ep; ep = ep->nextp) {
-       /*
-        * Tack on the node's name component to the end of the path and
-        * descend.
-        */
-       (void)strcpy(endp, ep->name);
-       TraverseConfigTree(ep->nodep, path, func);
-    }
-
-    /*
-     * We've finished the preorder walk under this node.  Terminate
-     * the path properly before returning.
-     */
-    *--endp = 0;
-}                              /*TraverseConfigTree */
diff --git a/src/package/fileops.c b/src/package/fileops.c
deleted file mode 100644 (file)
index 1ca0f16..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
-  *    (C) Copyright 10/12/86 by Carnegie Mellon University
-  */
-
-/*
- * Revision 1.2  89/09/13  11:36:48
- * Various fixes so it can compile under AIX.
- * 
- * Revision 1.1  89/06/14  11:06:03
- * Initial revision
- * 
- * Revision 1.3  88/07/28  13:41:05
- * working simulation moved over to the beta cell
- * 
- * Revision 1.2  88/02/26  05:07:56
- * simulation of package with a yacc parser
- * 
- * Revision 1.1  88/02/23  02:17:14
- * Initial revision
- * 
- */
-
-#include <afs/param.h>
-#include <sys/param.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/file.h>
-#include <dirent.h>
-#ifdef HAVE_STRING_H
-#include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-#include <errno.h>
-#ifdef AFS_SUN5_ENV
-#include <sys/fcntl.h>
-#endif
-#include "globals.h"
-#include "package.h"
-
-
-int
-mv(from, to)
-     register char *from;
-     register char *to;
-{
-    loudonly_message("mv %s %s", from, to);
-    if (!opt_lazy && rename(from, to) < 0) {
-#if defined(AFS_HPUX_ENV)
-       char pnameBusy[512];
-
-       if (errno == ETXTBSY) {
-           (void)strcpy(pnameBusy, to);
-           (void)strcat(pnameBusy, ".BUSY");
-           if (rename(to, pnameBusy) == 0) {
-               if (rename(from, to) < 0) {
-                   unlink(pnameBusy);
-                   if (errno == ETXTBSY) {
-                       message("rename %s %s; %m (ignored)", from, to);
-                       return 0;
-                   }
-                   message("rename %s %s; %m", from, to);
-                   return -1;
-               }
-               unlink(pnameBusy);
-               return 0;
-           } else if (errno == ETXTBSY) {
-               message("rename %s %s; %m (ignored)", to, pnameBusy);
-               return 0;
-           }
-       }
-#endif /* AFS_HPUX_ENV */
-       message("rename %s %s; %m", from, to);
-       return -1;
-    }
-    return 0;
-}
-
-int
-rm(path)
-     register char *path;
-{
-    register char *endp;
-    register struct dirent *de;
-    register DIR *dp;
-    struct stat stb;
-
-    if (lstat(path, &stb) < 0) {
-       /* message("lstat %s; %m",path); */
-       return;
-    }
-#ifdef KFLAG
-    if (opt_kflag && (stb.st_mode & 0222) == 0) {
-       loudonly_message("INHIBIT %s removal", path);
-       return;
-    }
-#endif /* KFLAG */
-    if ((stb.st_mode & S_IFMT) != S_IFDIR) {
-       loudonly_message("rm %s", path);
-       if (!opt_lazy && unlink(path) < 0) {
-           message("unlink %s; %m", path);
-           return;
-       }
-       return;
-    }
-    endp = path + strlen(path);
-    if ((dp = opendir(path)) == 0) {
-       message("opendir %s; %m", path);
-       return;
-    }
-    *endp++ = '/';
-    while ((de = readdir(dp)) != 0) {
-       if (de->d_name[0] == '.') {
-           if (de->d_name[1] == 0)
-               continue;
-           if (de->d_name[1] == '.' && de->d_name[2] == 0)
-               continue;
-       }
-       (void)strcpy(endp, de->d_name);
-       (void)rm(path);
-    }
-    *--endp = 0;
-    (void)closedir(dp);
-    loudonly_message("rmdir %s", path);
-    if (!opt_lazy && rmdir(path) < 0) {
-       message("rmdir %s; %m", path);
-       return;
-    }
-    return;
-}
-
-
-
-int
-cp(from, to)
-     register char *from;
-     register char *to;
-{
-    register int ffd, tfd, cc;
-    char buffer[8192];
-
-    loudonly_message("cp %s %s", from, to);
-    if (opt_lazy)
-       return 0;
-    if ((ffd = open(from, O_RDONLY)) < 0) {
-       message("open %s; %m", from);
-       return -1;
-    }
-    if ((tfd = open(to, O_WRONLY | O_CREAT | O_TRUNC, 0666)) < 0) {
-       message("open %s; %m", to);
-       (void)close(ffd);
-       return -1;
-    }
-    for (;;) {
-       if ((cc = read(ffd, buffer, sizeof(buffer))) < 0) {
-           message("read %s; %m", from);
-           (void)close(ffd);
-           (void)close(tfd);
-           return -1;
-       }
-       if (cc == 0)
-           break;
-       if (cc != write(tfd, buffer, cc)) {
-           message("write %s; %m", to);
-           (void)close(ffd);
-           (void)close(tfd);
-           return -1;
-       }
-    }
-    if (close(ffd) < 0) {
-       message("close %s; %m", from);
-       (void)close(tfd);
-       return -1;
-    }
-    if (close(tfd) < 0) {
-       message("close %s; %m", to);
-       return -1;
-    }
-    return 0;
-}
-
-
-int
-ln(from, to)
-     register char *from;
-     register char *to;
-{
-    loudonly_message("ln %s %s", from, to);
-    if (!opt_lazy && link(from, to) < 0) {
-       message("ln %s %s; %m", from, to);
-       return -1;
-    }
-    return 0;
-}
-
-
-
-
-int
-mklostfound(path)
-     register char *path;
-{
-    register char *u, *l, *endp;
-    register int f;
-    struct stat stb;
-
-    loudonly_message("mklost+found %s", path);
-    if (opt_lazy)
-       return 0;
-    endp = path + strlen(path);
-    *endp++ = '/';
-    endp[2] = 0;
-    for (u = "0123456789abcdef"; *u; u++) {
-       for (l = "0123456789abcdef"; *l; l++) {
-           endp[0] = *u;
-           endp[1] = *l;
-           f = open(path, O_CREAT | O_TRUNC | O_WRONLY, 0666);
-           if (f < 0) {
-               message("open %s; %m", path);
-               continue;
-           }
-           (void)close(f);
-       }
-    }
-    for (u = "0123456789abcdef"; *u; u++) {
-       for (l = "0123456789abcdef"; *l; l++) {
-           endp[0] = *u;
-           endp[1] = *l;
-           if (lstat(path, &stb) >= 0)
-               if ((stb.st_mode & S_IFMT) != S_IFDIR)
-                   if (unlink(path) < 0)
-                       message("unlink %s; %m", path);
-       }
-    }
-    *--endp = 0;
-    return 0;
-}
diff --git a/src/package/globals.h b/src/package/globals.h
deleted file mode 100644 (file)
index 8b985ce..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*------------------------------------------------------------------------
- * globals.h
- *
- * Description:
- *     Various global definitions for the package AFS workstation
- *     configuration tool.
- *
- *------------------------------------------------------------------------*/
-
-#define        TRUE    1
-#define        FALSE   0
-
-#define        ERR_OUTOFMEMORY -1
-#define        ERR_FOPENFAILED -2
-
-#ifdef DEBUG
-#define        dbgprint(x)   {fprintf x ; fflush(stderr);}
-#else
-#define        dbgprint(x)
-#endif /* DEBUG */
-
-char *emalloc();
-char *ecalloc();
-
-FILE *efopen();
diff --git a/src/package/globfuncs.c b/src/package/globfuncs.c
deleted file mode 100644 (file)
index b53963f..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*------------------------------------------------------------------------
- * globfuncs.c
- *
- * Description:
- *     Generically useful functions for package, the AFS workstation
- *     configuration tool.
- *
- *------------------------------------------------------------------------*/
-
-#include <stdio.h>
-#include "globals.h"
-
-/*------------------------------------------------------------------------
- * emalloc
- *
- * Description:
- *     Malloc with error checking.
- *
- * Arguments:
- *     unsigned size : Number of bytes to allocate.
- *
- * Returns:
- *     Ptr to new space if successful, 
- *     Exit from package on failure.
- *
- * Environment:
- *     Nothing interesting.
- *
- * Side Effects:
- *     As described; may exit from package.
- *------------------------------------------------------------------------*/
-
-char *
-emalloc(unsigned int size)
-{                              /*emalloc */
-
-    char *malloc();
-    char *ptr;
-
-    if ((ptr = malloc(size)) == NULL) {
-       fprintf(stderr,
-               "Error: Out of memory; malloc() failed allocating %d bytes\n",
-               size);
-       exit(ERR_OUTOFMEMORY);
-    } else
-       return (ptr);
-}                              /*emalloc */
-
-/*------------------------------------------------------------------------
- * ecalloc
- *
- * Description:
- *     Calloc() with error checking.
- *
- * Arguments:
- *     unsigned nelem : Number of elements to allocate.
- *     unsigned size  : Number of bytes for each.
- *
- * Returns:
- *     Ptr to new space on success,
- *     Exit from package on failure.
- *
- * Environment:
- *     Nothing interesting.
- *
- * Side Effects:
- *     As described; may exit from package.
- *------------------------------------------------------------------------*/
-
-char *
-ecalloc(unsigned int nelem, unsigned int size)
-{                              /*ecalloc */
-
-    char *calloc();
-    char *ptr;
-
-    if ((ptr = calloc(nelem, size)) == NULL) {
-       fprintf(stderr, "Error: Out of memory; calloc(%d, %d) failed\n",
-               nelem, size);
-       exit(ERR_OUTOFMEMORY);
-    } else
-       return (ptr);
-
-}                              /*ecalloc */
-
-/*------------------------------------------------------------------------
- * efopen
- *
- * Description:
- *     Fopen with error checking.
- *
- * Arguments:
- *     char *filename  : Name of file to open.
- *     char *type      : Open mode.
- *
- * Returns:
- *     Ptr to file descriptor on success,
- *     Exit from package on failure.
- *
- * Environment:
- *     Nothign interesting.
- *
- * Side Effects:
- *     As described; may exit from package.
- *------------------------------------------------------------------------*/
-
-FILE *
-efopen(char *filename, char *type)
-{                              /*efopen */
-
-    FILE *f;
-
-    if ((f = fopen(filename, type)) == NULL) {
-       fprintf(stderr, "Error: Couldn't open file; fopen(%s, %s) failed\n",
-               filename, type);
-       exit(ERR_FOPENFAILED);
-    } else
-       return (f);
-
-}                              /*efopen */
diff --git a/src/package/gram.y b/src/package/gram.y
deleted file mode 100644 (file)
index 018c749..0000000
+++ /dev/null
@@ -1,385 +0,0 @@
-%{
-
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- *
- * gram.y:
- *     Grammar defining the set of things recognized by package,
- *     the AFS workstation configuration facility.
- */
-
-#include <afs/param.h>
-#include <sys/param.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#if defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV)
-#include <sys/mkdev.h>
-#endif
-#ifdef AFS_LINUX20_ENV
-#include <sys/sysmacros.h>
-#endif
-#include "globals.h"
-#include "package.h"
-
-char *emalloc();
-
-#if defined(AFS_AIX41_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_FBSD_ENV)
-int test_linecounter;  /*Line number currently being parsed*/
-char *ch2str();
-char *appendchtostr();
-#endif /* AFS_AIX41_ENV */
-
-
-
-%}
-
-%union
-{
-  afs_uint32    usval;
-  int           ival;
-  char          chval;
-  char         *strval;
-  PROTOTYPE     protoval;
-  OWNER                 ownval;
-  MODE          modeval;
-}
-
-%token WHITESPACE
-%token COMMENT
-%token NEWLINE
-%token BLANKLINE
-%token REGTYPE
-%token DIRTYPE
-%token LNKTYPE
-%token BLKTYPE
-%token CHRTYPE
-%token SOCKTYPE
-%token PIPETYPE
-%token <chval> LETTER
-%token <strval> PATHNAME
-%token <usval> DIGIT
-%type <ival> input
-%type <ival> entry
-%type <usval> filetype
-%type <usval> devicetype
-%type <usval> updatespecs
-%type <usval> updateflag
-%type <strval> filename
-%type <protoval> devprototype
-%type <protoval> fileprototype
-%type <ival> devmajor
-%type <ival> devminor
-%type <usval> number
-%type <ownval> ownershipinfo
-%type <strval> username
-%type <strval> groupname
-%type <strval> name
-%type <modeval> mode
-%type <usval> octalnumber
-
-
-%%     /* rules */
-
-input  :       /* empty */
-                       { $$ = InitializeConfigTree();
-                         test_linecounter = 1; }
-       |       input entry
-                       { $$ = ($1 == 0)? $2 : $1; }
-       ;
-
-entry  :       COMMENT NEWLINE
-                       { $$ = 0; test_linecounter++; }
-       |       BLANKLINE
-                       { $$ = 0; test_linecounter++; }
-       |       devicetype      /*Specifies type of device to be updated
-                                 - block, char, etc*/
-               updatespecs     /*Specifies actions during update, if
-                                 necessary*/
-               filename        /*Name of device being updated*/
-               devprototype    /*Device numbers for device being updated*/
-               ownershipinfo   /*Ownership info for device being updated*/
-               mode            /*Protection bits for file being updated*/
-               NEWLINE
-                       {
-                         $$ = AddEntry($1, $2, $3, $4, $5, $6);
-                         /*Args -
-                            filetype,
-                            updatespecs,
-                            filename,
-                            devprototype,
-                            ownershipinfo,
-                            mode */
-                         ReleaseEntry($3, $4, $5);
-                         test_linecounter++;
-                       }
-
-       |       filetype        /*Specifies type of file to be updated;
-                                 e.g., regular file, directory, special
-                                 file*/
-               updatespecs     /*Specifies actions during update, if
-                                 necessary*/
-               filename        /*Name of file being updated*/
-               fileprototype   /*Prototype for file being updated, if
-                                 necessary - e.g., directory prefix,
-                                 master copy, device numbers, etc.*/
-               ownershipinfo   /*Ownership info for file being updated;
-                                 should default to info from prototype*/
-               mode            /*Protection bits for file being updated;
-                                 should default to info from prototype*/
-               NEWLINE
-                       {
-                         $$ = AddEntry($1, $2, $3, $4, $5, $6);
-                         /*Args -
-                           filetype,
-                           updatespecs,
-                           filename,
-                           fileprototype,
-                           ownershipinfo,
-                           mode*/
-                         ReleaseEntry($3, $4, $5);
-                         test_linecounter++;
-                       }
-       ;
-
-devicetype:    BLKTYPE         /*Block device*/
-                       { $$ = S_IFBLK; }
-       |       CHRTYPE         /*Character device*/
-                       { $$ = S_IFCHR; }
-       |       PIPETYPE        /*Named pipe*/
-                       {
-#ifdef S_IFIFO
-                         $$ = S_IFIFO;
-#endif /* S_IFIFO */
-                       }
-       ;
-
-filetype:      REGTYPE         /*Regular file*/
-                       { $$ = S_IFREG; }
-       |       DIRTYPE         /*Directory*/
-                       { $$ = S_IFDIR; }
-       |       LNKTYPE         /*Symbolic link*/
-                       { $$ =S_IFLNK ; }
-       |       SOCKTYPE
-                       {
-#ifndef AFS_AIX_ENV
-                         $$ = S_IFSOCK;
-#endif /* AFS_AIX_ENV */
-                       }
-       ;
-
-
-updatespecs :  /*empty */
-                       { $$ = 0; }
-       |       /*empty */ WHITESPACE
-                       { $$ = 0; }
-       |       updatespecs updateflag
-                       { $$ = $1 | $2; }
-       |       updatespecs updateflag WHITESPACE
-                       { $$ = $1 | $2; }
-       ;
-
-/*
- * Throw this out later.
- */
-updateflag:    LETTER
-                       {
-                         switch(yylval.chval)
-                           {
-                             case 'X':
-                               /*Make this a lost+found directory*/
-                               $$ = U_LOSTFOUND;       
-                               break;
-
-                             case 'R':
-                               /*Extra unconfigured files to be removed*/
-                               $$ = U_RMEXTRA; 
-                               break;
-
-                             case 'I':
-                               /*Update only if file not present*/
-                               $$ = U_NOOVERWRITE;
-                               break;
-
-                             case 'O':
-                               /*Rename old copy with a suffix of .old*/
-                               $$ = U_RENAMEOLD;
-                               break;
-
-                             case 'A':
-                               /*Prototype specifies an absolute path
-                                 rather than the prefix*/
-                               $$ = U_ABSPATH;
-                               break;
-
-                             case 'Q':
-                               /*Exit with status=4 if file is updated,
-                                indicating that a reboot is needed*/
-                               $$ = U_REBOOT;
-                               break;
-                           }
-                       }
-       ;
-
-filename       :       PATHNAME        /*Pathname of the file to be
-                                         updated; may not have white-
-                                         space if at eol*/
-                       { $$ = $1; }
-       |       PATHNAME WHITESPACE     /*Pathname of the file to be
-                                         updated*/
-                       { $$ = $1; }
-       ;
-
-fileprototype: /* empty */
-                       { $$.flag = P_NONE; }
-       |       filename        /*Pathname of prototype file or directory
-                                 prefix*/
-                       { $$.flag = P_FILE; $$.info.path = $1; }
-       ;
-
-devprototype:  devmajor WHITESPACE devminor    /*Major & minor device
-                                                 numbers*/
-                       { $$.flag = P_DEV; $$.info.rdev = makedev($1, $3); }
-       ;
-
-devmajor       :       number
-                       {
-                         $$ = $1;
-                       }
-       ;
-
-devminor       :       name
-                       {
-                         $$ = strtol($1,0,0);
-                       }
-       |       name WHITESPACE
-                       {
-                         $$ = strtol($1,0,0);
-                       }
-       ;
-
-number :       DIGIT
-                       { $$ = $1;
-                         dbgprint((stderr, "digit %u\n", $$));
-                       }
-       |       number DIGIT
-                       { $$ = 10 * $1 + $2;
-                         dbgprint((stderr, "10 * %u + %u = %u\n", $1,$2,$$));
-                       }
-       ;
-
-ownershipinfo: /* empty */
-                       { $$.username = NULL; $$.groupname = NULL; }
-       |       username groupname
-                       { $$.username = $1; $$.groupname = $2; }
-       ;
-
-username:      name
-                       { $$ = $1; }
-       |       name WHITESPACE
-                       { $$ = $1; }
-       ;
-
-groupname:     /* empty */
-                       {$$ = NULL; }
-       |       name
-                       { $$ = $1; }
-       |       name WHITESPACE
-                       { $$ = $1; }
-       ;
-
-name   :       LETTER
-                       { $$ = ch2str(yylval.chval);  }
-       |       DIGIT
-                       { $$ = ch2str('0'+$1);  }
-       |       name LETTER
-                       { $$ = appendchtostr($1, $2);  }
-       |       name DIGIT
-                       { $$ = appendchtostr($1, '0'+$2);  }
-       ;
-
-
-mode   :       /* empty */
-                       { $$.inherit_flag = TRUE; }
-       |       COMMENT
-                       { $$.inherit_flag = TRUE; }
-       |       octalnumber     /*Last field of entry, may not have
-                                 anything before newline*/
-                       { $$.inherit_flag = FALSE; $$.modeval = (afs_uint32)$1; }
-       |       octalnumber WHITESPACE  /*Last field of entry, but may have
-                                         some whitespace before newline*/
-                       { $$.inherit_flag = FALSE; $$.modeval = (afs_uint32)$1; }
-       |       octalnumber COMMENT     /*Last field of entry, but may have
-                                         a comment before newline*/
-                       { $$.inherit_flag = FALSE; $$.modeval = (afs_uint32)$1; }
-       |       octalnumber WHITESPACE COMMENT  /*Last field of entry, but
-                                                 may have some whitespace
-                                                 and a comment before the
-                                                 newline*/
-                       { $$.inherit_flag = FALSE; $$.modeval = (afs_uint32)$1; }
-       ;
-
-octalnumber:   DIGIT
-                       { $$ = $1;
-                         dbgprint((stderr, "digit %u\n", $$));
-                       }
-       |       octalnumber DIGIT
-                       { $$ = 8 * $1 + $2;
-                         dbgprint((stderr, "8 * %u + %u = %u\n", $1,$2, $$));
-                       }
-       ;
-
-
-%%
-
-#ifndef AFS_AIX41_ENV
-int test_linecounter;  /*Line number currently being parsed*/
-#endif /* !AFS_AIX41_ENV */
-
-char *ch2str(c)
-    char c;
-/*
- * Returns the pointer to a string consisting of the character c
- * terminated by \0
- */
-{
-  char *s;
-  s = (char *)emalloc(2);
-  sprintf(s, "%c", c);
-  return(s);
-}
-
-char *appendchtostr(s, c)
-    char c, *s;
-/*
- * Returns the pointer to a NULL-terminated string containing the
- * character c appended to the contents of the string s
- */
-{
-    char *str;
-    str = (char *)emalloc((unsigned)(strlen(s) + 2));
-    sprintf(str, "%s%c", s, c);
-    free(s);
-    return(str);
-}
-
-ReleaseEntry(f, p, o)
-    char *f;
-    PROTOTYPE p;
-    OWNER o;
-/*
- * Release storage allocated for various data structures during the
- * parsing of an entry.
- */
-{
-    if (f != NULL) free(f);
-    if ((p.flag == P_FILE) && (p.info.path != NULL)) free(p.info.path);
-    if (o.username != NULL) free(o.username);
-    if (o.groupname != NULL) free(o.groupname);
-}
-
diff --git a/src/package/lex.l b/src/package/lex.l
deleted file mode 100644 (file)
index 388aeac..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-%{
-
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- *
- * lex.l:
- *     Lexical definitions recognized by package, the AFS
- *     workstation configuration facility.
- */
-
-#include <afsconfig.h>
-#include <afs/param.h>
-
-RCSID("$Header$");
-
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include "globals.h"
-#include "package.h"
-
-#include "y.tab.h"
-
-char *stash();
-char *emalloc();
-
-%}
-
-/* definitions */
-COM    #[^\n]*
-W      [ \t]
-D      [0-9]
-L      [A-Za-z]
-P      ("./"|"../"|"/")[^ \t\n#=\^\|\(\)\{\};]+
-%%
-
-{W}*{COM}      { dbgprint((stderr, "COMMENT\n"));
-                return(COMMENT); }
-
-^{W}*\n                { dbgprint((stderr, "BLANKLINE\n"));
-                return(BLANKLINE); }
-
-{W}+           { dbgprint((stderr, "WHITESPACE\n"));
-                return(WHITESPACE); }
-
-^{W}*{L}               {
-                 dbgprint((stderr, "FILETYPE %c\n", yytext[0]));
-                 switch(yytext[0])
-                   {
-                     case 'F' :
-                       return(REGTYPE);        /* regular file */
-                       break;
-                     case 'D' :
-                       return(DIRTYPE);        /* directory */
-                       break;
-                     case 'L' :
-                       return(LNKTYPE);        /* symbolic link */
-                       break;
-                     case 'B' :
-                       return(BLKTYPE);        /* block device */
-                       break;
-                     case 'C' :
-                       return(CHRTYPE);        /* character device */
-                       break;
-                     case 'S' :
-                       return(SOCKTYPE);       /* socket */
-                       break;
-                     case 'P' :
-                       return(PIPETYPE);       /* named pipe */
-                       break;
-                   }
-               }
-
-{L}            { dbgprint((stderr, "LETTER %c\n", yytext[0]));
-                yylval.chval = yytext[0]; return(LETTER); }
-
-{P}            { dbgprint((stderr, "PATHNAME %s\n", yytext));
-                yylval.strval = stash(yytext); return(PATHNAME); }
-
-\/             { dbgprint((stderr, "PATHNAME %s\n", yytext));
-                yylval.strval = stash(yytext); return(PATHNAME); }
-
-{D}            { dbgprint((stderr, "DIGIT %c\n", yytext[0]));
-                yylval.usval = (u_short)(yytext[0] - '0'); return(DIGIT); }
-
-\n             { dbgprint((stderr, "NEWLINE\n"));
-                return(NEWLINE);}
-
-%%
-
-char *stash(s)
-char *s;
-/*
- * Save string away in memory and return a pointer to it.  If
- * no space could be found, quit with a fatal error.
- */
-{
-    char *strcpy();
-    char *ptr;
-
-    ptr = emalloc((unsigned)(strlen(s) + 1));
-    return(strcpy(ptr, s));
-}
diff --git a/src/package/makepkgfiles b/src/package/makepkgfiles
deleted file mode 100644 (file)
index 986f266..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/csh -f
-#
-# Make all the package files.
-#
-# Arguments:
-#      Pathname prefix for the wsadmin directory
-#
-
-echo ">> Remembering current directory"
-set currdir = `pwd`
-echo ">>       [$currdir]"
-set wsadmin = $1
-echo ">> Creating all package files for ${wsadmin}"
-echo ">> cd ${wsadmin}/lib"
-cd ${wsadmin}/lib
-echo ">> rcsupdate"
-rcsupdate
-echo ">> cd ${wsadmin}/src"
-cd ${wsadmin}/src
-echo ">> rcsupdate"
-rcsupdate
-echo ">> Running make system wsadmin=${wsadmin}..."
-make system wsadmin=${wsadmin}
-echo ">> Returning to original directory, $currdir"
-cd $currdir
diff --git a/src/package/messages.c b/src/package/messages.c
deleted file mode 100644 (file)
index 6da38f4..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*------------------------------------------------------------------------
- * messages.c
- *
- * Description:
- *     Getting messages printed to the outside world.
- *
- *------------------------------------------------------------------------*/
-
-#ifdef lint
-/* VARARGS1 */ fatal(cp)
-     char *
-        cp;
- /*ARGSUSED*/
-{
-}
-
-/* VARARGS1 */ message(cp)
-     char *
-        cp;
- /*ARGSUSED*/
-{
-}
-
-/* VARARGS1 */ loudonly_message(cp)
-     char *
-        cp;
- /*ARGSUSED*/
-{
-}
-
-/* VARARGS1 */ verbose_message(cp)
-     char *
-        cp;
- /*ARGSUSED*/
-{
-}
-#else /* lint */
-
-#include <afs/param.h>
-#include <sys/types.h>
-#ifdef AFS_SUN5_ENV
-/* XXX Hack for the va_arg decl below XXX */
-#define lint
-#endif
-#include <varargs.h>
-#include "package.h"
-#include <errno.h>
-
-
-static char *
-putnum(register char *dp, register unsigned n, register int b)
-{                              /*putnum */
-    register int s;
-
-    for (s = b; n / s; s *= b)
-       continue;
-    s /= b;
-    while (s > 0) {
-       *dp++ = '0' + (n / s);
-       n %= s;
-       s /= b;
-    }
-
-    return (dp);
-
-}                              /*putnum */
-
-static char *
-putstr(register char *dp, register char *s)
-{                              /*putstr */
-
-    while (*s)
-       *dp++ = *s++;
-
-    return (dp);
-
-}                              /*putstr */
-
-static char *
-putformat(register char *dp, register char *fp, register va_list ap)
-{                              /*putformat */
-
-    while (*fp) {
-       if (*fp == '%') {
-           switch (*++fp) {
-           case 'c':
-               {
-                   char c;
-
-                   c = va_arg(ap, int);
-                   *dp++ = c;
-                   fp++;
-                   break;
-               }
-           case 'd':
-               {
-                   int d;
-
-                   d = va_arg(ap, int);
-                   if (d < 0) {
-                       *dp++ = '-';
-                       d = -d;
-                   }
-                   dp = putnum(dp, (unsigned)d, 10);
-                   fp++;
-                   break;
-               }
-           case 'm':
-               {
-                   extern int sys_nerr;
-                   extern char *sys_errlist[];
-
-                   if (errno >= 0 && errno < sys_nerr)
-                       dp = putstr(dp, sys_errlist[errno]);
-                   else {
-                       dp = putstr(dp, "Unknown error (errorno =");
-                       dp = putnum(dp, (unsigned)errno, 10);
-                       dp = putstr(dp, ")");
-                   }
-                   fp++;
-                   break;
-               }
-           case 'o':
-               {
-                   unsigned o;
-
-                   o = va_arg(ap, int);
-                   dp = putnum(dp, o, 8);
-                   fp++;
-                   break;
-               }
-           case 's':
-               {
-                   char *s;
-
-                   s = va_arg(ap, char *);
-                   dp = putstr(dp, s);
-                   fp++;
-                   break;
-               }
-           case 'u':
-               {
-                   unsigned u;
-
-                   u = va_arg(ap, int);
-                   dp = putnum(dp, u, 10);
-                   fp++;
-                   break;
-               }
-           case 'x':
-               {
-                   unsigned x;
-
-                   x = va_arg(ap, int);
-                   dp = putnum(dp, x, 16);
-                   fp++;
-                   break;
-               }
-           }
-           continue;
-       }
-       if (*fp == '\\') {
-           switch (*++fp) {
-           case '\\':
-               *dp++ = '\\';
-               fp++;
-               break;
-
-           case 'f':
-               *dp++ = '\f';
-               fp++;
-               break;
-
-           case 'n':
-               *dp++ = '\n';
-               fp++;
-               break;
-
-           case 'r':
-               *dp++ = '\r';
-               fp++;
-               break;
-
-           case 't':
-               *dp++ = '\t';
-               fp++;
-               break;
-
-           }
-           continue;
-       }
-       *dp++ = *fp++;
-    }
-
-    return (dp);
-
-}                              /*putformat */
-
-#define        maxline 256
-
-fatal(va_alist)
-     va_dcl
-{                              /*fatal */
-
-    va_list ap;
-    char *dp, *fp;
-    char line[maxline];
-
-    va_start(ap);
-    fp = va_arg(ap, char *);
-    dp = putformat(line, fp, ap);
-    *dp++ = '\n';
-    (void)write(2, line, dp - line);
-    exit(status_error);
-
-}                              /*fatal */
-
-message(va_alist)
-     va_dcl
-{                              /*message */
-
-    va_list ap;
-    char *dp, *fp;
-    char line[maxline];
-
-    va_start(ap);
-    fp = va_arg(ap, char *);
-    dp = putformat(line, fp, ap);
-    *dp++ = '\n';
-    (void)write(1, line, dp - line);
-
-}                              /*message */
-
-loudonly_message(va_alist)
-     va_dcl
-{                              /*loudonly_message */
-
-    va_list ap;
-    char *dp, *fp;
-    char line[maxline];
-
-    if (!opt_silent) {
-       va_start(ap);
-       fp = va_arg(ap, char *);
-       dp = putformat(line, fp, ap);
-       *dp++ = '\n';
-       (void)write(1, line, dp - line);
-    }
-
-}                              /*loudonly_message */
-
-verbose_message(va_alist)
-     va_dcl
-{                              /*verbose_message */
-
-    va_list ap;
-    char *dp, *fp;
-    char line[maxline];
-
-    if (opt_verbose) {
-       va_start(ap);
-       fp = va_arg(ap, char *);
-       dp = putformat(line, fp, ap);
-       *dp++ = '\n';
-       (void)write(1, line, dp - line);
-    }
-
-}                              /*verbose_message */
-
-debug_message(va_alist)
-     va_dcl
-{                              /*debug_message */
-
-    va_list ap;
-    char *dp, *fp;
-    char line[maxline];
-
-    if (opt_debug) {
-       va_start(ap);
-       fp = va_arg(ap, char *);
-       dp = putformat(line, fp, ap);
-       *dp++ = '\n';
-       (void)write(1, line, dp - line);
-    }
-
-}                              /*debug_message */
-
-#endif /* lint */
diff --git a/src/package/misc.c b/src/package/misc.c
deleted file mode 100644 (file)
index 8ed56d7..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#include <afs/param.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include "globals.h"
-#include "package.h"
-
-char *emalloc();
-
-
-yyerror()
-{
-}
-
-yywrap()
-{
-    return 1;
-}
-
-void 
-sprint(char *s)
-{
-    printf("sprint - %s", s);
-}
-
-void 
-allprint(int i)
-{
-    printf("allprint - %d\n", i);
-}
diff --git a/src/package/package.8 b/src/package/package.8
deleted file mode 100644 (file)
index 147be2f..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-.TH PACKAGE 1 "26 August 1986"
-.UC 4
-.SH NAME
-package \- maintain local disk configuration
-.SH SYNOPSIS
-.B /etc/package
-[
-.B \-vnsky
-]
-[
-.B \-c conf
-]
-.SH DESCRIPTION
-.I Package
-maintains files and directories on a machine's local disk
-as specified in a configuration file. Each machine using
-.I package
-is assumes to have access to a distributed filesystem such as
-.I "Vice II"
-from which master copies of files may be fetched.
-.I Package
-uses file modification times to determine when a file is current or not.
-.PP
-The format of the configuration file is the following:
-.PP
-type file [proto] [username[groupname]] [mode]
-.PP
-The type field specifies one of B, C, D, F, L, S standing for
-block special device, charactor special device, directory, regular file,
-symbolic link, and socket respectively. Directory type specifications may also
-have a following X to specify a lost+found directory or an R to specify
-that any extra files not configured in that directory are to be
-removed. (Use this
-option carefully.) Similarly the regular file specification may have a
-following I to specify that this file is only to be copied into place if
-the file is not present, likewise a following O specifies that when a file is
-updated the old copy should be renamed with a suffix of .old.
-.PP
-The file field specifies an absolute path of the local file.
-.PP
-The proto field specifies a major and minor device number when used in
-a block or charactor special device entry or the prefix to used to name
-the master file (or real file in the case of a symbolic link.)
-If the letter A is appended to update mode then the proto field specifies
-and absolute path and does not have the file appended to it to form the path.
-If the letter Q is appended to update mode then when this file is update
-.I package
-will exit with the status of 4. (This only works for file modes.)
-.PP
-The username, groupname, and mode are all optional and when not specified
-the permissions of the master file are used.
-.PP
-Normally the configuration file is named
-.I
-/etc/package.SYS
-where ``SYS'' reflects the actual system type of the machine,
-as defined by the
-.I /usr/andrew/bin/sys
-program.
-Other configuration files may be specified by the
-.I c
-flag.
-However, the actual system type will be supplied by
-.I package
-and must not be give in the name.
-.PP
-Normally
-.I package
-prints out what is is doing, unless the
-.I s
-flag is given.
-The
-.I v
-flag increases the level of verbosity of the output.
-.PP
-The
-.I n
-flag is used to tell
-.I package
-not to do any actual work but instead just tell what it would do. (This
-is useful in debugging configuration files.)
-.PP
-By default, package will not update a file if it exists and
-none of the write bits are set.  The
-.I y
-flag enables updating of these files.
-The
-.I k
-prohibits updating of these files, and is present for compatibility.
-.SH FILES
-.br
-/etc/package.SYS - default package configuration file
diff --git a/src/package/package.c b/src/package/package.c
deleted file mode 100644 (file)
index 98629bd..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*------------------------------------------------------------------------
- * package.c
- *
- * Description:
- *     AFS workstation configuration tool.
- *
- *------------------------------------------------------------------------*/
-#include <afs/param.h>
-#include <stdio.h>             /*I/O stuff */
-#ifdef AFS_AIX32_ENV
-#include <signal.h>
-#endif
-#include <sys/types.h>         /*Low-level type definitions */
-#include <sys/stat.h>          /*Stat buffer defs */
-#include <sys/param.h>         /*Machine-type dependent params */
-#if    defined(AFS_SUN_ENV)
-#include <sys/ioccom.h>                /* for _IOW macro */
-#endif
-#include <afs/com_err.h>       /*Error compiler package */
-#include <afs/cmd.h>           /*Command interpretation library */
-
-#include <netinet/in.h>
-#include <afs/vice.h>
-#include <afs/venus.h>
-
-#include "globals.h"           /*Our own set of global defs */
-#include "package.h"           /*Generally-used definitions */
-#include "systype.h"           /*Systype string */
-
-/*
- * Command line parameter indices.
- */
-#define P_CONFIG       0
-#define P_FULLCONFIG   1
-#define P_OVERWRITE    2
-#define P_NOACTION     3
-#define P_VERBOSE      4
-#define P_SILENT       5
-#define P_REBOOTFILES  6
-#define P_DEBUG                7
-
-extern int test_linecounter;   /*Line number currently being parsed */
-char *emalloc();
-int check();
-int update();
-
-/*
- * Set up default configuration: Perform all actions, moderate output
- * level, handle files causing reboot, don't overwrite protected files,
- * and turn debugging output off.
- */
-int status = status_noerror;   /*Start off with no errors */
-
-int opt_lazy = FALSE;          /*Perform all actions */
-int opt_silent = FALSE;                /*Don't be overly silent */
-int opt_verbose = FALSE;       /*Don't be overly verbose */
-int opt_stdin = FALSE;         /*Read configuration from stdin */
-int opt_reboot = TRUE;         /*Update boot-critical files (e.g., vmunix) */
-#ifdef KFLAG
-int opt_kflag = TRUE;          /*Why was this KFLAG stuff ifdefed? */
-#endif /* KFLAG */
-int opt_debug = FALSE;         /*Turn off debugging output */
-
-CTREEPTR config_root;          /*Top of the config tree */
-
-char *conffile = "/etc/package";       /*Base configuration file */
-char filename[MAXPATHLEN];     /*Chosen configuration file name */
-
-/*------------------------------------------------------------------------
- * PRIVATE packageExecute
- *
- * Description:
- *     Actually perform that for which the program was invoked,
- *     namely bringing the machine's local disk into agreement
- *     with the given goal.
- *
- * Arguments:
- *     None.
- *
- * Returns:
- *     Nothing.
- *
- * Environment:
- *     Everything we need to know is in globals.
- *
- * Side Effects:
- *     As described.
- *------------------------------------------------------------------------*/
-
-static void
-packageExecute()
-{                              /*packageExecute */
-
-    FILE *fp;                  /*Descriptor for configuration filename */
-    int code;                  /*Return value from functions */
-    static char parse_err[80]; /*Parsing error string */
-
-    /*
-     * If we're getting our configuration info from stdin, go straight
-     * for it.  Otherwise, open the config file, build the tree, and
-     * then close the config file.
-     */
-    if (opt_stdin) {
-       code = BuildConfigTree(stdin);
-       if (code) {
-           sprintf(parse_err,
-                   "** Lexical error in configuration file, line %d",
-                   test_linecounter);
-           fatal(parse_err);
-       }
-    } else {
-       verbose_message("Loading configuration file '%s'", filename);
-       fp = efopen(filename, "r");
-       verbose_message("Building configuration tree");
-       code = BuildConfigTree(fp);
-       if (code) {
-           sprintf(parse_err,
-                   "** Lexical error in configuration file, line %d",
-                   test_linecounter);
-           fatal(parse_err);
-       }
-       (void)fclose(fp);
-    }
-
-    /*
-     * Now that the configuration tree is built, ``apply'' the check
-     * function on that tree.
-     */
-    verbose_message("Checking integrity of configuration tree");
-    ApplyConfigTree(check);
-
-    /*
-     * The config tree seems fine, so ``apply'' the update function
-     * on the tree.
-     */
-    verbose_message("Updating local disk to match configuration tree");
-    ApplyConfigTree(update);
-
-    loudonly_message("Sync");
-    if (!opt_lazy && (sync() < 0))
-       message("Sync; %m");
-
-    /*
-     * We're all done!  Print out a parting message (if we've been asked
-     * to be verbose) and return to our caller.  The overall status has
-     * been recorded in the global status variable.
-     */
-    verbose_message("Done");
-
-}                              /*packageExecute */
-
-#define MAXSIZE 2048
-struct output {
-    afs_int32 found;
-    char name[MAXSIZE];
-} sysoutput;
-
-char *
-getsystype()
-{
-    afs_int32 code;
-    struct ViceIoctl data;
-
-    data.in = (char *)&sysoutput;
-    data.out = (char *)&sysoutput;
-    data.out_size = MAXSIZE;
-    data.in_size = sizeof(afs_int32);
-
-    code = pioctl(0, VIOC_AFS_SYSNAME, &data, 1);
-    if (!code && sysoutput.found)
-       return (sysoutput.name);
-    return (SYS_NAME);
-}
-
-/*------------------------------------------------------------------------
- * PRIVATE packageInit
- *
- * Description:
- *     Routine called when package is invoked, responsible for basic
- *     initialization, command line parsing, and calling the
- *     routine that does all the work.
- *
- * Arguments:
- *     as      : Command syntax descriptor.
- *     arock   : Associated rock (not used here).
- *
- * Returns:
- *     Zero (but may exit the entire program on error!)
- *
- * Environment:
- *     Puts everything it finds into global variables.
- *
- * Side Effects:
- *     Initializes this program.
- *------------------------------------------------------------------------*/
-
-static int
-packageInit(struct cmd_syndesc *as, char *arock)
-{                              /*packageInit */
-    systype = getsystype();
-
-    /*
-     * Set up the default configuration file to use.
-     */
-    sprintf(filename, "%s.%s", conffile, systype);
-
-    if (as->parms[P_DEBUG].items != 0) {
-       opt_debug = TRUE;
-       debug_message("Debugging output enabled");
-    }
-
-    if (as->parms[P_CONFIG].items != 0) {
-       /*
-        * Pull out the configuration file name, tack on the sysname.
-        */
-       sprintf(filename, "%s.%s", as->parms[P_CONFIG].items->data, systype);
-    }
-
-    if (as->parms[P_FULLCONFIG].items != 0) {
-       /*
-        * Make sure we use only one of -config and -fullconfig.
-        */
-       if (as->parms[P_CONFIG].items != 0) {
-           message
-               ("Can't use the -config and -fullconfig switches together");
-           status = -1;
-           exit(status);
-       }
-
-       /*Switch conflict */
-       /*
-        * If ``stdin'' is the configuration file to use, make sure we
-        * remember that fact.
-        */
-       if (strcmp(as->parms[P_FULLCONFIG].items->data, "stdin") == 0) {
-           opt_stdin = TRUE;
-           filename[0] = '\0';
-       } else
-           sprintf(filename, "%s", as->parms[P_FULLCONFIG].items->data);
-    }
-    /*Full config file name given */
-    if (as->parms[P_OVERWRITE].items != 0)
-       opt_kflag = FALSE;
-    else
-       opt_kflag = TRUE;
-
-    if (as->parms[P_NOACTION].items != 0)
-       opt_lazy = TRUE;
-
-    if (as->parms[P_VERBOSE].items != 0)
-       opt_verbose = TRUE;
-
-    if (as->parms[P_SILENT].items != 0) {
-       if (opt_verbose) {
-           message("Can't use the -silent and -verbose flags together");
-           status = -1;
-           exit(status);
-       } else
-           opt_silent = TRUE;
-    }
-
-    if (as->parms[P_REBOOTFILES].items != 0)
-       opt_reboot = FALSE;
-
-    /*
-     * Now that we've finished parsing, execute the package function.
-     * This sets the global status variable, so we simply exit with
-     * its value.
-     */
-    packageExecute();
-    exit(status);
-
-}                              /*packageInit */
-
-#include "AFS_component_version_number.c"
-
-int
-main(int argc, char **argv)
-{                              /*main */
-
-    register afs_int32 code;   /*Return code */
-    register struct cmd_syndesc *ts;   /*Ptr to cmd line syntax descriptor */
-
-#ifdef AFS_AIX32_ENV
-    /*
-     * The following signal action for AIX is necessary so that in case of a 
-     * crash (i.e. core is generated) we can include the user's data section 
-     * in the core dump. Unfortunately, by default, only a partial core is
-     * generated which, in many cases, isn't too useful.
-     */
-    struct sigaction nsa;
-
-    sigemptyset(&nsa.sa_mask);
-    nsa.sa_handler = SIG_DFL;
-    nsa.sa_flags = SA_FULLDUMP;
-    sigaction(SIGSEGV, &nsa, NULL);
-#endif
-    /*
-     * Set file mode creation mask.
-     */
-    (void)umask(0);
-
-    /*
-     * Set up to parse the command line.
-     */
-    ts = cmd_CreateSyntax("initcmd", packageInit, 0,
-                         "initialize the program");
-    cmd_AddParm(ts, "-config", CMD_SINGLE, CMD_OPTIONAL,
-               "base name of configuration file");
-    cmd_AddParm(ts, "-fullconfig", CMD_SINGLE, CMD_OPTIONAL,
-               "full name of configuration file, or stdin for standard input");
-    cmd_AddParm(ts, "-overwrite", CMD_FLAG, CMD_OPTIONAL,
-               "overwrite write-protected files");
-    cmd_AddParm(ts, "-noaction", CMD_FLAG, CMD_OPTIONAL,
-               "show what would be done, but don't do it");
-    cmd_AddParm(ts, "-verbose", CMD_FLAG, CMD_OPTIONAL,
-               "give more details about what's happening");
-    cmd_AddParm(ts, "-silent", CMD_FLAG, CMD_OPTIONAL, "supress all output");
-    cmd_AddParm(ts, "-rebootfiles", CMD_FLAG, CMD_OPTIONAL,
-               "don't handle boot-critical files");
-    cmd_AddParm(ts, "-debug", CMD_FLAG, CMD_OPTIONAL,
-               "enable debugging input");
-
-    /*
-     * Set up the appropriate error tables.
-     */
-    initialize_CMD_error_table();
-
-    /*
-     * Parse command line switches & execute the command, then get the
-     * heck out of here.
-     */
-    code = cmd_Dispatch(argc, argv);
-    if (code) {
-       com_err(argv[0], code, "while dispatching command line");
-       exit(-1);
-    }
-
-}                              /*main */
diff --git a/src/package/package.h b/src/package/package.h
deleted file mode 100644 (file)
index 9209837..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*------------------------------------------------------------------------
- * package.h
- *
- * Description:
- *     Definitions for package, the AFS workstation configuration
- *     facility.
- *
- *------------------------------------------------------------------------*/
-
-#include <utmp.h>
-#include <sys/types.h>
-
-/*
- * Flags specifying update actions
- */
-#define        U_LOSTFOUND     0001
-#define        U_RMEXTRA       0002
-#define        U_NOOVERWRITE   0004
-#define        U_RENAMEOLD     0010
-#define        U_ABSPATH       0020
-#define        U_REBOOT        0040
-
-/*
- * Specification of prototype info
- */
-#define        P_NONE  0
-#define        P_FILE  1
-#define        P_DEV   2
-
-/*
- * Flag for ownership info
- */
-#define        UID_INHERIT 01
-#define        GID_INHERIT 02
-
-/*
- * Lookup modes for the configuration tree
- */
-#define        C_LOCATE    01
-#define        C_CREATE    02
-
-/*
- * Flags for fields of config tree nodes
- */
-#define        F_TYPE  0001
-#define        F_UPDT  0002
-#define        F_PROTO 0004
-#define        F_UID   0010
-#define        F_GID   0020
-#define        F_MODE  0040
-#define        F_MTIME 0100
-
-/*
- * Current operating status
- */
-#define        status_noerror  0
-#define        status_error    2
-#define        status_reboot   4
-
-typedef struct prototype_struct {
-    u_short flag;              /*Union tag, or specifies absence of prototype */
-    union {
-       char *path;             /*Path, dir prefix, or absolute path of prototype */
-       afs_uint32 rdev;        /*Device number */
-    } info;
-} PROTOTYPE;
-
-typedef struct owner_struct {
-    char *username;            /*Associated owner */
-    char *groupname;           /*Associated group */
-} OWNER;
-
-typedef struct mode_struct {
-    u_short inherit_flag;      /*Specifies whether the mode is inherited
-                                * from the prototype or is given by the
-                                * mode field */
-    afs_uint32 modeval;
-} MODE;
-
-typedef struct entry {
-    struct entry *nextp;       /*Ptr to next entry in the same dir */
-    struct node *nodep;                /*Ptr to config tree node w/info on this file */
-    int hash;                  /*Hashed value for quick filename comparison */
-    char *name;                        /*Actual file/directory name */
-} ENTRY, *ENTRYPTR;
-
-typedef struct node {
-    ENTRYPTR entryp;           /*Ptr to child list for this node, if a directory */
-    u_short flag;              /*Keeps track of updates to fields of this node */
-    u_short type;              /*Type of file/directory */
-    u_short updtspec;          /*Update spec */
-    PROTOTYPE proto;           /*Prototype info */
-    short uid;                 /*Ownership info */
-    short gid;                 /*Group info */
-    u_short mode;              /*Mode info */
-    time_t mtime;              /*Last modification time */
-} CTREE, *CTREEPTR;
-
-extern int status;             /*Operating status */
-extern int opt_lazy;           /*Just tell what you would have done, don't do it */
-extern int opt_silent;         /*Don't print any error messages */
-extern int opt_verbose;                /*Be chatty? */
-extern int opt_reboot;         /*Do files that will cause reboot */
-#ifdef KFLAG
-extern int opt_kflag;          /* $$question: why was this ifdefed? */
-#endif /* KFLAG */
-extern int opt_debug;          /*Turn debugging output on */
-
-extern CTREEPTR config_root;   /*Top of the config tree */
diff --git a/src/package/package.help b/src/package/package.help
deleted file mode 100644 (file)
index 7d46f2d..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-\begindata{text, 268611736}
-\textdsversion{11}
-\template{help}
-\define{notetotypesetter
-}
-
-\chapter{Package: Maintain Local Disk Configuration
-}
-\section{What Package is
-}\leftindent{
-Package is a configuration control system for VICE II workstations developed at CMU. It provides simple consistent robust software updating and reconfiguration of workstation local disks based on system description files.  Both the number workstations and configurations is limited only by the needs of a given site. The control of workstation configurations may be distributed or fragmented as needed between a number of adminstrators. 
-}
-\section{Starting Package
-}\leftindent{
-Package is started with the command:
-
-\example{/etc/package [-vnsky] [-c conf[.cputype]]
-}
-where
-
--v     produces "verbose" output, or
--s     suppresses output
-
--n     suppresses actual work, so you can see what would happen without actually doing it
-
--y     enables updating files which have no write bits set
-
--k     (default) suppresses updating files which have no write bits set
-
--c conf[.cputype]
-\leftindent{names the configuration file (default /etc/package); the cputype extension is usually filled in automatically}
-
-}
-\section{Format of Configuration File
-}\leftindent{
-Each line in the configuration file has the format:
-
-\example{type file [proto] [username[groupname]] [mode]}
-
-The type field specifies one of:
-\description{\leftindent{
-B      block special device
-C      character special device
-
-D      directory
-DX     directory - lost+found
-DR     directory - delete extra files not configured in this directory (use with care!)
-
-F      regular file
-FI     .. - copy the file if it is missing, but do not update existing files
-FO     .. - rename the old version with suffix of ".old" if updated
-FQ     .. - exit with status of 4 if this file is updated (after doing the update)
-FA     .. - the proto field specifies an absolute path name (can be combined with others)
-
-L      symbolic link
-S      socket
-}}
-The file field specifies an absolute pathname of the local file. 
-
-The proto field specifies a major and minor device number when used in a block or charactor special device entry or the prefix to used to name the master file (or real file in the case of a symbolic link.)
-
-The username, groupname, and mode specify the file's permissions.  If they are omitted, the permissions of the master file are used. 
-
-Normally the configuration file is named \italic{/etc/package.cpu} where cpu type reflects the actual cputype of the machine.  Other configuration files may be specified by the \italic{c} flag however the actual cpu type will be supplied by \italic{package} and need not be give in name. 
-
-}
-\section{Design Goals}
-\leftindent{
-The goal of package was to build a simple robust mechanism on the already existing VICE II filesystem to maintain a workstations local disk files.  A number of related issues were also addressed in its design. 
-
-Workstations are often located within individual offices to which administrators may not have easy access.  Package had to be very robust so as to minimize the physical access adminstrators would need to workstations. 
-
-The number of both workstations and configurations within ANDREW is increasing rapidy. Package had to handle massive numbers of workstations of varying configuration while sharing as much common configuration information as possible. 
-
-Support and administrative personnel vary widely in expertise and duties.  Package had to permit the simple division of configuration information between different persons. For example /vmunix is generally maintained by system software and is very critical to normal workstation operation, however /etc/hosts.equiv is more likely to be maintained by a departmental adminstrator and much less critical. 
-
-Configurations must be easily documented and verifiable. Technicans lacking software experience must be able to check and verify workstation disk configurations. Similarly software specialists must be able to collect configuration information and intelligently plan changes and testing. 
-
-}\section{Implementation
-}\leftindent{
-The system was implemented by the construction of two new programs:  package and mpp, and the use of the standard UNIX utility make.
-
-The program \italic{package} is the actual program that does the updating.  It loads a single configuration file that describes the local disk completely in memory. Vice directories that are specified as wildcards are expanded and all vice file modification times are collected.  If any Vice file that is specified is missing or inconsistently specified package aborts.  Package then verifies that local disk partition mount points agree with configuration specifications.  Finally package updates local disk files based on configuration information. 
-
-The program \italic{mpp} is used to construct machine configuration files from prototype files.  Mpp provides macro preprocessor support. Translating macros in the form $\{name\} to their corresponding string values. Macro directives such as "ifdef", "ifndef", "endif", "undef", "define", and "include" are supported by mpp. 
-
-The program \italic{make} is used to group machine configurations by logical groups such as department machines, postoffice machines, public machines, etc... We add the following lines to the header of all Makefiles to simplify this task. 
-
-
-\example{.SUFFIXES: .vax .sun .sun2 .sun3 .ibm032 .proto
-.proto.sun:    ; mpp -Dcpu=sun -Dname=$* $*.proto > $@
-.proto.sun2:   ; mpp -Dcpu=sun2 -Dname=$* $*.proto > $@
-.proto.sun3:   ; mpp -Dcpu=sun3 -Dname=$* $*.proto > $@
-.proto.ibm032: ; mpp -Dcpu=ibm032 -Dname=$* $*.proto > $@
-.proto.vax:    ; mpp -Dcpu=vax -Dname=$* $*.proto > $@
-}
-
-Note that definition of cpu and name on the mpp command line. These are used to define configuration name and cputype as macros to be used in configuration specification. 
-}
-\section{Configuration Strategies
-}\leftindent{
-Creating a machine configuration from scratch is large task. Fortunately this is rarely required. Generally one master configuration file may be created that contains all the common information that is constant throughout all configurations and a number of files that specify option items. The liberal use of macros is essential for any but the most simple configurations. 
-
-For example we currently include a file called "cmu.readonly" in most configuration which contains the lines: 
-
-
-\example{      %define common          /cmu/unix/common
-       %define machine         /cmu/unix/$\{cpu\}
-}
-
-We may include a file call "disk.ra2" which contains information about optional two disk microvax configurations which contains the lines. 
-
-
-\example{      %define hasdisk
-       %define bigdisk
-       DX /lost+found                           $\{treemode\}
-       DX /tmp/lost+found                       $\{treemode\}
-       DX /usr/lost+found                       $\{treemode\}
-       DX /usr/vice/lost+found                  $\{treemode\}
-       FA /etc/fstab   $\{machine\}/etc/fstab.ra2 $\{textmode\}
-       FA /etc/vstab   $\{machine\}/etc/vstab.ra2 $\{textmode\}
-}
-
-Following that we include a file called "tree.generic" and a section of this file has the lines: 
-
-
-\example{%ifndef       hasdisk
-       DX /lost+found                          $\{treemode\}
-       DX /usr/lost+found                      $\{treemode\}
-       F  /etc/fstab           $\{machine\}    $\{textmode\}
-       F  /etc/vstab           $\{machine\}    $\{textmode\}
-%endif hasdisk
-}
-
-Note how unless disk.ra2 is included before the file tree.generic the default definitions will be used in tree.generic because of the use of the macro name "hasdisk". Similarly that macro name "bigdisk" may be used to inform package that the local disk has enough space for /usr/ucb to reside on local disk and need not be a symbolic link as most configurations have.  For example from file "tree.generic". 
-
-
-\example{%ifdef bigdisk
-       DR                      $\{machine\}    $\{treemode\}
-%else  bigdisk
-       L                       $\{machine\}
-%endif bigdisk
-}
-
-One very useful trick when dealing with macros in configuration prototype files is shown in the the following lines: 
-
-
-\example{%define       $\{cpu\}                xxxxxx
-%ifdef vax
-F      /etc/chpt       $\{machine\}
-%endif vax
-}
-In this the macro cpu has the value vax the file /etc/chpt will be added to the configuration. One should, however be very careful with name conflicts when using this approach.  It is best to thoughouly examine and understand configuration files currently in use before changing them or creating new configurations.  The art of developing machine configurations is still very early in its infancy. 
-}
-\section{Related tools}  
-
-Select (put a box around) one of the italicized names and choose "Get Help on Selected Word" from the pop-up menu to see the help file for:
-
-\leftindent{Names of other programs, in a vertical list, no commas or other punctuation marks}
-\enddata{text,268611736}
diff --git a/src/package/package.ms b/src/package/package.ms
deleted file mode 100644 (file)
index 24ffff6..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-.TL
-Package
-.AI
-Carnegie Mellon University
-.AB
-Package is a configuration control system for VICE II workstations
-developed at CMU. It provides simple consistent robust software updating
-and reconfiguration of workstation local disks based on system description files.
-Both the number workstations and configurations is limited only by
-the needs of a given site. The control of workstation configurations may be
-distributed or fragmented as needed between a number of adminstrators.
-.AE
-.NH
-DESIGN GOALS
-.PP
-The goal of package was to build a simple robust mechanism on the already
-existing VICE II filesystem to maintain a workstations local disk files.
-A number of related issues were also addressed in its design.
-.PP
-Workstations are often located within individual offices that
-administrators may not have easy access. Package had to be very robust so
-as to minimize the physical access adminstrators would need to workstations.
-.PP
-The number of both workstations and configurations within ANDREW is increasing
-rapidy. Package had to handle massive numbers of workstations of varying 
-configuration while sharing as much common configuration information as
-possible.
-.PP
-Support and administrative personnel vary widely in expertise and duties.
-Package had to permit the simple division of configuration information
-between different persons. For example /vmunix is generally maintained by
-system software and is very critical to normal workstation operation,
-however /etc/hosts.equiv is more likely to be maintained by a departmental
-adminstrator and much less critical.
-.PP
-Configurations must be easily documented and verifiable. Technicans
-lacking software experience must be able to check and verify workstation disk
-configurations. Similarly software specialists must be able to collect
-configuration information and intelligently plan changes and testing.
-.NH
-IMPLEMENTATION
-.PP
-The system was implemented by the construction of two new programs: 
-package and mpp, and the use of the standard UNIX utility make.
-Please refer to the corresponding manual entries for specific details on
-program options.
-.PP
-The program Package is the actual program that does the updating.
-It loads a single configuration file that describes the local disk
-completely in memory. Vice directories that are specified as wildcards
-are expanded and all vice file modification times are collected. 
-If any Vice file that is specified is missing or inconsistently 
-specified package aborts.
-Package then verifies that local disk partition mount points
-agree with configuration specifications.
-Finally package updates local disk files based on configuration information.
-.PP
-The program Mpp is used to construct machine configuration files from
-prototype files.
-Mpp provides macro preprocessor support. Translating macros in the form
-${name} to their
-corresponding string values. Macro directives such as "ifdef", "ifndef",
-"endif", "undef",
-"define", and "include" are supported by mpp.
-.PP
-The program Make is used to group machine configurations by logical
-groups such as
-department machines, postoffice machines, public machines, etc... We add the
-following lines to the header of all Makefiles to simplify this task.
-.nf
-
-       .SUFFIXES: .vax .sun .sun2 .sun3 .ibm032 .proto
-       .proto.sun:     ; mpp -Dcpu=sun -Dname=$* $*.proto > $@
-       .proto.sun2:    ; mpp -Dcpu=sun2 -Dname=$* $*.proto > $@
-       .proto.sun3:    ; mpp -Dcpu=sun3 -Dname=$* $*.proto > $@
-       .proto.ibm032:  ; mpp -Dcpu=ibm032 -Dname=$* $*.proto > $@
-       .proto.vax:     ; mpp -Dcpu=vax -Dname=$* $*.proto > $@
-.fi
-.PP
-Note that definition of cpu and name on mpp command line. These are used to
-define configuration name and cputype as macros to be used in configuration
-specification.
-.NH
-CONFIGURATION STRATEGIES
-.PP
-Creating a machine configuration from scratch is somewhat massive. Fortunately
-this is rarely required. Generally one master configuration file may be
-created that contains all the common information that is constant throughout
-all configurations and a number of files that specify option items. The
-liberal use of macros is essential for any but the most simple
-configurations.
-.PP
-For example we currently include a file called "cmu.readonly" in most configuration
-which contains the lines:
-.nf
-
-       %define common                  /cmu/unix/common
-       %define machine                 /cmu/unix/${cpu}
-.fi
-.PP
-We may include a file call "disk.ra2" which contains information about
-optional two disk microvax configurations which contains the lines.
-.nf
-
-       %define hasdisk
-       %define bigdisk
-       DX /lost+found                                          ${treemode}
-       DX /tmp/lost+found                                      ${treemode}
-       DX /usr/lost+found                                      ${treemode}
-       DX /usr/vice/lost+found                                 ${treemode}
-       FA /etc/fstab           ${machine}/etc/fstab.ra2        ${textmode}
-       FA /etc/vstab           ${machine}/etc/vstab.ra2        ${textmode}
-.fi
-.PP
-Following that we include a file called "tree.generic" and a section of this file has
-the lines:
-.nf
-
-%ifndef        hasdisk
-       DX /lost+found                                  ${treemode}
-       DX /usr/lost+found                              ${treemode}
-       F  /etc/fstab                   ${machine}      ${textmode}
-       F  /etc/vstab                   ${machine}      ${textmode}
-%endif hasdisk
-.fi
-.PP
-Note how unless disk.ra2 is included before the file tree.generic
-the default definitions will be used in tree.generic because of the use of
-the macro name "hasdisk". Similarly that macro name "bigdisk" may be used
-to inform package that the local disk has enough space for /usr/ucb to reside
-on local disk and need not be a symbolic link as most configurations have.
-For example from file "tree.generic".
-.nf
-
-%ifdef bigdisk
-       DR                      ${machine}              ${treemode}
-%else  bigdisk
-       L                       ${machine}
-%endif bigdisk
-.fi
-.PP
-One very useful trick when dealing with macros in configuration prototype
-files is shown in the the following lines:
-.nf
-
-%define        ${cpu}          xxxxxx
-%ifdef vax
-F      /etc/chpt       ${machine}
-%endif vax
-.fi
-In this the macro cpu has the value vax the file /etc/chpt will be added
-to the configuration. One should, however be very careful with name conflicts when
-using this approach.
-It is best to thoughouly examine and understand configuration files
-currently in use before changing them or creating new configurations.
-The art of developing machine configurations is still very early in its
-infancy.
-.NH
-SUMMARY
-.PP
-The package system is currently primitive but functional. A much better
-configuration generation system should be developed and used as a replacement
-for make/mpp.
-
-
diff --git a/src/package/systype.h b/src/package/systype.h
deleted file mode 100644 (file)
index d48bcc8..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*------------------------------------------------------------------------
- * systype.h
- *
- * Description:
- *     Set up the string telling us our system type.
- *
- *------------------------------------------------------------------------*/
-
-char *systype = SYS_NAME;
diff --git a/src/package/tags b/src/package/tags
deleted file mode 100644 (file)
index 89e6b52..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-AddBlkEntry    test.c  /^AddBlkEntry(f, p, o, m, u)$/
-AddChrEntry    test.c  /^AddChrEntry(f, p, o, m, u)$/
-AddDirEntry    test.c  /^AddDirEntry(f, p, o, m, u)$/
-AddEntry       conftree.c      /^int AddEntry(filetype, updtspec, filename, prototy/
-AddLnkEntry    test.c  /^AddLnkEntry(f, p, o, m, u)$/
-AddRegEntry    test.c  /^AddRegEntry(f, p, o, m, u)$/
-AddSockEntry   test.c  /^AddSockEntry(f)$/
-AllocConfigNode        conftree.c      /^static CTREEPTR AllocConfigNode()$/
-ApplyConfigTree        conftree.c      /^ApplyConfigTree(func)$/
-BuildConfigTree        conftree.c      /^int BuildConfigTree(f)$/
-CheckMount     check.c /^static CheckMount(path)$/
-FixDir update.c        /^static int FixDir(np, path)$/
-FixLostFoundDir        update.c        /^static int FixLostFoundDir(path)$/
-FixReg update.c        /^static FixReg(np, path)$/
-GetArgs        package.c       /^static GetArgs(argc, argv)$/
-InitializeConfigTree   conftree.c      /^int InitializeConfigTree()$/
-LocateChildNode        conftree.c      /^CTREEPTR LocateChildNode(dp, name, lmode)$/
-LocatePathNode conftree.c      /^CTREEPTR LocatePathNode(dp, path, lmode)$/
-Mpackage       package.c       /^main(argc, argv)$/
-Mtest  test.c  /^main(argc, argv)$/
-TraverseConfigTree     conftree.c      /^TraverseConfigTree(np, path, func)$/
-UpdateDev      update.c        /^static UpdateDev(np, path)$/
-UpdateDir      update.c        /^static UpdateDir(np, path)$/
-UpdateLnk      update.c        /^static UpdateLnk(np, path)$/
-UpdateReg      update.c        /^static UpdateReg(np, path)$/
-UpdateSock     update.c        /^static UpdateSock(np, path)$/
-ValidUpdtSpec  conftree.c      /^static int ValidUpdtSpec(ftype, uspec)$/
-ValidateGroupName      conftree.c      /^static int ValidateGroupName(name, gidp)$/
-ValidateUserName       conftree.c      /^static int ValidateUserName(name, uidp)$/
-allprint       misc.c  /^allprint(i)$/
-check  check.c /^int check(np, path)$/
-cp     fileops.c       /^int cp(from,to)$/
-dbgprint       globals.h       /^#define       dbgprint(x)   {fprintf x ; fflush(stderr);/
-dochmod        update.c        /^static dochmod(np, path)$/
-dochown        update.c        /^static dochown(np, path)$/
-dochtim        update.c        /^static dochtim(np, path)$/
-dochtyp        update.c        /^static dochtyp(np, path)$/
-ecalloc        globfuncs.c     /^char *ecalloc(nelem, size)$/
-echo_modeinfo  test.c  /^echo_modeinfo(m)$/
-echo_ownerinfo test.c  /^echo_ownerinfo(o)$/
-echo_prototypeinfo     test.c  /^echo_prototypeinfo(p)$/
-echo_updateoptions     test.c  /^echo_updateoptions(u)$/
-efopen globfuncs.c     /^FILE *efopen(filename, type)$/
-emalloc        globfuncs.c     /^char *emalloc(size)$/
-fatal  messages.c      /^\/* VARARGS1 *\/fatal(cp) char *cp; \/*ARGSUSED*\/ {}$/
-ln     fileops.c       /^int ln(from,to)$/
-loudonly_message       messages.c      /^\/* VARARGS1 *\/loudonly_message(cp) char *cp; \/*ARG/
-message        messages.c      /^\/* VARARGS1 *\/message(cp) char *cp; \/*ARGSUSED*\/ {/
-mklostfound    fileops.c       /^int mklostfound(path)$/
-mv     fileops.c       /^int mv(from,to)$/
-namehash       conftree.c      /^static int namehash(name)$/
-putformat      messages.c      /^static char *putformat(dp,fp,ap)$/
-putnum messages.c      /^static char *putnum(dp,n,b)$/
-putstr messages.c      /^static char *putstr(dp,s)$/
-rm     fileops.c       /^int rm(path)$/
-sprint misc.c  /^sprint(s)$/
-update update.c        /^int update(np, path)$/
-usage  package.c       /^static usage()$/
-verbose_message        messages.c      /^\/* VARARGS1 *\/verbose_message(cp) char *cp; \/*ARGS/
-yyerror        misc.c  /^yyerror()$/
-yywrap misc.c  /^yywrap()$/
diff --git a/src/package/test.c b/src/package/test.c
deleted file mode 100644 (file)
index 6e76d48..0000000
+++ /dev/null
@@ -1,534 +0,0 @@
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*------------------------------------------------------------------------
- * test.c
- *
- * Description:
- *     Check out the parsing of specification files for package,
- *     the AFS workstation configuration tool.
- *
- *------------------------------------------------------------------------*/
-
-#include <afs/param.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-#if defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV)
-#include <sys/mkdev.h>
-#endif
-#ifdef AFS_LINUX20_ENV
-#include <sys/sysmacros.h>
-#endif
-#include "globals.h"
-#include "package.h"
-#include "systype.h"
-
-extern int test_linecounter;   /*Line number currently being parsed */
-extern FILE *yyin;
-
-char *emalloc();
-
-CTREEPTR config_root;          /*Top of the config tree */
-
-int opt_silent = 0;            /*Silent operation? */
-int opt_verbose = 1;           /*Verbose operation? */
-int opt_debug = 1;             /*Debugging output enabled? */
-
-#include "AFS_component_version_number.c"
-
-int 
-main(int argc, char **argv)
-{                              /*main */
-    int code;                  /*Return code */
-
-    if (argc > 1)
-       yyin = efopen(argv[1], "r");
-    else
-       yyin = stdin;
-    code = yyparse();
-    if (code)
-       printf("** Lexical error in config file, line %d\n",
-              test_linecounter);
-    if (yyin != stdin)
-       fclose(yyin);
-}                              /*main */
-
-/*------------------------------------------------------------------------
- * AddRegEntry
- *
- * Description:
- *     Routine called by the lexer when a line from the spec file has
- *     been parsed, passing in its interpretation of the contents of
- *     the (non-directory, `F' type) line.
- *
- * Arguments:
- *     char *f     : Filename picked up.
- *     PROTOTYPE p : Prototype (target) picked up.
- *     OWNER o     : Owner information picked up.
- *     MODE m      : Mode information picked up.
- *     u_short u   : Update options picked up.
- *
- * Returns:
- *     0 (always).
- *
- * Environment:
- *     Called from the lexer.
- *
- * Side Effects:
- *     None.
- *------------------------------------------------------------------------*/
-
-int
-AddRegEntry(char *f, PROTOTYPE p, OWNER o, MODE m, u_short u)
-
-{                              /*AddRegEntry */
-    printf("F");
-    echo_updateoptions(u);
-    printf("%s", f);
-    echo_prototypeinfo(p);
-    echo_ownerinfo(o);
-    echo_modeinfo(m);
-    return (0);
-}                              /*AddRegEntry */
-
-/*------------------------------------------------------------------------
- * AddDirEntry
- *
- * Description:
- *     Routine called by the lexer when a line from the spec file has
- *     been parsed, passing in its interpretation of the contents of
- *     the (directory, `D' type) line.
- *
- * Arguments:
- *     char *f     : Filename picked up.
- *     PROTOTYPE p : Prototype (target) picked up.
- *     OWNER o     : Owner information picked up.
- *     MODE m      : Mode information picked up.
- *     u_short u   : Update options picked up.
- *
- * Returns:
- *     0 (always).
- *
- * Environment:
- *     Called from the lexer.
- *
- * Side Effects:
- *     None.
- *------------------------------------------------------------------------*/
-
-int
-AddDirEntry(char *f, PROTOTYPE p, OWNER o, MODE m, u_short u)
-{                              /*AddDirEntry */
-
-    printf("D");
-    echo_updateoptions(u);
-    printf("%s", f);
-    echo_prototypeinfo(p);
-    echo_ownerinfo(o);
-    echo_modeinfo(m);
-    return (0);
-
-}                              /*AddDirEntry */
-
-/*------------------------------------------------------------------------
- * AddLnkEntry
- *
- * Description:
- *     Routine called by the lexer when a line from the spec file has
- *     been parsed, passing in its interpretation of the contents of
- *     the (symlink, `L' type) line.
- *
- * Arguments:
- *     char *f     : Filename picked up.
- *     PROTOTYPE p : Prototype (target) picked up.
- *     OWNER o     : Owner information picked up.
- *     MODE m      : Mode information picked up.
- *     u_short u   : Update options picked up.
- *
- * Returns:
- *     0 (always).
- *
- * Environment:
- *     Called from the lexer.
- *
- * Side Effects:
- *     None.
- *------------------------------------------------------------------------*/
-
-int
-AddLnkEntry(char *f, PROTOTYPE p, OWNER o, MODE m, u_short u)
-{                              /*AddLnkEntry */
-    printf("L");
-    echo_updateoptions(u);
-    printf("%s", f);
-    echo_prototypeinfo(p);
-    echo_ownerinfo(o);
-    echo_modeinfo(m);
-    return (0);
-}                              /*AddLnkEntry */
-
-/*------------------------------------------------------------------------
- * AddBlkEntry
- *
- * Description:
- *     Routine called by the lexer when a line from the spec file has
- *     been parsed, passing in its interpretation of the contents of
- *     the (block device, `B' type) line.
- *
- * Arguments:
- *     char *f     : Filename picked up.
- *     PROTOTYPE p : Prototype (target) picked up.
- *     OWNER o     : Owner information picked up.
- *     MODE m      : Mode information picked up.
- *     u_short u   : Update options picked up.
- *
- * Returns:
- *     0 (always).
- *
- * Environment:
- *     Called from the lexer.
- *
- * Side Effects:
- *     None.
- *------------------------------------------------------------------------*/
-
-int
-AddBlkEntry(char *f, PROTOTYPE p, OWNER o, MODE m, u_short u)
-{                              /*AddBlkEntry */
-    printf("B");
-    echo_updateoptions(u);
-    printf("%s", f);
-    echo_prototypeinfo(p);
-    echo_ownerinfo(o);
-    echo_modeinfo(m);
-    return (0);
-}                              /*AddBlkEntry */
-
-/*------------------------------------------------------------------------
- * AddChrEntry
- *
- * Description:
- *     Routine called by the lexer when a line from the spec file has
- *     been parsed, passing in its interpretation of the contents of
- *     the (character device, `C' type) line.
- *
- * Arguments:
- *     char *f     : Filename picked up.
- *     PROTOTYPE p : Prototype (target) picked up.
- *     OWNER o     : Owner information picked up.
- *     MODE m      : Mode information picked up.
- *     u_short u   : Update options picked up.
- *
- * Returns:
- *     0 (always).
- *
- * Environment:
- *     Called from the lexer.
- *
- * Side Effects:
- *     None.
- *------------------------------------------------------------------------*/
-
-int
-AddChrEntry(char *f, PROTOTYPE p, OWNER o, MODE m, u_short u)
-{                              /*AddChrEntry */
-    printf("C");
-    echo_updateoptions(u);
-    printf("%s", f);
-    echo_prototypeinfo(p);
-    echo_ownerinfo(o);
-    echo_modeinfo(m);
-    return (0);
-}                              /*AddChrEntry */
-
-/*------------------------------------------------------------------------
- * AddSktEntry
- *
- * Description:
- *     Routine called by the lexer when a line from the spec file has
- *     been parsed, passing in its interpretation of the contents of
- *     the (socket, `S' type) line.
- *
- * Arguments:
- *     char *f : Filename picked up.
- *
- * Returns:
- *     0 (always).
- *
- * Environment:
- *     Called from the lexer.
- *
- * Side Effects:
- *     None.
- *------------------------------------------------------------------------*/
-
-int
-AddSktEntry(char *f)
-{                              /*AddSktEntry */
-
-    printf("S");
-    printf("\t%s\n", f);
-
-}                              /*AddSktEntry */
-
-/*------------------------------------------------------------------------
- * AddPipeEntry
- *
- * Description:
- *     Routine called by the lexer when a line from the spec file has
- *     been parsed, passing in its interpretation of the contents of
- *     the (named pipe, `P' type) line.
- *
- * Arguments:
- *     char *f     : Filename picked up.
- *     PROTOTYPE p : Prototype (target) picked up.
- *     OWNER o     : Owner information picked up.
- *     MODE m      : Mode information picked up.
- *     u_short u   : Update options picked up.
- *
- * Returns:
- *     0 (always).
- *
- * Environment:
- *     Called from the lexer.
- *
- * Side Effects:
- *     None.
- *------------------------------------------------------------------------*/
-
-int
-AddPipeEntry(char *f, PROTOTYPE p, OWNER o, MODE m, u_short u)
-{                              /*AddPipeEntry */
-    printf("P");
-    echo_updateoptions(u);
-    printf("\t%s\n", f);
-    echo_prototypeinfo(p);
-    echo_ownerinfo(o);
-    echo_modeinfo(m);
-    return (0);
-}                              /*AddPipeEntry */
-
-/*------------------------------------------------------------------------
- * echo_updateoptions
- *
- * Description:
- *     Print out a readable version of the update options parsed by
- *     the lexer.
- *
- * Arguments:
- *     u_short u : Update options to print.
- *
- * Returns:
- *     0 (always).
- *
- * Environment:
- *     Nothing interesting.
- *
- * Side Effects:
- *     None.
- *------------------------------------------------------------------------*/
-
-int
-echo_updateoptions(u_short u)
-{                              /*echo_updateoptions */
-    if (u & U_LOSTFOUND)
-       printf("X");
-    if (u & U_RMEXTRA)
-       printf("R");
-    if (u & U_NOOVERWRITE)
-       printf("I");
-    if (u & U_RENAMEOLD)
-       printf("O");
-    if (u & U_ABSPATH)
-       printf("A");
-    if (u & U_REBOOT)
-       printf("Q");
-    printf("\t");
-    return (0);
-}                              /*echo_updateoptions */
-
-/*------------------------------------------------------------------------
- * echo_prototypeinfo
- *
- * Description:
- *     Print out a readable version of the prototype information parsed
- *     by the lexer.
- *
- * Arguments:
- *     PROTOTYPE p : Prototype info to print.
- *
- * Returns:
- *     0 (always).
- *
- * Environment:
- *     Nothing interesting.
- *
- * Side Effects:
- *     None.
- *------------------------------------------------------------------------*/
-
-int
-echo_prototypeinfo(PROTOTYPE p)
-{                              /*echo_prototypeinfo */
-    switch (p.flag) {
-    case P_FILE:
-       printf("\t%s", p.info.path);
-       break;
-
-    case P_DEV:
-/*         printf("\t%d\t%d", major(p.info.devno), minor(p.info.devno));*/
-
-#ifndef        AFS_SGI_ENV
-       printf("\t%d\t%d", major(p.info.rdev), minor(p.info.rdev));
-#endif
-
-       break;
-
-    default:
-       printf("\t[Neither file nor device]");
-       break;
-    }
-}                              /*echo_prototypeinfo */
-
-/*------------------------------------------------------------------------
- * echo_ownerinfo
- *
- * Description:
- *     Print out a readable version of the owner information parsed by
- *     the lexer.
- *
- * Arguments:
- *     OWNER o : Owner info to print.
- *
- * Returns:
- *     0 (always).
- *
- * Environment:
- *     Nothing interesting.
- *
- * Side Effects:
- *     None.
- *------------------------------------------------------------------------*/
-
-int
-echo_ownerinfo(OWNER o)
-{                              /*echo_ownerinfo */
-    if (o.username != NULL)
-       printf("\t%s", o.username);
-    else
-       printf("\t[No owner info]");
-    if (o.groupname != NULL)
-       printf("\t%s", o.groupname);
-    else
-       printf("\t[No group info]");
-}                              /*echo_ownerinfo */
-
-/*------------------------------------------------------------------------
- * echo_modeinfo
- *
- * Description:
- *     Print out a readable version of the mode info parsed by
- *     the lexer.
- *
- * Arguments:
- *     MODE m : Mode info to print.
- *
- * Returns:
- *     0 (always).
- *
- * Environment:
- *     Nothing interesting.
- *
- * Side Effects:
- *     None.
- *------------------------------------------------------------------------*/
-
-int
-echo_modeinfo(MODE m)
-{                              /*echo_modeinfo */
-    if (m.inherit_flag != TRUE)
-       printf("\t%o", m.modeval);
-    else
-       printf("\t[Inherited mode]");
-    printf("\n");
-}                              /*echo_modeinfo */
-
-/*------------------------------------------------------------------------
- * testAddEntry
- *
- * Description:
- *     Version of package's AddEntry() routine called by this test
- *     program.  It looks at the type of spec line that was just
- *     parsed, and it then calls specific routines to display specific
- *     types of lines.
- *
- * Arguments:
- *     u_short a_ftype    : Specifies type of file to be updated (regular
- *                             file, directory, device, etc.)
- *     u_short a_updspecs : Specifies actions during update, if necessary.
- *     char *a_filename   : Name of file to be updated.
- *     PROTOTYPE a_proto  : Prototype for filename (e.g., dev numbers,
- *                             directory prefix, etc.)
- *     OWNER a_owner      : Ownership info parsed.
- *     MODE a_mode        : Protection (mode) bits parsed.
- *
- * Returns:
- *     0 (always).
- *
- * Environment:
- *     Called from the lexer.
- *
- * Side Effects:
- *     None.
- *------------------------------------------------------------------------*/
-
-int
-testAddEntry(u_short a_ftype, u_short a_updspecs, char *a_filename, PROTOTYPE a_proto, OWNER a_owner, MODE a_mode)
-{                              /*testAddEntry */
-    switch (a_ftype) {
-    case S_IFREG:              /*Regular file */
-       AddRegEntry(a_filename, a_proto, a_owner, a_mode, a_updspecs);
-       break;
-
-    case S_IFDIR:              /*Directory */
-       AddDirEntry(a_filename, a_proto, a_owner, a_mode, a_updspecs);
-       break;
-
-    case S_IFLNK:              /*Symbolic link */
-       AddLnkEntry(a_filename, a_proto, a_owner, a_mode, a_updspecs);
-       break;
-
-#ifndef AFS_AIX_ENV
-    case S_IFSOCK:             /*Socket */
-       AddSktEntry(a_filename);
-       break;
-#endif /* AFS_AIX_ENV */
-
-    case S_IFBLK:              /*Block device */
-       AddBlkEntry(a_filename, a_proto, a_owner, a_mode, a_updspecs);
-       break;
-
-    case S_IFCHR:              /*Character device */
-       AddChrEntry(a_filename, a_proto, a_owner, a_mode, a_updspecs);
-       break;
-
-#ifdef S_IFIFO
-    case S_IFIFO:              /*Named pipe */
-       AddPipeEntry(a_filename, a_proto, a_owner, a_mode, a_updspecs);
-       break;
-#endif /* S_IFIFO */
-
-    default:
-       printf("Unknown file type parsed: %d\n", a_ftype);
-       break;
-
-    }                          /*switch a_ftype */
-}                              /*testAddEntry */
diff --git a/src/package/test_gram.y b/src/package/test_gram.y
deleted file mode 100644 (file)
index a61acef..0000000
+++ /dev/null
@@ -1,393 +0,0 @@
-%{
-
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- *
- * test_gram.y:
- *     Special test version of the grammar defining the set of
- *     things recognized by package, the AFS workstation config-
- *     uration facility.
- */
-
-#include <afs/param.h>
-#include <sys/param.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#if defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV)
-#include <sys/mkdev.h>
-#endif
-#ifdef AFS_LINUX20_ENV
-#include <sys/sysmacros.h>
-#endif
-#include "globals.h"
-#include "package.h"
-
-
-char *emalloc();
-
-#if defined(AFS_AIX41_ENV) || defined(AFS_LINUX20_ENV) || defined(AFS_FBSD_ENV)
-int test_linecounter;  /*Line number currently being parsed*/
-
-char *ch2str();
-char *appendchtostr();
-#endif /* AFS_AIX41_ENV */ 
-
-%}
-
-%union
-{
-  afs_uint32 usval;
-  int ival;
-  char chval;
-  char *strval;
-  PROTOTYPE protoval;
-  OWNER ownval;
-  MODE modeval;
-}
-
-%token WHITESPACE
-%token COMMENT
-%token NEWLINE
-%token BLANKLINE
-%token REGTYPE
-%token DIRTYPE
-%token LNKTYPE
-%token BLKTYPE
-%token CHRTYPE
-%token SOCKTYPE
-%token PIPETYPE
-%token <chval> LETTER
-%token <strval> PATHNAME
-%token <usval> DIGIT
-%type <ival> input
-%type <ival> entry
-%type <usval> filetype
-%type <usval> devicetype
-%type <usval> updatespecs
-%type <usval> updateflag
-%type <strval> filename
-%type <protoval> devprototype
-%type <protoval> fileprototype
-%type <ival> devmajor
-%type <ival> devminor
-%type <usval> number
-%type <ownval> ownershipinfo
-%type <strval> username
-%type <strval> groupname
-%type <strval> name
-%type <modeval> mode
-%type <usval> octalnumber
-
-
-%%     /* rules */
-
-input  :       /* empty */
-                       { $$ = InitializeConfigTree();
-                         test_linecounter = 1; }
-       |       input entry
-                       { $$ = ($1 == 0)? $2 : $1; }
-       ;
-
-entry  :       COMMENT NEWLINE
-                       { $$ = 0; test_linecounter++; }
-       |       BLANKLINE
-                       { $$ = 0; test_linecounter++; }
-       |       devicetype      /*Specifies type of device to be updated
-                                 - block/char*/
-               updatespecs     /*Specifies actions during update, if
-                                 necessary*/
-               filename        /*Name of device being updated*/
-               devprototype    /*Device numbers for device being updated*/
-               ownershipinfo   /*Ownership info for device being updated*/
-               mode            /*Protection bits for file being updated*/
-               NEWLINE
-                       {
-                         $$ = testAddEntry($1, $2, $3, $4, $5, $6);
-                               /*Args -
-                                  filetype,
-                                  updatespecs,
-                                  filename,
-                                  devprototype,
-                                  ownershipinfo,
-                                  mode*/
-                         ReleaseEntry($3, $4, $5);
-                         test_linecounter++;
-                       }
-
-       |       filetype        /*Specifies type of file to be updated;
-                                 e.g. regular file, directory, special
-                                 file*/
-               updatespecs     /*Specifies actions during update, if
-                                 necessary*/
-               filename        /*Name of file being updated*/
-               fileprototype   /*Prototype for file being updated, if
-                                 necessary - e.g., directory prefix,
-                                 master copy, device numbers etc.*/
-               ownershipinfo   /*Ownership info for file being updated,
-                                 should default to info from prototype*/
-               mode            /*Protection bits for file being updated;
-                                 should default to info from prototype*/
-               NEWLINE
-                       {
-                         $$ = testAddEntry($1, $2, $3, $4, $5, $6);
-                         /*Args -
-                            filetype,
-                            updatespecs,
-                            filename,
-                            fileprototype,
-                            ownershipinfo,
-                            mode*/
-                         ReleaseEntry($3, $4, $5);
-                         test_linecounter++;
-                       }
-       ;
-
-devicetype:    BLKTYPE         /*Block device*/
-                       { $$ = S_IFBLK; }
-       |       CHRTYPE         /*Character device*/
-                       { $$ = S_IFCHR; }
-       |       PIPETYPE        /*Named pipe*/
-                       {
-#ifdef S_IFIFO
-                         $$ = S_IFIFO;
-#endif /* S_IFIFO */
-                       }
-       ;
-
-filetype:      REGTYPE         /*Regular file*/
-                       { $$ = S_IFREG; }
-       |       DIRTYPE         /*Directory*/
-                       { $$ = S_IFDIR; }
-       |       LNKTYPE /* symbolic link */
-                       { $$ =S_IFLNK ; }
-       |       SOCKTYPE
-                       {
-#ifndef AFS_AIX_ENV
-                         $$ = S_IFSOCK;
-#endif /* AFS_AIX_ENV */
-                       }
-       ;
-
-
-updatespecs :  /*empty */
-                       { $$ = 0; }
-       |       /*empty */ WHITESPACE
-                       { $$ = 0; }
-       |       updatespecs updateflag
-                       { $$ = $1 | $2; }
-       |       updatespecs updateflag WHITESPACE
-                       { $$ = $1 | $2; }
-       ;
-
-
-/*
- * Throw this out later
- */
-updateflag:    LETTER
-                       {
-                         switch(yylval.chval)
-                           {
-                             case 'X':
-                               /*Make this a lost+found directory*/
-                               $$ = U_LOSTFOUND;
-                               break;
-
-                             case 'R':
-                               /*Extra files not configured to be removed*/
-                               $$ = U_RMEXTRA;
-                               break;
-
-                             case 'I':
-                               /*Update only if file not present*/
-                               $$ = U_NOOVERWRITE;
-                               break;
-
-                             case 'O':
-                               /*Rename old copy with a suffix of .old*/
-                               $$ = U_RENAMEOLD;
-                               break;
-
-                             case 'A':
-                               /*Prototype specifies an absolute path
-                                 rather than the prefix*/
-                               $$ = U_ABSPATH;
-                               break;
-
-                             case 'Q':
-                               /*Exit with status=4 if file is updated,
-                                 indicating that a reboot is needed*/
-                               $$ = U_REBOOT;
-                               break;
-                           }
-                       }
-       ;
-
-
-filename       :       PATHNAME        /*Pathname of the file to be
-                                         updated, may not have white-
-                                         space if at eol*/
-                       { $$ = $1; }
-       |       PATHNAME WHITESPACE     /*Pathname of the file to be
-                                         updated*/
-                       { $$ = $1; }
-       ;
-
-fileprototype: /* empty */
-                       { $$.flag = P_NONE; }
-       |       filename        /*Pathname of prototype file or directory
-                                 prefix*/
-                       { $$.flag = P_FILE; $$.info.path = $1; }
-       ;
-
-devprototype:  devmajor WHITESPACE devminor    /*Major & minor device
-                                                 numbers*/
-                       { $$.flag = P_DEV; $$.info.rdev = makedev($1, $3); }
-                       
-       ;
-
-devmajor       :       number
-                       {
-                         if ((0 > $1) || ($1 > 255))
-                           fatal("%d; invalid device number", $1);
-                         $$ = $1;
-                       }
-       ;
-
-devminor       :       number
-                       {
-                         if ((0 > $1) || ($1 > 255))
-                           fatal("%d; invalid device number", $1);
-                         $$ = $1;
-                       }
-       |       number WHITESPACE
-                       {
-                         if ((0 > $1) || ($1 > 255))
-                           fatal("%d; invalid device number", $1);
-                         $$ = $1;
-                       }
-       ;
-
-number :       DIGIT
-                       { $$ = $1;
-                         dbgprint((stderr, "digit %u\n", $$));
-                       }
-       |       number DIGIT
-                       { $$ = 10 * $1 + $2;
-                         dbgprint((stderr, "10 * %u + %u = %u\n", $1,$2,$$));
-                       }
-       ;
-
-ownershipinfo: /* empty */
-                       { $$.username = NULL; $$.groupname = NULL; }
-       |       username groupname
-                       { $$.username = $1; $$.groupname = $2; }
-       ;
-
-username:      name
-                       { $$ = $1; }
-       |       name WHITESPACE
-                       { $$ = $1; }
-       ;
-
-groupname:     /* empty */
-                       {$$ = NULL; }
-       |       name
-                       { $$ = $1; }
-       |       name WHITESPACE
-                       { $$ = $1; }
-       ;
-
-name   :       LETTER
-                       { $$ = ch2str(yylval.chval);  }
-/*     |       DIGIT
-                       { $$ = ch2str('0'+$1);  } */
-       |       name LETTER
-                       { $$ = appendchtostr($1, $2);  }
-       |       name DIGIT
-                       { $$ = appendchtostr($1, '0'+$2);  }
-       ;
-
-mode   :       /* empty */
-                       { $$.inherit_flag = TRUE; }
-       |       COMMENT
-                       { $$.inherit_flag = TRUE; }
-       |       octalnumber     /*Last field of entry, may not have
-                                 anything before newline*/
-                       { $$.inherit_flag = FALSE; $$.modeval = (afs_uint32)$1; }
-       |       octalnumber WHITESPACE  /*Last field of entry, but may have
-                                         some whitespace before newline*/
-                       { $$.inherit_flag = FALSE; $$.modeval = (afs_uint32)$1; }
-       |       octalnumber COMMENT     /*Last field of entry, but may have
-                                         a comment before newline*/
-                       { $$.inherit_flag = FALSE; $$.modeval = (afs_uint32)$1; }
-       |       octalnumber WHITESPACE COMMENT  /*Last field of entry, but
-                                                 may have some whitespace
-                                                 and a comment before the
-                                                 newline*/
-                       { $$.inherit_flag = FALSE; $$.modeval = (afs_uint32)$1; }
-       ;
-
-octalnumber:   DIGIT
-                       { $$ = $1;
-                         dbgprint((stderr, "digit %u\n", $$));
-                       }
-       |       octalnumber DIGIT
-                       { $$ = 8 * $1 + $2;
-                         dbgprint((stderr, "8 * %u + %u = %u\n", $1,$2, $$));
-                       }
-       ;
-
-
-%%
-
-#ifndef AFS_AIX41_ENV
-int test_linecounter;  /*Line number currently being parsed*/
-#endif /* !AFS_AIX41_ENV */
-
-char *ch2str(c)
-    char c;
-/*
- * Returns the pointer to a string consisting of the character c
- * terminated by \0.
- */
-{
-  char *s;
-  s = (char *)emalloc(2);
-  sprintf(s, "%c", c);
-  return(s);
-}
-
-char *appendchtostr(s, c)
-    char c, *s;
-/*
- * Returns the pointer to a NULL terminated string containing the
- * character c appended to the contents of the string s
- */
-{
-  char *str;
-  str = (char *)emalloc((unsigned)(strlen(s) + 2));
-  sprintf(str, "%s%c", s, c);
-  free(s);
-  return(str);
-}
-
-ReleaseEntry(f, p, o)
-    char *f;
-    PROTOTYPE p;
-    OWNER o;
-/*
- * Release storage allocated for various data structures during the
- * parsing of an entry.
- */
-{
-  if (f != NULL) free(f);
-  if ((p.flag == P_FILE) && (p.info.path != NULL)) free(p.info.path);
-  if (o.username != NULL) free(o.username);
-  if (o.groupname != NULL) free(o.groupname);
-}
diff --git a/src/package/update.c b/src/package/update.c
deleted file mode 100644 (file)
index 08136bd..0000000
+++ /dev/null
@@ -1,461 +0,0 @@
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*------------------------------------------------------------------------
- * update.c
- *
- * Description:
- *     Routines that actually do the disk updates.
- *
- *------------------------------------------------------------------------*/
-
-#include <afs/param.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <dirent.h>
-#include <time.h>
-#include <sys/time.h>
-#if defined(AFS_SGI_ENV) || defined(AFS_SUN5_ENV)
-#include <sys/mkdev.h>
-#endif
-#ifdef AFS_LINUX20_ENV
-#include <sys/sysmacros.h>
-#endif
-#include "globals.h"
-#include "package.h"
-
-char *emalloc();
-char *strcpy();
-CTREEPTR LocateChildNode();
-
-static struct stat stb;
-
-static UpdateSock();
-static UpdateDev();
-static UpdatePipe();
-static UpdateLnk();
-static UpdateDir();
-static UpdateReg();
-static dochtyp();
-static dochmod();
-static dochown();
-static dochtim();
-static int FixLostFoundDir();
-static int FixDir();
-static FixReg();
-
-/* $$important: these will have to be fixed with an error recovery mechanism */
-
-int
-update(CTREEPTR np, char *path)
-{                              /*update */
-
-    switch (np->type) {
-#ifndef AFS_AIX_ENV
-    case S_IFSOCK:
-       UpdateSock(np, path);
-       break;
-#endif /* AFS_AIX_ENV */
-
-#ifdef S_IFIFO
-    case S_IFIFO:
-       UpdatePipe(np, path);
-       break;
-#endif /* S_IFIFO */
-
-    case S_IFCHR:
-    case S_IFBLK:
-       UpdateDev(np, path);
-       break;
-
-    case S_IFLNK:
-       UpdateLnk(np, path);
-       break;
-
-    case S_IFDIR:
-       UpdateDir(np, path);
-       break;
-
-    case S_IFREG:
-       UpdateReg(np, path);
-       break;
-    }
-
-}                              /*update */
-
-static void
-UpdateSock(CTREEPTR np, char *path)
-{                              /*UpdateSock */
-
-    (void)dochtyp(np, path);
-
-}                              /*UpdateSock */
-
-
-static void
-UpdateDev(CTREEPTR np, char *path)
-{                              /*UpdateDev */
-
-    register int ret;
-
-    ret = dochtyp(np, path);
-
-#ifdef KFLAG
-    if (ret == 1)
-       return;
-#endif /* KFLAG */
-    if ((np->flag & F_PROTO) != 0) {
-       if (ret >= 0) {
-           if (np->proto.info.rdev != stb.st_rdev) {
-               rm(path);
-               ret = -1;
-           }
-       }
-       if (ret < 0) {
-           char *type;
-
-           switch (np->type) {
-           case S_IFBLK:
-               type = "b";
-               break;
-
-           case S_IFCHR:
-               type = "c";
-               break;
-
-           default:
-               message("Unknown device type: %d\n", np->type);
-               break;
-           }
-
-           loudonly_message("mknod %s %d %d %s", type,
-                            major(np->proto.info.rdev),
-                            minor(np->proto.info.rdev), path);
-           if (!opt_lazy) {
-               if (mknod
-                   (path, (int)np->mode | (int)np->type,
-                    (int)np->proto.info.rdev) < 0)
-                   message("mknod %s %d %d %s; %m", type,
-                           major(np->proto.info.rdev),
-                           minor(np->proto.info.rdev), path);
-               if ((ret = lstat(path, &stb)) < 0)
-                   message("lstat %s; %m", path);
-           }
-       }
-    }
-    if (ret >= 0) {
-       dochmod(np, path);
-       dochown(np, path);
-    }
-
-}                              /*UpdateDev */
-
-static void
-UpdatePipe(CTREEPTR np, char *path)
-{                              /*UpdatePipe */
-
-    register int ret;
-
-    /*
-     * Don't have to call dochtyp() here; just set ret to the value
-     * saying everything is fine.
-     */
-    ret = -1;
-
-#ifdef KFLAG
-    if (ret == 1)
-       return;
-#endif /* KFLAG */
-    if ((np->flag & F_PROTO) != 0) {
-       if (ret >= 0) {
-           if (np->proto.info.rdev != stb.st_rdev) {
-               rm(path);
-               ret = -1;
-           }
-       }
-       if (ret < 0) {
-           loudonly_message("mknod p %s", path);
-
-           if (!opt_lazy) {
-               if (mknod
-                   (path, (int)(np->mode) | (int)(np->type),
-                    (int)(np->proto.info.rdev)) < 0)
-                   message("mknod p %s; %m", path);
-               if ((ret = lstat(path, &stb)) < 0)
-                   message("lstat %s; %m", path);
-           }
-       }
-    }
-
-    if (ret >= 0) {
-       dochmod(np, path);
-       dochown(np, path);
-    }
-
-}                              /*UpdatePipe */
-
-static void
-UpdateLnk(CTREEPTR np, char *path)
-{                              /*UpdateLnk */
-
-    register int ret;
-    char temp[MAXPATHLEN], temp2[MAXPATHLEN];
-    int cc;
-
-    ret = dochtyp(np, path);
-#ifdef KFLAG
-    if (ret == 1)
-       return;
-#endif /* KFLAG */
-    if ((np->flag & F_PROTO) == 0)
-       return;
-    if (np->updtspec & U_ABSPATH)
-       sprintf(temp, "%s", np->proto.info.path);
-    else
-       sprintf(temp, "%s%s", np->proto.info.path, path);
-    if (ret >= 0) {
-       if ((cc = readlink(path, temp2, sizeof(temp2) - 1)) < 0) {
-           message("readlink %s; %m", path);
-           return;
-       }
-       temp2[cc] = 0;
-       if (strcmp(temp2, temp)) {
-           if ((np->updtspec & U_NOOVERWRITE) == 0) {
-               rm(path);
-               ret = -1;
-           } else {
-               loudonly_message("INHIBIT %s updating", path);
-           }
-       }
-    }
-    if (ret < 0) {
-       loudonly_message("ln %s %s", path, temp);
-       if (!opt_lazy && symlink(temp, path) < 0)
-           message("symlink %s %s; %m", temp, path);
-    }
-
-}                              /*UpdateLnk */
-
-
-static void
-UpdateDir(CTREEPTR np, char *path)
-{                              /*UpdateDir */
-
-    register int ret;
-
-    ret = dochtyp(np, path);
-#ifdef KFLAG
-    if (ret == 1)
-       return;
-#endif /* KFLAG */
-    if (ret < 0) {
-       loudonly_message("mkdir %s", path);
-       if (!opt_lazy) {
-           if (mkdir(path, (int)np->mode & ~S_IFMT) < 0)
-               message("mkdir %s; %m", path);
-           if ((ret = lstat(path, &stb)) < 0)
-               message("lstat %s; %m", path);
-       }
-    }
-    if (np->updtspec & U_LOSTFOUND)
-       (void)FixLostFoundDir(path);
-    if (np->updtspec & U_RMEXTRA)
-       (void)FixDir(np, path);
-    if (ret >= 0) {
-       dochmod(np, path);
-       dochown(np, path);
-    }
-
-}                              /*UpdateDir */
-
-
-static void
-UpdateReg(CTREEPTR np, char *path)
-{                              /*UpdateReg */
-
-    register int ret;
-
-    ret = dochtyp(np, path);
-#ifdef KFLAG
-    if (ret == 1)
-       return;
-#endif /* KFLAG */
-    if ((np->flag & F_PROTO) != 0) {
-       if (ret < 0)
-           np->updtspec &= ~U_RENAMEOLD;
-       if (ret >= 0) {
-           if ((np->updtspec & U_NOOVERWRITE) == 0)
-               if (np->mtime != stb.st_mtime)
-                   ret = -1;
-       }
-       if (ret < 0) {
-           if ((ret = FixReg(np, path)) >= 0)
-               ret = lstat(path, &stb);
-           if (ret >= 0)
-               dochtim(np, path);
-       }
-    }
-    if (ret >= 0) {
-       dochmod(np, path);
-       dochown(np, path);
-    }
-
-}                              /*UpdateReg */
-
-
-/*
- * dochtyp
- *
- * This function makes sure the path on local disk has the same file type
- * as that in the given prototype.  If it doesn't (and the -rebootfile
- * flag hasn't been used with a file marked as requiring a reboot), then
- * we delete the local disk copy and return -1.  If inhibiting the overwrite
- * is in order, we return 1.  If the types already match (or the above
- * reboot scenario is true), we return 0.
- */
-
-static int
-dochtyp(CTREEPTR np, char *path)
-{                              /*dochtyp */
-    if (lstat(path, &stb) < 0)
-       return -1;
-#ifdef KFLAG
-    if (opt_kflag && (stb.st_mode & 0222) == 0) {
-       loudonly_message("INHIBIT %s updating", path);
-       return 1;
-    }
-#endif /* KFLAG */
-    if ((stb.st_mode & S_IFMT) == np->type)
-       return 0;
-    if (!opt_reboot && (np->flag & F_UPDT) && (np->updtspec & U_REBOOT)) {
-       message("%s is out of date; please REBOOT!", path);
-       return 0;
-    } else {
-       rm(path);
-       return -1;
-    }
-}                              /*dochtyp */
-
-static void
-dochmod(CTREEPTR np, char *path)
-{                              /*dochmod */
-    if ((np->flag & F_MODE) == 0)
-       return;
-    if ((np->mode & ~S_IFMT) == (stb.st_mode & ~S_IFMT))
-       return;
-    loudonly_message("chmod %s %o", path, np->mode & ~S_IFMT);
-    if (!opt_lazy && chmod(path, (int)np->mode & ~S_IFMT) < 0)
-       message("chmod %s; %m", path);
-}                              /*dochmod */
-
-static void
-dochown(CTREEPTR np, char *path)
-{                              /*dochown */
-    if ((np->flag & F_UID) == 0)
-       np->uid = stb.st_uid;
-    if ((np->flag & F_GID) == 0)
-       np->gid = stb.st_gid;
-    if (np->uid == stb.st_uid && np->gid == stb.st_gid)
-       return;
-    loudonly_message("chown %s %d %d", path, np->uid, np->gid);
-    if (!opt_lazy && chown(path, np->uid, np->gid) < 0)
-       message("chown %s; %m", path);
-}                              /*dochown */
-
-static void
-dochtim(CTREEPTR np, char *path)
-{                              /*dochtim */
-    struct timeval tm[2];
-
-    if (np->mtime == stb.st_mtime
-       || (!opt_reboot && (np->updtspec & U_REBOOT)))
-       return;
-    tm[0].tv_sec = tm[1].tv_sec = np->mtime;
-    tm[0].tv_usec = tm[1].tv_usec = 0;
-    if (!opt_silent) {
-       char *date;
-       time_t mtime = np->mtime;
-
-       date = ctime(&mtime);
-       date[24] = 0;
-       loudonly_message("utimes %s [%s]", path, date);
-    }
-    if (!opt_lazy && utimes(path, tm) < 0)
-       message("utimes %s; %m", path);
-}                              /*dochtim */
-
-static int
-FixLostFoundDir(char *path)
-{                              /*FixLostFoundDir */
-    if (stb.st_size >= 3584)
-       return 0;
-    return mklostfound(path);
-}                              /*FixLostFoundDir */
-
-static int
-FixDir(CTREEPTR np, char *path)
-{                              /*FixDir */
-    register DIR *dp;
-    register struct dirent *de;
-    register char *endp;
-
-    verbose_message("cleandir %s", path);
-    if ((dp = opendir(path)) == 0) {
-       message("opendir %s; %m", path);
-       return -1;
-    }
-    endp = path + strlen(path);
-    *endp++ = '/';
-    while ((de = readdir(dp)) != 0) {
-       if (de->d_name[0] == '.') {
-           if (de->d_name[1] == 0)
-               continue;
-           if (de->d_name[1] == '.' && de->d_name[2] == 0)
-               continue;
-       }
-       if (LocateChildNode(np, de->d_name, C_LOCATE) != 0)
-           continue;
-       (void)strcpy(endp, de->d_name);
-       rm(path);
-    }
-    *--endp = 0;
-    (void)closedir(dp);
-    return 0;
-}                              /*FixDir */
-
-static int
-FixReg(CTREEPTR np, char *path)
-{                              /*FixReg */
-    char new[MAXPATHLEN], old[MAXPATHLEN], temp[MAXPATHLEN];
-
-    if (!opt_reboot && (np->updtspec & U_REBOOT)) {
-       verbose_message
-           ("%s is a 'Q' file and -rebootfiles is set; not updated!", path);
-       return 0;
-    }
-    (void)sprintf(new, "%s.new", path);
-    if (np->updtspec & U_ABSPATH)
-       (void)sprintf(temp, "%s", np->proto.info.path);
-    else
-       (void)sprintf(temp, "%s%s", np->proto.info.path, path);
-    if (cp(temp, new))
-       return -1;
-    if (np->updtspec & U_RENAMEOLD) {
-       (void)sprintf(old, "%s.old", path);
-       (void)rm(old);
-       (void)ln(path, old);
-    }
-    if (mv(new, path))
-       return -1;
-    if (np->updtspec & U_REBOOT)
-       status = status_reboot;
-    return 0;
-}                              /*FixReg */
diff --git a/src/package/validupdates.h b/src/package/validupdates.h
deleted file mode 100644 (file)
index 15f1226..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2000, International Business Machines Corporation and others.
- * All Rights Reserved.
- * 
- * This software has been released under the terms of the IBM Public
- * License.  For details, see the LICENSE file in the top-level source
- * directory or online at http://www.openafs.org/dl/license10.html
- */
-
-/*------------------------------------------------------------------------
- * validupdates.c
- *
- * Description:
- *     Specification of all valid update modes for package, the AFS
- *     workstation configuration tool.
- *
- *------------------------------------------------------------------------*/
-
-#include <sys/param.h>
-
-struct updatetype {
-    u_short filetype;          /*Type of file */
-    u_short updtflags;         /*A valid update specification for the filetype */
-};
-
-/*
-  * These entries record the meaning of the sequence of letters appearing
-  * as the first field of a line in the package configuration file.
-  *
-  * Question: Are FIQ and FIAQ combinations semantically valid?
-  */
-static struct updatetype validupdates[] = {
-    S_IFBLK, /* B    */ 0,
-    S_IFCHR, /* C    */ 0,
-    S_IFDIR, /* D    */ 0,
-    S_IFDIR, /* DA   */ U_ABSPATH,
-    S_IFDIR, /* DR   */ U_RMEXTRA,
-    S_IFDIR, /* DRA  */ U_ABSPATH | U_RMEXTRA,
-    S_IFDIR, /* DX   */ U_LOSTFOUND,
-    S_IFDIR, /* DXA  */ U_ABSPATH | U_LOSTFOUND,
-    S_IFREG, /* F    */ 0,
-    S_IFREG, /* FA   */ U_ABSPATH,
-    S_IFREG, /* FI   */ U_NOOVERWRITE,
-    S_IFREG, /* FIA  */ U_ABSPATH | U_NOOVERWRITE,
-    S_IFREG, /* FO   */ U_RENAMEOLD,
-    S_IFREG, /* FOA  */ U_ABSPATH | U_RENAMEOLD,
-    S_IFREG, /* FQ   */ U_REBOOT,
-    S_IFREG, /* FAQ  */ U_ABSPATH | U_REBOOT,
-    S_IFREG, /* FIQ  */ U_NOOVERWRITE | U_REBOOT,
-    S_IFREG, /* FIAQ */ U_ABSPATH | U_NOOVERWRITE | U_REBOOT,
-    S_IFREG, /* FOQ  */ U_RENAMEOLD | U_REBOOT,
-    S_IFREG, /* FOAQ */ U_ABSPATH | U_RENAMEOLD | U_REBOOT,
-    S_IFLNK, /* L    */ 0,
-    S_IFLNK, /* LA   */ U_ABSPATH,
-    S_IFLNK, /* LI   */ U_NOOVERWRITE,
-    S_IFLNK, /* LIA  */ U_ABSPATH | U_NOOVERWRITE,
-#ifndef AFS_AIX_ENV
-    S_IFSOCK, /* S    */ 0,
-#endif /* AFS_AIX_ENV */
-#ifdef S_IFIFO
-    S_IFIFO, /*P     */ 0,
-    S_IFIFO, /*PA    */ U_ABSPATH,
-    S_IFIFO, /*PO    */ U_RENAMEOLD,
-    S_IFIFO, /*PI    */ U_NOOVERWRITE,
-    S_IFIFO, /*PAO   */ U_ABSPATH | U_RENAMEOLD,
-    S_IFIFO, /*PAI   */ U_NOOVERWRITE,
-#endif /* S_IFIFO */
-    /* W  0, $$what?: undocumented feature */
-    0, 0
-};
diff --git a/src/package/y.tab.h.hidden b/src/package/y.tab.h.hidden
deleted file mode 100644 (file)
index 3dee3be..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-
-typedef union 
-{
-  u_short usval;
-  int ival;
-  char chval;
-  char *strval;
-  PROTOTYPE protoval;
-  OWNER ownval;
-  MODE modeval;
-} YYSTYPE;
-extern YYSTYPE yylval;
-# define WHITESPACE 257
-# define COMMENT 258
-# define NEWLINE 259
-# define BLANKLINE 260
-# define REGTYPE 261
-# define DIRTYPE 262
-# define LNKTYPE 263
-# define BLKTYPE 264
-# define CHRTYPE 265
-# define SOCKTYPE 266
-# define LETTER 267
-# define PATHNAME 268
-# define DIGIT 269
diff --git a/src/wsadmin.lib/aix_22.generic b/src/wsadmin.lib/aix_22.generic
deleted file mode 100644 (file)
index 9b9bf1f..0000000
+++ /dev/null
@@ -1,388 +0,0 @@
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License.  For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-#
-# Generic configuration for an AFS aix_22 machine.
-#
-
-
-D      /                               bin     bin      755
-D      /afs                            root    system   777
-D      /audit                          bin     bin      755
-D      /bin                            bin     bin      755
-D      /diskette0                      bin     bin      777
-D      /diskette1                      bin     bin      777
-D      /etc                            bin     system   775
-D      /inst_updt.actv                 root    system   755
-D      /lib                            bin     bin      755
-DX     /lost+found                     root    system   777
-D      /mnt                            bin     bin      777
-D      /mnt1                           bin     bin      777
-DR     /tmp                            root    system   777
-FAQ    /unix           ${machine}/usr/sys/unix.std root system  644
-LA     /unix.std       /unix
-D      /usr                            bin     bin      755
-D      /vrm                            root    system   755
-D      /vrmmnt                         bin     system   775
-
-
-%define currdir /bin
-
-F      ${currdir}/Rsh          ${machine}      bin     bin      555
-F      ${currdir}/STTY         ${machine}      bin     bin      555
-F      ${currdir}/actman       ${machine}      root    bin      5555
-F      ${currdir}/ar           ${machine}      bin     bin      555
-F      ${currdir}/as           ${machine}      bin     bin      555
-F      ${currdir}/at           ${machine}      root    bin      5555
-F      ${currdir}/awk          ${machine}      bin     bin      555
-F      ${currdir}/basename     ${machine}      bin     bin      555
-F      ${currdir}/batch        ${machine}      bin     bin      555
-F      ${currdir}/bellmail     ${machine}      bin     mail     2555
-F      ${currdir}/bosopen      ${machine}      bin     bin      555
-F      ${currdir}/cat          ${machine}      bin     bin      555
-F      ${currdir}/chmod        ${machine}      bin     bin      555
-F      ${currdir}/chown        ${machine}      bin     bin      555
-F      ${currdir}/chtcb        ${machine}      root    bin      500
-F      ${currdir}/cmp          ${machine}      bin     bin      555
-F      ${currdir}/cp           ${machine}      bin     bin      555
-F      ${currdir}/cpio         ${machine}      bin     bin      555
-F      ${currdir}/crontab      ${machine}      root    bin      4555
-F      ${currdir}/csh          ${machine}      bin     bin      555
-F      ${currdir}/ctab         ${machine}      bin     bin      555
-F      ${currdir}/cut          ${machine}      bin     bin      555
-F      ${currdir}/date         ${machine}      bin     bin      555
-F      ${currdir}/dd           ${machine}      bin     bin      555
-F      ${currdir}/defkey       ${machine}      root    system   555
-F      ${currdir}/del          ${machine}      bin     bin      555
-F      ${currdir}/df           ${machine}      root    bin      4555
-F      ${currdir}/di           ${machine}      bin     bin      555
-F      ${currdir}/diff         ${machine}      bin     bin      555
-F      ${currdir}/dirname      ${machine}      bin     bin      555
-F      ${currdir}/display      ${machine}      bin     bin      555
-F      ${currdir}/dosdel       ${machine}      bin     bin      555
-F      ${currdir}/dosdir       ${machine}      bin     bin      555
-F      ${currdir}/dosread      ${machine}      bin     bin      555
-F      ${currdir}/doswrite     ${machine}      bin     bin      555
-F      ${currdir}/dspeu        ${machine}      bin     bin      555
-F      ${currdir}/du           ${machine}      bin     bin      555
-F      ${currdir}/dumpfmt      ${machine}      root    system   6555
-F      ${currdir}/echo         ${machine}      bin     bin      555
-F      ${currdir}/ed           ${machine}      bin     bin      555
-F      ${currdir}/egrep        ${machine}      bin     bin      555
-F      ${currdir}/env          ${machine}      bin     bin      555
-F      ${currdir}/errpt        ${machine}      root    bin      6555
-F      ${currdir}/expr         ${machine}      bin     bin      555
-F      ${currdir}/false        ${machine}      bin     bin      555
-F      ${currdir}/fcc          ${machine}      bin     bin      555
-F      ${currdir}/fgrep        ${machine}      bin     bin      555
-F      ${currdir}/file         ${machine}      bin     bin      555
-F      ${currdir}/find         ${machine}      bin     bin      555
-F      ${currdir}/format       ${machine}      root    system   6555
-F      ${currdir}/fptype       ${machine}      bin     bin      555
-F      ${currdir}/getopt       ${machine}      bin     bin      555
-F      ${currdir}/gettext      ${machine}      bin     bin      555
-F      ${currdir}/grep         ${machine}      bin     bin      555
-F      ${currdir}/groups       ${machine}      bin     bin      555
-F      ${currdir}/hostname     ${machine}      bin     bin      555
-F      ${currdir}/ipcrm        ${machine}      root    bin      6555
-F      ${currdir}/ipcs         ${machine}      root    bin      6555
-F      ${currdir}/keyboard     ${machine}      bin     bin      555
-F      ${currdir}/kill         ${machine}      bin     bin      555
-F      ${currdir}/killall      ${machine}      bin     system   2555
-F      ${currdir}/ld           ${machine}      bin     bin      555
-F      ${currdir}/li           ${machine}      bin     bin      555
-F      ${currdir}/line         ${machine}      bin     bin      555
-F      ${currdir}/ln           ${machine}      bin     bin      555
-F      ${currdir}/locator      ${machine}      bin     bin      555
-FO     ${currdir}/login        ${machine}      root    transarc 755
-F      ${currdir}/loginx       ${machine}      root    bin      544
-F      ${currdir}/logname      ${machine}      bin     bin      555
-F      ${currdir}/logout       ${machine}      root    bin      6555
-F      ${currdir}/lorder       ${machine}      bin     bin      555
-F      ${currdir}/ls           ${machine}      bin     bin      555
-F      ${currdir}/m4           ${machine}      bin     bin      555
-F      ${currdir}/make         ${machine}      bin     bin      555
-F      ${currdir}/mkdir        ${machine}      root    bin      555
-F      ${currdir}/mv           ${machine}      root    bin      555
-F      ${currdir}/netstat      ${machine}      root    bin      6555
-F      ${currdir}/newgrp       ${machine}      root    bin      6555
-F      ${currdir}/news         ${machine}      bin     bin      555
-F      ${currdir}/nice         ${machine}      bin     bin      555
-F      ${currdir}/nm           ${machine}      bin     bin      555
-F      ${currdir}/nohup        ${machine}      bin     bin      555
-F      ${currdir}/passwd       ${machine}      root    bin      6555
-F      ${currdir}/paste        ${machine}      bin     bin      555
-F      ${currdir}/pg           ${machine}      bin     bin      555
-F      ${currdir}/pr           ${machine}      bin     bin      555
-F      ${currdir}/print        ${machine}      root    printq   6555
-F      ${currdir}/ps           ${machine}      root    bin      6555
-F      ${currdir}/puttext      ${machine}      bin     bin      555
-F      ${currdir}/pwd          ${machine}      bin     bin      555
-F      ${currdir}/rcp          ${machine}      root    system   6555
-F      ${currdir}/red          ${machine}      bin     bin      555
-F      ${currdir}/remsh        ${machine}      root    system   6555
-F      ${currdir}/rm           ${machine}      bin     bin      555
-F      ${currdir}/rmail        ${machine}      bin     mail     2555
-F      ${currdir}/rmdir        ${machine}      root    bin      555
-F      ${currdir}/rsh          ${machine}      root    system   6555
-F      ${currdir}/sed          ${machine}      bin     bin      555
-F      ${currdir}/setmaps      ${machine}      bin     bin      555
-F      ${currdir}/sh           ${machine}      bin     bin      555
-F      ${currdir}/shell        ${machine}      root    bin      6555
-F      ${currdir}/shlib        ${machine}      bin     bin      555
-F      ${currdir}/size         ${machine}      bin     bin      555
-F      ${currdir}/sleep        ${machine}      bin     bin      555
-F      ${currdir}/sort         ${machine}      bin     bin      555
-F      ${currdir}/sound        ${machine}      bin     bin      555
-F      ${currdir}/split        ${machine}      bin     bin      555
-F      ${currdir}/splp         ${machine}      bin     bin      555
-F      ${currdir}/strip        ${machine}      bin     bin      555
-F      ${currdir}/stty         ${machine}      bin     bin      555
-F      ${currdir}/su           ${machine}      root    bin      6555
-F      ${currdir}/sum          ${machine}      bin     bin      555
-F      ${currdir}/sync         ${machine}      bin     bin      555
-F      ${currdir}/tctl         ${machine}      bin     bin      555
-F      ${currdir}/tee          ${machine}      bin     bin      555
-F      ${currdir}/termdef      ${machine}      bin     bin      555
-F      ${currdir}/time         ${machine}      bin     bin      555
-F      ${currdir}/touch        ${machine}      bin     bin      555
-F      ${currdir}/trace        ${machine}      root    bin      6555
-F      ${currdir}/trcrpt       ${machine}      root    bin      6555
-F      ${currdir}/trcstop      ${machine}      root    bin      555
-F      ${currdir}/true         ${machine}      bin     bin      555
-F      ${currdir}/tsh          ${machine}      bin     bin      555
-F      ${currdir}/tsort        ${machine}      bin     bin      555
-F      ${currdir}/tty          ${machine}      bin     bin      555
-F      ${currdir}/tvi          ${machine}      bin     bin      555
-F      ${currdir}/uname        ${machine}      bin     bin      555
-F      ${currdir}/uniq         ${machine}      bin     bin      555
-F      ${currdir}/vcc          ${machine}      bin     bin      555
-F      ${currdir}/vrmfmt       ${machine}      bin     bin      555
-F      ${currdir}/wc           ${machine}      bin     bin      555
-F      ${currdir}/what         ${machine}      bin     bin      555
-F      ${currdir}/write        ${machine}      root    system   6555
-F      ${currdir}/xargs        ${machine}      bin     bin      555
-
-%define currdir /etc
-
-F      ${currdir}/.ilog        ${machine}      root     system   660
-F      ${currdir}/.init.state  ${machine}      root     system   644
-F      ${currdir}/.native      ${machine}      root     bin      544
-F      ${currdir}/3270.keys    ${machine}      root     system   664
-F      ${currdir}/3270keys.rt  ${machine}      root     system   664
-F      ${currdir}/4201.mlp     ${machine}      root     system   444
-F      ${currdir}/adduser      ${machine}      root     system   4554
-F      ${currdir}/audit        ${machine}      root     system   544
-F      ${currdir}/auditapp     ${machine}      root     system   544
-F      ${currdir}/auditbin     ${machine}      root     system   4544
-F      ${currdir}/auditpr      ${machine}      root     system   544
-F      ${currdir}/auditselect  ${machine}      root     system   544
-F      ${currdir}/auditstream  ${machine}      root     system   544
-F      ${currdir}/auditwrite   ${machine}      root     system   544
-F      ${currdir}/backup       ${machine}      root     system   4555
-F      ${currdir}/bffcreate    ${machine}      root     system   4554
-F      ${currdir}/biodd        ${machine}      bin      bin      644
-F      ${currdir}/biodd_cfg    ${machine}      bin      bin      555
-F      ${currdir}/biohelp      ${machine}      root     system   544
-F      ${currdir}/boot         ${machine}      bin      bin      444
-F      ${currdir}/budate       ${machine}      bin      system   664
-F      ${currdir}/cc.cfg       ${machine}      bin      system   664
-F      ${currdir}/chkcomp      ${machine}      root     system   4554
-F      ${currdir}/chngstate    ${machine}      root     system   4554
-F      ${currdir}/chparm       ${machine}      root     system   4554
-F      ${currdir}/ckprereq     ${machine}      root     system   4554
-F      ${currdir}/clri         ${machine}      bin      bin      555
-D      ${currdir}/codeserve    ${machine}      root     system   777
-F      ${currdir}/confgstatus  ${machine}      root     system   644
-F      ${currdir}/config       ${machine}      bin      bin      555
-F      ${currdir}/core         ${machine}      root     system   664
-F      ${currdir}/crash        ${machine}      bin      bin      555
-F      ${currdir}/cron         ${machine}      root     bin      544
-F      ${currdir}/cvfilter     ${machine}      root     system   4554
-F      ${currdir}/cvid         ${machine}      root     system   4554
-D      ${currdir}/ddi          ${machine}      bin     system    775
-F      ${currdir}/devices      ${machine}      root     system   4554
-F      ${currdir}/devnm        ${machine}      bin      bin      555
-F      ${currdir}/dfsck        ${machine}      root     system   4554
-F      ${currdir}/diskhelp     ${machine}      root     system   544
-F      ${currdir}/dsipc        ${machine}      root     system   4550
-F      ${currdir}/environment  ${machine}      root     system   666
-F      ${currdir}/errdead      ${machine}      bin      bin      555
-F      ${currdir}/errfmt       ${machine}      bin      bin      666
-F      ${currdir}/errstop      ${machine}      root     system   4554
-F      ${currdir}/errupdate    ${machine}      root     bin      4555
-F      ${currdir}/ethllc.cfg   ${machine}      root     system   755
-F      ${currdir}/filesystems  ${machine}      root     system   444
-F      ${currdir}/filters      ${machine}      root     system   664
-F      ${currdir}/fsck         ${machine}      root     system   4554
-F      ${currdir}/fsdb         ${machine}      bin      bin      555
-F      ${currdir}/gated.conf   ${machine}      root     system   664
-F      ${currdir}/getty        ${machine}      root     bin      544
-F      ${currdir}/group        ${machine}      root     system   644
-F      ${currdir}/hosts        ${machine}      root     system   664
-F      ${currdir}/hosts.equiv  ${machine}      root     system   664
-F      ${currdir}/hosts.lpd    ${machine}      root     system   664
-F      ${currdir}/ifconfig     ${machine}      root     system   4555
-F      ${currdir}/inetd        ${machine}      root     system   4554
-F      ${currdir}/inetd.conf   ${machine}      root     system   664
-F      ${currdir}/init         ${machine}      root     bin      544
-F      ${currdir}/install      ${machine}      bin      bin      555
-F      ${currdir}/installp     ${machine}      root     system   4554
-F      ${currdir}/intiodn      ${machine}      root     system   664
-F      ${currdir}/inudatep     ${machine}      root     system   544
-F      ${currdir}/inudocm      ${machine}      root     system   4554
-F      ${currdir}/inuerra      ${machine}      root     system   544
-F      ${currdir}/inuipl       ${machine}      root     system   544
-F      ${currdir}/inurecv      ${machine}      root     system   544
-F      ${currdir}/inurest      ${machine}      root     system   544
-F      ${currdir}/inusave      ${machine}      root     system   544
-F      ${currdir}/inustatus    ${machine}      root     system   544
-F      ${currdir}/inuumsg      ${machine}      root     system   544
-F      ${currdir}/inuupdt      ${machine}      root     system   544
-F      ${currdir}/inuvlid      ${machine}      root     system   544
-F      ${currdir}/link         ${machine}      root     bin      544
-D      ${currdir}/locks                        bin     bin      777
-F      ${currdir}/magic        ${machine}      bin      bin      444
-F      ${currdir}/master       ${machine}      bin      bin      444
-F      ${currdir}/mdkaf        ${machine}      root     system   664
-F      ${currdir}/mdrc         ${machine}      root     system   4554
-F      ${currdir}/mdverify     ${machine}      root     system   544
-F      ${currdir}/minidisks    ${machine}      root     system   4554
-F      ${currdir}/mkfs         ${machine}      bin      bin      555
-F      ${currdir}/mknod        ${machine}      bin      bin      555
-F      ${currdir}/mnttab       ${machine}      root     system   644
-F      ${currdir}/motd         ${machine}      201      system   664
-F      ${currdir}/mount        ${machine}      root     system   4555
-F      ${currdir}/mvdir        ${machine}      root     system   555
-F      ${currdir}/mvmd         ${machine}      root     system   4554
-F      ${currdir}/ncheck       ${machine}      root     system   4550
-F      ${currdir}/net          ${machine}      201      system   664
-F      ${currdir}/netconfig    ${machine}      root     system   4555
-F      ${currdir}/networks     ${machine}      root     system   666
-F      ${currdir}/nickname     ${machine}      bin      bin      555
-D      ${currdir}/nls                          bin      bin      755
-L      ${currdir}/ogroup       ${machine}
-L      ${currdir}/opasswd      ${machine}
-F      ${currdir}/passwd       ${machine}      root     system   664
-F      ${currdir}/pdelay       ${machine}      root     system   4554
-F      ${currdir}/pdisable     ${machine}      root     system   4554
-F      ${currdir}/penable      ${machine}      root     system   4554
-F      ${currdir}/phold        ${machine}      root     system   4554
-F      ${currdir}/pl8.cfg      ${machine}      bin      system   664
-F      ${currdir}/portmap      ${machine}      bin      bin      554
-F      ${currdir}/ports        ${machine}      bin      system   664
-F      ${currdir}/portstatus   ${machine}      bin      system   664
-F      ${currdir}/predefined   ${machine}      root     system   664
-F      ${currdir}/profile      ${machine}      bin      system   664
-D      ${currdir}/profsvcs                     root     system   775
-F      ${currdir}/protocols    ${machine}      root     system   444
-F      ${currdir}/ps_data      ${machine}      root     transarc         664
-F      ${currdir}/pshare       ${machine}      root     system   4554
-F      ${currdir}/pstart       ${machine}      root     system   4554
-F      ${currdir}/ptysproc     ${machine}      root     system   4555
-F      ${currdir}/qconfig      ${machine}      root     system   664
-F      ${currdir}/qconfig.bin  ${machine}      root     printq   644
-F      ${currdir}/qdaemon      ${machine}      root     printq   6554
-F      ${currdir}/rasconf      ${machine}      bin      system   664
-F      ${currdir}/rc           ${machine}      bin      system   664
-F      ${currdir}/rc.actvsrvc  ${machine}      root     system   644
-F      ${currdir}/rc.include   ${machine}      201      system   666
-F      ${currdir}/rc.sendmail  ${machine}      root     system   770
-F      ${currdir}/rc.standalone ${machine}     root     system   775
-F      ${currdir}/rc.tcpip     ${machine}      root     system   664
-F      ${currdir}/rc.unactvsrvc ${machine}     root     system   644
-F      ${currdir}/reboot       ${machine}      root     system   555
-F      ${currdir}/resolv.conf  ${machine}      root     transarc         666
-F      ${currdir}/restore      ${machine}      root     system   4555
-F      ${currdir}/rlogind      ${machine}      root     system   4554
-F      ${currdir}/route        ${machine}      root     system   4554
-F      ${currdir}/rpcinfo      ${machine}      bin      bin      555
-F      ${currdir}/rshd         ${machine}      root     system   4554
-F      ${currdir}/scsihelp     ${machine}      root     system   544
-F      ${currdir}/scsiproc     ${machine}      root     system   4555
-F      ${currdir}/secure       ${machine}      root     system   700
-F      ${currdir}/securetcpip  ${machine}      root     system   4554
-D      ${currdir}/security                     root     system   700
-F      ${currdir}/services     ${machine}      root     system   444
-F      ${currdir}/setdma       ${machine}      root     system   4554
-F      ${currdir}/setmnt       ${machine}      bin      bin      555
-F      ${currdir}/setrdperm    ${machine}      root     system   4554
-F      ${currdir}/shmsystem    ${machine}      bin      bin      755
-F      ${currdir}/shmuser      ${machine}      bin      bin      755
-F      ${currdir}/shutdown     ${machine}      root     system   4554
-F      ${currdir}/shutdown.sh  ${machine}      root     system   554
-F      ${currdir}/skulker      ${machine}      bin      bin      555
-F      ${currdir}/slattach     ${machine}      root     system   4554
-D      ${currdir}/ssm                          root    system  777
-F      ${currdir}/sysck        ${machine}      root     system   500
-F      ${currdir}/syslog.conf  ${machine}      root     system   444
-F      ${currdir}/syslog.pid   ${machine}      root     system   666
-F      ${currdir}/syslogd      ${machine}      root     system   550
-F      ${currdir}/system       ${machine}      root     system   444
-F      ${currdir}/system.bk    ${machine}      root     system   444
-F      ${currdir}/tapechk      ${machine}      root     system   555
-F      ${currdir}/tcp.clean    ${machine}      root     system   664
-F      ${currdir}/tlog         ${machine}      bin      bin      555
-F      ${currdir}/tlogger      ${machine}      bin      bin      555
-F      ${currdir}/trcfmt       ${machine}      bin      bin      666
-F      ${currdir}/trcprofile   ${machine}      bin      bin      666
-F      ${currdir}/trcupdate    ${machine}      root     system   4555
-F      ${currdir}/trcupdt      ${machine}      root     system   4555
-F      ${currdir}/tsh_profile  ${machine}      bin      system   664
-F      ${currdir}/umount       ${machine}      root     system   4555
-F      ${currdir}/unlink       ${machine}      root     bin      544
-F      ${currdir}/unmount      ${machine}      root     system   4555
-F      ${currdir}/updatep      ${machine}      root     system   4554
-F      ${currdir}/users        ${machine}      root     system   4554
-F      ${currdir}/utmp         ${machine}      bin      bin      644
-F      ${currdir}/utmpx        ${machine}      root     system   644
-F      ${currdir}/varyoff      ${machine}      root     system   4554
-F      ${currdir}/varyon       ${machine}      root     system   4554
-F      ${currdir}/verify       ${machine}      root     system   555
-F      ${currdir}/vfs          ${machine}      root     system   664
-F      ${currdir}/vrcfont      ${machine}      root     system   544
-F      ${currdir}/vrcmain      ${machine}      root     system   544
-F      ${currdir}/vrmconfig    ${machine}      root     system   4554
-F      ${currdir}/vrmconfig.out ${machine}     root     system   666
-D      ${currdir}/vrmdd                        bin     system    775
-D      ${currdir}/vtm                          bin     bin       755
-F      ${currdir}/wall         ${machine}      bin      bin      555
-F      ${currdir}/watch        ${machine}      root     bin      555
-F      ${currdir}/writesrv     ${machine}      root     system   554
-F      ${currdir}/x25load      ${machine}      root     system   544
-
-
-%define currdir /lib
-
-F      ${currdir}/ccom0        ${machine}      bin     bin      555
-F      ${currdir}/ccom1        ${machine}      bin     bin      555
-F      ${currdir}/ccomq        ${machine}      bin     bin      555
-F      ${currdir}/copt         ${machine}      bin     bin      555
-F      ${currdir}/cpp          ${machine}      bin     bin      555
-F      ${currdir}/crt0.o       ${machine}      bin     bin      444
-F      ${currdir}/libPW.a      ${machine}      bin     bin      444
-F      ${currdir}/libc.a       ${machine}      bin     bin      444
-F      ${currdir}/libfc.a      ${machine}      bin     bin      444
-F      ${currdir}/libfm.a      ${machine}      bin     bin      444
-F      ${currdir}/libm.a       ${machine}      bin     bin      444
-F      ${currdir}/librts.a     ${machine}      bin     bin      444
-F      ${currdir}/mcrt0.o      ${machine}      bin     bin      444
-F      ${currdir}/sharsys.020201 ${machine}    root    system   555
-D      /usr/vice/cache                         root    system   755
-DR     /usr/vice/etc                           root    system   755
-
-
-%define currdir /usr/vice/etc
-
-FAQ    ${currdir}/CellServDB   ${common}/etc/CellServDB root   system   644
-FAQ    ${currdir}/ThisCell     ${common}/etc/ThisCell  root    system   644
-FQ     ${currdir}/afsd         ${afstest}/root.client  root    system   755
-FAQ    ${currdir}/cacheinfo    ${common}/etc/cacheinfo root    system   644
-FA     ${currdir}/bos          ${afstest}/bin/bos      root    system   755
-FA     ${currdir}/fs           ${afstest}/bin/fs       root    system   755
diff --git a/src/wsadmin.lib/aix_22.generic.dev b/src/wsadmin.lib/aix_22.generic.dev
deleted file mode 100644 (file)
index 5cd59a9..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License.  For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-#
-# Package specification for the aix_22 /dev directory.
-#
-DR     /dev                            ${treemode}
-C      /dev/appltrace  11       2      ${aix_rootsys}  666
-C      /dev/audit      22       0      ${aix_rootsys} 1440
-C      /dev/biodd      23       0      ${aix_rootsys} 1666
-C      /dev/bus        16       0      ${aix_rootsys}  666
-C      /dev/config     13       0      ${aix_rootsys}  644
-C      /dev/console     5       1      ${aix_rootsys}  600
-C      /dev/error       8       0      ${aix_rootsys}  666
-B      /dev/fd0        17       0      ${aix_rootsys}  666
-B      /dev/fd0.8      17       8      ${aix_rootsys}  666
-B      /dev/fd1        17       1      ${aix_rootsys}  666
-B      /dev/fd1.8      17       9      ${aix_rootsys}  666
-B      /dev/fs0        17       4      ${aix_rootsys}  600
-B      /dev/fs0.8      17      12      ${aix_rootsys}  600
-B      /dev/fs1        17       5      ${aix_rootsys}  666
-B      /dev/fs1.8      17      13      ${aix_rootsys}  666
-B      /dev/hd0         0       0      ${aix_rootsys}  666
-B      /dev/hd1         0       1      ${aix_rootsys}  600
-B      /dev/hd2         0       2      ${aix_rootsys}  600
-B      /dev/hd3         0       3      ${aix_rootsys}  600
-B      /dev/hd4         0       4      ${aix_rootsys}  600
-B      /dev/hd5         0       5      ${aix_rootsys}  600
-B      /dev/hd6         0       6      ${aix_rootsys}  600
-B      /dev/hd7         0       7      ${aix_rootsys}  600
-C      /dev/hft         5       0      ${aix_rootsys} 1666
-C      /dev/kmem        3       1      ${aix_rootsys}  440
-C      /dev/lp          6       0      ${aix_rootsys}  644
-C      /dev/mem         3       0      ${aix_rootsys}  440
-C      /dev/null        3       2      ${aix_rootsys}  666
-C      /dev/nvram      12       0      ${aix_rootsys}  640
-C      /dev/osm        10       0      ${aix_rootsys}  600
-C      /dev/osm.all    10       2      ${aix_rootsys}  600
-C      /dev/osm.cur    10       1      ${aix_rootsys}  600
-C      /dev/prf        14       0      ${aix_rootsys}  666
-C      /dev/ptc0        9       0      ${aix_rootsys}  666
-C      /dev/ptc1        9       1      ${aix_rootsys}  666
-C      /dev/ptc10       9      10      ${aix_rootsys}  666
-C      /dev/ptc11       9      11      ${aix_rootsys}  666
-C      /dev/ptc12       9      12      ${aix_rootsys}  666
-C      /dev/ptc13       9      13      ${aix_rootsys}  666
-C      /dev/ptc14       9      14      ${aix_rootsys}  666
-C      /dev/ptc2        9       2      ${aix_rootsys}  666
-C      /dev/ptc3        9       3      ${aix_rootsys}  666
-C      /dev/ptc4        9       4      ${aix_rootsys}  666
-C      /dev/ptc5        9       5      ${aix_rootsys}  666
-C      /dev/ptc6        9       6      ${aix_rootsys}  666
-C      /dev/ptc7        9       7      ${aix_rootsys}  666
-C      /dev/ptc8        9       8      ${aix_rootsys}  666
-C      /dev/ptc9        9       9      ${aix_rootsys}  666
-C      /dev/pts0        7       0      ${aix_rootsys}  620
-C      /dev/pts1        7       1      ${aix_rootsys}  620
-C      /dev/pts10       7      10      ${aix_rootsys}  622
-C      /dev/pts11       7      11      ${aix_rootsys}  600
-C      /dev/pts12       7      12      ${aix_rootsys}  622
-C      /dev/pts13       7      13      ${aix_rootsys}  600
-C      /dev/pts14       7      14      ${aix_rootsys}  666
-C      /dev/pts2        7       2      ${aix_rootsys}  620
-C      /dev/pts3        7       3      ${aix_rootsys}  620
-C      /dev/pts4        7       4      ${aix_rootsys}  600
-C      /dev/pts5        7       5      ${aix_rootsys}  622
-C      /dev/pts6        7       6      ${aix_rootsys}  666
-C      /dev/pts7        7       7      ${aix_rootsys}  666
-C      /dev/pts8        7       8      ${aix_rootsys}  622
-C      /dev/pts9        7       9      ${aix_rootsys}  666
-C      /dev/ptyp0       9       0      ${aix_rootsys}  666
-C      /dev/ptyp1       9       1      ${aix_rootsys}  666
-C      /dev/ptyp2       9       2      ${aix_rootsys}  666
-C      /dev/ptyp3       9       3      ${aix_rootsys}  666
-C      /dev/ptyp4       9       4      ${aix_rootsys}  666
-C      /dev/ptyp5       9       5      ${aix_rootsys}  666
-C      /dev/ptyp6       9       6      ${aix_rootsys}  666
-C      /dev/ptyp7       9       7      ${aix_rootsys}  666
-C      /dev/ptyp8       9       8      ${aix_rootsys}  666
-C      /dev/ptyp9       9       9      ${aix_rootsys}  666
-C      /dev/ptypa       9      10      ${aix_rootsys}  666
-C      /dev/ptypb       9      11      ${aix_rootsys}  666
-C      /dev/ptypc       9      12      ${aix_rootsys}  666
-C      /dev/ptypd       9      13      ${aix_rootsys}  666
-C      /dev/ptype       9      14      ${aix_rootsys}  666
-C      /dev/rfd0       17       0      ${aix_rootsys}  666
-C      /dev/rfd0.8     17       8      ${aix_rootsys}  666
-C      /dev/rfd1       17       1      ${aix_rootsys}  666
-C      /dev/rfd1.8     17       9      ${aix_rootsys}  666
-C      /dev/rfs0       17       4      ${aix_rootsys}  666
-C      /dev/rfs0.8     17      12      ${aix_rootsys}  666
-C      /dev/rfs1       17       5      ${aix_rootsys}  666
-C      /dev/rfs1.8     17      13      ${aix_rootsys}  666
-C      /dev/rhd0        0       0      ${aix_rootsys}  600
-C      /dev/rhd1        0       1      ${aix_rootsys}  600
-C      /dev/rhd2        0       2      ${aix_rootsys}  600
-C      /dev/rhd3        0       3      ${aix_rootsys}  600
-C      /dev/rhd4        0       4      ${aix_rootsys}  600
-C      /dev/rhd5        0       5      ${aix_rootsys}  600
-C      /dev/rhd6        0       6      ${aix_rootsys}  600
-C      /dev/rhd7        0       7      ${aix_rootsys}  600
-C      /dev/rmt12      15      12      ${aix_rootsys}  666
-C      /dev/rmt4       15       4      ${aix_rootsys}  666
-C      /dev/rmt8       15       8      ${aix_rootsys}  666
-C      /dev/sock       20       0      ${aix_rootsys} 1666
-C      /dev/tty         2       0      ${aix_rootsys}  666
-C      /dev/ttyp0       7       0      ${aix_rootsys}  620
-C      /dev/ttyp1       7       1      ${aix_rootsys}  620
-C      /dev/ttyp2       7       2      ${aix_rootsys}  620
-C      /dev/ttyp3       7       3      ${aix_rootsys}  620
-C      /dev/ttyp4       7       4      ${aix_rootsys}  600
-C      /dev/ttyp5       7       5      ${aix_rootsys}  622
-C      /dev/ttyp6       7       6      ${aix_rootsys}  666
-C      /dev/ttyp7       7       7      ${aix_rootsys}  666
-C      /dev/ttyp8       7       8      ${aix_rootsys}  666
-C      /dev/ttyp9       7       9      ${aix_rootsys}  666
-C      /dev/ttypa       7      10      ${aix_rootsys}  622
-C      /dev/ttypb       7      11      ${aix_rootsys}  600
-C      /dev/ttypc       7      12      ${aix_rootsys}  622
-C      /dev/ttypd       7      13      ${aix_rootsys}  600
-C      /dev/ttype       7      14      ${aix_rootsys}  666
-C      /dev/unixtrace  11       1      ${aix_rootsys}  644
-C      /dev/vrmtrace   11       0      ${aix_rootsys} 1644
diff --git a/src/wsadmin.lib/aix_22.readonly b/src/wsadmin.lib/aix_22.readonly
deleted file mode 100644 (file)
index 11eeea7..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License.  For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-#
-# Package include file for the aix_22 specifying use of only read-only
-# volumes.
-#
-%ifndef        cell
-%define        cell    transarc.com
-%endif cell
-
-%define        common          /afs/${cell}/common
-%define        machine         /afs/${cell}/aix_22
-%define        etcdir          ${machine}
-
-#
-# Compilation destination directories
-#
-%define testdest       /afs/${cell}/aix_22/usr/afs.test
-%define reldest                /afs/${cell}/aix_22/usr/afs.rel
-%define devdest                /afs/${cell}/aix_22/usr/afs.dev
-
-#
-# Version directories
-#
-%define afstest                ${testdest}
-%define afsrel         ${reldest}
-%define afsdev         ${devdest}
diff --git a/src/wsadmin.lib/aix_22.readwrite b/src/wsadmin.lib/aix_22.readwrite
deleted file mode 100644 (file)
index 3a2e4ef..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License.  For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-#
-# Package include file for the aix_22 specifying use of only read-write
-# volumes.
-#
-%ifndef        cell
-%define        cell    transarc.com
-%endif cell
-
-%define        common          /afs/.${cell}/common
-%define        machine         /afs/.${cell}/aix_22
-%define        etcdir          ${machine}
-
-#
-# Compilation destination directories
-#
-%define testdest       /afs/.${cell}/aix_22/usr/afs.test
-%define reldest                /afs/.${cell}/aix_22/usr/afs.rel
-%define devdest                /afs/.${cell}/aix_22/usr/afs.dev
-
-#
-# Version directories
-#
-%define afstest                ${testdest}
-%define afsrel         ${reldest}
-%define afsdev         ${devdest}
diff --git a/src/wsadmin.lib/base.generic b/src/wsadmin.lib/base.generic
deleted file mode 100644 (file)
index e1b821c..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License.  For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-#
-# Base package definitions.
-#
-%ifndef        cell
-%define        cell    transarc.com
-%endif cell
-
-%ifndef        sys
-%include /etc/package.sys
-%endif sys
-%define        ${name}         ${name}
-%define        ${cpu}          ${cpu}
-%define        ${sys}          ${sys}
-%define        ${dept}         ${dept}
-%define        ${hostname}     ${hostname}
-
-%ifdef aix_22
-%      define  AIX
-%      define  rootlinks
-%ifndef        noafsd 
-%      define  afsd
-%endif noafsd
-%endif aix_22
-
-%ifdef rt_r3
-%      define  RT
-%      define  rootlinks
-%ifndef        noafsd 
-%      define  afsd
-%endif noafsd
-%endif rt_r3
-
-%ifdef rt_r4
-%      define  RT
-%      define  rootlinks
-%ifndef        noafsd 
-%      define  afsd
-%endif noafsd
-%endif rt_r4
-
-%ifdef sun2_35
-%      define  SUN
-%      define  sunV3
-%      define  sunV35
-%      define  suntools
-%ifndef        noafsd
-%      define  afsd
-%endif no      afsd
-%endif sun2_35
-
-%ifdef sun3_35 
-%      define  SUN
-%      define  sunV3
-%      define  sunV35
-%      define  suntools
-%ifndef        noafsd
-%      define  afsd
-%endif noafsd
-%endif sun3_35
-
-%ifdef vax_22
-%      define afsd
-%      define  VAX
-%endif vax_22
-
-%ifdef mac2_51
-%ifndef        noafsd
-%      define  afsd
-%endif noafsd
-%define        MAC2
-%ifdef         MAC2_SUN
-%      define  sunV3
-%      define  sunV35
-%      define  sun3_35
-%endif         MAC2_SUN
-%endif mac2_51
-
-#
-# Some definitions to handle common combinations of owner, group,
-# and protection fields.
-#
-%define        rzmode          root wheel 600
-%define        usermode        root wheel 666
-%define systemmode     root wheel 644
-%define        diskmode        root wheel 644
-%define        ptymode         root wheel 666
-%define        ttymode         root wheel 666
-%define        tmpmode         root wheel 777
-%define        binmode         root wheel 755
-%define        suidmode        root wheel 6755
-%define        textmode        root wheel 644
-%define        treemode        root wheel 755
-%define        rdwrmode        root wheel 666
-%define        romode          root wheel 444
-%define        weirdmode       root wheel 6777
-%define        cachemode       root wheel 700
-%define        daemonmode      daemon daemon 755
-%define        daemonsuidmode  daemon daemon 6755
-
-%define aix_rootbin    root bin
-%define aix_rootprintq root printq
-%define aix_rootstaff  root staff
-%define aix_rootsys    root system
-%define aix_binbin     bin bin
-%define aix_binmail    bin mail
-%define aix_binsys     bin system
-%define aix_addsys     adduser system
-
-%define aix_romode     444
-%define aix_loginmode  544
-%define aix_usermode   666
-%define aix_systemmode 644
-%define aix_textmode   644
-%define aix_rwmode1    660
-%define aix_allrugw    664
-%define aix_uexmode    700
-%define aix_binmode    755
-%define aix_tmpmode    777
-%define aix_fullmode   777
-%define aix_suidmode0  2744
-%define aix_suidmode1  2754
-%define aix_suidmode2  2755
-%define aix_suidmode3  2750
-%define aix_sgidmode   4755
-%define aix_sugidmode  6755
-%define aix_sugidmode2 6744
-%define aix_miscmode0  770
-%define aix_miscmode1  775
-%define aix_miscmode2  754
-%define aix_miscmode3  750
diff --git a/src/wsadmin.lib/devel b/src/wsadmin.lib/devel
deleted file mode 100644 (file)
index 75417f9..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License.  For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-#
-# Package environment variable: Is this a (CMU) development machine?
-#
-%define        devel   1
diff --git a/src/wsadmin.lib/pmax_31.generic b/src/wsadmin.lib/pmax_31.generic
deleted file mode 100644 (file)
index 661b5a4..0000000
+++ /dev/null
@@ -1,824 +0,0 @@
-# Copyright 2000, International Business Machines Corporation and others.
-# All Rights Reserved.
-#
-# This software has been released under the terms of the IBM Public
-# License.  For details, see the LICENSE file in the top-level source
-# directory or online at http://www.openafs.org/dl/license10.html
-#
-# Generic configuration for an AFS pmax_31 machine.
-#
-DR     /                                               ${treemode}
-FO     /.cshrc         ${common}                       ${textmode}
-FO     /.login         ${common}                       ${textmode}
-FO     /.profile       ${common}                       ${textmode}
-FI     /.hostname      ${common}                       ${textmode}
-F      /.package                                       ${textmode}
-D      /afs
-DR     /bin                                            ${treemode}
-DR     /etc                                            ${treemode}
-DX     /lost+found                                     ${treemode}
-L      /lib            /usr
-D      /mnt                                            ${tmpmode}
-D      /mnt1                                           ${tmpmode}
-D      /opr                                            ${tmpmode}
-L      /sys            /usr
-DR     /tmp                                            ${tmpmode}
-F      /ultrixboot     ${machine}                      ${systemmode}
-FI     /upgrade        ${machine}                      root wheel 400
-DR     /usr                                            ${treemode}
-LA     /var            /usr/var
-FOAQ   /vmunix         ${machine}/usr/sys/b.mips/AFSALL/vmunix ${binmode}
-
-
-F      /bin/STTY       ${machine}                      ${binmode}
-F      /bin/[          ${machine}                      ${binmode}
-L      /bin/ar         /usr
-L      /bin/as         /usr
-L      /bin/awk        /usr
-F      /bin/cat        ${machine}                      ${binmode}
-L      /bin/cc         /usr
-L      /bin/chgrp      /usr
-F      /bin/chmod      ${machine}                      ${binmode}
-F      /bin/chpt       ${machine}                      ${binmode}
-F      /bin/clri       ${machine}                      ${binmode}
-L      /bin/cmp        /usr
-F      /bin/cp         ${machine}                      ${binmode}
-F      /bin/csh        ${machine}                      ${binmode}
-F      /bin/date       ${machine}                      ${binmode}
-F      /bin/dd         ${machine}                      ${binmode}
-F      /bin/df         ${machine}                      ${binmode}
-F      /bin/diff       ${machine}                      ${binmode}
-F      /bin/dirname    ${machine}                      ${binmode}
-L      /bin/domainname /usr
-F      /bin/du         ${machine}                      ${binmode}
-F      /bin/dump       ${machine}                      ${binmode}
-F      /bin/dumpfs     ${machine}                      ${binmode}
-F      /bin/e          ${machine}                      ${binmode}
-F      /bin/echo       ${machine}                      ${binmode}
-F      /bin/ed         ${machine}                      ${binmode}
-F      /bin/expr       ${machine}                      ${binmode}
-F      /bin/false      ${machine}                      ${binmode}
-F      /bin/fsck       ${machine}                      ${suidmode}
-F      /bin/fsirand    ${machine}                      root wheel 700
-F      /bin/grep       ${machine}                      ${binmode}
-F      /bin/halt       ${machine}                      root wheel 700
-L      /bin/hostid     /usr
-F      /bin/hostname   ${machine}                      ${binmode}
-F      /bin/icheck     ${machine}                      root wheel 700
-L      /bin/id         /usr
-F      /bin/ifconfig   ${machine}                      ${binmode}
-F      /bin/init       ${machine}                      ${binmode}
-F      /bin/kill       ${machine}                      ${binmode}
-L      /bin/ld         /usr
-L      /bin/line       /usr
-F      /bin/ln         ${machine}                      ${binmode}
-FO     /bin/login      ${machine}                      ${suidmode}
-L      /bin/logname    /usr
-F      /bin/ls         ${machine}                      ${binmode}
-L      /bin/ltf        /usr
-F      /bin/machine    ${machine}                      ${binmode}
-L      /bin/mail       /usr
-L      /bin/s5make     /usr
-LA     /bin/mdtar      /bin/tar
-F      /bin/mkdir      ${machine}                      ${binmode}
-F      /bin/mkfs       ${machine}                      root wheel 700
-F      /bin/mknod      ${machine}                      ${binmode}
-F      /bin/mount      ${machine}                      ${binmode}
-F      /bin/mt         ${machine}                      ${binmode}
-F      /bin/mv         ${machine}                      ${binmode}
-F      /bin/newfs      ${machine}                      root wheel 700
-F      /bin/mount      ${machine}                      ${binmode}
-F      /bin/nfs_mount  ${machine}                      ${binmode}
-F      /bin/nfs_umount ${machine}                      ${binmode}
-L      /bin/nice       /usr
-L      /bin/nm         /usr
-L      /bin/od         /usr
-L      /bin/pagesize   /usr
-L      /bin/passwd     /usr
-L      /bin/pr         /usr
-F      /bin/ps         ${machine}                      ${binmode}
-F      /bin/pwd        ${machine}                      ${binmode}
-F      /bin/rdump      ${machine}                      ${binmode}
-F      /bin/reboot     ${machine}                      root wheel 700
-F      /bin/red        ${machine}                      ${binmode}
-F      /bin/restore    ${machine}                      ${binmode}
-F      /bin/rm         ${machine}                      ${binmode}
-L      /bin/rmail      /usr
-L      /bin/rmdir      /usr
-F      /bin/rrestore   ${machine}                      ${binmode}
-L      /bin/sh5        /usr
-F      /bin/rzdisk     ${machine}                      root wheel 700
-L      /bin/s5make     /usr
-L      /bin/sed        /usr
-F      /bin/sh         ${machine}                      ${binmode}
-L      /bin/sh5        /usr
-F      /bin/shutdown   ${machine}                      root wheel 700
-L      /bin/size       /usr
-L      /bin/strip      /usr
-F      /bin/stty       ${machine}                      ${binmode}
-F      /bin/su         ${machine}                      ${suidmode}
-F      /bin/sync       ${machine}                      ${binmode}
-F      /bin/tar        ${machine}                      ${binmode}
-L      /bin/tee        /usr
-F      /bin/test       ${machine}                      ${binmode}
-L      /bin/time       /usr
-F      /bin/true       ${machine}                      ${binmode}
-F      /bin/tunefs     ${machine}                      root wheel 700
-F      /bin/ufs_mount  ${machine}                      ${binmode}
-F      /bin/umount     ${machine}                      ${binmode}
-L      /bin/wall       /usr
-L      /bin/who        /usr
-L      /bin/write      /usr
-
-
-DR     /etc                                            ${treemode}
-F      /etc/ac         ${machine}/usr                  ${binmode}
-F      /etc/accton     ${machine}/usr                  ${binmode}
-F      /etc/acucap     ${machine}                      ${systemmode}
-F      /etc/addgroup   ${machine}/usr                  root wheel 754
-F      /etc/adduser    ${machine}/usr                  root wheel 754
-L      /etc/aliases    ${common}                       ${binmode}
-F      /etc/aliases.dir ${machine}                     ${binmode}
-F      /etc/aliases.pag ${machine}                     ${binmode}
-F      /etc/arp        ${machine}/usr                  ${binmode}
-F      /etc/biod       ${machine}/usr                  ${binmode}
-F      /etc/catman     ${machine}/usr                  ${binmode}
-F      /etc/chown      ${machine}/usr                  ${binmode}
-FA     /etc/chpt       ${machine}/bin/chpt             ${binmode}
-LA     /etc/clri       /bin/clri
-F      /etc/comsat     ${machine}/usr                  ${binmode}
-LA     /etc/config     /sys/mips/mips/config/config
-F      /etc/cron       ${machine}/usr                  ${binmode}
-F      /etc/crontab    ${machine}                      ${binmode}
-F      /etc/dcheck     ${machine}/usr                  ${binmode}
-F      /etc/dgated     ${machine}/usr                  ${binmode}
-F      /etc/dgateway   ${machine}                      ${systemmode}
-F      /etc/disktab    ${machine}                      ${systemmode}
-F      /etc/doconfig   ${machine}                      root wheel 754
-LA     /etc/dump       /bin/dump
-F      /etc/dumpdates  ${machine}                      ${systemmode}
-LA     /etc/dumpfs     /bin/dumpfs
-F      /etc/edquota    ${machine}/usr                  ${binmode}
-F      /etc/elcsd.conf ${machine}                      ${binmode}
-F      /etc/eli        ${machine}                      ${binmode}
-F      /etc/fingerd    ${machine}/usr                  ${binmode}
-F      /etc/fitset     ${machine}                      ${binmode}
-LA     /etc/fsck       /bin/fsck
-LA     /etc/fsirand    /bin/fsirand
-FI     /etc/fstab      ${machine}                      ${systemmode}
-F      /etc/ftpd       ${machine}/usr                  ${binmode}
-F      /etc/ftpusers   ${machine}                      ${systemmode}
-F      /etc/fverify    ${machine}                      ${binmode}
-F      /etc/getty      ${machine}/usr                  ${binmode}
-F      /etc/gettytab   ${machine}                      ${systemmode}
-F      /etc/group      ${common}                       ${systemmode}
-FA     /etc/halt       /bin/halt
-F      /etc/hosts      ${common}                       ${systemmode}
-LA     /etc/icheck     /bin/icheck
-LA     /etc/ifconfig   /bin/ifconfig
-F      /etc/implog     ${machine}/usr                  ${binmode}
-F      /etc/implogd    ${machine}/usr                  ${binmode}
-F      /etc/inetd      ${machine}/usr                  ${binmode}
-F      /etc/init       ${machine}                      ${binmode}
-F      /etc/install_upgrade ${machine}                 root wheel 700
-F      /etc/lcp        ${machine}/usr                  ${binmode}
-F      /etc/license    ${machine}                      root wheel 754
-F      /etc/lockpw     ${machine}/usr                  root wheel 754
-F      /etc/lpc        ${machine}/usr                  root wheel 2711
-F      /etc/lprsetup   ${machine}/usr                  ${binmode}
-F      /etc/mail.aliases ${machine}                    ${binmode}
-F      /etc/miscd      ${machine}/usr                  ${binmode}
-LA     /etc/mkfs       /bin/mkfs
-F      /etc/mklost+found ${machine}                    ${binmode}
-LA     /etc/mknod      /bin/mknod
-F      /etc/motd       ${machine}                      ${systemmode}
-LA     /etc/mount      /bin/mount
-F      /etc/mountd     ${machine}/usr                  ${binmode}
-FA     /etc/named.ca   ${machine}/etc/namedb/named.ca  ${systemmode}
-FA     /etc/named.local ${machine}/etc/namedb/named.local      ${systemmode}
-D      /etc/namedb                                     ${treemode}
-F      /etc/ncheck     ${machine}/usr                  ${binmode}
-F      /etc/netsetup   ${machine}/usr                  ${binmode}
-F      /etc/networks   ${common}                       ${systemmode}
-LA     /etc/newfs      /bin/newfs
-LA     /etc/nfs_mount  /bin/nfs_mount
-LA     /etc/nfs_umount /bin/nfs_umount
-F      /etc/nfsd       ${machine}/usr                  ${binmode}
-F      /etc/nfssetup   ${machine}/usr                  ${binmode}
-F      /etc/nfsstat    ${machine}/usr                  ${binmode}
-F      /etc/ntp.drift  ${machine}                      ${systemmode}
-F      /etc/pac        ${machine}                      ${binmode}
-F      /etc/package    ${machine}/usr/afs.dev          ${binmode}
-F      /etc/passwd     ${common}                       ${systemmode}
-F      /etc/ping       /usr
-F      /etc/portmap    ${machine}/usr                  ${binmode}
-FA     /etc/printcap   ${common}/etc/printcap.remote   ${systemmode}
-F      /etc/printcap.examples  ${machine}              ${systemmode}
-F      /etc/protocols  ${common}                       ${systemmode}
-F      /etc/pstat      ${machine}/usr                  ${binmode}
-F      /etc/quot       ${machine}/usr                  ${binmode}
-F      /etc/quotacheck ${machine}/usr                  ${binmode}
-LA     /etc/quotaoff   /etc/quotaon
-F      /etc/quotaon    ${machine}/usr                  ${binmode}
-FIAQ   /etc/rc         ${machine}/etc/rc.afs           ${systemmode}
-FI     /etc/rc.local   ${machine}                      ${systemmode}
-F      /etc/rdate      ${machine}/usr                  ${binmode}
-LA     /etc/rdump      /bin/rdump
-F      /etc/ready      ${machine}                      ${binmode}
-LA     /etc/reboot     /bin/reboot
-F      /etc/remote     ${machine}                      ${systemmode}
-F      /etc/removeuser ${machine}/usr                  ${binmode}
-F      /etc/renice     ${machine}/usr                  ${binmode}
-F      /etc/repquota   ${machine}/usr                  ${binmode}
-F      /etc/resolv.conf ${machine}                     ${systemmode}
-L      /etc/restore    ${machine}
-LA     /etc/revnetgroup /usr/var/yp/revnetgroup
-F      /etc/revnetnum  ${machine}/usr                  ${binmode}
-F      /etc/rexecd     ${machine}/usr                  ${binmode}
-F      /etc/rlogind    ${machine}/usr                  ${binmode}
-F      /etc/rmt        ${machine}/usr                  ${binmode}
-F      /etc/route      ${machine}/usr                  ${binmode}
-F      /etc/routed     ${machine}/usr                  ${binmode}
-F      /etc/rpc        ${machine}                      ${systemmode}
-F      /etc/rpc.yppasswdd ${machine}/usr               ${binmode}
-F      /etc/rpcinfo    ${machine}/usr                  ${binmode}
-L      /etc/rrestore   ${machine}
-F      /etc/rshd       ${machine}/usr                  ${binmode}
-F      /etc/rwhod      ${machine}/usr                  ${binmode}
-LA     /etc/rzdisk     /bin/rzdisk
-F      /etc/sa         ${machine}/usr                  ${binmode}
-F      /etc/savecore   ${machine}/usr                  ${binmode}
-F      /etc/sendmail.cf ${machine}                     ${systemmode}
-F      /etc/sendmail.fc ${machine}                     root wheel 600
-F      /etc/sendmail.hf ${machine}                     ${systemmode}
-F      /etc/sendmail.st ${machine}                     ${systemmode}
-F      /etc/services   ${common}                       ${systemmode}
-F      /etc/setld      ${machine}                      ${binmode}
-F      /etc/setldlog   ${machine}                      ${systemmode}
-F      /etc/showmount  ${machine}/usr                  ${binmode}
-LA     /etc/shutdown   /bin/shutdown
-F      /etc/shutdown.msg ${machine}                    ${systemmode}
-F      /etc/sliphosts  ${machine}                      ${systemmode}
-F      /etc/svcorder   ${machine}                      ${systemmode}
-F      /etc/swapon     ${machine}/usr                  ${binmode}
-F      /etc/syslog     ${machine}/usr                  ${binmode}
-F      /etc/talkd      ${machine}/usr                  ${binmode}
-F      /etc/telnetd    ${machine}/usr                  ${binmode}
-F      /etc/termcap    ${common}                       ${systemmode}
-F      /etc/trpt       ${machine}/usr                  ${binmode}
-F      /etc/ttys       ${machine}                      ${systemmode}
-L      /etc/tunefs     ${machine}
-F      /etc/uerf       ${machine}                      ${binmode}
-F      /etc/uerf.bin   ${machine}                      root wheel 444
-F      /etc/uerf.err   ${machine}                      ${binmode}
-F      /etc/uerf.hlp   ${machine}                      ${binmode}
-F      /etc/ufs_mount  ${machine}                      ${binmode}
-LA     /etc/umount     /bin/umount
-F      /etc/unlockpw   ${machine}/usr                  root wheel 754
-F      /etc/update     ${machine}/usr                  ${binmode}
-F      /etc/utmp                                       ${systemmode}
-F      /etc/vipw       ${machine}/usr                  ${binmode}
-LA     /etc/yp         /var/yp
-F      /etc/ypbind     ${machine}/usr                  ${binmode}
-F      /etc/ypsetup    ${machine}/usr                  ${binmode}
-
-
-DR     /etc/namedb                                     ${treemode}
-F      /etc/namedb/named.ca    ${machine}              ${systemmode}
-F      /etc/namedb/named.hosts ${machine}              ${systemmode}
-F      /etc/namedb/named.local ${machine}              ${systemmode}
-F      /etc/namedb/named.rev   ${machine}              ${systemmode}
-
-
-L      /usr/afs.dev            ${machine}
-L      /usr/afs.rel            ${machine}
-L      /usr/afs.test           ${machine}
-LA     /usr/andy               ${afstest}
-DR     /usr/bin                                        ${treemode}
-L      /usr/dict               ${machine}
-D      /usr/diskless                                   ${treemode}
-L      /usr/include            ${machine}
-L      /usr/lib                ${machine}
-L      /usr/local              ${machine}
-DX     /usr/lost+found                                 ${treemode}
-L      /usr/man                ${machine}
-D      /usr/mdec                                       ${treemode}
-L      /usr/new                ${machine}
-LA     /usr/preserve           /usr/var/preserve
-L      /usr/skel               ${common}
-LA     /usr/spool              /usr/var/spool
-L      /usr/src                ${machine}
-L      /usr/sys                ${machine}
-LA     /usr/tmp                /usr/var/tmp
-
-
-L      /usr/bin/X              ${machine}
-L      /usr/bin/X11            ${machine}
-L      /usr/bin/Xcfb           ${machine}
-L      /usr/bin/Xcfb2          ${machine}
-L      /usr/bin/Xcomp          ${machine}
-L      /usr/bin/Xmfb           ${machine}
-L      /usr/bin/addbib         ${machine}
-L      /usr/bin/admin          ${machine}
-L      /usr/bin/ar             ${machine}
-L      /usr/bin/ar1.31         ${machine}
-L      /usr/bin/ar11           ${machine}
-LA     /usr/bin/as             /usr/bin/cc
-LA     /usr/bin/as1.31         /usr/bin/cc1.31
-L      /usr/bin/at             ${machine}
-L      /usr/bin/atobm          ${machine}
-L      /usr/bin/awk            ${machine}
-L      /usr/bin/basename       ${machine}
-L      /usr/bin/batch          ${machine}
-L      /usr/bin/bc             ${machine}
-L      /usr/bin/bdftosnf       ${machine}
-L      /usr/bin/bdiff          ${machine}
-L      /usr/bin/bitmap         ${machine}
-L      /usr/bin/bmtoa          ${machine}
-L      /usr/bin/btou           ${machine}
-L      /usr/bin/btou1.31       ${machine}
-L      /usr/bin/cal            ${machine}
-L      /usr/bin/calendar       ${machine}
-L      /usr/bin/capsar         ${machine}
-L      /usr/bin/cb             ${machine}
-LA     /usr/bin/cc             /usr/bin/cc1.31
-F      /usr/bin/cc1.31         ${machine}              ${binmode}
-L      /usr/bin/cda_write_analysis ${machine}
-L      /usr/bin/cdc            ${machine}
-L      /usr/bin/cdoc           ${machine}
-L      /usr/bin/cflow          ${machine}
-L      /usr/bin/checkeq        ${machine}
-L      /usr/bin/chgrp          ${machine}
-F      /usr/bin/cmp            ${machine}              ${binmode}
-L      /usr/bin/col            ${machine}
-L      /usr/bin/comb           ${machine}
-L      /usr/bin/comm           ${machine}
-L      /usr/bin/cpio           ${machine}
-F      /usr/bin/csh            ${machine}              ${binmode}
-L      /usr/bin/csplit         ${machine}
-L      /usr/bin/ctc            ${machine}
-L      /usr/bin/ctcr           ${machine}
-L      /usr/bin/ctod           ${machine}
-L      /usr/bin/ctrace         ${machine}
-L      /usr/bin/cu             ${machine}
-L      /usr/bin/cut            ${machine}
-L      /usr/bin/cxref          ${machine}
-LA     /usr/bin/dbx            /usr/bin/dbx1.31
-F      /usr/bin/dbx1.31        ${machine}              ${binmode}
-L      /usr/bin/dc             ${machine}
-L      /usr/bin/ddif_read_text ${machine}
-L      /usr/bin/ddif_write_ps  ${machine}
-L      /usr/bin/ddif_write_text ${machine}
-L      /usr/bin/delta          ${machine}
-L      /usr/bin/deroff         ${machine}
-F      /usr/bin/df             ${machine}              ${suidmode}
-L      /usr/bin/dgate          ${machine}
-L      /usr/bin/diction        ${machine}
-F      /usr/bin/diff           ${machine}              ${binmode}
-L      /usr/bin/diff3          ${machine}
-L      /usr/bin/diffmk         ${machine}
-L      /usr/bin/dircmp         ${machine}
-L      /usr/bin/dis            ${machine}
-L      /usr/bin/dis1.31        ${machine}
-L      /usr/bin/domainname     ${machine}
-L      /usr/bin/dtoc           ${machine}
-F      /usr/bin/du             ${machine}              ${binmode}
-L      /usr/bin/dxcalc         ${machine}
-L      /usr/bin/dxcalendar     ${machine}
-L      /usr/bin/dxcardfiler    ${machine}
-L      /usr/bin/dxclock        ${machine}
-L      /usr/bin/dxcut          ${machine}
-L      /usr/bin/dxdb           ${machine}
-L      /usr/bin/dxdiff         ${machine}
-L      /usr/bin/dxfconv        ${machine}
-L      /usr/bin/dxmail         ${machine}
-L      /usr/bin/dxnotepad      ${machine}
-L      /usr/bin/dxpaint        ${machine}
-L      /usr/bin/dxpsview       ${machine}
-L      /usr/bin/dxpuzzle       ${machine}
-L      /usr/bin/dxsession      ${machine}
-L      /usr/bin/dxterm         ${machine}
-L      /usr/bin/dxue           ${machine}
-L      /usr/bin/dxuil          ${machine}
-L      /usr/bin/dxvdoc         ${machine}
-L      /usr/bin/dxwm           ${machine}
-F      /usr/bin/egrep          ${machine}              ${binmode}
-L      /usr/bin/eqn            ${machine}
-L      /usr/bin/explain        ${machine}
-L      /usr/bin/extract        ${machine}
-L      /usr/bin/fgrep          ${machine}
-L      /usr/bin/file           ${machine}
-L      /usr/bin/find           ${machine}
-L      /usr/bin/gencat         ${machine}
-L      /usr/bin/get            ${machine}
-L      /usr/bin/getopt         ${machine}
-L      /usr/bin/graph          ${machine}
-L      /usr/bin/hostid         ${machine}
-L      /usr/bin/ic             ${machine}
-L      /usr/bin/id             ${machine}
-L      /usr/bin/indxbib        ${machine}
-L      /usr/bin/install        ${machine}
-L      /usr/bin/iostat         ${machine}
-L      /usr/bin/ipcrm          ${machine}
-L      /usr/bin/ipcs           ${machine}
-L      /usr/bin/join           ${machine}
-LA     /usr/bin/ld             /usr/bin/ld1.31
-F      /usr/bin/ld1.31         ${machine}              ${binmode}
-L      /usr/bin/learn          ${machine}
-L      /usr/bin/lex            ${machine}
-L      /usr/bin/line           ${machine}
-L      /usr/bin/lint           ${machine}
-F      /usr/bin/login          ${machine}              ${suidmode}
-F      /usr/bin/login.old      ${machine}              ${suidmode}
-L      /usr/bin/logname        ${machine}
-L      /usr/bin/look           ${machine}
-L      /usr/bin/lookbib        ${machine}
-L      /usr/bin/lorder         ${machine}
-L      /usr/bin/lp             ${machine}
-L      /usr/bin/ltf            ${machine}
-L      /usr/bin/lvp16          ${machine}
-L      /usr/bin/m4             ${machine}
-L      /usr/bin/mail           ${machine}
-L      /usr/bin/make           ${machine}
-L      /usr/bin/man            ${machine}
-L      /usr/bin/mesg           ${machine}
-L      /usr/bin/mhdecode       ${machine}
-L      /usr/bin/mkfontdir      ${machine}
-L      /usr/bin/neqn           ${machine}
-L      /usr/bin/nice           ${machine}
-L      /usr/bin/nl             ${machine}
-LA     /usr/bin/nm             /usr/bin/nm1.31
-F      /usr/bin/nm1.31         ${machine}              ${binmode}
-L      /usr/bin/nohup          ${machine}
-L      /usr/bin/nroff          ${machine}
-F      /usr/bin/od             ${machine}              ${binmode}
-L      /usr/bin/odump          ${machine}
-L      /usr/bin/odump1.31      ${machine}
-L      /usr/bin/pack           ${machine}
-L      /usr/bin/pagesize       ${machine}
-F      /usr/bin/passwd         ${machine}              ${suidmode}
-L      /usr/bin/paste          ${machine}
-L      /usr/bin/pcat           ${machine}
-L      /usr/bin/pg             ${machine}
-L      /usr/bin/pixie          ${machine}
-L      /usr/bin/pixie1.31      ${machine}
-L      /usr/bin/pixstats       ${machine}
-L      /usr/bin/pixstats1.31   ${machine}
-L      /usr/bin/plot           ${machine}
-L      /usr/bin/ppu            ${machine}
-L      /usr/bin/ppu1.31        ${machine}
-L      /usr/bin/pr             ${machine}
-L      /usr/bin/prof           ${machine}
-L      /usr/bin/prof1.31       ${machine}
-L      /usr/bin/prs            ${machine}
-L      /usr/bin/ptoc           ${machine}
-L      /usr/bin/ptx            ${machine}
-L      /usr/bin/ranlib         ${machine}
-L      /usr/bin/refer          ${machine}
-L      /usr/bin/resimg         ${machine}
-L      /usr/bin/resize         ${machine}
-L      /usr/bin/rev            ${machine}
-L      /usr/bin/rmail          ${machine}
-L      /usr/bin/rmchg          ${machine}
-L      /usr/bin/rmdel          ${machine}
-L      /usr/bin/rmdir          ${machine}
-L      /usr/bin/roffbib        ${machine}
-L      /usr/bin/rsh5           ${machine}
-L      /usr/bin/ruusend        ${machine}
-L      /usr/bin/s5make         ${machine}
-L      /usr/bin/sact           ${machine}
-L      /usr/bin/savimg         ${machine}
-L      /usr/bin/sccsdiff       ${machine}
-L      /usr/bin/sccshelp       ${machine}
-L      /usr/bin/sed            ${machine}
-L      /usr/bin/sh5            ${machine}
-L      /usr/bin/showsnf        ${machine}
-L      /usr/bin/size           ${machine}
-L      /usr/bin/size1.31       ${machine}
-L      /usr/bin/sleep          ${machine}
-L      /usr/bin/sort           ${machine}
-L      /usr/bin/sortbib        ${machine}
-L      /usr/bin/spell          ${machine}
-L      /usr/bin/spellin        ${machine}
-L      /usr/bin/spellout       ${machine}
-L      /usr/bin/spline         ${machine}
-L      /usr/bin/split          ${machine}
-L      /usr/bin/startx         ${machine}
-L      /usr/bin/stdump         ${machine}
-L      /usr/bin/stdump1.31     ${machine}
-L      /usr/bin/strextract     ${machine}
-L      /usr/bin/strip          ${machine}
-L      /usr/bin/strip1.31      ${machine}
-L      /usr/bin/strmerge       ${machine}
-L      /usr/bin/style          ${machine}
-F      /usr/bin/su             ${machine}              ${suidmode}
-L      /usr/bin/sum            ${machine}
-L      /usr/bin/t300           ${machine}
-L      /usr/bin/t300s          ${machine}
-L      /usr/bin/t450           ${machine}
-L      /usr/bin/tabs           ${machine}
-L      /usr/bin/tbl            ${machine}
-L      /usr/bin/tc             ${machine}
-L      /usr/bin/tee            ${machine}
-L      /usr/bin/tek            ${machine}
-L      /usr/bin/time           ${machine}
-L      /usr/bin/tip            ${machine}
-L      /usr/bin/tk             ${machine}
-F      /usr/bin/touch          ${machine}              ${binmode}
-L      /usr/bin/tp             ${machine}
-L      /usr/bin/tr             ${machine}
-L      /usr/bin/trace          ${machine}
-L      /usr/bin/trans          ${machine}
-L      /usr/bin/troff          ${machine}
-L      /usr/bin/tsort          ${machine}
-L      /usr/bin/tty            ${machine}
-L      /usr/bin/uac            ${machine}
-LA     /usr/bin/uld            /usr/bin/ld1.31
-LA     /usr/bin/uld1.31        /usr/bin/ld1.31
-L      /usr/bin/unget          ${machine}
-L      /usr/bin/uniq           ${machine}
-L      /usr/bin/units          ${machine}
-L      /usr/bin/unpack         ${machine}
-L      /usr/bin/upars          ${machine}
-L      /usr/bin/utob           ${machine}
-L      /usr/bin/utob1.31       ${machine}
-L      /usr/bin/uucp           ${machine}
-L      /usr/bin/uudecode       ${machine}
-L      /usr/bin/uuencode       ${machine}
-L      /usr/bin/uulog          ${machine}
-L      /usr/bin/uuname         ${machine}
-L      /usr/bin/uupoll         ${machine}
-L      /usr/bin/uusend         ${machine}
-L      /usr/bin/uustat         ${machine}
-L      /usr/bin/uux            ${machine}
-L      /usr/bin/val            ${machine}
-L      /usr/bin/vc             ${machine}
-L      /usr/bin/vdoc           ${machine}
-L      /usr/bin/wall           ${machine}
-L      /usr/bin/what           ${machine}
-F      /usr/bin/who            ${machine}              ${binmode}
-L      /usr/bin/write          ${machine}
-L      /usr/bin/yacc           ${machine}
-L      /usr/bin/ypcat          ${machine}
-L      /usr/bin/ypmatch        ${machine}
-L      /usr/bin/yppasswd       ${machine}
-L      /usr/bin/ypwhich        ${machine}
-
-
-DR     /usr/diskless                                   ${treemode}
-F      /usr/diskless/make_swap ${machine}
-F      /usr/diskless/makpkt    ${machine}
-
-
-DR     /usr/etc                                        ${treemode}
-F      /usr/etc/ac     ${machine}                      ${binmode}
-F      /usr/etc/accton ${machine}                      ${binmode}
-F      /usr/etc/addgroup ${machine}                    root wheel 754
-F      /usr/etc/adduser ${machine}                     root wheel 754
-F      /usr/etc/arp    ${machine}                      ${binmode}
-F      /usr/etc/bindsetup ${machine}                   ${binmode}
-F      /usr/etc/biod   ${machine}                      ${binmode}
-F      /usr/etc/bootpd ${machine}                      ${binmode}
-F      /usr/etc/catman ${machine}                      ${binmode}
-F      /usr/etc/chown  ${machine}                      ${binmode}
-F      /usr/etc/comsat ${machine}                      ${binmode}
-LA     /usr/etc/config /sys/mips/mips/config/config
-F      /usr/etc/cron   ${machine}                      ${binmode}
-F      /usr/etc/dcheck ${machine}                      ${binmode}
-F      /usr/etc/dgated ${machine}                      ${binmode}
-F      /usr/etc/edquota ${machine}                     ${binmode}
-F      /usr/etc/fingerd ${machine}                     ${binmode}
-F      /usr/etc/ftpd   ${machine}                      ${binmode}
-F      /usr/etc/getty  ${machine}                      ${binmode}
-F      /usr/etc/implog ${machine}                      ${binmode}
-F      /usr/etc/implogd ${machine}                     ${binmode}
-F      /usr/etc/inetd  ${machine}                      ${binmode}
-F      /usr/etc/lattelnet ${machine}                   ${binmode}
-F      /usr/etc/lcp    ${machine}                      ${binmode}
-F      /usr/etc/lockd  ${machine}                      ${binmode}
-F      /usr/etc/lockpw ${machine}                      root wheel 754
-F      /usr/etc/lpc    ${machine}                      root wheel 2711
-F      /usr/etc/lprsetup ${machine}                    ${binmode}
-F      /usr/etc/miscd  ${machine}                      ${binmode}
-F      /usr/etc/mountd ${machine}                      ${binmode}
-F      /usr/etc/named  ${machine}                      ${binmode}
-F      /usr/etc/ncheck ${machine}                      ${binmode}
-F      /usr/etc/netsetup ${machine}                    ${binmode}
-F      /usr/etc/nfsd   ${machine}                      ${binmode}
-F      /usr/etc/nfsportmon ${machine}                  ${binmode}
-F      /usr/etc/nfssetlock ${machine}                  ${binmode}
-F      /usr/etc/nfssetup ${machine}                    ${binmode}
-F      /usr/etc/nfsstat ${machine}                     ${binmode}
-F      /usr/etc/nml.031 ${machine}                     ${binmode}
-F      /usr/etc/ntalkd ${machine}                      ${binmode}
-F      /usr/etc/ping   ${machine}                      ${binmode}
-F      /usr/etc/portmap ${machine}                     ${binmode}
-F      /usr/etc/pstat  ${machine}                      ${binmode}
-F      /usr/etc/quot   ${machine}                      ${binmode}
-F      /usr/etc/quotacheck ${machine}                  ${binmode}
-F      /usr/etc/quotaon ${machine}                     ${binmode}
-F      /usr/etc/rdate  ${machine}                      ${binmode}
-F      /usr/etc/removeuser ${machine}                  root wheel 754
-F      /usr/etc/renice ${machine}                      ${binmode}
-F      /usr/etc/repquota ${machine}                    ${binmode}
-F      /usr/etc/revnetnum ${machine}                   ${binmode}
-F      /usr/etc/rexecd ${machine}                      ${binmode}
-F      /usr/etc/rlogind ${machine}                     ${binmode}
-F      /usr/etc/rmt    ${machine}                      ${binmode}
-F      /usr/etc/route  ${machine}                      ${binmode}
-F      /usr/etc/routed ${machine}                      ${binmode}
-F      /usr/etc/rpc.yppasswdd  ${machine}              ${binmode}
-F      /usr/etc/rpcinfo ${machine}                     ${binmode}
-F      /usr/etc/rshd   ${machine}                      ${binmode}
-F      /usr/etc/rwalld ${machine}                      ${binmode}
-F      /usr/etc/rwhod  ${machine}                      ${binmode}
-F      /usr/etc/sa     ${machine}                      ${binmode}
-F      /usr/etc/savecore ${machine}                    ${binmode}
-F      /usr/etc/showmount ${machine}                   ${binmode}
-F      /usr/etc/statd  ${machine}                      ${binmode}
-L      /usr/etc/subsets ${machine}
-F      /usr/etc/swapon ${machine}                      ${binmode}
-F      /usr/etc/syslog ${machine}                      ${binmode}
-F      /usr/etc/talkd  ${machine}                      ${binmode}
-F      /usr/etc/telnetd ${machine}                     ${binmode}
-F      /usr/etc/tftpd  ${machine}                      ${binmode}
-F      /usr/etc/trpt   ${machine}                      ${binmode}
-F      /usr/etc/unlockpw ${machine}                    root wheel 754
-F      /usr/etc/update ${machine}                      ${binmode}
-F      /usr/etc/vipw   ${machine}                      ${binmode}
-F      /usr/etc/ypbind ${machine}                      ${binmode}
-F      /usr/etc/ypserv ${machine}                      ${binmode}
-F      /usr/etc/ypsetup ${machine}                     ${binmode}
-
-
-DR     /usr/mdec                                       ${treemode}
-F      /usr/mdec/bootblks      ${machine}              ${systemmode}
-F      /usr/mdec/netload       ${machine}              ${systemmode}
-
-
-DR     /usr/ucb                                        ${treemode}
-F      /usr/ucb/Mail   ${machine}                      ${binmode}
-F      /usr/ucb/apply  ${machine}                      ${binmode}
-F      /usr/ucb/apropos ${machine}                     ${binmode}
-F      /usr/ucb/biff   ${machine}                      ${binmode}
-F      /usr/ucb/ccat   ${machine}                      ${binmode}
-F      /usr/ucb/checknr ${machine}                     ${binmode}
-F      /usr/ucb/chfn   ${machine}                      ${suidmode}
-F      /usr/ucb/chsh   ${machine}                      ${suidmode}
-F      /usr/ucb/clear  ${machine}                      ${binmode}
-F      /usr/ucb/colcrt ${machine}                      ${binmode}
-F      /usr/ucb/colrm  ${machine}                      ${binmode}
-F      /usr/ucb/compact ${machine}                     ${binmode}
-F      /usr/ucb/compress ${machine}                    ${binmode}
-F      /usr/ucb/ctags  ${machine}                      ${binmode}
-LA     /usr/ucb/dbx    /usr/bin/dbx
-LA     /usr/ucb/e      /usr/ucb/vi
-F      /usr/ucb/edit   ${machine}                      root wheel 1755
-F      /usr/ucb/error  ${machine}                      ${binmode}
-LA     /usr/ucb/ex     /usr/ucb/vi
-F      /usr/ucb/expand ${machine}                      ${binmode}
-F      /usr/ucb/eyacc  ${machine}                      ${binmode}
-LA     /usr/ucb/f      /usr/ucb/finger                 ${binmode}
-F      /usr/ucb/finger ${machine}                      ${binmode}
-F      /usr/ucb/fmt    ${machine}                      ${binmode}
-F      /usr/ucb/fold   ${machine}                      ${binmode}
-F      /usr/ucb/from   ${machine}                      ${binmode}
-F      /usr/ucb/ftp    ${machine}                      ${binmode}
-F      /usr/ucb/grep   ${machine}                      ${binmode}
-F      /usr/ucb/groups ${machine}                      ${binmode}
-F      /usr/ucb/head   ${machine}                      ${binmode}
-F      /usr/ucb/indent ${machine}                      ${binmode}
-F      /usr/ucb/last   ${machine}                      ${binmode}
-F      /usr/ucb/lastcomm ${machine}                    ${binmode}
-F      /usr/ucb/leave  ${machine}                      ${binmode}
-F      /usr/ucb/lock   ${machine}                      ${binmode}
-F      /usr/ucb/lpq    ${machine}                      root wheel 6711
-F      /usr/ucb/lpr    ${machine}                      root wheel 6711
-F      /usr/ucb/lprm   ${machine}                      root wheel 6711
-F      /usr/ucb/mail   ${machine}                      ${binmode}
-LA     /usr/ucb/mailq  /usr/lib/sendmail
-F      /usr/ucb/man    ${machine}                      ${binmode}
-F      /usr/ucb/mkstr  ${machine}                      ${binmode}
-F      /usr/ucb/more   ${machine}                      ${binmode}
-F      /usr/ucb/netstat ${machine}                     ${binmode}
-LA     /usr/ucb/newaliases /usr/lib/sendmail
-F      /usr/ucb/nslookup ${machine}                    ${binmode}
-F      /usr/ucb/nslookup.help ${machine}               ${romode}
-F      /usr/ucb/nsquery ${machine}                     ${binmode}
-F      /usr/ucb/otalk  ${machine}                      ${binmode}
-F      /usr/ucb/page   ${machine}                      ${binmode}
-F      /usr/ucb/print  ${machine}                      ${binmode}
-F      /usr/ucb/printenv ${machine}                    ${binmode}
-F      /usr/ucb/prmail ${machine}                      ${binmode}
-F      /usr/ucb/quota  ${machine}                      ${suidmode}
-F      /usr/ucb/rcp    ${machine}                      ${suidmode}
-F      /usr/ucb/reset  ${machine}                      ${binmode}
-F      /usr/ucb/rlogin ${machine}                      ${suidmode}
-F      /usr/ucb/rsh    ${machine}                      ${suidmode}
-F      /usr/ucb/ruptime ${machine}                     ${binmode}
-F      /usr/ucb/rwho   ${machine}                      ${binmode}
-F      /usr/ucb/script ${machine}                      ${binmode}
-F      /usr/ucb/soelim ${machine}                      ${binmode}
-F      /usr/ucb/strings ${machine}                     ${binmode}
-F      /usr/ucb/tail   ${machine}                      ${binmode}
-F      /usr/ucb/talk   ${machine}                      ${binmode}
-F      /usr/ucb/telnet ${machine}                      ${binmode}
-F      /usr/ucb/tftp   ${machine}                      ${binmode}
-F      /usr/ucb/tset   ${machine}                      ${binmode}
-F      /usr/ucb/u      ${machine}                      ${binmode}
-F      /usr/ucb/ul     ${machine}                      ${binmode}
-F      /usr/ucb/uncompact ${machine}                   ${binmode}
-LA     /usr/ucb/uncompress /usr/ucb/compress
-F      /usr/ucb/unexpand ${machine}                    ${binmode}
-F      /usr/ucb/uptime ${machine}                      ${binmode}
-F      /usr/ucb/users  ${machine}                      ${binmode}
-F      /usr/ucb/vi     ${machine}                      root wheel 1755
-LA     /usr/ucb/view   /usr/ucb/vi
-F      /usr/ucb/vmstat ${machine}                      ${binmode}
-F      /usr/ucb/w      ${machine}                      ${binmode}
-F      /usr/ucb/wc     ${machine}                      ${binmode}
-F      /usr/ucb/whatis ${machine}                      ${binmode}
-F      /usr/ucb/whereis ${machine}                     ${binmode}
-F      /usr/ucb/which  ${machine}                      ${binmode}
-F      /usr/ucb/whoami ${machine}                      ${binmode}
-F      /usr/ucb/xstr   ${machine}                      ${binmode}
-F      /usr/ucb/yes    ${machine}                      ${binmode}
-LA     /usr/ucb/zcat   /usr/ucb/compress
-
-
-DR     /usr/var                                        ${treemode}
-D      /usr/var/adm                                    ${treemode}
-D      /usr/var/dnet                                   ${treemode}
-D      /usr/var/mop                                    ${treemode}
-D      /usr/var/preserve                               ${treemode}
-D      /usr/var/spool                                  ${treemode}
-D      /usr/var/tmp                                    ${treemode}
-L      /usr/var/yp     ${machine}
-
-
-DR     /usr/var/adm                                    ${treemode}
-FI     /usr/var/adm/acct
-# There used to be a /usr/var/adm/bin here
-D      /usr/var/adm/crash                              ${treemode}
-FI     /usr/var/adm/lastlog
-FI     /usr/var/adm/newsyslog
-D      /usr/var/adm/snap                               ${treemode}
-D      /usr/var/adm/syserr                             ${treemode}
-FI     /usr/var/adm/wtmp
-
-
-DR     /usr/var/adm/bin                                ${treemode}
-DR     /usr/var/adm/crash                              ${treemode}
-DR     /usr/var/adm/snap                               ${treemode}
-DR     /usr/var/adm/syserr                             ${treemode}
-
-
-DR     /usr/var/dnet                                   ${treemode}
-
-
-DR     /usr/var/mop                                    ${treemode}
-
-
-DR     /usr/var/preserve                               ${treemode}
-
-
-DR     /usr/var/spool                                  ${treemode}
-D      /usr/var/spool/at                               ${treemode}
-D      /usr/var/spool/lpd                              daemon daemon 755
-FI     /usr/var/spool/lpd.lock
-LA     /usr/var/spool/mail     ${common}/tmpmail
-D      /usr/var/spool/mqueue                           ${treemode}
-D      /usr/var/spool/rje                              ${treemode}
-D      /usr/var/spool/rlpd                             ${treemode}
-D      /usr/var/spool/rlpd33                           ${treemode}
-D      /usr/var/spool/rwho                             ${treemode}
-
-
-DR     /usr/var/spool/at                               ${treemode}
-FI     /usr/var/spool/at/at.deny
-FI     /usr/var/spool/at/lasttimedone
-D      /usr/var/spool/at/past                          ${treemode}
-
-
-DR     /usr/var/spool/at/past                          ${treemode}
-
-
-DR     /usr/var/spool/lpd                              daemon daemon 755
-FI     /usr/var/spool/lpd/init
-FI     /usr/var/spool/lpd/lock
-
-
-DR     /usr/var/spool/rje                              ${treemode}
-
-
-DR     /usr/vice                                       ${treemode}
-D      /usr/vice/cache                                 ${cachemode}
-
-
-DR     /usr/vice/etc                                           ${treemode}
-FAQ    /usr/vice/etc/CellServDB ${common}/etc/CellServDB       ${textmode}
-FAQ    /usr/vice/etc/ThisCell   ${common}/etc/ThisCell         ${textmode}
-F      /usr/vice/etc/afsd       ${afstest}/root.client&n