home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume27 / aegis-2.1 / part11 / BUILDING next >
Encoding:
Text File  |  1993-09-24  |  20.7 KB  |  727 lines

  1.  
  2.  
  3.  
  4. build(aegis)                         build(aegis)
  5.  
  6.  
  7. NAME
  8.     aegis -    project    change supervisor
  9.     Copyright (C) 1990, 1991, 1992,    1993 Peter Miller.
  10.     All rights reserved.
  11.  
  12.     The aegis program is distributed under the terms of the
  13.     GNU General Public License.  See the LICENSE section,
  14.     below, for more    details.
  15.  
  16.     aegis (ee.j.iz)    n., a protection, a defence.
  17.  
  18. SPACE REQUIREMENTS
  19.     You will need up to 10MB to unpack and build the aegis
  20.     program.  (This    is the worst case seen so far, most
  21.     systems    have binaries about 60%    as big as this,    6MB is
  22.     more typical.)    Your mileage may vary.
  23.  
  24. SITE CONFIGURATION
  25.     The file common/conf.h needs to    be created to match your
  26.     site.  Select an appropriate file from the conf
  27.     directory.  The    files in this directory    are named for the
  28.     various    systems    encountered to date by the author.  The
  29.     file most closely resembling your system should    be copied
  30.     into the common/conf.h file.  You can copy it or use a
  31.     symbolic link; copying is recommended because you may
  32.     need to    edit.
  33.  
  34.     The common/conf.h file is extensively commented.  Read
  35.     the comments and change    what you need to.  Please read
  36.     this file carefully.
  37.  
  38.     Be careful in changing the settings if you are using a
  39.     conf file accurately named for your system; aegis
  40.     exersizes functionality    unfamiliar to many.  There are
  41.     known cases where systems have the necessary facilities,
  42.     but they are nowhere documented.  If you are unsure, try
  43.     it unchanged first, and    then edit if you find that there
  44.     are problems.
  45.  
  46.     Another    file which may require editing is the Makefile
  47.     file.  The first few lines contain comments describing
  48.     what may require changing.  In general these changes will
  49.     relate to the name of your favorite C compiler,    and where
  50.     it keeps its include files.
  51.  
  52.     The top    of the Makefile    file is    arranged as macro
  53.     definitions, with alternatives for each    known system in
  54.     comments.  Search for your system's name, editing the
  55.     macro definition as required.
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.                                 1
  65.  
  66.  
  67.  
  68.  
  69.  
  70. build(aegis)                         build(aegis)
  71.  
  72.  
  73. KNOWN SYSTEMS
  74.     This distribution of aegis is known to build on    the
  75.     following systems:
  76.  
  77.     SunOS 4.1
  78.         The native cc(1) and also gcc(1) are known to
  79.         work for Sun4s.     The appropriate configuration is
  80.         contained in the conf/SunOS-4.1    file.  Sun seem
  81.         to be having chronic problems with locking; you
  82.         may need to get    the very latest    set of locking
  83.         patches    and apply them.     See also the tmpfs note,
  84.         below.
  85.  
  86.     ConvexOS 10.0
  87.         The native cc(1) works just fine.  The
  88.         appropriate configuration is contained in the
  89.         conf/ConvexOS-10 file.    Note that there    is no
  90.         "bin" user on ConvexOS,    so the owner of    aegis '
  91.         library    files is "daemon"; you will need to map
  92.         user and group "bin" to    "daemon" in the
  93.         instructions below.
  94.  
  95.     DG/UX 5.4.1
  96.         The native cc(1) works just fine.  The
  97.         appropriate configuration is contained in the
  98.         conf/dgux-5.4.1    file.
  99.  
  100.     ULTRIX 4.2
  101.         It has the seteuid and setegid calls, but the
  102.         shell has no functions!     Complain to your vendor.
  103.         You will need to change    the SHELL macro
  104.         definition in the Makefile file    to use sh5(1)
  105.         instead.  The appropriate configuration    is
  106.         contained in the conf/ULTRIX-4.2 file.
  107.  
  108.     Pyramid    SMP DC/OSx 1.0-92b023
  109.         This system is pretty horrendous.  The native cc
  110.         is known to work, but gives a staggering number
  111.         of warnings, just ignore them.    Gcc is also known
  112.         to work, and gives far fewer stupid warnings.
  113.         The appropriate    configuration is contained in the
  114.         conf/dcosx file.
  115.  
  116.     HP-UX A.08.07
  117.         The author has been advised that the aegis
  118.         program    works on this system.  Could another
  119.         person confirm this, please.  The appropriate
  120.         configuration is contained in the conf/hpux-8.07
  121.         file.
  122.  
  123.     SCO 2.4
  124.         The author has been advised that the aegis
  125.         program    works on this system.  Could another
  126.         person confirm this, please.  The appropriate
  127.  
  128.  
  129.  
  130.                                 2
  131.  
  132.  
  133.  
  134.  
  135.  
  136. build(aegis)                         build(aegis)
  137.  
  138.  
  139.         configuration is contained in the conf/SCO-2.4
  140.         file.
  141.  
  142.     Sun Solaris 2.1
  143.         The author has been advised that the aegis
  144.         program    works on this system.  Could another
  145.         person confirm this, please; and tell the author
  146.         how they did it, there seems to    be some    black
  147.         magic involved.     The appropriate configuration is
  148.         contained in the conf/SunOS-5.1    file.
  149.  
  150.     Linux 0.99
  151.         The author has been advised that the aegis
  152.         programs works on this system.    Could another
  153.         person confirm this, please.  The appropriate
  154.         configuration is contained in the conf/Linux-0.99
  155.         file.
  156.  
  157.     Silicon    Graphics IRIX 4.0.5G
  158.         The author has been advised that the aegis
  159.         programs works on this system.    Could another
  160.         person confirm this, please.  The appropriate
  161.         configuration is contained in the conf/IRIX-4.0
  162.         file.
  163.  
  164.     If the instructions for    any of the above systems do not
  165.     work, after you    have double-checked everything,    the
  166.     author would like to know.
  167.  
  168. UNKNOWN    SYSTEMS
  169.     Please let the author know of any other    systems    you get
  170.     aegis working on, and the modifications    necessary.
  171.     Please include the differences to the Makefile file, and
  172.     the whole common/conf.h    file you used.    Included any
  173.     other files you    edited or added.  Include the output of
  174.     the "uname -rs"    command, if your flavour of UNIX has such
  175.     a command.
  176.  
  177.     While the aegis    program    was developed using gcc, this is
  178.     not the    default    in the Makefile    file.  The code    uses ANSI
  179.     C features without compromising    the ability to be
  180.     compiled on older C compilers.    Functions mandated by the
  181.     ANSI C standard    are used, because many systems provided
  182.     them, one way or another.  Please let the author know of
  183.     any others you think should be added to    the common/ansi.c
  184.     file.
  185.  
  186.     You may    need to    use some ANSI C    header files which the
  187.     aegis code uses, but which some    systems    (as yet) fail to
  188.     provide.  You will find    lines at the top of the    Makefile
  189.     file similar to
  190.         H = -I/usr/include -Ih
  191.     Change this to suit your system    and your compiler.  The
  192.     "h" directory must be searched last as it is intended to
  193.  
  194.  
  195.  
  196.                                 3
  197.  
  198.  
  199.  
  200.  
  201.  
  202. build(aegis)                         build(aegis)
  203.  
  204.  
  205.     supplement your    system,    not replace it.
  206.  
  207.     You will need to check the include files in the    "h"
  208.     directory to see that they are suitable    for your system.
  209.     You may    want to    delete any that    your system already has.
  210.  
  211. BUILDING AEGIS
  212.     All you    should need to do is use the
  213.         % make
  214.         ...lots    of output...
  215.         %
  216.     command    and wait.  When    this finishes you should see a
  217.     directory called bin containing    two files: aegis and
  218.     fmtgen.     The fmtgen file is a program used in
  219.     constructing aegis and is not for general consumption.
  220.  
  221. OTHER USEFUL SOFTWARE
  222.     Before describing how to test aegis, you may need to grab
  223.     some other free    software, because the tests require it in
  224.     some cases, and    because    it is generally    useful in others.
  225.  
  226.     cook
  227.         This is    a dependency maintenance tool (DMT).  An
  228.         example    of a well-known    DMT is make(1),    however
  229.         this old faithful is not sufficiently capable to
  230.         meet the demands placed    on it by the aegis
  231.         program, but cook certainly is.     The cook package
  232.         is written by the same author as aegis.     The cook
  233.         package    is necessary for test 11 to pass.  It is
  234.         also used in the documentation.     The cook program
  235.         may be found at    the same archive site as the
  236.         aegis program, and in the same directory.  The
  237.         cook program is    available under    the terms of the
  238.         GNU General Public License.
  239.  
  240.     RCS
  241.         This is    a source control package, and is
  242.         available from any of the GNU archives.     The
  243.         tests use RCS as the history mechanism,    so it is
  244.         necessary to have RCS for most of the tests to
  245.         pass.
  246.  
  247.     GNU diff
  248.         If the diff(1) utility supplied    by your    flavor of
  249.         unix does not have the -c option, you will need
  250.         GNU diff to make patch files, if you want to
  251.         publish    software for FTP or on USENET.    Context
  252.         differences are    also helpful for reviewing
  253.         changes.
  254.  
  255.     groff
  256.         This GNU software replaces the documentation
  257.         tools which (sometimes)    come with UNIX.     They
  258.         produce    superior error messages, and support a
  259.  
  260.  
  261.  
  262.                                 4
  263.  
  264.  
  265.  
  266.  
  267.  
  268. build(aegis)                         build(aegis)
  269.  
  270.  
  271.         wider range of functionality and fonts.     The
  272.         aegis User Guide was prepared with groff.
  273.  
  274.     bison
  275.         This GNU software is a replacement for yacc(1).
  276.         Some systems have very sick yaccs, and this may
  277.         be necessary if    your system include files
  278.         disagree strongly with your system's yacc.  The
  279.         Makefile has bison setup in comments.
  280.  
  281.     fhist
  282.         This software, available under the terms of the
  283.         GNU General Public License, is a set of    file
  284.         history    and comparison utilities.  It was
  285.         originally written by David I. Bell, and is based
  286.         on the minimal difference algorithm by Eugene W.
  287.         Myers.    This copy is enhanced and maintained by
  288.         the same author    as aegis, and may be found at the
  289.         same archive site, in the same directory.
  290.  
  291. TESTING    AEGIS
  292.     The aegis program comes    with a test suite.  To run this
  293.     test suite, use    the command
  294.         % make sure
  295.         ...lots    of output...
  296.         Passed All Tests
  297.         %
  298.  
  299.     The tests take a minute    or two each, with a few    very
  300.     fast, and a couple very    slow, but it varies greatly
  301.     depending on your CPU.
  302.  
  303.     The tests assume that the RCS commands "ci", "co", "rlog"
  304.     and "rcs" are somewhere    in the command search PATH.
  305.  
  306.     The test/00/t0011a.sh file assumes the cook(1) command by
  307.     the author is somewhere    in the command search path.  This
  308.     test reproduces    the example used in Chapter 3 of the User
  309.     Guide.
  310.  
  311.     If you are using Sun's tmpfs file system as your /tmp
  312.     directory, the tests will fail.     This is because the
  313.     tmpfs file system does not support file    locking.  Set the
  314.     AEGIS_TMP environment variable to somewhere else before
  315.     running    the tests.  Something like
  316.         % setenv AEGIS_TMP /usr/tmp
  317.         %
  318.     is usually sufficient if you are using C shell,    or
  319.         $ AEGIS_TMP=/usr/tmp
  320.         $ export AEGIS_TMP
  321.         $
  322.     if you are using Bourne    shell.    Remember, this must be
  323.     done before running the    tests.
  324.  
  325.  
  326.  
  327.  
  328.                                 5
  329.  
  330.  
  331.  
  332.  
  333.  
  334. build(aegis)                         build(aegis)
  335.  
  336.  
  337.     If the tests fail due to errors    complaining of "user too
  338.     privileged" you    will need to adjust the    AEGIS_MIN_UID
  339.     define in the common/conf.h file.  Similarly for "group
  340.     too privileged", although this is rarer.  This error
  341.     message    will also occur    if you run the tests as    root: the
  342.     tests must be run as a mortal each time.
  343.  
  344. TESTING    SET-UID-ROOT
  345.     If the aegis program is    not set-uid-root then it runs in
  346.     "test" mode which gives    you some confidence that aegis is
  347.     working    before being tested again when it is set-uid-
  348.     root.  Two pass    testing    like this means    that you need not
  349.     trust your system to a set-uid-root program which is not
  350.     known to work.
  351.  
  352.     You will need to do a little of    the install, to    create
  353.     the directory which will contain aegis'    lock file.
  354.         # mkdir    /usr/local/lib/aegis
  355.         # chmod    755 /usr/local/lib/aegis
  356.         # chown    bin /usr/local/lib/aegis
  357.         # chgrp    bin /usr/local/lib/aegis
  358.         #
  359.     You will need to change    aegis to be set-uid-root.  This
  360.     may be done with the following commands:
  361.         # chown    root bin/aegis
  362.         # chmod    u+s bin/aegis
  363.         #
  364.     Once aegis is set-uid-root, it is tested again,    in the
  365.     same manner as before.
  366.         % make sure
  367.         ...lots    of output...
  368.         Passed All Tests
  369.         %
  370.  
  371.     You should test    aegis as a mortal in both passes, rather
  372.     than as    root, to be sure the set-uid-root functionality
  373.     is working correctly.
  374.  
  375.     It is required that aegis run set-uid-root for all of its
  376.     functionality to be available.    It is NOT possible to
  377.     create an "aegis" account and make aegis run set-uid-
  378.     aegis.    This is    because    aegis does things as various
  379.     different user IDs, sometimes as many as 3 in the one
  380.     command.  This allows aegis to use UNIX    security rather
  381.     than inventing its own,    and also allows    aegis to work
  382.     across NFS.  To    be able    to do these things, aegis must be
  383.     set-uid-root.  Believe me, folks, if I could have done it
  384.     without    set-uid-root, I    would have!
  385.  
  386. INSTALLING AEGIS
  387.     Put the    aegis program somewhere    where users will
  388.     automatically pick it up, such as in the /usr/local/bin
  389.     directory.  Use    the command
  390.         # cp bin/aegis /usr/local/bin
  391.  
  392.  
  393.  
  394.                                 6
  395.  
  396.  
  397.  
  398.  
  399.  
  400. build(aegis)                         build(aegis)
  401.  
  402.  
  403.         #
  404.     Don't forget to    make sure that the copy    is set-uid-root,
  405.     some versions of cp do not transfer the    set-uid    bit of
  406.     the mode.
  407.  
  408.     The manuals can    be installed using the commands
  409.         # sh man1/install.sh /usr/local/man/man1
  410.         # sh man5/install.sh /usr/local/man/man5
  411.         #
  412.     but this is very site specific.     You can select    a
  413.     different path by changing the last argument.
  414.  
  415.     By default, aegis is configured    to use
  416.     /usr/local/lib/aegis as    the place it stores the    table
  417.     containing the mapping from project name to project
  418.     directory, and indexes into this table.     The aegis
  419.     program    also has example .cshrc    and .profile files, and
  420.     generic    notification scripts.  These can be copied to
  421.     this library as    follows:
  422.         # mkdir    /usr/local/lib/aegis
  423.         # chmod    755 /usr/local/lib/aegis
  424.         # chown    bin /usr/local/lib/aegis
  425.         # chgrp    bin /usr/local/lib/aegis
  426.         # cp lib/* /usr/local/lib/aegis
  427.         # chmod    a+r /usr/local/lib/aegis/*
  428.         # chmod    a+x /usr/local/lib/aegis/*.sh
  429.         #
  430.     This is    only an    example, and you may want to place this
  431.     somewhere else.     Control of the    placement of this
  432.     directory may be found in the first few    lines of the
  433.     Makefile file.
  434.  
  435.     All of the above install can be    done automatically, using
  436.     the "make install" command as root.  Control of    the
  437.     directories used may be    found in the first few lines of
  438.     the Makefile file.
  439.  
  440. USER CONFIGURATION
  441.     The aegis command is assumed to    be in a    generally
  442.     accessible place, otherwise users will need to add the
  443.     relevant directory to their PATH.  Users should    add
  444.         source /usr/local/lib/aegis/cshrc
  445.     to the end of their .cshrc file    for the    recommended
  446.     aliases.
  447.  
  448.     There is also a    profile    for users of the Bourne    shell (it
  449.     assumes    you have a version of the Bourne shell which has
  450.     functions).  Users should add
  451.         . /usr/local/lib/aegis/profile
  452.     to the end of their .profile file for the recommended
  453.     aliases.
  454.  
  455.     The /usr/local/lib/aegis/state file contains pointers to
  456.     "system" projects.  Users may add their    own project
  457.  
  458.  
  459.  
  460.                                 7
  461.  
  462.  
  463.  
  464.  
  465.  
  466. build(aegis)                         build(aegis)
  467.  
  468.  
  469.     pointers (to their own projects) by putting a search path
  470.     into the AEGIS environment variable.  The system part is
  471.     always automatically appended by aegis.     The default,
  472.     already    set by the /usr/local/lib/aegis/cshrc file, is
  473.     $HOME/lib/aegis.  Do not create    this directory,    aegis is
  474.     finicky    and wants to do    this itself.
  475.  
  476.     Where projects reside is completely flexible, be they
  477.     system projects    or user    projects.  They    are not    kept
  478.     under the /usr/local/lib/aegis directory, this directory
  479.     only contains pointers.
  480.  
  481. PRINTED    MANUALS
  482.     This distribution contains the sources to all of the
  483.     documentation for aegis.  The author used the GNU groff
  484.     package    and a postscript printer to prepare the
  485.     documentation.    If you do not have this    software, you
  486.     will need to substitute    commands appropriate to    your
  487.     site.
  488.  
  489.     To print copies    of the README and BUILDING files, the
  490.     following commands may be used
  491.         % groff    -t -man    aux/*.man | lpr
  492.         %
  493.     This will produce about    12 pages.  The "-t" flag means
  494.     preprocess with    tbl(1).
  495.  
  496.     To print copies    of the manual entries, the following
  497.     commands may be    used
  498.         % cd man1
  499.         % groff    -s -t -man *.1 | lpr
  500.         % cd ../man5
  501.         % groff    -s -t -man *.5 | lpr
  502.         % cd ..
  503.         %
  504.     This will produce about    60 pages.  The "-s" flag means
  505.     preprocess with    soelim(1), and the "-t"    flag means
  506.     preprocess with    tbl(1).
  507.  
  508.     To print a copy    of the User Guide, the following commands
  509.     may be used
  510.         % cd doc
  511.         % groff    -s -t -p -ms aegis.ms |    lpr
  512.         % cd ..
  513.         %
  514.     This will produce about    90 pages.  The "-s" flag means
  515.     preprocess with    soelim(1), the "-t" flag means preprocess
  516.     with tbl(1), and the "-p" flag means preprocess    with
  517.     pic(1).     Alternatively,    you could get a    PostScript copy
  518.     of the User Guide from the archive site.
  519.  
  520.     Please note the    the User Guide is still    in the process of
  521.     being written.    Some sections of the User Guide    are
  522.     incomplete.  Feedback on the form and content of this
  523.  
  524.  
  525.  
  526.                                 8
  527.  
  528.  
  529.  
  530.  
  531.  
  532. build(aegis)                         build(aegis)
  533.  
  534.  
  535.     document would be most welcome.
  536.  
  537. TIME SYNCHRONIZATION
  538.     The aegis program uses time stamps to remember whether
  539.     various    events have happened and when.    If you are using
  540.     aegis in a networked environment, typically a server and
  541.     dataless workstations, you need    to make    absolutely sure
  542.     that all of the    machines agree about the time.
  543.  
  544.     If possible, use the time daemon.  Otherwise, use
  545.     rdate(8) via cron(8) every hour    or so.
  546.  
  547. GETTING    HELP
  548.     If you need assistance with the    aegis program, please do
  549.     not hesitate to    contact    the author at
  550.         Peter Miller <pmiller@bmr.gov.au>
  551.     Any and    all feedback is    welcome.
  552.  
  553.     When reporting problems, please    include    the version
  554.     number given by    the
  555.         % aegis    -version
  556.         aegis version a.b.cccc
  557.         ...
  558.         %
  559.     command.
  560.  
  561.    Runtime Checking
  562.     In the common/main.h file, the is a define of DEBUG in
  563.     comments.  If the comments are removed,    extensive
  564.     debugging is turned on.     This causes some performance
  565.     loss, but performs much    run-time checking and adds the
  566.     -TRace command line option.
  567.  
  568.     When the -TRace    command    line option is followed    by one or
  569.     more file names, it turns on execution traces in those
  570.     source files.  It is usually best to place this    on the
  571.     end of the command line    so that    names of the files to be
  572.     traced are not confused    with other file    names or strings
  573.     on the command line.
  574.  
  575.    Problem Reports
  576.     If you send email to the author, please    include    the
  577.     following information:
  578.  
  579.     1. The type of UNIX
  580.         The author will    need to    know the brand and
  581.         version    of UNIX    you are    using, or if it    is not
  582.         UNIX but something else.  The output of    "uname
  583.         -sr" is    usually    sufficient (but    not all    systems
  584.         have it).
  585.  
  586.     2. The Version Number
  587.         In any information you send, please include the
  588.         version    number reported    in the
  589.  
  590.  
  591.  
  592.                                 9
  593.  
  594.  
  595.  
  596.  
  597.  
  598. build(aegis)                         build(aegis)
  599.  
  600.  
  601.         common/patchlevel.h file, or `aegis -vers` if you
  602.         can get    it to compile.
  603.  
  604.     3. The Archive Site
  605.         When and where you obtained this version of
  606.         aegis.    If you tell me nothing else, tell me this
  607.         (and, hopefully, why you did nothing else).
  608.  
  609.     4. Unpacking
  610.         Did you    have problems unpacking    aegis?    This
  611.         probably isn't a problem with the .tar.Z
  612.         distribution, but you could have obtained a shar
  613.         format copy.
  614.  
  615.     5. Building
  616.         Did you    have problems building aegis?  This could
  617.         have been the instructions included, it    could
  618.         have been the Makefile,    it could have been
  619.         problems configuring it, or anything else.
  620.  
  621.     6. Testing, Non-Set-Uid
  622.         Did you    have problems with the tests?  You could
  623.         have had problems running them,    or some    of them
  624.         could have failed.  If some tests fail but not
  625.         others,    please let me know which ones failed.
  626.         (The -k    option to make can be usful in this
  627.         case.)
  628.  
  629.     7. Testing, Set-Uid-Root
  630.         Did you    have problems with the tests when aegis
  631.         was set-uid-root?  You could have had problems
  632.         running    them, or some of them could have failed.
  633.         If some    tests fail but not others, please let me
  634.         know which ones    failed,    and include the    fact that
  635.         aegis was set-uid-root at the time.
  636.  
  637.     8. Installation
  638.         Did you    have problems installing aegis?     This
  639.         could have been    the instructions, or anything
  640.         else.
  641.  
  642.     At this    point it would probably    be a very good idea to
  643.     print out the manual entries and read them carefully.
  644.     You will also want to print a copy of the User Guide; if
  645.     you don't gave groff, there should be a    PostScript copy
  646.     at the archive site.  It is a known flaw that the User
  647.     Guide is incomplete, it    is something the author    is
  648.     working    on "at this moment".
  649.  
  650.     9. The Example Project
  651.         After reading the User Guide, it is often useful
  652.         to manually run    through    the example in chapter 3.
  653.         You will need to do more than one change,
  654.         hopefully several; the first change is not
  655.  
  656.  
  657.  
  658.                                    10
  659.  
  660.  
  661.  
  662.  
  663.  
  664. build(aegis)                         build(aegis)
  665.  
  666.  
  667.         representative of the system.  Did you manually
  668.         do the example?     Did you find flaws in the User
  669.         Guide or manual    entries?
  670.  
  671.     10. Using Aegis
  672.         Did you    have problems using aegis?  This is a
  673.         whole can of worms.  If    possible, include a shell
  674.         script similar to the tests which accompany
  675.         aegis, which reproduces    the bug.  Exit code 1 on
  676.         failure    (bug), exit code 0 on success (for when
  677.         bug is fixed).
  678.  
  679.     11. The    Source Code
  680.         Did you    read the code?    Did you    write some code?
  681.         If you read the    code and found problems, fixed
  682.         them, or extended aegis, these contributions are
  683.         most welcome.  I reserve the right to modify or
  684.         reject such contributions.
  685.  
  686.     The above list is inclusive, not exclusive.  Any and all
  687.     feedback is greatly appreciated, as is the effort and
  688.     interest required to produce it.
  689.  
  690. LICENSE
  691.     The aegis program is free software; you    can redistribute
  692.     it and/or modify it under the terms of the GNU General
  693.     Public License as published by the Free    Software
  694.     Foundation; either version 2 of    the License, or    (at your
  695.     option)    any later version.
  696.  
  697.     The aegis program is distributed in the    hope that it will
  698.     be useful, but WITHOUT ANY WARRANTY; without even the
  699.     implied    warranty of MERCHANTABILITY or FITNESS FOR A
  700.     PARTICULAR PURPOSE.  See the GNU General Public    License
  701.     for more details.
  702.  
  703.     It should be in    the LICENSE file included in this
  704.     distribution.
  705.  
  706. AUTHOR
  707.     Peter Miller   UUCP      uunet!munnari!bmr.gov.au!pmiller
  708.     /\/\*           Internet      pmiller@bmr.gov.au
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.                                    11
  725.  
  726.  
  727.