Readme


Please at least SKIM this document before asking questions. In fact, READ IT if you've never successfully set up an Eggdrop bot before.

Contents

  1. Important notice
  2. What is Eggdrop?
  3. How do I get Eggdrop
    1. How to get the latest version of eggdrop via CVS
  4. Quick startup
  5. Upgrading
    1. From a pre-1.3 version to 1.6
    2. From an older 1.3/1.4/1.5/1.6 version to a newer one
  6. Setting up a crontab
    1. Setting up a crontab using autobotchk
  7. Boring legal stuff
  8. Mailing list
  9. Documentation
  10. Obtaining help

1. Notice

Please read this file carefully before trying to set up this bot. Also, make SURE that you select your +n (owner) users wisely! They have 100% access to your bot and account! ONLY GIVE THIS POWER TO SOMEONE YOU TRUST COMPLETELY!!

2. What is Eggdrop?

Eggdrop is an IRC bot, written in C. If you don't know what IRC is, this is probably not whatever you're looking for. Eggdrop, being a bot, sits on a channel and takes protective measures: to keep the channel from being taken over (in the few ways that anything can), to recognize banished users or sites and reject them, to recognize privileged users and let them gain ops, etc.

One of the more unique features of Eggdrop is its "party line", accessible via DCC chat and telnet, which allows you to talk to other people lag-free. Consider it a multi-way DCC chat, or a miniature IRC (complete with channels). You can link up with other bots and expand the party line until it actually becomes something very much like IRC, in fact.

Eggdrop is always being improved and adjusted because there are bugs to be fixed and features to be added (if the users demand them, and they make actually sense). In fact, it existed for several years as v0.7 - v0.9 before finally going 1.0. This version of Eggdrop is part of the 1.6 tree. A valiant effort has been made to chase down and destroy bugs.

This Readme file contains information about how to get Eggdrop, how to quickly compile the bot, what you may need to do when upgrading from older versions, a list of frequently asked questions about compiling, how to set up a crontab, some boring legal stuff, info about the mailing list (a great place to ask questions, and a good place to report bugs also), some basics about CVS usage and some channels where you might get help with Eggdrop.

The preliminary documentation is in "eggdrop.doc" and is intended to be read after you have Eggdrop compiled and set up.

3. How to get Eggdrop

Before you can compile Eggdrop, you need to have Tcl installed on your system. 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.

The best ftp site for Tcl is:
ftp://ftp.scriptics.com/pub/tcl/

Tcl comes with the Slackware distribution of Linux. HOWEVER, the one that comes on Slackware 3.0 is goofed up and you'll have to reinstall it for yourself to get it working.

Currently, the 1.6 tree of Eggdrop is developed at eggheads.org. You can get the latest version of Eggdrop from: ftp://ftp.eggheads.org/pub/eggdrop/

You might also try www.eggheads.org for more help and information.

3a. How to get the latest version of eggdrop via CVS

You may obtain the very latest version of Eggdrop that is still under development by using CVS. CVS means 'Concurrent Versions System' and is a tool for developers to always keep source code up to date. Try 'man cvs' on your shell for more information about CVS.

This intended only for users that know a fairly bit about Eggdrop. Be aware that the versions of Eggdrop that you get by CVS are still being developed, and may be buggy. The Eggheads devteam will in *NO WAY* take any responsibility for whatever might happen to you or your shell if you use a CVS version of Eggdrop.

To obtain Eggdrop via CVS:

  1. log into your shell
  2. type 'export CVSROOT=:pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot'
  3. type 'cvs login'
  4. press <enter> when it asks for a password.
  5. in your home dir, type 'cvs checkout eggdrop1.6'
  6. in ~/eggdrop1.6, you should have a copy of the latest CVS version of Eggdrop.

Notes:

  1. you can 'cvs logout', but you don't need to.
  2. you don't need to go through this whole process every time; if you want to get a CVS version of Eggdrop at a later time, you can just 'cd ~/eggdrop1.6' and type 'cvs update -dAP'.
  3. if you experience errors when using 'export', you might be using tclsh as a shell. If so, try using the command 'setenv' instead of 'export': 'setenv CVSROOT :pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot'

4. Quick startup

Please see the Installation file

5. Upgrading

5a. from a pre-1.3 version to 1.6

BACK UP YOUR USERFILE

We can't stress this enough, if you are upgrading, and you have even a slight possibility of downgrading again later you will HAVE to back up your userfile, or you will lose it. v1.3 of Eggdrop radically changed alot of things.

There are many major changes between v0.9, v1.0, v1.1 and v1.6 so PAY ATTENTION to this part if you have a v0.9, 1.0 or 1.1 bot already. If you're just starting out, you can skip this section.

to 1.6: * If you run share bots, you will need to upgrade them all at the same time because of the new userfile format. Older bots will be able to link in, but will not get or send a userfile. MAKE A NEW CONFIG FILE from the example, there are some radical extras.

from 0.9/1.0 to 1.6: * Just redo the whole thing, absolutely everything has changed including the userfile and config file formats.

from 1.1/1.2 to 1.6: * You will likely want to redo the config file, as much as changed. BACK UP!! You will need to run 'tclsh scripts/weed/<userfile> c' to convert your userfile from v3 (1.1/1.2) to v4 (1.3/1.4/1.5/1.6)

5b. from an older 1.3/1.4/1.5/1.6 version to a newer one

If you followed the Installation file and did a 'make install' (or 'make DEST="path" install') after 'make', this will be pretty easy. Just upload the new eggdrop1.6.x.tar.gz file to the home dir of your shell, gunzip and untar it, and type 'cd ~/eggdrop1.6.x'. Then, type './configure', 'make config' or 'make iconfig', 'make', then kill the bot ('.die' on the party line, or use 'kill' on the shell) and 'make install' to the same directory your bot is currently in. Then, you can just restart your bot. You may wish to delete the old eggdrop executable and modules as well, especially if you have limited disk space.

6. Setting up a crontab

Eggdrop has become more stable with time, thanks mostly to people reporting bug details and helping find places where it crashes. However, there are still a -few- places where things aren't perfect. Few if any things in life are.

Also, most systems go down from time to time. These things cause your bot to disappear from IRC, and you have to restart it.

The Eggdrop source file includes a shell script called 'botchk' that 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 crontab:

0,10,20,30,40,50 * * * * /home/mydir/botchk

If you don't want to get emails from cron, put this:

0,10,20,30,40,50 * * * * /home/mydir/botchk >/dev/null 2>&1

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).

6a. Setting up a crontab using autobotchk

Included with your Eggdrop is a utility called 'autobotchk'. Using autobotchk is probably the fastest way of creating your botchk and adding it to crontab with just a few required steps.

To crontab your bot follow the following steps:

(1) type 'cp scripts/autobotchk ..'
(2) type './autobotchk <eggdrop config file>'

This will hopefully crontab your bot using the default setup. If you want a list of autobotchk options, type './autobotchk'. An example with options would be:

./autobotchk eggdrop.conf -noemail -5

This would setup crontab to run the botchk every 5 minutes and also to not send you e-mail saying that it restarted your bot.

7. Boring legal stuff

The Eggdrop bot is copyright (C) by Robey Pointer. As of January 1997, Eggdrop is distributed according to the GNU General Public License. There should be a copy of this license in the file COPYING. If not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

As of eggdrop1.3.28 all changes made by the Eggheads Development Team to the Eggdrop source code and any related files are copyright (C) by Eggheads Development Team. The source code will still be distributed according to the GNU General Public License as Robey Pointer did in the past.

Releases previous to 1.0m were made using a different licensing scheme. You may, at your option, use the GNU General Public License on those versions (instead of the license packaged with them) with my blessing. For any versions bearing a copyright date of 1997 or later, you have no choice -- you must use the GNU General Public License.

The files "match.c", "net.c", and "blowfish.c" are exempt from the above restrictions. "match.c" is original code by Chris Fuller (email: crf@cfox.bchs.uh.edu) and has been placed by him into the public domain. "net.c" is by me and I [who?] also choose to place it in the public domain. "blowfish.c" is by various sources and is in the public domain. All 3 files contain useful functions that could easily be ported to other applications -- the other parts of the bot generally don't.

Tcl is by John Ousterhout and is in no way affiliated with Eggdrop, and likely has its own set of copyrights and whatnots.

There is no warranty, implied or whatever. You use this software at your own risk, no matter what purpose you put it to.

You didn't pay for it, so don't expect magic.

8. Mailing list

There are currently a couple of mailing lists about Eggdrop. eggheads@eggheads.org is the one relevant for posts about Eggdrop 1.4 and up (and bug fixes, and suggestions, etc).

To subscribe to the eggheads mailing list, send email to: eggheads-request@eggheads.org In the body of the message, put "subscribe eggheads"; or go to http://scrambled.eggheads.org/mailman/listinfo/eggheads

DO NOT SEND ROBEY EMAIL ABOUT EGGDROP

Robey is no longer developing the Eggdrop code (although he does put a word in every now and then) so don't bother emailing him. If you have a serious problem, email the Eggdrop mailing list and it will get to the coders.

Please, before posting to this list, see what things are like, and when you do post, read over your post for readability, spelling, and grammar mistakes. Obviously, we're all human (or are we?) and we all make mistakes (heck, look at this document! ;).

Open discussion and debate is integral to change and progress. Don't flame others over mere form (grammar and spelling), or even substantive issues either for that matter. Please read and follow the mailing list rules.

The eggheads@eggheads.org maillist is not dedicated to those all too common questions we have all seen on other lists... for example:

"Why does my bot say this: Please edit your config file."
"How do I telnet my bot?"
"Where do I get Eggdrop for windows??????"
etc...

Bug reports, technical questions, your thoughts or suggestions on new features being added to Eggdrop, things that should be removed or fixed, amazing problems that even stump the guru's, etc... are what we want to see here.

9. Documentation

We're trying to keep the documentation up to date. If you feel that anything is missing here, or that anything should be added etc, please email eggdev@eggheads.org about it, thank you.

10. Obtaining help

There is currently no uniform IRC channel in existence to support Eggdrop. At one time, such channels did exist, but they most often deteriorate into a vanity channel, where no one is willing to help.

However, we'll list a few places here where you *might* get help. Note though that we are not responsible for those channels, or necessarily run those channels ourselves.

If you plan to ask questions in any of the above channels, you should be familiar with and follow IRC etiquette.

Some important things to remember:

If you break these rules, you may find yourself ignored, or even kicked and or banned from the channel.

If there are any other serious eggdrop related channels that should be added to the above list, please let us know.


© 1997 Robey Pointer
© 1999,2000 Eggheads