1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
|
_
___ __ _ __ _ __| |_ __ ___ _ __
/ _ \ / _` |/ _` |/ _` | '__|/ _ \| '_ \
| __/| (_| | (_| | (_| | | | (_) | |_) |
\___| \__, |\__, |\__,_|_| \___/| .__/
|___/ |___/ |_| v1.3
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!
(0) 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!!
(1) 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
priveledged users and let them gain ops, etc.
One of the more unique features of eggdrop is its "party line",
accessable via DCC chat, 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 the author
is never really satisfied with it. In fact, it existed for several
years as v0.7 - v0.9 before finally going 1.0. A valiant effort has
been made to chase down and destroy bugs. It is definitely nowhere
near as buggy as the ircII client. Crashes should be rare and
surprising (but aren't they always? [surprising anyway]).
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 complaint/explanation about
the lack of documentation.
The preliminary documentation is in "eggdrop.doc" and is intended to be
read after you have eggdrop compiled and set up. It's changing all the
time and getting new sections added. If you'd like to write a
section, then please do!
(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.
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 is:
ftp://ftp.sunlabs.com/pub/tcl
The current version as of this writing is 8.0. Right now, eggdrop
pukes on 8.0betas, so we suggest that you use 7.6p2. NEW: 8.0 release
reputedly works, but we've already had to code around problems with
it. 7.6p2 is still suggested! If you email someone with problems and
you're using 8.0 anything, you will have vomituous masses spat at you.
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
re-install it for yourself to get it working.
(3) QUICK STARTUP
#### NOW INCLUDED IN 'INSTALL' - READ IT *AFTER* FINISHING THIS ####
(4) UPGRADING
#### BACK UP YOUR USERFILE ####
We can't re-iterate 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. 1.3 radically changes a
lot of things.
There are many major changes between v0.9, v1.0, v1.1 and v1.3 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.3:
* If you run sharebots, 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. 1.2's
will also tend to refuse to share with another pre1.2.
MAKE A NEW CONFIG FILE from the example, there are some radical
extras.
from 0.9/1.0 to 1.3:
* Just redo the whole thing, absolutely everything has changed
including the userfile and config file formats.
from 1.1/1.2 to 1.3:
* 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
(5) FREQUENTLY ASKED QUESTIONS (or "Why doesn't this thing work?")
1. 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 an owner 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.
2. 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 admini-
strator to set up her /etc/hosts file correctly, or add those above
commands to your '.login' file (sh or ksh: '.profile').
3. 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 language.
So I linked it with eggdrop.
The file "tcl-commands.doc" in the eggdrop directory contains a list
of the commands added to Tcl by eggdrop. There are also several
example scripts in the scripts/ directory, and there are gobs of
scripts floating around on the ftp sites if you like working by
example (which is typically the best way).
4. 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 admini-
stator 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, and if you have a crontab running, the bot will get
restarted when the system is back online. Occassionally the system
administrator will kill the bot manually -- for example, if he/she
doesn't want bots running on the system.
5. MY COMPILE DIES AT THE LAST MINUTE WITH "LD FATAL SIGNAL 11"!
This happens on Linux machines which have recently been converted
to ELF by upgrading to Slackware 3.0. Apparently Slackware 3.0
comes with a non-ELF (a.out) Tcl library, and the compiler doesn't
handle that well. (It should give you an error; instead it barfs.)
Fixing it is tricky because even if you recompile libtcl.a, the
linker will most likely find the "bad" one first, and your work
will be in vain.
Here's a fix that's been floating around on the eggdrop list:
1. Recompile 'libtcl.a' for yourself, to make sure an ELF library
is created.
2. Copy it into your eggdrop/src directory, naming it 'libtcl2.a'.
3. Edit the Makefile and change the line that says '-L/usr/lib -ltcl'
to '-L. -ltcl2'.
4. Recompile eggdrop.
Also send hate-mail to the Slackware guy telling him to stop messing
up the libraries. He seemed to assume that everyone would still
want to compile old-style (a.out) binaries.
6. 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 I find
out about them. If you want to bring down someone else's bot, you
will not have my/our help.
6. WHAT ARE MODULES?
Modules are a way of adding extra C code from the bot, much
like tcl scripts, without requiring the bot recompiling, see
doc/MODULES for more info.
7. CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES?
Yes, you can, if ./configure detects that your system CAN'T run
modules it will setup 'make' to link the modules in statically
for you, you can also choose this option if you can do dynamic
modules by typing 'make static'. You can also try to compile
dynamic modules on a static-only system by typing 'make eggdrop'.
7.1 DO I STILL NEED TO 'loadmodule modules' ???
YES, when you compile statically, all the modules are linked into
the main executable *but* they are not enabled until you use
loadmodule to enable then, hence you get nearly the same
functionality with static modules as dynamic modules.
8. WHERE CAN I GET A PRECOMPILED EGGDROP FOR MY COMPUTER?
It is HIGHLY recommended AGAINST using precompiled Eggdrops
from untrusted sources. Eggdrop has been a regular target
for hacking and crashing. Distribution of precompiled (binary)
versions of Eggdrop are the easiest way of 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 precompiled eggdrop binary sites on the
eggdrop list either =P
9. I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING
WHEN I TRY TO 'make'
Try 'gmake'
10. 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 removing the offending lines from you
userfile (those strating with '.' generally) and accept the
loss of that data.
11. I get a whole pile of "Unresolved symbol 'Tcl_AppendResult'"
(or some other symbol) when I try to load a modules.
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, & reinstall
(2) if it's not you machine, you make have to resort to
'make static' and 'make sinstall DESTDIR=<dir>' 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 have lame static libraries :)
(6) SETTING UP A CRONTAB
Eggdrop has become more stable with time, thanks mostly to people detail-
ing 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 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).
(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.
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 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 has its own set of copyrights and whatnots, I'm sure.
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
To subscribe, send email to:
majordomo@tacorp.net
In the body of the message, put "subscribe eggdrop".
### 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! ;). Don't flame, and
read/follow the rules.
(9) DOCUMENTATION
I've been trying hard to keep the online documentation (in the help/
directory) fairly up-to-date. It should be complete now; you can browse
through there for some handy tips. Please let me know if you find any
help files that are incorrect or confusing!
I know that a unified documentation would REALLY BE HELPFUL. All I can
say is... I've been pretty busy. I just graduated in December and I've
spent the past several months getting settled into the bay area, getting
a job, etc. So I haven't even had much time to keep updating the bot.
But I AM working on it, bit by bit. Stage one was finishing the online
docs. Now I'm slowly adding bits to the unified documentation.
I have seven sections written so far, and I'm not sure how helpful
they are, but you can find them in "eggdrop.doc" for now. Comments and
suggestions would be welcome!
(10) OBTAINING HELP
There exists no uniform channel currently in existance to support
eggdrop. At one time, such channels did exist, but they most
often esculate into a vanity channel, where no one is willing to help.
Maybe in the future, a bot will be put up in a channel to offer
answers to commonly asked questions, but until then, your best bet is
the eggdrop mailing list.
This is the end. Good. You actually read all the way down here. If you
meet someone who hasn't, thwop them for me.
|