[comp.sources.unix] v19i014: A software configuration management system, Part01/33

rsalz@uunet.uu.net (Rich Salz) (06/02/89)

Submitted-by: Axel Mahler <unido!coma!axel>
Posting-number: Volume 19, Issue 14
Archive-name: shape/part01

[  Parts of AFS will be familiar to Apollo users.  This is the first
   time I've ever had multiple-language demonstration programs!  --r$ ]

The shape toolkit is a collection of programs to support software
configuration management in an UNIX environment. It consists of a set
of version control commands and "shape", a significantly enhanced
Make-oid. Shape and the version control commands are integrated on top
of AFS (Attributed File System), a dedicated version object base. The
system features RCS-style version control and a configuration
identification and -build process that has full access to all
revisions in the object base (in contrast to make which only knows
about plain files). Each object version in the object base is stored
together with an arbitrary number of application defined attributes of
the form "name=value".  AFS also supports derived object management,
i.e. it maintains a cache of multiple versions of compiled
object-files (e.g. compiled c-files with different compile switches).

The shape program itself is upward compatible to Make in that it can
properly handle conventional Makefiles. The "Shapefile" however, uses
Makefile-style dependencies as (versionless) abstract system model and
employs version selection rules to dynamically bind particular version
objects in the object base to the names listed in the system model.
The version selection mechanism exploits AFS' ability to maintain any
number of arbitrary attributes for objects in the object base. On
special request, shape records an identified configuration in a
configuration identification document (CID) which has the form of a
completely bound Shapefile (all object-instances are explicit). This
makes it particularly easy to rebuild recorded configurations. As
CID's are themselves documents, they can be placed under version
control, making it easy to maintain histories of entire software
systems.

One of the most useful features of shape is its support of various
variant administration techniques. Shape makes no assumptions about
the semantics of the variant notion other than having alternative
(conceptually equivalent) instances of the same concept ("module").
Despite the particular semantics of a certain variant-concept, there
is a small number of techniques to physically handle variants. These
techniques are what shape supports. Most commonly used techniques are:
- equally named files in different directories
- one source file representing multiple variants that are
  extracted by a preprocessor using different preprocessor switches 
  (e.g. conditional compilation)
- one source file processed by different tools or different
  tool versions/variants (e.g. cross compilation, different coders)
- combinations of the above.
Shape includes a variant definition facility that allows very flexible
and convenient handling of all of the above variant administration
techniques.

The object base abstraction presented by AFS provides uniform access
to immutable revisions of data entities (files) stored in special
archives, and mutable regular UNIX files. Consequently, the AFS based
toolkit lives peacefully (and meaningfully!) together with standard
filesystem applications (editors, compilers, formatters etc.).
Cooperative work within projects is supported by a build-in status
model, controlling visibility of version objects, and locking, a
primitive form of "long transactions. The general concept of object
attributes provides for passing information between individual tools
that would otherwise be lost. This mechanism is useful for building
integrated environments from a set of unrelated tools.

The toolkit character of the system allows to use it via
shell-commands, or to build a customized environment on top of it. As
an example, we built an alternate user interface to the system using
GNU-Emacs which lead to a much more comprehensive, integrated user
interface.  The corresponding Emacs lisp code is part of this
distribution (see directory "interface").  For more sophisticated
requirements, there is a complete C-language interface to AFS, on top
of which all the toolkit programs are built.

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 33)."
# Contents:  MANIFEST README README.mod bin copyrights
#   copyrights/COPYRIGHT copyrights/COPYRIGHT.c
#   copyrights/COPYRIGHT.man copyrights/COPYRIGHT.mk demo demo/AFS
#   demo/ENGLISH demo/ENGLISH/AFS demo/ENGLISH/components.c
#   demo/ENGLISH/title.c demo/FRENCH demo/FRENCH/AFS
#   demo/FRENCH/components.c demo/FRENCH/title.c demo/GERMAN
#   demo/GERMAN/AFS demo/GERMAN/components.c demo/GERMAN/title.c
#   interface lib lib/version.c man man/man1 man/man3 man/man5
#   man/man8 papers src src/afs src/afs/af_version.c src/afs/edcmd.h
#   src/afs/exscr src/afsit src/config src/inc src/misc
#   src/misc/utilversion.c src/shape src/shape/README src/shape/attr.h
#   src/shape/files.h src/shape/hash.h src/shape/version.c src/vc
#   src/vc/version.c src/vfind src/vfind/AFS src/vfind/README
#   src/vfind/vfversion.c tutorial
# Wrapped by rsalz@papaya.bbn.com on Thu Jun  1 19:26:46 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'MANIFEST'\"
else
echo shar: Extracting \"'MANIFEST'\" \(6777 characters\)
sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
X   File Name		Archive #	Description
X-----------------------------------------------------------
X MANIFEST                   1	
X README                     1	
X README.mod                 1	
X bin                        1	
X bin/rcs2afs                7	
X copyrights                 1	
X copyrights/COPYRIGHT       1	
X copyrights/COPYRIGHT.c     1	
X copyrights/COPYRIGHT.man   1	
X copyrights/COPYRIGHT.mk    1	
X demo                       1	
X demo/AFS                   1	
X demo/ENGLISH               1	
X demo/ENGLISH/AFS           1	
X demo/ENGLISH/components.c  1	
X demo/ENGLISH/title.c       1	
X demo/FRENCH                1	
X demo/FRENCH/AFS            1	
X demo/FRENCH/components.c   1	
X demo/FRENCH/title.c        1	
X demo/GERMAN                1	
X demo/GERMAN/AFS            1	
X demo/GERMAN/components.c   1	
X demo/GERMAN/title.c        1	
X demo/Shapefile             2	
X demo/shapedemo.c           2	
X interface                  1	
X interface/shape-config.el  2	
X interface/shapetools.el   27	
X lib                        1	
X lib/version.c              1	
X man                        1	
X man/man1                   1	
X man/man1/rcs2afs.1         4	
X man/man1/retrv.1          11	
X man/man1/save.1            9	
X man/man1/sbmt.1            8	
X man/man1/shape.1          28	
X man/man1/shapetools.1     12	
X man/man1/vadm.1           17	
X man/man1/vcat.1           11	
X man/man1/vcintro.1        22	
X man/man1/vfind.1           8	
X man/man1/vl.1             10	
X man/man1/vlog.1           10	
X man/man3                   1	
X man/man3/afattrs.3         3	
X man/man3/affiles.3         4	
X man/man3/afintro.3        17	
X man/man3/aflock.3          4	
X man/man3/afmisc.3          5	
X man/man3/afnote.3          2	
X man/man3/afperm.3          2	
X man/man3/afretrieve.3      6	
X man/man3/afsetops.3        4	
X man/man3/afsets.3          4	
X man/man3/afudattrs.3       3	
X man/man3/afvariant.3       2	
X man/man3/afversions.3      7	
X man/man5                   1	
X man/man5/afarchive.5       6	
X man/man8                   1	
X man/man8/afsrepair.8       3	
X papers                     1	
X papers/boston.ms          31	
X papers/lisbon.ms          30	
X src                        1	
X src/Makefile               4	
X src/afs                    1	
X src/afs/Makefile.distribution  5	
X src/afs/Shapefile          7	
X src/afs/af_version.c       1	
X src/afs/afarchive.c       29	
X src/afs/afarchive.h        6	
X src/afs/afbpool.c         23	
X src/afs/afcattrs.c        13	
X src/afs/afcompar.c        14	
X src/afs/afdelta.c         19	
X src/afs/afenviron.c       16	
X src/afs/affiles.c         13	
X src/afs/afhash.c          20	
X src/afs/afkeys.c           5	
X src/afs/aflib.c           18	
X src/afs/aflock.c           6	
X src/afs/afretr.c          18	
X src/afs/afsattrs.c        12	
X src/afs/afsets.c          21	
X src/afs/afsrepair.c       26	
X src/afs/afsrepair.h        3	
X src/afs/afstates.c         3	
X src/afs/afstore.c         11	
X src/afs/afsymtab.c         4	
X src/afs/afsysc.c           6	
X src/afs/afvers.c          15	
X src/afs/bsfd.c             6	
X src/afs/edcmd.h            1	
X src/afs/exscr              1	
X src/afs/lcs.cdlt.c        10	
X src/afs/lcs.gedc.c         5	
X src/afs/lcs.main.c         4	
X src/afs/predef.h           2	
X src/afs/suffix.h           2	
X src/afs/typeconv.h         3	
X src/afsit                  1	
X src/afsit/Makefile         2	
X src/afsit/afsit.1          8	
X src/afsit/rcsit.c         18	
X src/config                 1	
X src/config/rules.sh        2	
X src/inc                    1	
X src/inc/ParseArgs.h        3	
X src/inc/afs.h              9	
X src/inc/afsapp.h           3	
X src/inc/afsys.h           11	
X src/inc/project.h          2	
X src/inc/typeconv.h         3	
X src/misc                   1	
X src/misc/Makefile          4	
X src/misc/ParseArgs.c      15	
X src/misc/ParseArgs.h       2	
X src/misc/anames.h          2	
X src/misc/citeattr.c       16	
X src/misc/hash.c            7	
X src/misc/hash.h            3	
X src/misc/pdbutil.c         2	
X src/misc/utilversion.c     1	
X src/shape                  1	
X src/shape/Makefile        10	
X src/shape/Makefile.bsd43   3	
X src/shape/Makefile.distribution  2	
X src/shape/Makefile.sunos40  3	
X src/shape/Makefile.ultrix20  3	
X src/shape/README           1	
X src/shape/Shapefile        5	
X src/shape/attr.c          33	
X src/shape/attr.h           1	
X src/shape/error.c         32	
X src/shape/files.c         24	
X src/shape/files.h          1	
X src/shape/hash.c           6	
X src/shape/hash.h           1	
X src/shape/inherit.c        9	
X src/shape/macro.c         14	
X src/shape/macro.h          2	
X src/shape/main.c           9	
X src/shape/misc.c          15	
X src/shape/produce.c       25	
X src/shape/rule.c          19	
X src/shape/rule.h           2	
X src/shape/select.c         5	
X src/shape/selrule.c       13	
X src/shape/selrule.h        2	
X src/shape/shape.h          6	
X src/shape/shape.l          9	
X src/shape/shapeopt.c      13	
X src/shape/sighand.c        4	
X src/shape/std.c           10	
X src/shape/std.h            2	
X src/shape/string.c         3	
X src/shape/varsec.c         9	
X src/shape/varsec.h         2	
X src/shape/version.c        1	
X src/shape/vpath.c          5	
X src/vc                     1	
X src/vc/Makefile           11	
X src/vc/Shapefile           3	
X src/vc/afsapp.h            3	
X src/vc/deps                5	
X src/vc/doretrv.c          19	
X src/vc/dosave.c           17	
X src/vc/locks.h             2	
X src/vc/mkattr.c           12	
X src/vc/product-definition.sh  2	
X src/vc/project.c           3	
X src/vc/project.h           2	
X src/vc/retrv.c            15	
X src/vc/retrv.h             3	
X src/vc/save.c              7	
X src/vc/save.h              2	
X src/vc/sighand.c           8	
X src/vc/typeconv.h          3	
X src/vc/util.c              8	
X src/vc/vadm.c             22	
X src/vc/vadm.h              4	
X src/vc/vadm_delete.c       5	
X src/vc/vadm_gkeys.c        8	
X src/vc/vadm_note.c        14	
X src/vc/vadm_promote.c     10	
X src/vc/vadm_reserve.c     14	
X src/vc/vadm_symname.c     12	
X src/vc/vadm_utils.c        4	
X src/vc/vadmdefs.h          2	
X src/vc/vc_call.c           7	
X src/vc/vc_files.c          6	
X src/vc/vc_keyboardIo.c     5	
X src/vc/vc_lock.c           6	
X src/vc/vc_sysdep.h         2	
X src/vc/version.c           1	
X src/vc/vl.c                4	
X src/vc/vl.h                4	
X src/vc/vldovl.c           21	
X src/vc/vlmisc.c           16	
X src/vc/vlopt.c            12	
X src/vfind                  1	
X src/vfind/AFS              1	
X src/vfind/README           1	
X src/vfind/Shapefile        5	
X src/vfind/at_misc.c        7	
X src/vfind/atk.h            2	
X src/vfind/vfind.c         20	
X src/vfind/vfversion.c      1	
X tutorial                   1	
X tutorial/make2shape.ms    20	
X tutorial/trouble.ms        4	
X tutorial/tutorial.ms       5	
END_OF_FILE
if test 6777 -ne `wc -c <'MANIFEST'`; then
    echo shar: \"'MANIFEST'\" unpacked with wrong size!
fi
# end of 'MANIFEST'
fi
if test -f 'README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'README'\"
else
echo shar: Extracting \"'README'\" \(10224 characters\)
sed "s/^X//" >'README' <<'END_OF_FILE'
XThis is README for release 1.0 of the shape toolkit.
X 
XIt contains general information on the shape toolkit, an overview of
Xits parts and a guide on how to build and install the toolkit. Please
Xread the file "COPYRIGHT" (located in the directory "copyrights")
Xbefore installing and using the shape toolkit on your computer.
X
XGeneral information:
X====================
X
XThe shape toolkit is a result of the UniBase project, a joint research
Xand development project funded by the "Bundesministerium fuer
XForschung und Technologie" (BMFT, Federal Ministry for Research and
XTechnology of West Germany) under grant number ITS 8308.  The project
Xaimed at the development of a large scale industrial software
Xproduction environment. Shape and the related version control system
Xwas designed and implemented by a team at Technical University of
XBerlin (TUB), one of eight institutions participating in the UniBase
Xproject.  
X
XThe shape toolkit is a collection of programs to support software
Xconfiguration management in an UNIX environment. It consists of a set
Xof version control commands and "shape", a significantly enhanced
XMake-oid. Shape and the version control commands are integrated on top
Xof AFS (Attributed File System), a dedicated version object base. The
Xsystem features RCS-style version control and a configuration
Xidentification and -build process that has full access to all
Xrevisions in the object base (in contrast to make which only knows
Xabout plain files). Each object version in the object base is stored
Xtogether with an arbitrary number of application defined attributes of
Xthe form "name=value".  AFS also supports derived object management,
Xi.e. it maintains a cache of multiple versions of compiled
Xobject-files (e.g. compiled c-files with different compile switches).
X
XThe shape program itself is upward compatible to Make in that it can
Xproperly handle conventional Makefiles. The "Shapefile" however, uses
XMakefile-style dependencies as (versionless) abstract system model and
Xemploys version selection rules to dynamically bind particular version
Xobjects in the object base to the names listed in the system model.
XThe version selection mechanism exploits AFS' ability to maintain any
Xnumber of arbitrary attributes for objects in the object base. On
Xspecial request, shape records an identified configuration in a
Xconfiguration identification document (CID) which has the form of a
Xcompletely bound Shapefile (all object-instances are explicit). This
Xmakes it particularly easy to rebuild recorded configurations. As
XCID's are themselves documents, they can be placed under version
Xcontrol, making it easy to maintain histories of entire software
Xsystems.
X
XOne of the most useful features of shape is its support of various
Xvariant administration techniques. Shape makes no assumptions about
Xthe semantics of the variant notion other than having alternative
X(conceptually equivalent) instances of the same concept ("module").
XDespite the particular semantics of a certain variant-concept, there
Xis a small number of techniques to physically handle variants. These
Xtechniques are what shape supports. Most commonly used techniques are:
X- equally named files in different directories
X- one source file representing multiple variants that are
X  extracted by a preprocessor using different preprocessor switches 
X  (e.g. conditional compilation)
X- one source file processed by different tools or different
X  tool versions/variants (e.g. cross compilation, different coders)
X- combinations of the above.
XShape includes a variant definition facility that allows very flexible
Xand convenient handling of all of the above variant administration
Xtechniques.
X
XThe object base abstraction presented by AFS provides uniform access
Xto immutable revisions of data entities (files) stored in special
Xarchives, and mutable regular UNIX files. Consequently, the AFS based
Xtoolkit lives peacefully (and meaningfully!) together with standard
Xfilesystem applications (editors, compilers, formatters etc.).
XCooperative work within projects is supported by a build-in status
Xmodel, controlling visibility of version objects, and locking, a
Xprimitive form of "long transactions. The general concept of object
Xattributes provides for passing information between individual tools
Xthat would otherwise be lost. This mechanism is useful for building
Xintegrated environments from a set of unrelated tools.
X
XThe toolkit character of the system allows to use it via
Xshell-commands, or to build a customized environment on top of it. As
Xan example, we built an alternate user interface to the system using
XGNU-Emacs which lead to a much more comprehensive, integrated user
Xinterface.  The corresponding Emacs lisp code is part of this
Xdistribution (see directory "interface").  For more sophisticated
Xrequirements, there is a complete C-language interface to AFS, on top
Xof which all the toolkit programs are built.
X
XYou can find additional information on the shape toolkit in the maual
Xpages, the tutorial and two conference papers enclosed in this
Xdistribution.  The tutorial shall help you to learn to use the toolkit
Xin your development work. The two papers - one on shape and one on AFS
X- deal with the concepts of the toolkit.
X
XProblems & Inconveniences
X=========================
X
XThis is the first version of the shape toolkit to be released to the
X"real world".  We used shape in our development work for several
Xmonths, but the toolkit has not been tested very exhaustively by other
Xsoftware developers than us.  Although it seems to run quite stable,
Xthere might still be malfunctions or even severe bugs. For the (hope-
Xfully very unlikely) case that a misbehavior of AFS destroys some data
Xin your object base, we strongly recommend to *make backup copies* of
Xthe Object bases' data (stored in a subdirectory called "AFS")
Xregularly.
X
XAn unpleasant thing is: the current version of shape is not very fast.
X"Shape" has a very complex job to do when running (much more than
Xmake) and this takes a while.  But - no excuses - the implementation
Xof the toolkit has to be (and can be) improved in further releases.
XBeside their slowness, the commands of the shape toolkit are quite
Xmemory-consuming. A big "shape" job can grow to a size over 2 Mb.
X
XThe description of the variant mechanism in the paper "A toolkit for
Xsoftware configuration engineering" is not up to date.  We made some
Xchanges to the variant handling since we wrote the paper. If you want
Xto use shape's variant administration features you should check the
Xman-page. Also the enclosed demo illustrates the use of variants.
X
XWorking with the shape toolkit on NFS (Network File System) is
Xsometimes a bit confusing. 
XThe shape toolkit cannot deal with network wide user IDs. There is no
Xway to tell shape that two user IDs (e.g. "andy@machine_1" and
X"andy@machine_2") represent the same person. This affects the locking
Xmechanism in an environment where several machines share the same
Xdisk. You cannot set an update lock on a version history from one
Xmachine and create new versions from another machine (unless you give
Xup or break the lock).
XAnother confusing effect occurs when you perform system builds from
Xdifferent machines in a NFS-based environment. Accessing the
X(physical) same data from different machines is treated by shape as a
Xsignificant change of the compile environment. As a consequence, shape
Xrecompiles your whole stuff on machine_2 even if you have valid object
Xfiles created by machine_1. This is a feature and not a bug !
X
XThis distribution contains the following parts:
X===============================================
X	README	     -- the file you are currently reading
X	COPYRIGHT    -- a file containing important information about
X			copyright permissions and warranty issues.
X			This file should *not* be deleted
X	bin/	     -- a directory designated to hold the executable
X			binaries.
X	interface/   -- a directory containing emacs-lisp files for
X			the emacs "shapetools" mode
X	man/         -- the online manuals for
X	    man1/    	-- version control commands and the "shape" command
X	    man3/    	-- the AFS interface and the shapetools mode
X	    man5/	-- file formats of AFS archive files
X	    man8/	-- "afsrepair", an AFS archive repair tool
X	papers/      -- two conceptual papers (n/troff source) about
X	    boston.ms	-- the shape toolkit
X	    lisbon.ms	-- the attributed filesystem (AFS)
X	tutorial/    -- A tutorial on how to work with the shape toolkit
X			(n/troff source)
X	src/	     -- the sources
X	    Makefile	-- the global Makefile for the toolkit
X	    afs/	-- the attributed filesystem (AFS)
X	    afsit/	-- a utility to prepare files for version control
X	    inc/	-- general include files
X	    misc/	-- miscellaneous base modules
X	    shape/	-- the shape program
X	    vc/		-- the version control system
X	    vfind/	-- a find(1) like utility that searches the filesystem
X			   *and* AFS object bases
X
XInstalling the toolkit:
X=======================
X
XThe shape toolkit can easily be installed on machines running
X	BSD 4.2/4.3,
X	SunOS 4.0 or
X	Ultrix 2.0/2.2 .
X
XFirst you have to edit the global Makefile of the toolkit (in the
Xdirectory "src") and fix the macro settings according to your needs.
XThe meaning of each macro is described in the Makefile.
XThe macros are preset for easy installation on a BSD 4.3 system.
X
XWhen setting the value "-DSYSLOG" for the macro "DEFINES", you indicate
Xthat you want to use the system log facility of your system for
Xlogging AFS error messages. In this case you have to add a line like
X> local1.err				/usr/adm/AFSerrlog
Xto your "/etc/syslog.conf" file.
X
XType "make" to build the toolkit and "make installation" to install the
Xexecutable programs. The manuals and the emacs-lisp files have to
Xbe installed manually.
X
XAll n/troff input files (except the manuals) shall be formatted by
Xusing the "ms" macro package.
XThe paper "lisbon.ms" has to be piped through pic before processing
Xwith troff.
XThe tutorial consists of several files that can be formatted by
Xapplying troff to "tutorial.ms".
X
XIf you have any problems, feel free to contact us:
X	UUCP:   shape@coma (from Europe:       mcvax!unido!coma!shape)
X			   (rest of the world: pyramid!tub!coma!shape)
X	BITNET: shape@db0tui62
X
END_OF_FILE
if test 10224 -ne `wc -c <'README'`; then
    echo shar: \"'README'\" unpacked with wrong size!
fi
# end of 'README'
fi
if test -f 'README.mod' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'README.mod'\"
else
echo shar: Extracting \"'README.mod'\" \(190 characters\)
sed "s/^X//" >'README.mod' <<'END_OF_FILE'
X
Xinterface/shapetools.el
X	Line 679 turned CTRL/X CTRL/@ into the four-char ^X^@
X	Line 743 turned CTRL/X CTRL/@ into the four-char ^X^@
X	Line 840 turned CTRL/C CTRL/C into the four-char ^C^C
END_OF_FILE
if test 190 -ne `wc -c <'README.mod'`; then
    echo shar: \"'README.mod'\" unpacked with wrong size!
fi
# end of 'README.mod'
fi
if test ! -d 'bin' ; then
    echo shar: Creating directory \"'bin'\"
    mkdir 'bin'
fi
if test ! -d 'copyrights' ; then
    echo shar: Creating directory \"'copyrights'\"
    mkdir 'copyrights'
fi
if test -f 'copyrights/COPYRIGHT' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'copyrights/COPYRIGHT'\"
else
echo shar: Extracting \"'copyrights/COPYRIGHT'\" \(976 characters\)
sed "s/^X//" >'copyrights/COPYRIGHT' <<'END_OF_FILE'
XCopyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X and U. Pralle
X
XThis software is published on an as-is basis. There is ABSOLUTELY NO
XWARRANTY for any part of this software to work correctly or as described
Xin the manuals. We do not accept any liability for any kind of damage
Xcaused by use of this software, such as loss of data, time, money, or effort.
X
XPermission is granted to use, copy, modify, or distribute any part of
Xthis software as long as this is done without asking for charge, and
Xprovided that this copyright notice is retained as part of the source
Xfiles. You may charge a distribution fee for the physical act of
Xtransferring a copy, and you may at your option offer warranty
Xprotection in exchange for a fee.
X
XDirect questions to: Tech. Univ. Berlin
X		     Wilfried Koch
X		     Sekr. FR 5-6 
X		     Franklinstr. 28/29
X		     D-1000 Berlin 10, West Germany
X
X		     Tel: +49-30-314-22972
X		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
END_OF_FILE
if test 976 -ne `wc -c <'copyrights/COPYRIGHT'`; then
    echo shar: \"'copyrights/COPYRIGHT'\" unpacked with wrong size!
fi
# end of 'copyrights/COPYRIGHT'
fi
if test -f 'copyrights/COPYRIGHT.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'copyrights/COPYRIGHT.c'\"
else
echo shar: Extracting \"'copyrights/COPYRIGHT.c'\" \(1056 characters\)
sed "s/^X//" >'copyrights/COPYRIGHT.c' <<'END_OF_FILE'
X/*
X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X *  and U. Pralle
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. We do not accept any liability for any kind of damage
X * caused by use of this software, such as loss of data, time, money, or 
X * effort.
X * 
X * Permission is granted to use, copy, modify, or distribute any part of
X * this software as long as this is done without asking for charge, and
X * provided that this copyright notice is retained as part of the source
X * files. You may charge a distribution fee for the physical act of
X * transferring a copy, and you may at your option offer warranty
X * protection in exchange for a fee.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 		     Wilfried Koch
X * 		     Sekr. FR 5-6 
X * 		     Franklinstr. 28/29
X * 		     D-1000 Berlin 10, West Germany
X * 
X * 		     Tel: +49-30-314-22972
X * 		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
END_OF_FILE
if test 1056 -ne `wc -c <'copyrights/COPYRIGHT.c'`; then
    echo shar: \"'copyrights/COPYRIGHT.c'\" unpacked with wrong size!
fi
# end of 'copyrights/COPYRIGHT.c'
fi
if test -f 'copyrights/COPYRIGHT.man' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'copyrights/COPYRIGHT.man'\"
else
echo shar: Extracting \"'copyrights/COPYRIGHT.man'\" \(1082 characters\)
sed "s/^X//" >'copyrights/COPYRIGHT.man' <<'END_OF_FILE'
X...
X... Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X...  and U. Pralle
X... 
X... This software is published on an as-is basis. There is ABSOLUTELY NO
X... WARRANTY for any part of this software to work correctly or as described
X... in the manuals. We do not accept any liability for any kind of damage
X... caused by use of this software, such as loss of data, time, money, or 
X... effort.
X... 
X... Permission is granted to use, copy, modify, or distribute any part of
X... this software as long as this is done without asking for charge, and
X... provided that this copyright notice is retained as part of the source
X... files. You may charge a distribution fee for the physical act of
X... transferring a copy, and you may at your option offer warranty
X... protection in exchange for a fee.
X... 
X... Direct questions to: Tech. Univ. Berlin
X... 		     Wilfried Koch
X... 		     Sekr. FR 5-6 
X... 		     Franklinstr. 28/29
X... 		     D-1000 Berlin 10, West Germany
X... 
X... 		     Tel: +49-30-314-22972
X... 		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X... 
END_OF_FILE
if test 1082 -ne `wc -c <'copyrights/COPYRIGHT.man'`; then
    echo shar: \"'copyrights/COPYRIGHT.man'\" unpacked with wrong size!
fi
# end of 'copyrights/COPYRIGHT.man'
fi
if test -f 'copyrights/COPYRIGHT.mk' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'copyrights/COPYRIGHT.mk'\"
else
echo shar: Extracting \"'copyrights/COPYRIGHT.mk'\" \(1027 characters\)
sed "s/^X//" >'copyrights/COPYRIGHT.mk' <<'END_OF_FILE'
X#
X# Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X#  and U. Pralle
X# 
X# This software is published on an as-is basis. There is ABSOLUTELY NO
X# WARRANTY for any part of this software to work correctly or as described
X# in the manuals. We do not accept any liability for any kind of damage
X# caused by use of this software, such as loss of data, time, money, or effort.
X# 
X# Permission is granted to use, copy, modify, or distribute any part of
X# this software as long as this is done without asking for charge, and
X# provided that this copyright notice is retained as part of the source
X# files. You may charge a distribution fee for the physical act of
X# transferring a copy, and you may at your option offer warranty
X# protection in exchange for a fee.
X# 
X# Direct questions to: Tech. Univ. Berlin
X# 		     Wilfried Koch
X# 		     Sekr. FR 5-6 
X# 		     Franklinstr. 28/29
X# 		     D-1000 Berlin 10, West Germany
X# 
X# 		     Tel: +49-30-314-22972
X# 		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X# 
END_OF_FILE
if test 1027 -ne `wc -c <'copyrights/COPYRIGHT.mk'`; then
    echo shar: \"'copyrights/COPYRIGHT.mk'\" unpacked with wrong size!
fi
# end of 'copyrights/COPYRIGHT.mk'
fi
if test ! -d 'demo' ; then
    echo shar: Creating directory \"'demo'\"
    mkdir 'demo'
fi
if test ! -d 'demo/AFS' ; then
    echo shar: Creating directory \"'demo/AFS'\"
    mkdir 'demo/AFS'
fi
if test ! -d 'demo/ENGLISH' ; then
    echo shar: Creating directory \"'demo/ENGLISH'\"
    mkdir 'demo/ENGLISH'
fi
if test ! -d 'demo/ENGLISH/AFS' ; then
    echo shar: Creating directory \"'demo/ENGLISH/AFS'\"
    mkdir 'demo/ENGLISH/AFS'
fi
if test -f 'demo/ENGLISH/components.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'demo/ENGLISH/components.c'\"
else
echo shar: Extracting \"'demo/ENGLISH/components.c'\" \(1167 characters\)
sed "s/^X//" >'demo/ENGLISH/components.c' <<'END_OF_FILE'
X/*
X * Copyright (C) 1988 Technische Universitaet Berlin
X * 
X * This is a pre-release !
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. No responsibility or liability for any damage caused
X * by using this software.
X * 
X * No part of this software may be redistributed or used commercially by 
X * any means or in any form.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 			Wilfried Koch
X * 			Sekr. FR 5-6 
X * 			Franklinstr. 28/29
X * 			D-1000 Berlin 10, West Germany
X * 
X * 			Tel: +49-30-314-22972
X * 			E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
Xcomponents()
X{
X#ifdef DEBUG
Xprintf("components with DEBUG\n");
X#endif DEBUG
X
Xprintf("$__name$.$__type$[$__version$]\n\n");  
Xprintf("\n");
Xprintf("Functions of the shape toolkit\n");
Xprintf("\n");
Xprintf(" - Revision Control System\n");
Xprintf("      save, Save / retrv\n");
Xprintf("      vl, vcat, vinfo, vlog, vadm\n");
Xprintf(" - Project Support\n");
Xprintf("      reserve / submit\n");
Xprintf("      accept / reject\n");
Xprintf(" - Configuration\n");
Xprintf("      shape\n");
X}
END_OF_FILE
if test 1167 -ne `wc -c <'demo/ENGLISH/components.c'`; then
    echo shar: \"'demo/ENGLISH/components.c'\" unpacked with wrong size!
fi
# end of 'demo/ENGLISH/components.c'
fi
if test -f 'demo/ENGLISH/title.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'demo/ENGLISH/title.c'\"
else
echo shar: Extracting \"'demo/ENGLISH/title.c'\" \(1006 characters\)
sed "s/^X//" >'demo/ENGLISH/title.c' <<'END_OF_FILE'
X/*
X * Copyright (C) 1988 Technische Universitaet Berlin
X * 
X * This is a pre-release !
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. No responsibility or liability for any damage caused
X * by using this software.
X * 
X * No part of this software may be redistributed or used commercially by 
X * any means or in any form.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 			Wilfried Koch
X * 			Sekr. FR 5-6 
X * 			Franklinstr. 28/29
X * 			D-1000 Berlin 10, West Germany
X * 
X * 			Tel: +49-30-314-22972
X * 			E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
Xtitle()
X{
X#ifdef DEBUG
Xprintf("title with DEBUG\n");
X#endif DEBUG
X
Xprintf("$__name$.$__type$[$__version$]\n\n");
Xprintf("\n");
Xprintf("*********************************************\n");
Xprintf("*    Tools  for Configuration Management    *\n");
Xprintf("*********************************************\n");
Xprintf("\n");
X
X}
END_OF_FILE
if test 1006 -ne `wc -c <'demo/ENGLISH/title.c'`; then
    echo shar: \"'demo/ENGLISH/title.c'\" unpacked with wrong size!
fi
# end of 'demo/ENGLISH/title.c'
fi
if test ! -d 'demo/FRENCH' ; then
    echo shar: Creating directory \"'demo/FRENCH'\"
    mkdir 'demo/FRENCH'
fi
if test ! -d 'demo/FRENCH/AFS' ; then
    echo shar: Creating directory \"'demo/FRENCH/AFS'\"
    mkdir 'demo/FRENCH/AFS'
fi
if test -f 'demo/FRENCH/components.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'demo/FRENCH/components.c'\"
else
echo shar: Extracting \"'demo/FRENCH/components.c'\" \(1174 characters\)
sed "s/^X//" >'demo/FRENCH/components.c' <<'END_OF_FILE'
X/*
X * Copyright (C) 1988 Technische Universitaet Berlin
X * 
X * This is a pre-release !
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. No responsibility or liability for any damage caused
X * by using this software.
X * 
X * No part of this software may be redistributed or used commercially by 
X * any means or in any form.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 			Wilfried Koch
X * 			Sekr. FR 5-6 
X * 			Franklinstr. 28/29
X * 			D-1000 Berlin 10, West Germany
X * 
X * 			Tel: +49-30-314-22972
X * 			E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
Xcomponents()
X{
X#ifdef DEBUG
Xprintf("components avec DEBUG\n");
X#endif DEBUG
X
Xprintf("$__name$.$__type$[$__version$]\n\n");  
Xprintf("\n");
Xprintf("Fonctions du shape-toolkit\n");
Xprintf("\n");
Xprintf(" - Controle des versions\n");
Xprintf("      save, Save / retrv\n");
Xprintf("      vl, vcat, vinfo, vlog, vadm\n");
Xprintf(" - Soutien de projet\n");
Xprintf("      reserve / submit\n");
Xprintf("      accept / reject\n");
Xprintf(" - Composition des systeme\n");
Xprintf("      shape\n");
X}
X
END_OF_FILE
if test 1174 -ne `wc -c <'demo/FRENCH/components.c'`; then
    echo shar: \"'demo/FRENCH/components.c'\" unpacked with wrong size!
fi
# end of 'demo/FRENCH/components.c'
fi
if test -f 'demo/FRENCH/title.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'demo/FRENCH/title.c'\"
else
echo shar: Extracting \"'demo/FRENCH/title.c'\" \(1006 characters\)
sed "s/^X//" >'demo/FRENCH/title.c' <<'END_OF_FILE'
X/*
X * Copyright (C) 1988 Technische Universitaet Berlin
X * 
X * This is a pre-release !
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. No responsibility or liability for any damage caused
X * by using this software.
X * 
X * No part of this software may be redistributed or used commercially by 
X * any means or in any form.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 			Wilfried Koch
X * 			Sekr. FR 5-6 
X * 			Franklinstr. 28/29
X * 			D-1000 Berlin 10, West Germany
X * 
X * 			Tel: +49-30-314-22972
X * 			E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
Xtitle()
X{
X#ifdef DEBUG
Xprintf("title avec DEBUG\n");
X#endif DEBUG
X
Xprintf("$__name$.$__type$[$__version$]\n\n");
Xprintf("\n");
Xprintf("*********************************************\n");
Xprintf("*  Outils pour la gestion des configuration *\n");
Xprintf("*********************************************\n");
Xprintf("\n");
X
X}
END_OF_FILE
if test 1006 -ne `wc -c <'demo/FRENCH/title.c'`; then
    echo shar: \"'demo/FRENCH/title.c'\" unpacked with wrong size!
fi
# end of 'demo/FRENCH/title.c'
fi
if test ! -d 'demo/GERMAN' ; then
    echo shar: Creating directory \"'demo/GERMAN'\"
    mkdir 'demo/GERMAN'
fi
if test ! -d 'demo/GERMAN/AFS' ; then
    echo shar: Creating directory \"'demo/GERMAN/AFS'\"
    mkdir 'demo/GERMAN/AFS'
fi
if test -f 'demo/GERMAN/components.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'demo/GERMAN/components.c'\"
else
echo shar: Extracting \"'demo/GERMAN/components.c'\" \(1167 characters\)
sed "s/^X//" >'demo/GERMAN/components.c' <<'END_OF_FILE'
X/*
X * Copyright (C) 1988 Technische Universitaet Berlin
X * 
X * This is a pre-release !
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. No responsibility or liability for any damage caused
X * by using this software.
X * 
X * No part of this software may be redistributed or used commercially by 
X * any means or in any form.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 			Wilfried Koch
X * 			Sekr. FR 5-6 
X * 			Franklinstr. 28/29
X * 			D-1000 Berlin 10, West Germany
X * 
X * 			Tel: +49-30-314-22972
X * 			E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
Xcomponents()
X{
X#ifdef DEBUG
Xprintf("components mit DEBUG\n");
X#endif DEBUG
X
Xprintf("$__name$.$__type$[$__version$]\n\n");  
Xprintf("\n");
Xprintf("Funktionen des shape-toolkit\n");
Xprintf("\n");
Xprintf(" - Versionsverwaltung\n");
Xprintf("      save, Save / retrv\n");
Xprintf("      vl, vcat, vinfo, vlog, vadm\n");
Xprintf(" - Projektunterstuetzung\n");
Xprintf("      reserve / submit\n");
Xprintf("      accept / reject\n");
Xprintf(" - Konfigurierung\n");
Xprintf("      shape\n");
X}
X
END_OF_FILE
if test 1167 -ne `wc -c <'demo/GERMAN/components.c'`; then
    echo shar: \"'demo/GERMAN/components.c'\" unpacked with wrong size!
fi
# end of 'demo/GERMAN/components.c'
fi
if test -f 'demo/GERMAN/title.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'demo/GERMAN/title.c'\"
else
echo shar: Extracting \"'demo/GERMAN/title.c'\" \(1005 characters\)
sed "s/^X//" >'demo/GERMAN/title.c' <<'END_OF_FILE'
X/*
X * Copyright (C) 1988 Technische Universitaet Berlin
X * 
X * This is a pre-release !
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. No responsibility or liability for any damage caused
X * by using this software.
X * 
X * No part of this software may be redistributed or used commercially by 
X * any means or in any form.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 			Wilfried Koch
X * 			Sekr. FR 5-6 
X * 			Franklinstr. 28/29
X * 			D-1000 Berlin 10, West Germany
X * 
X * 			Tel: +49-30-314-22972
X * 			E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
Xtitle()
X{
X#ifdef DEBUG
Xprintf("title mit DEBUG\n");
X#endif DEBUG
X
Xprintf("$__name$.$__type$[$__version$]\n\n");
Xprintf("\n");
Xprintf("*********************************************\n");
Xprintf("*  Werkzeuge zur Konfigurationsverwaltung   *\n");
Xprintf("*********************************************\n");
Xprintf("\n");
X
X}
END_OF_FILE
if test 1005 -ne `wc -c <'demo/GERMAN/title.c'`; then
    echo shar: \"'demo/GERMAN/title.c'\" unpacked with wrong size!
fi
# end of 'demo/GERMAN/title.c'
fi
if test ! -d 'interface' ; then
    echo shar: Creating directory \"'interface'\"
    mkdir 'interface'
fi
if test ! -d 'lib' ; then
    echo shar: Creating directory \"'lib'\"
    mkdir 'lib'
fi
if test -f 'lib/version.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'lib/version.c'\"
else
echo shar: Extracting \"'lib/version.c'\" \(142 characters\)
sed "s/^X//" >'lib/version.c' <<'END_OF_FILE'
X/*
X *  Prototype version procedure
X */
Xchar *$__name () { 
X  static char ConfID[] =  "$__version ($__stime by $__auuid$)";
X  return ConfID;
X}
END_OF_FILE
if test 142 -ne `wc -c <'lib/version.c'`; then
    echo shar: \"'lib/version.c'\" unpacked with wrong size!
fi
# end of 'lib/version.c'
fi
if test ! -d 'man' ; then
    echo shar: Creating directory \"'man'\"
    mkdir 'man'
fi
if test ! -d 'man/man1' ; then
    echo shar: Creating directory \"'man/man1'\"
    mkdir 'man/man1'
fi
if test ! -d 'man/man3' ; then
    echo shar: Creating directory \"'man/man3'\"
    mkdir 'man/man3'
fi
if test ! -d 'man/man5' ; then
    echo shar: Creating directory \"'man/man5'\"
    mkdir 'man/man5'
fi
if test ! -d 'man/man8' ; then
    echo shar: Creating directory \"'man/man8'\"
    mkdir 'man/man8'
fi
if test ! -d 'papers' ; then
    echo shar: Creating directory \"'papers'\"
    mkdir 'papers'
fi
if test ! -d 'src' ; then
    echo shar: Creating directory \"'src'\"
    mkdir 'src'
fi
if test ! -d 'src/afs' ; then
    echo shar: Creating directory \"'src/afs'\"
    mkdir 'src/afs'
fi
if test -f 'src/afs/af_version.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/afs/af_version.c'\"
else
echo shar: Extracting \"'src/afs/af_version.c'\" \(1171 characters\)
sed "s/^X//" >'src/afs/af_version.c' <<'END_OF_FILE'
X/*
X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X *  and U. Pralle
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. We do not accept any liability for any kind of damage
X * caused by use of this software, such as loss of data, time, money, or 
X * effort.
X * 
X * Permission is granted to use, copy, modify, or distribute any part of
X * this software as long as this is done without asking for charge, and
X * provided that this copyright notice is retained as part of the source
X * files. You may charge a distribution fee for the physical act of
X * transferring a copy, and you may at your option offer warranty
X * protection in exchange for a fee.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 		     Wilfried Koch
X * 		     Sekr. FR 5-6 
X * 		     Franklinstr. 28/29
X * 		     D-1000 Berlin 10, West Germany
X * 
X * 		     Tel: +49-30-314-22972
X * 		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
Xchar *af_version () {
X  static char ConfID[] =  "1.15 (Wed Feb 22 16:17:39 1989 by andy@coma)";
X  return ConfID;
X}
END_OF_FILE
if test 1171 -ne `wc -c <'src/afs/af_version.c'`; then
    echo shar: \"'src/afs/af_version.c'\" unpacked with wrong size!
fi
# end of 'src/afs/af_version.c'
fi
if test -f 'src/afs/edcmd.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/afs/edcmd.h'\"
else
echo shar: Extracting \"'src/afs/edcmd.h'\" \(1197 characters\)
sed "s/^X//" >'src/afs/edcmd.h' <<'END_OF_FILE'
X/*
X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X *  and U. Pralle
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. We do not accept any liability for any kind of damage
X * caused by use of this software, such as loss of data, time, money, or 
X * effort.
X * 
X * Permission is granted to use, copy, modify, or distribute any part of
X * this software as long as this is done without asking for charge, and
X * provided that this copyright notice is retained as part of the source
X * files. You may charge a distribution fee for the physical act of
X * transferring a copy, and you may at your option offer warranty
X * protection in exchange for a fee.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 		     Wilfried Koch
X * 		     Sekr. FR 5-6 
X * 		     Franklinstr. 28/29
X * 		     D-1000 Berlin 10, West Germany
X * 
X * 		     Tel: +49-30-314-22972
X * 		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
X/*
X * $Header: edcmd.h[1.0] Wed Feb 22 16:14:49 1989 shape@coma save $
X */
X
X#define	MV	0
X#define	AD	1
X
Xstruct ed_cmd
X{
X long cmd, length;
X};
END_OF_FILE
if test 1197 -ne `wc -c <'src/afs/edcmd.h'`; then
    echo shar: \"'src/afs/edcmd.h'\" unpacked with wrong size!
fi
# end of 'src/afs/edcmd.h'
fi
if test -f 'src/afs/exscr' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/afs/exscr'\"
else
echo shar: Extracting \"'src/afs/exscr'\" \(27 characters\)
sed "s/^X//" >'src/afs/exscr' <<'END_OF_FILE'
X1,/\* \//-1d
Xs.\* /.*/.
Xw!
END_OF_FILE
if test 27 -ne `wc -c <'src/afs/exscr'`; then
    echo shar: \"'src/afs/exscr'\" unpacked with wrong size!
fi
# end of 'src/afs/exscr'
fi
if test ! -d 'src/afsit' ; then
    echo shar: Creating directory \"'src/afsit'\"
    mkdir 'src/afsit'
fi
if test ! -d 'src/config' ; then
    echo shar: Creating directory \"'src/config'\"
    mkdir 'src/config'
fi
if test ! -d 'src/inc' ; then
    echo shar: Creating directory \"'src/inc'\"
    mkdir 'src/inc'
fi
if test ! -d 'src/misc' ; then
    echo shar: Creating directory \"'src/misc'\"
    mkdir 'src/misc'
fi
if test -f 'src/misc/utilversion.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/misc/utilversion.c'\"
else
echo shar: Extracting \"'src/misc/utilversion.c'\" \(1212 characters\)
sed "s/^X//" >'src/misc/utilversion.c' <<'END_OF_FILE'
X/*
X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X *  and U. Pralle
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. We do not accept any liability for any kind of damage
X * caused by use of this software, such as loss of data, time, money, or 
X * effort.
X * 
X * Permission is granted to use, copy, modify, or distribute any part of
X * this software as long as this is done without asking for charge, and
X * provided that this copyright notice is retained as part of the source
X * files. You may charge a distribution fee for the physical act of
X * transferring a copy, and you may at your option offer warranty
X * protection in exchange for a fee.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 		     Wilfried Koch
X * 		     Sekr. FR 5-6 
X * 		     Franklinstr. 28/29
X * 		     D-1000 Berlin 10, West Germany
X * 
X * 		     Tel: +49-30-314-22972
X * 		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
X/*
X *  Prototype version procedure
X */
Xchar *utilversion () { 
X  static char ConfID[] =  "1.11 (Thu Feb 23 21:23:21 1989 by axel@coma)";
X  return ConfID;
X}
END_OF_FILE
if test 1212 -ne `wc -c <'src/misc/utilversion.c'`; then
    echo shar: \"'src/misc/utilversion.c'\" unpacked with wrong size!
fi
# end of 'src/misc/utilversion.c'
fi
if test ! -d 'src/shape' ; then
    echo shar: Creating directory \"'src/shape'\"
    mkdir 'src/shape'
fi
if test -f 'src/shape/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/shape/README'\"
else
echo shar: Extracting \"'src/shape/README'\" \(539 characters\)
sed "s/^X//" >'src/shape/README' <<'END_OF_FILE'
XTo build shape, do the following
X
XChoose the appropriate Makefile:
X
X	Makefile.bsd43	 	if you are running BSD4.3
X	Makefile.sunos40	if you are running SUNOS 4.0
X	Makefile.ultrix20	if you are running ULTRIX 2.0
X
XEdit this Makefile and change the first 4 macrodefinitions
Xappropriately:
X	
X	AFSLIB		where the AFS library is located
X	UTILLIB		where the utility lib is located
X	AFSINC		where the AFS include files are located
X	INSTALDIR	where shape is to be installed
X
XType `make' to build shape.
XType `make install' to install shape.
X
XHave fun.
END_OF_FILE
if test 539 -ne `wc -c <'src/shape/README'`; then
    echo shar: \"'src/shape/README'\" unpacked with wrong size!
fi
# end of 'src/shape/README'
fi
if test -f 'src/shape/attr.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/shape/attr.h'\"
else
echo shar: Extracting \"'src/shape/attr.h'\" \(1266 characters\)
sed "s/^X//" >'src/shape/attr.h' <<'END_OF_FILE'
X/*
X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X *  and U. Pralle
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. We do not accept any liability for any kind of damage
X * caused by use of this software, such as loss of data, time, money, or 
X * effort.
X * 
X * Permission is granted to use, copy, modify, or distribute any part of
X * this software as long as this is done without asking for charge, and
X * provided that this copyright notice is retained as part of the source
X * files. You may charge a distribution fee for the physical act of
X * transferring a copy, and you may at your option offer warranty
X * protection in exchange for a fee.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 		     Wilfried Koch
X * 		     Sekr. FR 5-6 
X * 		     Franklinstr. 28/29
X * 		     D-1000 Berlin 10, West Germany
X * 
X * 		     Tel: +49-30-314-22972
X * 		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
X/*
X * $Log:	attr.h,v $
X * Revision 3.0  89/01/24  11:34:50  wolfgang
X * New System Generation
X * 
X * Revision 2.1  88/08/12  08:58:05  wolfgang
X * This version is part of a release
X * 
X */
X
X#define STD_ATTRS 6
END_OF_FILE
if test 1266 -ne `wc -c <'src/shape/attr.h'`; then
    echo shar: \"'src/shape/attr.h'\" unpacked with wrong size!
fi
# end of 'src/shape/attr.h'
fi
if test -f 'src/shape/files.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/shape/files.h'\"
else
echo shar: Extracting \"'src/shape/files.h'\" \(1104 characters\)
sed "s/^X//" >'src/shape/files.h' <<'END_OF_FILE'
X/*
X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X *  and U. Pralle
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. We do not accept any liability for any kind of damage
X * caused by use of this software, such as loss of data, time, money, or 
X * effort.
X * 
X * Permission is granted to use, copy, modify, or distribute any part of
X * this software as long as this is done without asking for charge, and
X * provided that this copyright notice is retained as part of the source
X * files. You may charge a distribution fee for the physical act of
X * transferring a copy, and you may at your option offer warranty
X * protection in exchange for a fee.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 		     Wilfried Koch
X * 		     Sekr. FR 5-6 
X * 		     Franklinstr. 28/29
X * 		     D-1000 Berlin 10, West Germany
X * 
X * 		     Tel: +49-30-314-22972
X * 		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
X#define ALL 0
X#define SOURCE 1
X#define BINARY 2
END_OF_FILE
if test 1104 -ne `wc -c <'src/shape/files.h'`; then
    echo shar: \"'src/shape/files.h'\" unpacked with wrong size!
fi
# end of 'src/shape/files.h'
fi
if test -f 'src/shape/hash.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/shape/hash.h'\"
else
echo shar: Extracting \"'src/shape/hash.h'\" \(1300 characters\)
sed "s/^X//" >'src/shape/hash.h' <<'END_OF_FILE'
X/*
X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X *  and U. Pralle
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. We do not accept any liability for any kind of damage
X * caused by use of this software, such as loss of data, time, money, or 
X * effort.
X * 
X * Permission is granted to use, copy, modify, or distribute any part of
X * this software as long as this is done without asking for charge, and
X * provided that this copyright notice is retained as part of the source
X * files. You may charge a distribution fee for the physical act of
X * transferring a copy, and you may at your option offer warranty
X * protection in exchange for a fee.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 		     Wilfried Koch
X * 		     Sekr. FR 5-6 
X * 		     Franklinstr. 28/29
X * 		     D-1000 Berlin 10, West Germany
X * 
X * 		     Tel: +49-30-314-22972
X * 		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
X/*
X * $Log:	hash.h,v $
X * Revision 3.0  89/01/24  11:35:44  wolfgang
X * New System Generation
X * 
X * Revision 2.1  88/08/12  08:58:07  wolfgang
X * This version is part of a release
X * 
X */
X
X#define HASHSIZE 257
X
Xstruct hash *hashtab[HASHSIZE];
END_OF_FILE
if test 1300 -ne `wc -c <'src/shape/hash.h'`; then
    echo shar: \"'src/shape/hash.h'\" unpacked with wrong size!
fi
# end of 'src/shape/hash.h'
fi
if test -f 'src/shape/version.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/shape/version.c'\"
else
echo shar: Extracting \"'src/shape/version.c'\" \(1174 characters\)
sed "s/^X//" >'src/shape/version.c' <<'END_OF_FILE'
X/*
X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X *  and U. Pralle
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. We do not accept any liability for any kind of damage
X * caused by use of this software, such as loss of data, time, money, or 
X * effort.
X * 
X * Permission is granted to use, copy, modify, or distribute any part of
X * this software as long as this is done without asking for charge, and
X * provided that this copyright notice is retained as part of the source
X * files. You may charge a distribution fee for the physical act of
X * transferring a copy, and you may at your option offer warranty
X * protection in exchange for a fee.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 		     Wilfried Koch
X * 		     Sekr. FR 5-6 
X * 		     Franklinstr. 28/29
X * 		     D-1000 Berlin 10, West Germany
X * 
X * 		     Tel: +49-30-314-22972
X * 		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
Xchar *version () { static char ConfID[] =  "3.11 (Mon Feb 27 11:20:46 MET 1989 by wolfgang@coma )";  return ConfID; }
END_OF_FILE
if test 1174 -ne `wc -c <'src/shape/version.c'`; then
    echo shar: \"'src/shape/version.c'\" unpacked with wrong size!
fi
# end of 'src/shape/version.c'
fi
if test ! -d 'src/vc' ; then
    echo shar: Creating directory \"'src/vc'\"
    mkdir 'src/vc'
fi
if test -f 'src/vc/version.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/vc/version.c'\"
else
echo shar: Extracting \"'src/vc/version.c'\" \(1208 characters\)
sed "s/^X//" >'src/vc/version.c' <<'END_OF_FILE'
X/*
X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X *  and U. Pralle
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. We do not accept any liability for any kind of damage
X * caused by use of this software, such as loss of data, time, money, or 
X * effort.
X * 
X * Permission is granted to use, copy, modify, or distribute any part of
X * this software as long as this is done without asking for charge, and
X * provided that this copyright notice is retained as part of the source
X * files. You may charge a distribution fee for the physical act of
X * transferring a copy, and you may at your option offer warranty
X * protection in exchange for a fee.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 		     Wilfried Koch
X * 		     Sekr. FR 5-6 
X * 		     Franklinstr. 28/29
X * 		     D-1000 Berlin 10, West Germany
X * 
X * 		     Tel: +49-30-314-22972
X * 		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
X/*
X *  Prototype version procedure
X */
Xchar *version () { 
X  static char ConfID[] =  "3.31 (Wed Feb 22 16:31:32 1989 by axel@coma)";
X  return ConfID;
X}
END_OF_FILE
if test 1208 -ne `wc -c <'src/vc/version.c'`; then
    echo shar: \"'src/vc/version.c'\" unpacked with wrong size!
fi
# end of 'src/vc/version.c'
fi
if test ! -d 'src/vfind' ; then
    echo shar: Creating directory \"'src/vfind'\"
    mkdir 'src/vfind'
fi
if test ! -d 'src/vfind/AFS' ; then
    echo shar: Creating directory \"'src/vfind/AFS'\"
    mkdir 'src/vfind/AFS'
fi
if test -f 'src/vfind/README' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/vfind/README'\"
else
echo shar: Extracting \"'src/vfind/README'\" \(1197 characters\)
sed "s/^X//" >'src/vfind/README' <<'END_OF_FILE'
XThis file is README for release 1.0 of vfind, a find(1)-like program.
XYou need AFS to install this package.
X
XThe distribution contains the following files:
X
X	README		-- this file
X	vfind.c 	-- the main program
X	vfversion.c	-- the version number of this vfind.
X	at_misc.c	-- AFS utilities to make life easier
X	atk.h		-- the header file of at_misc.c
X	Shapefile	-- the Shapefile
X	vfind.1		-- the manual page
X	AFS		-- an empty AFS directory
X
XVfind can easily be installed on machines with
X	BSD 4.3
X	SunOS 4.0 or
X	Ultrix 2.0.
X
XTo install this package, edit the Shapefile (i.e. change the first three
Xmacro definitions: AFSINC, AFSLIBPATH, and INSTALDIR). Then type
X		``shape'' 
Xfor BSD 4.3 systems. For SunOS 4.0 systems type
X		``shape SYSTEM=sunos_4_0''
XFor Ultrix systems type
X		``shape SYSTEM=ultrix_2_0''
X
XThis will compile vfind with the -g option.
XIf you want an optimized vfind, type
X	 ``shape SYSTEM=<your system> QUALITY=optimize''
X
XIf you have gcc (vfind compiles with gcc-1.31) you can type
X	``shape SYSTEM=<your system> COMPILER=gnu QUALITY=maxoptimize''
X
X
XBug reports:
XPlease send bug reports to the author or to shape-bugs@coma.UUCP
Xor shape-bugs@db0tui62.BITNET. (See also vfind.1)
X
X+Uli
END_OF_FILE
if test 1197 -ne `wc -c <'src/vfind/README'`; then
    echo shar: \"'src/vfind/README'\" unpacked with wrong size!
fi
# end of 'src/vfind/README'
fi
if test -f 'src/vfind/vfversion.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'src/vfind/vfversion.c'\"
else
echo shar: Extracting \"'src/vfind/vfversion.c'\" \(1208 characters\)
sed "s/^X//" >'src/vfind/vfversion.c' <<'END_OF_FILE'
X/*
X * Copyright (C) 1989, 1990 W. Koch, A. Lampen, A. Mahler, W. Obst,
X *  and U. Pralle
X * 
X * This software is published on an as-is basis. There is ABSOLUTELY NO
X * WARRANTY for any part of this software to work correctly or as described
X * in the manuals. We do not accept any liability for any kind of damage
X * caused by use of this software, such as loss of data, time, money, or 
X * effort.
X * 
X * Permission is granted to use, copy, modify, or distribute any part of
X * this software as long as this is done without asking for charge, and
X * provided that this copyright notice is retained as part of the source
X * files. You may charge a distribution fee for the physical act of
X * transferring a copy, and you may at your option offer warranty
X * protection in exchange for a fee.
X * 
X * Direct questions to: Tech. Univ. Berlin
X * 		     Wilfried Koch
X * 		     Sekr. FR 5-6 
X * 		     Franklinstr. 28/29
X * 		     D-1000 Berlin 10, West Germany
X * 
X * 		     Tel: +49-30-314-22972
X * 		     E-mail: shape@coma.uucp or shape@db0tui62.bitnet
X */
X/*
X *  Prototype version procedure
X */
Xchar *vfversion () { 
X  static char ConfID[] =  "1.8 (Tue Feb 21 17:02:07 1989 by uli@coma)";
X  return ConfID;
X}
END_OF_FILE
if test 1208 -ne `wc -c <'src/vfind/vfversion.c'`; then
    echo shar: \"'src/vfind/vfversion.c'\" unpacked with wrong size!
fi
# end of 'src/vfind/vfversion.c'
fi
if test ! -d 'tutorial' ; then
    echo shar: Creating directory \"'tutorial'\"
    mkdir 'tutorial'
fi
echo shar: End of archive 1 \(of 33\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 33 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
Please send comp.sources.unix-related mail to rsalz@uunet.uu.net.