QUICK STARTUP:

(1) Edit 'Makefile' to specify your system.  Currently eggdrop is known
    to compile under:
      SunOS, NeXT, Linux, Irix, Ultrix, BSD/386(maybe), HP-UX(maybe), AIX,
      SVR4(?)
    If you're compiling with TCL (HIGHLY RECOMMENDED), be sure to set the
    directories appropriately.

(2) Edit 'src/eggdrop.h' to your liking if you're the hacker type, or if you
    have trouble compiling.  (THIS STEP IS OPTIONAL.)

(3) USING TCL: Edit 'lamestbot' (a sample script) and rename it to something
      you can remember (like "mybot")
    NOT USING TCL: Rename 'egg.config.dist' to 'egg.config' and edit it

(4) Type 'make' from this directory.

(5) Start the bot with the "-m" option to create a user file.
    TCL: ie, "eggdrop -m lamestbot"
    NON-TCL: ie, "eggdrop -m"

(6) When starting the bot in the future, drop the "-m".  If you compiled with
    TCL and have edited your bot script correctly, you can type:
      chmod u+x <my-bot-script-name>
    and from then on, you will be able to run your bot directly from the
    script.  Ie, you can just type "lamestbot" from your shell prompt, to
    start up your bot.  Non-TCL bots can be started by typing "eggdrop".

(7) It's advisable to run your bot via crontab so that it will automatically
    restart if the machine goes down or (heaven help us) the bot should crash.
    Look at the file 'botchk' for a great start with crontabbing the bot.


UPGRADING:

--- 0.9g
    if you use share-bots, upgrade them all of them simultaneously -- user
    records for other bots are no longer swapped, so a non-upgraded bot will
    either lose or create duplicate bot entries

--- 0.9i
    until all the bots on a bot-net upgrade to 0.9i, the '.whom' and remote
    '.who' commands will look screwy, or may not even work at all

--- 0.9j
    the party line suppors multiple channels now, so it is to your advantage
    to upgrade all the bots on a bot-net at around the same time

--- 0.9l
    scripts which used "bind sign" may not work correctly without editing
    (there is a new parameter to procedures of this type)


Type 'make eggdrop' from this directory.


WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"?

(1) Run eggdrop with the "-m" option (ie, "eggdrop -m mybot").
(2) Go to IRC and send "hello" to your bot (ie, "/msg mybot hello").
(3) You will become a master on your bot.  You can leave the bot running
    (nobody else will become a master if they say "hello"), but in the future
    don't use the "-m" option when running the bot.


WHAT DO I DO IF I GET A WARNING WHILE COMPILING THAT SAYS "ATOL REDEFINED"?

You must be using gcc.  Just ignore it, the redefinition of atol() is
intentional, because on some crappy BSD/386 systems, atol() is broken.


MY EGGDROP WON'T RUN; IT JUST SAYS "CAN'T FIND YOUR HOSTNAME!"

Your machine is set up strangely, and eggdrop can't figure out its network
hostname.  You can get around this by setting an environment variable called
HOSTNAME.  In sh or ksh:
  $ HOSTNAME=myhost.domain.edu
  $ export HOSTNAME
In csh or tcsh:
  % setenv HOSTNAME myhost.domain.edu
It should work after that.  You may want to bug your system administrator to
set up her /etc/hosts file correctly, or add those above commands to your
'.login' file (sh or ksh: '.profile').


WHAT THE HECK IS TCL?

TCL is a scripting language written by John Ousterhout.  It's much better
than most "in-built" script langauges (like the one in ircII) and is meant
to be linked with anything needing a script langauge.  So I linked it with
eggdrop.  Most systems should have TCL on them by now -- you can check by
trying the command "tclsh".  If it works, you will be given a "%" prompt,
and you can type "exit" to exit the program.  That means TCL is on your
system.  If tclsh doesn't load, then TCL probably isn't on your system, and
you will need to ftp it if you want to use the script language features of
eggdrop.  The best ftp site is:
   ftp://ftp.cs.berkeley.edu/ucb/tcl
and I think the current version is 7.3 (that's the one I used, anyway).

The file "ext" in the eggdrop directory contains a list of the commands added
to TCL by eggdrop.  Another file, "lamestbot", is a script file meant to be
executed from the command line.  It starts up an eggdrop bot called "LamestBot"
which sits on channel #lamest.  NOTE THAT IF YOU COMPILE WITH TCL, YOUR CONFIG
FILE MUST LOOK LIKE THIS, NOT LIKE EGG.CONFIG.DIST.  The file "botkick" is a
sample script file which implements a "kick" command via msg.

Additional note: TCL is included with most recent versions of Linux.  YAY!


I TRIED TO COMPILE AND IT'S COMPLAINING ABOUT A "TCL.H" FILE -- WHERE IS THAT?

The "tcl.h" file comes with the TCL distribution (see above).  If eggdrop can't
find it, then you have one of the following problems:
  (1) TCL is not installed on your system.  You will either have to compile
      the non-TCL version of eggdrop, or go install TCL.
  (2) You specified the wrong directory for the TCL include directory, in the
      Makefile.  Try to figure out where "tcl.h" is, and change the include
      directory there.  I put two common locations in the Makefile as a hint.


MY BOT SEEMS TO BE CREATING "ZOMBIE" PROCESSES ON THE SYSTEM. HELP!

Some operating systems apparently don't properly signal eggdrop when processes
die.  A kludge has been put into the bot to fix this, if necessary, by trying
to search for zombies every so often.  Go into the file "eggdrop.h" and change
the line:
   #undef HUNT_ZOMBIES
to:
   #define HUNT_ZOMBIES
This seems to fix the zombie problem on every system I've tried it on.

Note: Having 1-3 zombie processes may be part of the bot's normal operation.
When you have a tandem-bot on auto-connect, it may be failing to connect,
which can generate zombie processes.  The zombies are cleaned up, but then
immediately regenerated by the auto-connect.


COMPILE ERROR: SOMETHING ABOUT "WAITPID"?

You're trying to hunt for zombies on a non-posix compliant system.  I can't
really help you any more. :)  Go back and #undef HUNT_ZOMBIES.


WHEN MY BOT GETS DUMPED OFF A FEW SERVERS IN A ROW, IT DIES AND SAYS THAT
NO SERVER WILL CONNECT WITH IT.  I DON'T LIKE THAT.  I WANT IT TO KEEP TRYING
FOREVER AND EVER UNTIL A SERVER WILL ACCEPT IT.

Go into "eggdrop.h", find the line:
   #undef NEVER_GIVE_UP
and change it to:
   #define NEVER_GIVE_UP


MY USER LIST IS VERY LARGE.  HOW CAN I CUT IT DOWN?

There is a TCL script called "weed" distributed with eggdrop.  To use it, type:
   tclsh weed
It will give you a list of options for weeding out your userlist.  You can
erase users who haven't been on the channel within a specified number of days,
or erase any ops who haven't set a password yet, etc.  Lots of options.


Robey Pointer <robey@annwfn.indstate.edu>



CRONTAB SCRIPT

Eggdrop has become more stable with time, thanks mostly to people detailing
bugs to me and helping me find places where it crashes.  However, I'm sure
there are still a few places where things aren't perfect -- that's how life
works.  Also, most systems go down from time to time.  These things cause your
bot to disappear from IRC, and you have to restart it.

I have included a csh script called 'botchk' which will help keep the bot
online.  It will make the machine check every ten minutes to make sure your
bot is still running.  To use it, you have to add a line to your crontab.
First, edit 'botchk' and change the directory and command line parameters so
that it will be able to start up your bot.  Then, add this line to your cron-
tab:
   0,10,20,30,40,50 * * * *   /home/mydir/botchk

Naturally, you need to change the path to the correct path for botchk.  If
you've never used crontab before, here is a simple way to add that line:
Create a new file called 'mycron' and put the above line into it.  Then, from
your shell prompt, type
   % crontab mycron
That will create a new crontab entry for you, with a line that runs botchk
every ten minutes.  Botchk will then restart the bot when necessary (and send
you email informing you).


DISTRIBUTION

The latest version of eggdrop code is always available on Snowbot (EFnet bot)
in the eggdrop/ directory.  To get file access on Snowbot, "/msg snowbot hello"
and it should give you automatic access.

A better way to get the bot is to type:
   % telnet maverick.math.uic.edu 1994 | sh
When it's done, you should have a file like 'eggdrop0.9j.tar.gz' (or the
lastest version) in your current directory.

For those who still love anonymous FTP, try:
   ftp://robot.asimov.net/eggdrop0.9j.tar.gz
(or whatever the latest version is).  I find the ftp site's hostname to
be strangely appropriate. :)


I copyright the code, but grant anyone permission to use it, so long as
the copyright notices stay in place.  You may modify the code for your own
purposes in any way you choose, but you may not distribute the bot, or any
entire file of it, after you have modified it.  This is because, even though
I'm sure *most* people are probably better coders than I am, I don't want
any code being spread around with my name on it, that isn't by me.  If you
make handy modifications, distribute them in "patch" format (and send them
to the mailing list while you're at it!).  Oh yeah, the file "reg.c" isn't
by me, so I don't claim any rights to it or anything.  Do what you want to
with that one.  (Additional note: part of it *is* by me now, but I choose to
leave the whole thing in the public domain.)


MAILING LIST

There is an official eggdrop mailing list!  Bug fixes, comments, suggestions,
complaints, and all sorts of eggdrop-related things are posted there all the
time...  To subscribe, send a human-readable subscription request to:
   eggdrop-request@wc130.residence.gatech.edu
If you're going to run an eggdrop bot, I highly suggest subscribing to this
list, since bug fixes can be helpful.


WARRANTY

There is none, implied or whatever.  Especially since this is pre-release
stuff.  The bot's not even done yet.  I bet there are *lots* of nasty things
in there that I still have to fix.


DOCUMENTATION

I removed the docs/ directory that was in previous releases.  They were
written by Gavroche many years ago, but by now they have nothing to do with
reality.  Several people have offered to re-write or update them, but nobody
has actually shown me anything so I don't think anything is really being done
about it.  Sorry!  The mailing list would be a great place to ask if you have
any questions.

In the meantime, I have been trying hard to keep the online documentation (in
the help/ directory) fairly up-to-date.  You can browse around through there
for some handy tips.  It should be complete now.  Let me know if you find any
help files that are incorrect.

I know that documentation would REALLY BE HELPFUL.  All I can say is...  I've
been keeping pretty busy with classwork (I go to school) and I haven't even
had much time to keep updating the bot.  You'll notice that it's been longer
and longer between versions. :)  If this ever gets to v1.0, I will make sure
THAT version has documentation, even if I have to write it myself.  Until then,
volunteers would be appreciated.

robey
                       _
  ___   __ _  __ _  __| |_ __  ___  _ __
 / _ \ / _` |/ _` |/ _` | '__|/ _ \| '_ \
|  __/| (_| | (_| | (_| | |  | (_) | |_) |
 \___| \__, |\__, |\__,_|_|   \___/| .__/
       |___/ |___/                 |_|
       (isn't that a nifty logo!) :)
