| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586 |
- Readme
- Last revised: June 5, 2002
- _________________________________________________________________
- 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. PLEASE! READ
- IT!
- Contents
- 0. Important notice
- 1. What is Eggdrop?
- 2. How do I get Eggdrop?
- 2a. How to get the latest version of Eggdrop via CVS
- 3. Quick startup
- 4. Upgrading
- 4a. Upgrading from a pre-1.3 version to 1.6
- 4b. Upgrading from an older 1.3/1.4/1.5/1.6 version to a newer one
- 5. Command line
- 6. Frequently Asked Questions
- 6a. What do I do if I get the error "User file not found"?
- 6b. My Eggdrop won't run; It just says "Can't find your hostname!"
- 6c. What the Heck is Tcl?
- 6d. My bot dies and the last entry in the logfile is "Received terminate
- signal". What does that mean and can I prevent it?
- 6e. My compile dies at the last minute with "LD fatal signal 11"!
- 6f. Someone else set up a bot I don't like. Are there any backdoors I
- can use to take their bot down?
- 6g. What are modules?
- 6h. Can I compile Eggdrop without dynamic modules?
- 6h1. Do I still need to "loadmodule" modules?
- 6i. Where can I get a pre-compiled Eggdrop for my computer?
- 6j. I get "Makefile:3 : invalid operator" or some such thing when I
- try to "make".
- 6k. When I "tclsh scripts/weed <userfile> c" It barfs chunks at me
- and dies.
- 6l. I get "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or
- "eggdrop: error in loading shared libraries / libtcl8.1.so: cannot
- open shared object file: No such file or directory" when I try to
- start my bot.
- 6m. I get a whole pile of "unresolved symbol 'Tcl_AppendResult'" (or
- some other symbol) when I try to load a module.
- 7. Setting up a crontab
- 7a. Setting up a crontab using autobotchk
- 8. Boring legal stuff
- 9. Mailing list
- 10. Documentation
- 11. Obtaining help
- _________________________________________________________________
- (0) NOTICE
- Please read this file carefully before trying to set up Eggdrop. 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!!
- (1) WHAT IS EGGDROP?
- Eggdrop is the world's most popular Internet Relay Chat (IRC) bot; it is
- freely distributable under the GNU General Public License (GPL). Eggdrop
- is a feature rich program designed to be easily used and expanded upon by
- both novice and advanced IRC users on a variety of hardware and software
- platforms.
- An IRC bot is a program that sits on an IRC channel and preforms automated
- tasks while looking just like a normal user on the channel. Some of these
- functions include protecting the channel from abuse, allowing privileged
- users to gain op or voice status, logging channel events, providing
- information, hosting games, etc.
- One of the features that makes Eggdrop stand out from other bots is module
- and Tcl scripting support. With scripts and modules, you can make the bot
- preform almost any task you want. They can do anything from preventing
- floods to greeting users and banning advertisers from channels.
- You can also link multiple Eggdrop bots together to form a botnet. This
- can allow bots to op each other securely, control floods efficiently, and
- even link channels across multiple IRC networks. It also allows the
- Eggdrops share user lists, ban lists, exempt/invite lists, and ignore
- lists with other bots if userfile sharing is enabled. This allows users
- to have the same access on every bot on your botnet. It also allows the
- bots to distribute tasks such as opping and banning users. See doc/BOTNET
- for information on setting up a botnet.
- 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, command
- line options for Eggdrop, what you may need to do when upgrading from
- older versions, a list of frequently asked questions, 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, too), some basics
- about CVS usage, and some channels where you might get help with Eggdrop.
- (2) 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. This means Tcl is installed
- on your system. If tclsh doesn't load, then Tcl probably isn't on your
- system, and you will need to install it. The best ftp site for Tcl is
- ftp://ftp.scriptics.com/pub/tcl.
- Tcl comes with the most distributions of Linux. HOWEVER, the one that comes
- on Slackware 3.0 is goofed up and you'll have to re-install 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 the following url:
- http://www.geteggdrop.com
- You might try www.eggheads.org for help and information.
- (2a) CVS USAGE
- You can 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 is intended only for users that know a good bit about Eggdrop. Be
- aware that the versions of Eggdrop that you get via 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 over CVS, do as follows:
- 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 prompted 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:
- o You can 'cvs logout', but you don't need to.
- o 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'.
- o 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
- (3) QUICK STARTUP
- Please see the 'INSTALL' file AFTER you finish reading this file.
- (4) UPGRADING
- (4a) UPGRADING 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 a
- lot 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 currently. If
- you're just starting out, you can skip this section.
- 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 changes.
- If you are upgrading from 0.9/1.0 to 1.6, just redo the whole thing.
- Absolutely everything has changed, including the userfile and config file
- formats.
- If you are upgrading 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).
- (4b) UPGRADING FROM AN OLDER 1.3/1.4/1.5/1.6 VERSION TO A NEWER 1.6 VERSION
- If you followed the 'INSTALL' file and did a 'make install' (or 'make
- install DEST="path"') after 'make', this will be pretty easy. Just upload
- the new eggdrop1.6.x.tar.gz file to your home dir on your shell, gunzip
- and untar it, and type 'cd ~/eggdrop1.6.x'. Next, type './configure',
- 'make config' or 'make iconfig', then 'make'. Then, kill the bot ('.die'
- on the party line), and 'make install' to the same directory your bot
- is currently in. After that, 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.
- You should read through the new eggdrop.complete.conf file for all the new
- options in Eggdrop 1.6.x if you are upgrading from 1.3.x or 1.4.x. You can
- copy and paste any of these settings into you current conf file if you do
- not want to use the default settings.
- (5) COMMAND LINE
- Eggdrop has some command-line options -- not many, because most things
- should be defined through the config file. However, sometimes you may
- want to start up the bot in a different mode, and the command-line
- options let you do that. Basically, the command line for Eggdrop is:
- % eggdrop [options] [config-file]
- The options available are:
- -n: Don't background. Normally, Eggdrop will move itself into the
- background when you start it up, meaning you'll get another shell
- prompt, and you can do other things while the bot is running. With
- -n, you won't return to the shell prompt until the bot exits (which
- won't normally happen until it's killed). By default, -n will send
- all log entries to the console.
- -nt: Don't background, use terminal. This is just like -n, except that
- instead of seeing log entries, your console will simulate a DCC
- chat with the bot.
- -nc: Don't background, show channel info. This is just like -n, except
- that instead of seeing log entries, every 10 seconds your screen
- will clear and you will see the current channel status, sort of
- like "top".
- -m: Create userfile. If you don't have a userfile, this will make Eggdrop
- create one and give owner status to the first person that introduces
- himself or herself to it. You'll need to do this when you first set
- up your bot.
- -v: Show version info, then quit.
- Most people never use any of the options except -m, and you usually only
- need to use that once.
- (6) FREQUENTLY ASKED QUESTIONS (or "Why doesn't this thing work?")
- 6a. WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"?
- 1. Run Eggdrop with the "-m" option (i.e., "eggdrop -m eggdrop.conf").
- 2. Go to IRC and send "hello" to your bot (i.e., "/msg mybot hello").
- 3. You will become an owner on your bot. You can leave the bot running
- (nobody else will become an owner if they say "hello"), but in the
- future, don't use the "-m" option when running the bot.
- 6b. 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 the my-ip setting
- in the config file correctly.
- 6c. WHAT THE HECK IS Tcl?
- Tcl is a scripting language written by John Ousterhout. It's much better
- than most "built-in" script languages (like the one in ircII) and is
- meant to be linked with anything needing a scripting language, so I
- linked it with Eggdrop. The file "tcl-commands.doc" in the doc directory
- contains a list of additional Tcl commands provided by Eggdrop. There
- are also several example scripts in the scripts/ directory, and one in
- the doc directory called first_script.txt. Hundreds of scripts floating
- around on the ftp/web sites if you like working by example (which is
- typically the best way).
- 6d. MY BOT DIES, AND THE LAST ENTRY IN THE LOGFILE IS "RECEIVED TERMINATE
- SIGNAL". WHAT DOES THAT MEAN, AND CAN I PREVENT IT?
- There's nothing you can do to prevent it. It means the system
- administrator is killing the Eggdrop process. Most of the time, it's an
- automatic thing that happens when the system is being rebooted, so it's
- harmless. If you have a crontab running, the bot will get restarted when
- the system is back online. Occasionally, the system administrator will
- kill the bot manually. For example, if he/she doesn't want bots running
- on the system.
- 6e. MY COMPILE DIES AT THE LAST MINUTE WITH "LD FATAL SIGNAL 11"!
-
- See doc/compiling.FAQ.
- 6f. SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY BACKDOORS I CAN
- USE TO TAKE THEIR BOT DOWN?
- No, there have never been any backdoors and there never will be, so
- please stop asking. Every once in a while, someone finds a way to
- exploit a bug in Eggdrop, but we fix these bugs as soon as we find out
- about them. If you want to bring down someone else's bot, you will not
- have my/our help.
- 6g. WHAT ARE MODULES?
- Modules are a way of adding extra features to the bot, much like Tcl
- scripts, without requiring the bot to be recompiled. See doc/MODULES
- for more information.
- 6h. CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES?
- Yes, you can. If the configure script detects that your system CAN'T
- run modules, it will setup 'make' to link the modules in statically
- for you. You can choose this option yourself by using 'make static'.
- You can also try to compile dynamic modules on a static-only system
- by using 'make eggdrop'.
- 6h1. DO I STILL NEED TO 'loadmodule' MODULES?
- YES, when you compile statically, all the modules are linked into the
- main executable. HOWEVER, they are not enabled until you use loadmodule
- to enable them, hence you get nearly the same functionality with static
- modules as with dynamic modules.
- 6i. WHERE CAN I GET A PRE-COMPILED EGGDROP FOR MY COMPUTER?
- It is HIGHLY recommended AGAINST using pre-compiled Eggdrops from
- un-trusted sources. Eggdrop has been a regular target for hacking and
- crashing. Distribution of pre-compiled (binary) versions of Eggdrop are
- the easiest way for hackers to provide you with the easiest (and most
- dangerous) way of gaining access to, not only your bot, but to your
- computer account directly. Don't advertise your pre-compiled Eggdrop
- binary sites on the Eggdrop list either. =P
- 6j. I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING WHEN I TRY
- TO 'make'.
- Try 'gmake'.
- 6k. WHEN I 'tclsh scripts/weed <userfile> c' IT BARFS CHUNKS AT ME AND
- DIES. :(
- Upgrade your Tcl. You are probably using Tcl 7.5 or earlier. Some of the
- commands in weed require Tcl7.6 to run, so either upgrade it or remove
- the offending lines from you userfile manually (those starting with '.'
- generally) and accept the loss of that data.
- 6l. I GET "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or
- "eggdrop: error in loading shared libraries libtcl8.1.so: \
- cannot open shared object file: No such file or directory" WHEN I TRY
- TO START MY BOT.
- './configure' is looking in the wrong place for Tcl; it looks like it
- compiled with one version of Tcl and tries to load another. Maybe your
- sysadmin upgraded Tcl and didn't tell you. In that case, you should just
- need to recompile your bot.
- Maybe, when upgrading, he didn't clean the old version of Tcl and
- './configure' is looking for the files in the wrong places, or trying
- to use different versions of tcl.h and libtcl*. Smack your admin and
- have him install Tcl properly. ;)
- You can also try:
- ./configure --with-tcllib=<path-to-tcl-lib>
- --with-tclinc=<path-to-tcl-inc>
- This will tell configure where to look for the Tcl files.
- Try looking for libtcl by:
- ls /usr/lib/libtcl*
- ls /usr/local/lib/libtcl*
- Try looking for tcl.h by:
- ls /usr/include/tcl.h
- ls /usr/local/include/tcl.h
- If everything else fails, try to install Tcl to your home dir ;)
- (Suggested by dw@Undernet, dw@lixom.nu)
- 6m. I GET A WHOLE PILE OF "Unresolved symbol 'Tcl_AppendResult'" (OR SOME
- OTHER SYMBOL) WHEN I TRY TO LOAD A MODULES.
- POSSIBILITY A: See section 12.
- POSSIBILITY B:
- Some of the standard libraries have been compiled for static linking
- only on your machine, you have 3 options:
- 1. If it's your own machine, recompile Tcl using dynamic linking by
- using './configure --enable-shared' when you configure Tcl (not
- the bot) and then remake, and reinstall.
- 2. If it's not your machine, you make have to resort to 'make static'
- and 'make install DEST="path"' to make and install your bot.
- 3. If you are of a more aggressive sense of mind, go beat the
- stuffing out of your admin for having lame static libraries. :)
- (7) 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.
- Eggdrop comes with 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 e-mails from cron, use 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:
- 1. Create a new file called 'mycron' and put the above line into it.
- 2. 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).
- (7a) SETTING UP A CRONTAB USING AUTOBOTCHK
- Included with your Eggdrop is an Eggdrop utility called 'autobotchk'.
- Using autobotchk is probably the fastest way of creating your botchk and
- crontabbing it with just a few required 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 config file> -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.
- (8) 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. 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
- as well. All 3 files contain useful functions that could easily be
- ported to other applications.
- Tcl is by John Ousterhout and is in no way affiliated with Eggdrop. It
- 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.
- (9) 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 (suggestions, help, etc).
- To subscribe to the eggheads mailing list, send e-mail to
- eggheads-request@eggheads.org. In the body of the message, put "subscribe
- eggheads". You can also go to the following url:
- http://scrambled.eggheads.org/mailman/listinfo/eggheads
- ### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP! ###
- Robey is no longer developing the Eggdrop code, so don't bother e-mailing
- him. If you have a serious problem, email the eggheads mailing list and
- it will get to the coders.
- Please, before posting to this list, see what things are like. 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
- for that matter. Please read and follow the mailing list rules.
- The eggheads@eggheads.org mailing list is not dedicated to those all too
- common questions we have all seen on other lists... For example:
- o "Why does my bot say this: Please edit your config file."
- o "How do I telnet my bot?"
- o "Where do I get Eggdrop for windows??????"
- 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.
- Bug reports should be sent to bugs@eggheads.org. Please read and fill out
- the BUG-REPORT file in the doc directory.
- DO NOT SEND HTML E-MAILS TO ANY OF THE EGGHEADS.ORG MAILING LISTS. ANYONE
- CAUGHT SENDING HTML E-MAILS TO ONE OF THESE LISTS WILL BE REMOVED
- IMMEDIATELY!
- (10) 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 eggheads@eggheads.org about it. Thank you.
- (11) OBTAINING HELP
- You can obtain help with Eggdrop in the following IRC channels:
- Undernet - #eggdrop, #eggies
- EFnet - #egghelp, #eggfaq
- IRCnet - #eggdrop
- DALnet - #eggdrop, #botcentral
- OPN - #eggdrop, #egghelp
- QuakeNet - #eggdrop
- If you plan to ask questions in any of the above channels, you should be
- familiar with and follow IRC etiquette.
- o Don't type using CAPITAL letters, colors, or bold.
- o Don't use "!" and "?" excessively.
- o Don't /msg people without their permission.
- o Don't repeat or paste large amounts of text to the channel.
- If there are any other serious Eggdrop related channels that should be
- added to the above list, please let us know.
- ________________________________________________________________________
- Copyright (C) 1997 Robey Pointer
- Copyright (C) 1999, 2000, 2001, 2002 Eggheads Development Team
|