2
Last revised: December 29, 2001
3
________________________________________________________________________
5
Please at least SKIM this document before asking questions. In fact,
6
READ IT if you've never successfully set up an Eggdrop bot before.
7
PLEASE! READ IT! If you haven't read this file, and ask for help
8
expect to be told to READ the README file first!
15
2 How do I get Eggdrop?
19
4a Upgrading from a pre-1.3 version to 1.6
20
4b Upgrading from an older 1.3/1.4/1.5/1.6 version to a newer one
21
5 Frequently Asked Questions
22
1. What do I do if I get the error "User file not found"?
23
2. My Eggdrop won't run; It just says "Can't find your
25
3. What the Heck is Tcl?
26
4. My bot dies and the last entry in the logfile is "Received
27
terminate signal". What does that mean and can I prevent it?
28
5. My compile dies at the last minute with "LD fatal signal
30
6. Someone else set up a bot I don't like. Are there any
31
backdoors I can use to take their bot down?
33
8. Can I compile Eggdrop without dynamic modules?
34
8.1 Do I still need to "loadmodule modules"???
35
9. Where can I get a pre-compiled Eggdrop for my computer?
36
10. I get "Makefile:3 : invalid operator" of some such thing
38
11. When I "tclsh scripts/weed <userfile> c" It barfs chunks at
40
12. I get "ld-elf.so.1: Shared object "libtcl80.so.1" not found"
41
or "eggdrop: error in loading shared libraries /
42
libtcl8.1.so: cannot open shared object file: No such file
43
or directory" when I try to start my bot.
44
13. I get a whole pile of "unresolved symbol 'Tcl_AppendResult'"
45
(or some other symbol) when I try to load a module.
46
6 Setting up a crontab
47
6a Setting up a crontab using autobotchk
53
________________________________________________________________________
57
Please read this file carefully before trying to set up this
58
bot. Also, make SURE that you select your +n (owner) users
59
wisely! They have 100% access to your bot and account! ONLY
60
GIVE THIS POWER TO SOMEONE YOU TRUST COMPLETELY!!
64
Eggdrop is an IRC bot, written in C. If you don't know what
65
IRC is, this is probably not whatever you're looking for!
66
being a bot, sits on a channel and takes protective measures
67
to keep the channel from being taken over (in the few ways
68
that anything can), to recognize banished users or sites and
69
reject them, to recognize privileged users and let them gain
72
One of the more unique features of Eggdrop is its "party line",
73
accessible via DCC chat and telnet, which allows you to talk
74
with other people lag-free. Consider it a multi-way DCC chat,
75
or a miniature IRC (complete with channels). You can link up
76
with other bots and expand the party line until it actually
77
becomes something very much like IRC, in fact.
79
Eggdrop is always being improved and adjusted because there
80
are bugs to be fixed and features to be added (if the users
81
demand them, and they make actually sense). In fact, it
82
existed for several years as v0.7 - v0.9 before finally
83
going 1.0. This version of Eggdrop is part of the 1.6 tree.
84
A valiant effort has been made to chase down and destroy
87
This README file contains information about how to get
88
Eggdrop, how to quickly compile the bot, what you may need
89
to do when upgrading from older versions, a list of
90
frequently asked questions about compiling, how to set up a
91
crontab, some boring legal stuff, info about the mailing
92
list (a great place to ask questions, and a good place to
93
report bugs also), some basics about CVS usage and some
94
channels where you might get help with Eggdrop.
96
The preliminary documentation is in "eggdrop.doc" and is
97
intended to be read after you have Eggdrop compiled and set
101
(2) HOW TO GET EGGDROP
103
Before you can compile Eggdrop, you need to have Tcl
104
installed on your system. Most systems should have Tcl on
105
them by now -- you can check by trying the command "tclsh".
106
If it works, you will be given a "%" prompt, and you can
107
type "exit" to exit the program. This means Tcl is on your
108
system. If tclsh doesn't load, then Tcl probably isn't on
109
your system, and you will need to ftp it.
111
The best ftp site for Tcl is ftp://ftp.scriptics.com/pub/tcl.
113
Tcl comes with the Slackware distribution of Linux. HOWEVER,
114
the one that comes on Slackware 3.0 is goofed up and you'll
115
have to re-install it for yourself to get it working.
117
Currently, the 1.6 tree of Eggdrop is developed at
118
eggheads.org. You can get the latest version of Eggdrop from
119
ftp://ftp.eggheads.org/pub/eggdrop/source/stable/
121
You might try www.eggheads.org for help and information.
126
You can obtain the VERY LATEST version of Eggdrop, that is still
127
under development, by using CVS. CVS means 'Concurrent Versions
128
System' and is a tool for developers to always keep source code
129
up to date. Try 'man cvs' on your shell for more information about
132
This is intended only for users that know a good bit about Eggdrop.
133
Be aware that the versions of Eggdrop that you get via CVS are still
134
being developed, and may be buggy. The Eggheads devteam will in
135
NO WAY take any responsibility for whatever might happen to you or
136
your shell if you use a CVS version of Eggdrop.
138
To obtain Eggdrop over CVS, do as follows:
140
(1) Log into your shell.
142
(2) Type 'export CVSROOT=:pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot'.
144
(3) Type 'cvs login'.
146
(4) Press <enter> when prompted for a password.
148
(5) In your home dir, type 'cvs checkout eggdrop1.6'
150
(6) in ~/eggdrop1.6, you should have a copy of the latest
151
CVS version of Eggdrop.
155
(1) You can 'cvs logout', but you don't need to.
157
(2) You don't need to go through this whole process every
158
time. If you want to get a CVS version of Eggdrop at
159
a later time, you can just 'cd ~/eggdrop1.6' and type
162
(3) If you experience errors when using 'export', you might
163
be using tclsh as a shell. If so, try using the command
164
'setenv' instead of 'export':
166
'setenv CVSROOT :pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot'
170
Please see the 'INSTALL' file AFTER you finish reading this file.
174
(4a) UPGRADING FROM A PRE-1.3 VERSION TO 1.6
176
#### BACK UP YOUR USERFILE ####
178
We can't stress this enough. If you are upgrading and
179
you have even a slight possibility of downgrading again
180
later, you will HAVE to back up your userfile, or you will
181
lose it. v1.3 of Eggdrop radically changed a lot of things.
183
There are many major changes between v0.9, v1.0, v1.1 and
184
v1.6, so PAY ATTENTION to this part if you have a v0.9, 1.0
185
or 1.1 bot currently. If you're just starting out, you can
188
If you run share bots, you will need to upgrade them all at
189
the same time because of the new userfile format. Older bots
190
will be able to link in, but will not get or send a userfile.
191
MAKE A NEW CONFIG FILE from the example, there are some radical
194
If you are upgrading from 0.9/1.0 to 1.6, just redo the whole
195
thing. Absolutely everything has changed, including the
196
userfile and config file formats.
198
If you are upgrading from 1.1/1.2 to 1.6, you will likely want
199
to redo the config file, as much as changed. BACK UP!! You will
200
need to run 'tclsh scripts/weed/<userfile> c' to convert your
201
userfile from v3 (1.1/1.2) to v4 (1.3/1.4/1.5/1.6).
203
(4b) UPGRADING FROM AN OLDER 1.3/1.4/1.5/1.6 VERSION TO A NEWER 1.6
206
If you followed the 'INSTALL' file and did a 'make install'
207
(or "make install DEST='path'") after 'make', this will be
208
pretty easy. Just upload the new eggdrop1.6.x.tar.gz file to
209
your home dir on your shell, gunzip and untar it, and type
210
'cd ~/eggdrop1.6.x'. Next, type './configure', 'make config'
211
or 'make iconfig', then 'make'. Then, kill the bot ('.die' on
212
the party line), and 'make install' to the same directory your
213
bot is currently in. After that, you can just restart your
214
bot. You may wish to delete the old Eggdrop executable and
215
modules as well, especially if you have limited disk space.
217
You should read through the new eggdrop.complete.conf file
218
for all the new options in Eggdrop 1.6.x if you are upgrading
219
from 1.3.x or 1.4.x. You can copy and paste any of these
220
settings into you current conf file if you do not want to use
221
the default settings.
223
(5) FREQUENTLY ASKED QUESTIONS (or "Why doesn't this thing work?")
225
1. WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"?
227
(1) Run Eggdrop with the "-m" option (i.e., "eggdrop
230
(2) Go to IRC and send "hello" to your bot (i.e., "/msg mybot
233
(3) You will become an owner on your bot. You can leave the
234
bot running (nobody else will become an owner if they say
235
"hello"), but in the future, don't use the "-m" option
236
when running the bot.
238
2. MY EGGDROP WON'T RUN; IT JUST SAYS "CAN'T FIND YOUR
241
Your machine is set up strangely, and Eggdrop can't
242
figure out its network hostname. You can get around this by
243
setting the my-ip setting in the config file correctly.
245
3. WHAT THE HECK IS Tcl?
247
Tcl is a scripting language written by John Ousterhout. It's
248
much better than most "built-in" script languages (like the
249
one in ircII) and is meant to be linked with anything needing
250
a scripting language, so I linked it with Eggdrop. The file
251
"tcl-commands.doc" in the doc directory contains a list of
252
additional Tcl commands provided by Eggdrop. There are also
253
several example scripts in the scripts/ directory, and one
254
in the doc directory called first_script.txt. There are also
255
hundreds of scripts floating around on the ftp/web sites if
256
you like working by example (which is typically the best way).
258
4. MY BOT DIES, AND THE LAST ENTRY IN THE LOGFILE IS "RECEIVED
259
TERMINATE SIGNAL". WHAT DOES THAT MEAN, AND CAN I PREVENT IT?
261
There's nothing you can do to prevent it. It means the
262
system administrator is killing the Eggdrop process. Most
263
of the time, it's an automatic thing that happens when the
264
system is being rebooted, so it's harmless. If you have a
265
crontab running, the bot will get restarted when the system
266
is back online. Occasionally, the system administrator will
267
kill the bot manually. For example, if he/she doesn't want
268
bots running on the system.
270
5. MY COMPILE DIES AT THE LAST MINUTE WITH "LD FATAL SIGNAL
273
See doc/compiling.FAQ
275
6. SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY
276
BACKDOORS I CAN USE TO TAKE THEIR BOT DOWN?
278
No, there have never been any backdoors and there never will
279
be, so please stop asking. Every once in a while, someone
280
finds a way to exploit a bug in Eggdrop, but we fix these
281
bugs as soon as we find out about them. If you want to bring
282
down someone else's bot, you will not have my/our help.
286
Modules are a way of adding extra C code from the bot, much
287
like Tcl scripts, without requiring the bot to be recompiled.
288
See doc/MODULES for more information.
290
8. CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES?
292
Yes, you can. If ./configure detects that your system CAN'T
293
run modules, it will setup 'make' to link the modules in
294
statically for you. You can also choose this option yourself
295
by typing 'make static'. You can also try to compile dynamic
296
modules on a static-only system by using 'make eggdrop'.
298
8.1 DO I STILL NEED TO 'loadmodule' modules ???
300
YES, when you compile statically, all the modules are linked
301
into the main executable. HOWEVER, they are not enabled until
302
you use loadmodule to enable them, hence you get nearly the
303
same functionality with static modules as with dynamic modules.
305
9. WHERE CAN I GET A PRE-COMPILED EGGDROP FOR MY COMPUTER?
307
It is HIGHLY recommended AGAINST using pre-compiled Eggdrops
308
from un-trusted sources. Eggdrop has been a regular target
309
for hacking and crashing. Distribution of pre-compiled
310
(binary) versions of Eggdrop are the easiest way for hackers
311
to provide you with the easiest (and most dangerous) way of
312
gaining access to, not only your bot, but to your computer
313
account directly. Don't advertise your pre-compiled Eggdrop
314
binary sites on the Eggdrop list either. =P
316
10. I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING
321
11. WHEN I 'tclsh scripts/weed <userfile> c' IT BARFS CHUNKS
324
UPGRADE YOUR TCL, you are probably using Tcl 7.5 or earlier.
325
Some of the commands in weed require Tcl7.6 to run, so either
326
upgrade it or remove the offending lines from you userfile
327
manually (those starting with '.' generally) and accept the
330
12. I get "ld-elf.so.1: Shared object "libtcl80.so.1" not found"
331
or "eggdrop: error in loading shared libraries libtcl8.1.so: \
332
cannot open shared object file: No such file or directory" when I
335
'./configure' is looking in the wrong place for Tcl; it looks
336
like it compiled with one version of Tcl and tries to load
337
another. Maybe your sysadmin upgraded Tcl and didn't tell
338
you. In that case, you should just need to recompile your
341
Maybe, when upgrading, he didn't clean the old version of
342
Tcl and './configure' is looking for the files in the wrong
343
places, or trying to use different versions of tcl.h and
344
libtcl*. Smack your admin and have him install Tcl properly ;)
348
./configure --with-tcllib=<path-to-tcl-lib>
349
--with-tclinc=<path-to-tcl-inc>
351
Tell configure where to look for the Tcl files.
353
Try looking for libtcl by:
356
ls /usr/local/lib/libtcl*
358
Try looking for tcl.h by:
360
ls /usr/include/tcl.h
361
ls /usr/local/include/tcl.h
363
If everything else fails, try to install Tcl to your home dir
364
;) (Suggested by dw@Undernet, dw@lixom.nu)
366
13. I get a whole pile of "Unresolved symbol 'Tcl_AppendResult'"
367
(or some other symbol) when I try to load a modules.
369
POSSIBILITY A: See section 12.
373
Some of the standard libraries have been compiled for static
374
linking only on your machine, you have 3 options:
376
(1) If it's your own machine, recompile Tcl using dynamic
377
linking by using './configure --enable-shared' when you
378
configure Tcl (not the bot) and then remake, and reinstall.
380
(2) If it's not your machine, you make have to resort to 'make
381
static' and 'make install DEST="path"' to make and install
384
(3) If you are of a more aggressive sense of mind, go beat
385
the stuffing out of your admin for having lame static
388
(6) SETTING UP A CRONTAB
390
Eggdrop has become more stable with time, thanks mostly to people
391
reporting bug details and helping find places where it crashes.
392
However, there are still a -few- places where things aren't
393
perfect. Few, if any, things in life are.</p>
395
Also, most systems go down from time to time. These things cause
396
your bot to disappear from IRC, and you have to restart it.
398
Eggdrop comes with a shell script called 'botchk' that
399
will help keep the bot online. It will make the machine check every
400
ten minutes to make sure your bot is still running. To use it, you
401
have to add a line to your crontab. First, edit 'botchk' and change
402
the directory and command line parameters so that it will be able
403
to start up your bot. Then, add this line to your crontab:
1
$Id: README,v 1.39 2004/04/13 03:57:51 wcc Exp $
4
Last revised: June 5, 2002
5
_________________________________________________________________
10
Please at least SKIM this document before asking questions. In fact, READ IT
11
if you've never successfully set up an Eggdrop bot before. PLEASE! READ IT!
17
2. How do I get Eggdrop?
18
2a. How to get the latest version of Eggdrop via CVS
21
4a. Upgrading from a pre-1.3 version to 1.6
22
4b. Upgrading from an older 1.3/1.4/1.5/1.6 version to a newer one
24
6. Frequently Asked Questions
25
6a. What do I do if I get the error "User file not found"?
26
6b. My Eggdrop won't run; It just says "Can't find your hostname!"
27
6c. What the Heck is Tcl?
28
6d. My bot dies and the last entry in the logfile is "Received terminate
29
signal". What does that mean and can I prevent it?
30
6e. My compile dies at the last minute with "LD fatal signal 11"!
31
6f. Someone else set up a bot I don't like. Are there any backdoors I
32
can use to take their bot down?
34
6h. Can I compile Eggdrop without dynamic modules?
35
6h1. Do I still need to "loadmodule" modules?
36
6i. Where can I get a pre-compiled Eggdrop for my computer?
37
6j. I get "Makefile:3 : invalid operator" or some such thing when I
39
6k. When I "tclsh scripts/weed <userfile> c" It barfs chunks at me
41
6l. I get "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or
42
"eggdrop: error in loading shared libraries / libtcl8.1.so: cannot
43
open shared object file: No such file or directory" when I try to
45
6m. I get a whole pile of "unresolved symbol 'Tcl_AppendResult'" (or
46
some other symbol) when I try to load a module.
47
7. Setting up a crontab
48
7a. Setting up a crontab using autobotchk
54
_________________________________________________________________
59
Please read this file carefully before trying to set up Eggdrop. Also,
60
make SURE that you select your +n (owner) users wisely! They have 100%
61
access to your bot and account! ONLY GIVE THIS POWER TO SOMEONE YOU
67
Eggdrop is the world's most popular Internet Relay Chat (IRC) bot; it is
68
freely distributable under the GNU General Public License (GPL). Eggdrop
69
is a feature rich program designed to be easily used and expanded upon by
70
both novice and advanced IRC users on a variety of hardware and software
73
An IRC bot is a program that sits on an IRC channel and preforms automated
74
tasks while looking just like a normal user on the channel. Some of these
75
functions include protecting the channel from abuse, allowing privileged
76
users to gain op or voice status, logging channel events, providing
77
information, hosting games, etc.
79
One of the features that makes Eggdrop stand out from other bots is module
80
and Tcl scripting support. With scripts and modules, you can make the bot
81
preform almost any task you want. They can do anything from preventing
82
floods to greeting users and banning advertisers from channels.
84
You can also link multiple Eggdrop bots together to form a botnet. This
85
can allow bots to op each other securely, control floods efficiently, and
86
even link channels across multiple IRC networks. It also allows the
87
Eggdrops share user lists, ban lists, exempt/invite lists, and ignore
88
lists with other bots if userfile sharing is enabled. This allows users
89
to have the same access on every bot on your botnet. It also allows the
90
bots to distribute tasks such as opping and banning users. See doc/BOTNET
91
for information on setting up a botnet.
93
Eggdrop is always being improved and adjusted because there are bugs to
94
be fixed and features to be added (if the users demand them, and they make
95
actually sense). In fact, it existed for several years as v0.7 - v0.9
96
before finally going 1.0. This version of Eggdrop is part of the 1.6 tree.
97
A valiant effort has been made to chase down and destroy bugs.
99
This README file contains information about how to get Eggdrop, command
100
line options for Eggdrop, what you may need to do when upgrading from
101
older versions, a list of frequently asked questions, how to set up a
102
crontab, some boring legal stuff, info about the mailing list (a great
103
place to ask questions, and a good place to report bugs, too), some basics
104
about CVS usage, and some channels where you might get help with Eggdrop.
107
(2) HOW TO GET EGGDROP
109
Before you can compile Eggdrop, you need to have Tcl installed on your
110
system. Most systems should have Tcl on them by now -- you can check by
111
trying the command "tclsh". If it works, you will be given a "%" prompt,
112
and you can type "exit" to exit the program. This means Tcl is installed
113
on your system. If tclsh doesn't load, then Tcl probably isn't on your
114
system, and you will need to install it. The best ftp site for Tcl is
115
ftp://tcl.activestate.com/pub/tcl/.
117
Tcl comes with the most distributions of Linux. HOWEVER, the one that comes
118
on Slackware 3.0 is goofed up and you'll have to re-install it for yourself
121
Currently, the 1.6 tree of Eggdrop is developed at eggheads.org. You can
122
get the latest version of Eggdrop from the following url:
124
http://www.geteggdrop.com
126
You might try www.eggheads.org for help and information.
131
You can obtain the VERY LATEST version of Eggdrop, that is still under
132
development, by using CVS. CVS means 'Concurrent Versions System' and is
133
a tool for developers to always keep source code up to date. Try 'man cvs'
134
on your shell for more information about CVS.
136
This is intended only for users that know a good bit about Eggdrop. Be
137
aware that the versions of Eggdrop that you get via CVS are still being
138
developed, and may be buggy. The Eggheads Development Team will in NO WAY
139
take any responsibility for whatever might happen to you or your shell if
140
you use a CVS version of Eggdrop.
142
To obtain Eggdrop over CVS, do as follows:
144
1. Log into your shell.
147
CVSROOT=:pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot'.
151
4. Press <enter> when prompted for a password.
153
5. In your home dir, type 'cvs checkout eggdrop1.6'
155
6. In ~/eggdrop1.6, you should have a copy of the latest CVS version
160
o You can 'cvs logout', but you don't need to.
162
o You don't need to go through this whole process every time. If you
163
want to get a CVS version of Eggdrop at a later time, you can just
164
'cd ~/eggdrop1.6' and type 'cvs update -CdAP'.
166
o If you experience errors when using 'export', you might be using tclsh
167
as a shell. If so, try using the command 'setenv' instead of 'export':
169
setenv CVSROOT :pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot
174
Please see the 'INSTALL' file AFTER you finish reading this file.
180
(4a) UPGRADING FROM A PRE-1.3 VERSION TO 1.6
182
#### BACK UP YOUR USERFILE ####
184
We can't stress this enough. If you are upgrading and you have even a
185
slight possibility of downgrading again later, you will HAVE to back up
186
your userfile, or you will lose it. v1.3 of Eggdrop radically changed a
189
There are many major changes between v0.9, v1.0, v1.1 and v1.6, so PAY
190
ATTENTION to this part if you have a v0.9, 1.0 or 1.1 bot currently. If
191
you're just starting out, you can skip this section.
193
If you run share bots, you will need to upgrade them all at the same time
194
because of the new userfile format. Older bots will be able to link in,
195
but will not get or send a userfile. MAKE A NEW CONFIG FILE from the
196
example; there are some radical changes.
198
If you are upgrading from 0.9/1.0 to 1.6, just redo the whole thing.
199
Absolutely everything has changed, including the userfile and config file
202
If you are upgrading from 1.1/1.2 to 1.6, you will likely want to redo
203
the config file, as much as changed. BACK UP! You will need to run 'tclsh
204
scripts/weed/<userfile> c' to convert your userfile from v3 (1.1/1.2) to
205
v4 (1.3/1.4/1.5/1.6).
208
(4b) UPGRADING FROM AN OLDER 1.3/1.4/1.5/1.6 VERSION TO A NEWER 1.6 VERSION
210
If you followed the 'INSTALL' file and did a 'make install' (or 'make
211
install DEST="path"') after 'make', this will be pretty easy. Just upload
212
the new eggdrop1.6.x.tar.gz file to your home dir on your shell, gunzip
213
and untar it, and type 'cd ~/eggdrop1.6.x'. Next, type './configure',
214
'make config' or 'make iconfig', then 'make'. Then, kill the bot ('.die'
215
on the party line), and 'make install' to the same directory your bot
216
is currently in. After that, you can just restart your bot. You may wish
217
to delete the old Eggdrop executable and modules as well, especially if
218
you have limited disk space.
220
You should read through the new eggdrop.conf file for all of the new
221
options in Eggdrop 1.6.x if you are upgrading from 1.3.x or 1.4.x. You
222
can copy and paste any of these settings into you current conf file if
223
you do not want to use the default settings.
228
Eggdrop has some command-line options -- not many, because most things
229
should be defined through the config file. However, sometimes you may
230
want to start up the bot in a different mode, and the command-line
231
options let you do that. Basically, the command line for Eggdrop is:
233
% eggdrop [options] [config-file]
235
The options available are:
237
-n: Don't background. Normally, Eggdrop will move itself into the
238
background when you start it up, meaning you'll get another shell
239
prompt, and you can do other things while the bot is running. With
240
-n, you won't return to the shell prompt until the bot exits (which
241
won't normally happen until it's killed). By default, -n will send
242
all log entries to the console.
244
-nt: Don't background, use terminal. This is just like -n, except that
245
instead of seeing log entries, your console will simulate a DCC
248
-nc: Don't background, show channel info. This is just like -n, except
249
that instead of seeing log entries, every 10 seconds your screen
250
will clear and you will see the current channel status, sort of
253
-m: Create userfile. If you don't have a userfile, this will make Eggdrop
254
create one and give owner status to the first person that introduces
255
himself or herself to it. You'll need to do this when you first set
258
-v: Show version info, then quit.
260
Most people never use any of the options except -m, and you usually only
261
need to use that once.
264
(6) FREQUENTLY ASKED QUESTIONS (or "Why doesn't this thing work?")
266
6a. WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"?
268
1. Run Eggdrop with the "-m" option (i.e. "eggdrop -m eggdrop.conf").
270
2. Go to IRC and send "hello" to your bot (i.e. "/msg mybot hello").
272
3. You will become an owner on your bot. You can leave the bot running
273
(nobody else will become an owner if they say "hello"), but in the
274
future, don't use the "-m" option when running the bot.
276
6b. MY EGGDROP WON'T RUN; IT JUST SAYS "CAN'T FIND YOUR HOSTNAME!"
278
Your machine is set up strangely, and Eggdrop can't figure out its
279
network hostname. You can get around this by setting the my-ip setting
280
in the config file correctly.
282
6c. WHAT THE HECK IS Tcl?
284
Tcl is a scripting language written by John Ousterhout. It's much better
285
than most "built-in" script languages (like the one in ircII) and is
286
meant to be linked with anything needing a scripting language, so I
287
linked it with Eggdrop. The file "tcl-commands.doc" in the doc directory
288
contains a list of additional Tcl commands provided by Eggdrop. There
289
are also several example scripts in the scripts/ directory, and one in
290
the doc directory called first_script.txt. Hundreds of scripts floating
291
around on the ftp/web sites if you like working by example (which is
292
typically the best way).
294
6d. MY BOT DIES, AND THE LAST ENTRY IN THE LOGFILE IS "RECEIVED TERMINATE
295
SIGNAL". WHAT DOES THAT MEAN, AND CAN I PREVENT IT?
297
There's nothing you can do to prevent it. It means the system
298
administrator is killing the Eggdrop process. Most of the time, it's an
299
automatic thing that happens when the system is being rebooted, so it's
300
harmless. If you have a crontab running, the bot will get restarted when
301
the system is back online. Occasionally, the system administrator will
302
kill the bot manually. For example, if he/she doesn't want bots running
305
6e. MY COMPILE DIES AT THE LAST MINUTE WITH "LD FATAL SIGNAL 11"!
405
0,10,20,30,40,50 * * * * /home/mydir/botchk
407
If you don't want to get emails from cron, use this:
409
0,10,20,30,40,50 * * * * /home/mydir/botchk >/dev/null 2>&1
411
Naturally, you need to change the path to the correct path for
412
botchk. If you've never used crontab before, here is a simple way
415
(1) Create a new file called 'mycron' and put the above
418
(2) From your shell prompt, type '% crontab mycron'.
420
That will create a new crontab entry for you with a line that
421
runs botchk every ten minutes. Botchk will then restart the bot when
422
necessary (and send you email informing you).
424
(6a) SETTING UP A CRONTAB USING AUTOBOTCHK
426
Included with your Eggdrop is an Eggdrop utility called
427
'autobotchk'. Using autobotchk is probably the fastest way of
428
creating your botchk and crontabbing it with just a few required
431
To crontab your bot, follow these steps:
433
(1) Type 'cp scripts/autobotchk ..'.
435
(2) Type './autobotchk <Eggdrop config file>'.
437
This will hopefully crontab your bot using the default
438
setup. If you want a list of autobotchk options, type
439
'./autobotchk'. An example with options would be:
441
./autobotchk <Eggdrop config file> -noemail -5
443
This would setup crontab to run the botchk every 5 minutes
444
and also to not send you e-mail saying that it restarted
447
(7) BORING LEGAL STUFF
449
The Eggdrop bot is copyright (C) by Robey Pointer. As of January,
450
1997, Eggdrop is distributed according to the GNU General Public
451
License. There should be a copy of this license in the file
452
'COPYING'. If not, write to the Free Software Foundation, Inc.,
453
675 Mass Ave, Cambridge, MA 02139, USA.
455
As of eggdrop1.3.28, all changes made by the Eggheads development
456
team to the Eggdrop source code and any related files are copyright
457
(C) by Eggheads. The source code will still be distributed according
458
to the GNU General Public License as Robey Pointer did in the past.
460
Releases previous to 1.0m were made using a different licensing
461
scheme. You may, at your option, use the GNU General Public License
462
on those versions (instead of the license packaged with them) with
463
my blessing. For any versions bearing a copyright date of 1997 or
464
later, you have no choice -- you must use the GNU General Public
467
The files "match.c", "net.c", and "blowfish.c" are exempt from
468
the above restrictions. "match.c" is original code by Chris Fuller
469
(email: crf@cfox.bchs.uh.edu) and has been placed by him into the
470
public domain. "net.c" is by me and I [who?] also choose to place
471
it in the public domain. "blowfish.c" is by various sources and is
472
in the public domain as well. All 3 files contain useful functions
473
that could easily be ported to other applications.
475
Tcl is by John Ousterhout and is in no way affiliated with Eggdrop.
476
It likely has its own set of copyrights and whatnots.
478
There is no warranty, implied or whatever. You use this software
479
at your own risk, no matter what purpose you put it to.
483
There are currently a couple of mailing lists about Eggdrop.
484
eggheads@eggheads.org is the one relevant for posts about
485
Eggdrop 1.4 and up (suggestions, help, etc).
487
To subscribe to the eggheads mailing list, send email to
488
eggheads-request@eggheads.org. In the body of the message, put
489
"subscribe eggheads". You can also go to the following url:
491
http://scrambled.eggheads.org/mailman/listinfo/eggheads
493
### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP ###
495
Robey is no longer developing the Eggdrop code, so don't bother
496
e-mailing him. If you have a serious problem, email the eggheads
497
mailing list and it will get to the coders.
499
Please, before posting to this list, see what things are like.
500
When you do post, read over your post for readability, spelling, and
501
grammar mistakes. Obviously, we're all human (or are we?) and we
502
all make mistakes (heck, look at this document! ;).
504
Open discussion and debate is integral to change and progress.
505
Don't flame others over mere form (grammar and spelling), or
506
even substantive issues for that matter. Please read and follow
507
the mailing list rules.
509
The eggheads@eggheads.org mailing list is not dedicated to those
510
all too common questions we have all seen on other lists... For
513
"Why does my bot say this: Please edit your config file."
514
"How do I telnet my bot?"
515
"Where do I get Eggdrop for windows??????"
518
Technical questions, your thoughts or suggestions on new features
519
being added to Eggdrop, things that should be removed or fixed,
520
amazing problems that even stump the guru's, etc. are what we want
523
Bug reports should be sent to bugs@eggheads.org. Please read
524
and fill out the BUG-REPORT file in the doc directory.
526
DO NOT SEND HTML E-MAILS TO ANY OF THE EGGHEADS.ORG MAILING LISTS.
527
ANYONE CAUGHT SENDING HTML E-MAILS TO ONE OF THESE LISTS WILL BE
532
We're trying to keep the documentation up to date. If you feel
533
that anything is missing here or that anything should be added,
534
etc, please email eggheads@eggheads.org about it. Thank you.
538
You can obtain help with Eggdrop in the following IRC channels:
540
Undernet - #eggdrop, #eggheads
541
EFnet - #egghelp, #eggfaq
545
If you plan to ask questions in any of the above channels,
546
you should be familiar with and follow IRC etiquette.
548
- Don't type using CAPITAL letters, colors, or bold, and don't use
549
"!" and "?" excessively.
551
- Don't /msg people without their permission.
553
- Don't repeat or paste large amounts of text to the channel.
555
If there are any other serious Eggdrop related channels that should
556
be added to the above list, please let us know.
307
See doc/compiling.FAQ.
309
6f. SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY BACKDOORS I CAN
310
USE TO TAKE THEIR BOT DOWN?
312
No, there have never been any backdoors and there never will be, so
313
please stop asking. Every once in a while, someone finds a way to
314
exploit a bug in Eggdrop, but we fix these bugs as soon as we find out
315
about them. If you want to bring down someone else's bot, you will not
318
6g. WHAT ARE MODULES?
320
Modules are a way of adding extra features to the bot, much like Tcl
321
scripts, without requiring the bot to be recompiled. See doc/MODULES
322
for more information.
324
6h. CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES?
326
Yes, you can. If the configure script detects that your system CAN'T
327
run modules, it will setup 'make' to link the modules in statically
328
for you. You can choose this option yourself by using 'make static'.
329
You can also try to compile dynamic modules on a static-only system
330
by using 'make eggdrop'.
332
6h1. DO I STILL NEED TO 'loadmodule' MODULES?
334
YES, when you compile statically, all the modules are linked into the
335
main executable. HOWEVER, they are not enabled until you use loadmodule
336
to enable them, hence you get nearly the same functionality with static
337
modules as with dynamic modules.
339
6i. WHERE CAN I GET A PRE-COMPILED EGGDROP FOR MY COMPUTER?
341
It is HIGHLY recommended AGAINST using pre-compiled Eggdrops from
342
un-trusted sources. Eggdrop has been a regular target for hacking and
343
crashing. Distribution of pre-compiled (binary) versions of Eggdrop are
344
the easiest way for hackers to provide you with the easiest (and most
345
dangerous) way of gaining access to, not only your bot, but to your
346
computer account directly. Don't advertise your pre-compiled Eggdrop
347
binary sites on the Eggdrop list either. =P
349
6j. I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING WHEN I TRY
354
6k. WHEN I 'tclsh scripts/weed <userfile> c' IT BARFS CHUNKS AT ME AND
357
Upgrade your Tcl. You are probably using Tcl 7.5 or earlier. Some of the
358
commands in weed require Tcl7.6 to run, so either upgrade it or remove
359
the offending lines from you userfile manually (those starting with '.'
360
generally) and accept the loss of that data.
362
6l. I GET "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or
363
"eggdrop: error in loading shared libraries libtcl8.1.so: \
364
cannot open shared object file: No such file or directory" WHEN I TRY
367
'./configure' is looking in the wrong place for Tcl; it looks like it
368
compiled with one version of Tcl and tries to load another. Maybe your
369
sysadmin upgraded Tcl and didn't tell you. In that case, you should just
370
need to recompile your bot.
372
Maybe, when upgrading, he didn't clean the old version of Tcl and
373
'./configure' is looking for the files in the wrong places, or trying
374
to use different versions of tcl.h and libtcl*. Smack your admin and
375
have him install Tcl properly. ;)
379
./configure --with-tcllib=<path-to-tcl-lib>
380
--with-tclinc=<path-to-tcl-inc>
382
This will tell configure where to look for the Tcl files.
384
Try looking for libtcl by:
387
ls /usr/local/lib/libtcl*
389
Try looking for tcl.h by:
391
ls /usr/include/tcl.h
392
ls /usr/local/include/tcl.h
394
If everything else fails, try to install Tcl to your home dir ;)
395
(Suggested by dw@Undernet, dw@lixom.nu)
397
6m. I GET A WHOLE PILE OF "Unresolved symbol 'Tcl_AppendResult'" (OR SOME
398
OTHER SYMBOL) WHEN I TRY TO LOAD A MODULES.
400
POSSIBILITY A: See section 6l.
404
Some of the standard libraries have been compiled for static linking
405
only on your machine, you have 3 options:
407
1. If it's your own machine, recompile Tcl using dynamic linking by
408
using './configure --enable-shared' when you configure Tcl (not
409
the bot) and then remake, and reinstall.
411
2. If it's not your machine, you may have to resort to 'make static'
412
and 'make install DEST="path"' to make and install your bot.
414
3. If you are of a more aggressive sense of mind, go beat the
415
stuffing out of your admin for having lame static libraries. :)
418
(7) SETTING UP A CRONTAB
420
Eggdrop has become more stable with time, thanks mostly to people
421
reporting bug details and helping find places where it crashes. However,
422
there are still a -few- places where things aren't perfect. Few, if any,
425
Also, most systems go down from time to time. These things cause your bot
426
to disappear from IRC, and you have to restart it.
428
Eggdrop comes with a shell script called 'botchk' that will help keep the
429
bot online. It will make the machine check every ten minutes to make sure
430
your bot is still running. To use it, you have to add a line to your
431
crontab. First, edit 'botchk' and change the directory and command line
432
parameters so that it will be able to start up your bot. Then, add this
433
line to your crontab:
435
0,10,20,30,40,50 * * * * /home/mydir/botchk
437
If you don't want to get e-mails from cron, use this:
439
0,10,20,30,40,50 * * * * /home/mydir/botchk >/dev/null 2>&1
441
Naturally, you need to change the path to the correct path for botchk. If
442
you've never used crontab before, here is a simple way to add that line:
444
1. Create a new file called 'mycron' and put the above line into it.
446
2. From your shell prompt, type '% crontab mycron'.
448
That will create a new crontab entry for you with a line that runs botchk
449
every ten minutes. Botchk will then restart the bot when necessary (and
450
send you email informing you).
453
(7a) SETTING UP A CRONTAB USING AUTOBOTCHK
455
Included with your Eggdrop is an Eggdrop utility called 'autobotchk'.
456
Using autobotchk is probably the fastest way of creating your botchk and
457
crontabbing it with just a few required steps:
459
1. Type 'cp scripts/autobotchk ..'.
461
2. Type './autobotchk <Eggdrop config file>'.
463
This will hopefully crontab your bot using the default setup. If you want
464
a list of autobotchk options, type './autobotchk'. An example with options
467
./autobotchk <Eggdrop config file> -noemail -5
469
This would setup crontab to run the botchk every 5 minutes and also to
470
not send you e-mail saying that it restarted your bot.
473
(8) BORING LEGAL STUFF
475
The Eggdrop bot is copyright (C) by Robey Pointer. As of January, 1997,
476
Eggdrop is distributed according to the GNU General Public License. There
477
should be a copy of this license in the file 'COPYING'. If not, write to
478
the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
480
As of eggdrop1.3.28, all changes made by the Eggheads development team to
481
the Eggdrop source code and any related files are copyright (C) by
482
Eggheads. The source code will still be distributed according to the GNU
483
General Public License as Robey Pointer did in the past.
485
Releases previous to 1.0m were made using a different licensing scheme.
486
You may, at your option, use the GNU General Public License on those
487
versions (instead of the license packaged with them) with my blessing.
488
For any versions bearing a copyright date of 1997 or later, you have
489
no choice -- you must use the GNU General Public License.
491
The files "match.c", "net.c", and "blowfish.c" are exempt from the above
492
restrictions. "match.c" is original code by Chris Fuller (email:
493
crf@cfox.bchs.uh.edu) and has been placed by him into the public domain.
494
"net.c" is by me, and I [who?] also choose to place it in the public
495
domain. "blowfish.c" is by various sources and is in the public domain
496
as well. All 3 files contain useful functions that could easily be
497
ported to other applications.
499
Tcl is by John Ousterhout and is in no way affiliated with Eggdrop. It
500
likely has its own set of copyrights and whatnots.
502
There is no warranty, implied or whatever. You use this software at your
503
own risk, no matter what purpose you put it to.
508
There are currently a couple of mailing lists about Eggdrop.
509
eggheads@eggheads.org is the one relevant for posts about Eggdrop 1.4 and
510
up (suggestions, help, etc).
512
To subscribe to the eggheads mailing list, send e-mail to
513
eggheads-request@eggheads.org. In the body of the message, put "subscribe
514
eggheads". You can also go to the following url:
516
http://scrambled.eggheads.org/mailman/listinfo/eggheads
518
### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP! ###
520
Robey is no longer developing the Eggdrop code, so don't bother e-mailing
521
him. If you have a serious problem, email the eggheads mailing list and
522
it will get to the coders.
524
Please, before posting to this list, see what things are like. When you do
525
post, read over your post for readability, spelling, and grammar mistakes.
526
Obviously, we're all human (or are we?) and we all make mistakes (heck,
527
look at this document! ;).
529
Open discussion and debate is integral to change and progress. Don't flame
530
others over mere form (grammar and spelling), or even substantive issues
531
for that matter. Please read and follow the mailing list rules.
533
The eggheads@eggheads.org mailing list is not dedicated to those all too
534
common questions we have all seen on other lists... For example:
536
o "Why does my bot say this: Please edit your config file."
537
o "How do I telnet my bot?"
538
o "Where do I get Eggdrop for windows??????"
540
Technical questions, your thoughts or suggestions on new features being
541
added to Eggdrop, things that should be removed or fixed, amazing problems
542
that even stump the guru's, etc. are what we want to see here.
544
Bug reports should be sent to bugs@eggheads.org. Please read and fill out
545
the BUG-REPORT file in the doc directory.
547
DO NOT SEND HTML E-MAILS TO ANY OF THE EGGHEADS.ORG MAILING LISTS. ANYONE
548
CAUGHT SENDING HTML E-MAILS TO ONE OF THESE LISTS WILL BE REMOVED
554
We're trying to keep the documentation up to date. If you feel that
555
anything is missing here or that anything should be added, etc, please
556
e-mail docteam@eggheads.org about it. Thank you.
561
You can obtain help with Eggdrop in the following IRC channels:
563
Undernet - #eggdrop, #eggies
564
EFnet - #egghelp, #eggfaq
566
DALnet - #eggdrop, #botcentral
567
OPN - #eggdrop, #egghelp
570
If you plan to ask questions in any of the above channels, you should be
571
familiar with and follow IRC etiquette.
573
o Don't type using CAPITAL letters, colors, or bold.
575
o Don't use "!" and "?" excessively.
577
o Don't /msg people without their permission.
579
o Don't repeat or paste large amounts of text to the channel.
581
If there are any other serious Eggdrop related channels that should be
582
added to the above list, please let us know.
558
584
________________________________________________________________________
560
586
Copyright (C) 1997 Robey Pointer
561
Copyright (C) 1999, 2000, 2001, 2002 Eggheads Development Team
587
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Eggheads Development Team