/[cvs]/eggdrop1.6/README
ViewVC logotype

Contents of /eggdrop1.6/README

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.19 - (show annotations) (download)
Mon Nov 5 04:08:25 2001 UTC (17 years, 8 months ago) by guppy
Branch: MAIN
Changes since 1.18: +19 -19 lines
Wcc is much better at spelling then us

1 README
2 ------------------------------------------------------------------------
3
4 Please at least SKIM this document before asking questions. In fact,
5 READ IT if you've never successfully set up an eggdrop bot before.
6 PLEASE! READ IT! If you haven't read this file, and ask for help
7 expect to be told to READ the README file first! or rtfm :)
8
9 Contents
10
11 0 Important notice
12
13 1 What is Eggdrop?
14 2 How do I get Eggdrop
15 2a CVS usage
16 3 Quick startup
17 4 Upgrading
18 4a From a pre-1.3 version to 1.6
19 4b From an older 1.3/1.4/1.5/1.6 version to a newer one
20 5 Frequently Asked Questions
21 1. What do I do if I get the Error "User file not found"?
22 2. My Eggdrop won't run; It just says "Can't find your
23 hostname!"
24 3. What the Heck is TCL?
25 4. My bot dies and the last entry in the logfile is "Received
26 terminate signal". What does that mean and can I prevent it?
27 5. My compile dies at the last minute with "LD fatal signal
28 11"!
29 6. Someone else set up a bot I don't like. Are there any
30 backdoors I can use to take their bot down?
31 7. What are modules?
32 8. Can I compile eggdrop without dynamic modules?
33 8.1 Do I still need to "loadmodule modules"???
34 9. Where can I get a pre-compiled Eggdrop for my computer?
35 10. I get "Makefile:3 : invalid operator" of some such thing
36 When I try to "make"
37 11. When I "tclsh scripts/weed <userfile> c" It barfs chunks at
38 me and dies.
39 12. I get "ld-elf.so.1: Shared object "libtcl80.so.1" not found"
40 or "eggdrop: error in loading shared libraries /
41 libtcl8.1.so: cannot open shared object file: No such file
42 or directory" when I try to start my bot.
43 13. I get a whole pile of "unresolved symbol 'Tcl_AppendResult'"
44 (or some other symbol) when I try to load a module.
45 6 Setting up a crontab
46 6a Setting up a crontab using autobotchk
47 7 Boring legal stuff
48 8 Mailing list
49 9 Documentation
50 10 Obtaining help
51
52 ------------------------------------------------------------------------
53
54 (0) NOTICE
55
56 Please read this file carefully before trying to set up this
57 bot. Also, make SURE that you select your +n (owner) users
58 wisely! They have 100% access to your bot and account! ONLY
59 GIVE THIS POWER TO SOMEONE YOU TRUST COMPLETELY!!
60
61 (1) WHAT IS EGGDROP?
62
63 Eggdrop is an IRC bot, written in C. If you don't know what
64 IRC is, this is probably not whatever you're looking for!
65 Eggdrop, being a bot, sits on a channel and takes protective
66 measures: to keep the channel from being taken over (in the
67 few ways that anything CAN), to recognize banished users or
68 sites and reject them, to recognize privileged users and let
69 them gain ops, etc.
70
71 One of the more unique features of eggdrop is its
72 "partyline", accessible via DCC chat, which allows you to
73 talk to other people lag-free. Consider it a multi-way DCC
74 chat, or a miniature IRC (complete with channels). You can
75 link up with other bots and expand the partyline until it
76 actually becomes something very much like IRC, in fact.
77
78 Eggdrop is always being improved and adjusted because there
79 are bugs to be fixed and features to be added (if the users
80 demand them, and they make actually sense). In fact, it
81 existed for several years as v0.7 - v0.9 before finally
82 going 1.0. This version of eggdrop is part of the 1.6 tree.
83 A valiant effort has been made to chase down and destroy
84 bugs.
85
86 This README file contains information about how to get
87 eggdrop, how to quickly compile the bot, what you may need
88 to do when upgrading from older versions, a list of
89 frequently asked questions about compiling, how to set up a
90 crontab, some boring legal stuff, info about the mailing
91 list (a great place to ask questions, and a good place to
92 report bugs also), some basics about CVS usage and some
93 channels where you might get help with eggdrop.
94
95 The preliminary documentation is in "eggdrop.doc" and is
96 intended to be read after you have eggdrop compiled and set
97 up.
98
99
100 (2) HOW TO GET EGGDROP
101
102 Before you can compile eggdrop, you need to have TCL
103 installed on your system. Most systems should have TCL on
104 them by now -- you can check by trying the command "tclsh".
105 If it works, you will be given a "%" prompt, and you can
106 type "exit" to exit the program. That means TCL is on your
107 system. If tclsh doesn't load, then TCL probably isn't on
108 your system, and you will need to ftp it. The best ftp site
109 is:
110
111 ftp://ftp.scriptics.com/pub/tcl
112
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.
116
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/
120
121 You might try www.eggheads.org for help and information.
122
123
124 (2a) CVS USAGE
125
126 You might obtain the *very latest* version of eggdrop that
127 is still under development by using CVS. CVS means
128 'Concurrent Versions System' and is a tool for developers to
129 always keep source code up to date. Try 'man cvs' on your
130 shell for more information about CVS ;-)
131
132 This intended only for users that know a fairly bit about
133 eggdrop. Be aware that the versions of eggdrop that you get
134 by CVS are still being developed, and may be buggy. The
135 Eggheads devteam will in *NO WAY* take any responsibility
136 for whatever might happen to you or your shell if you use a
137 CVS version of eggdrop.
138
139 To obtain eggdrop over CVS, do as follows:
140
141 (1) log into your shell
142 (2) type 'export
143 CVSROOT=:pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot'
144
145 (3) type 'cvs login'
146 (4) press <enter> when it asks for a password.
147 (5) in your home dir, type 'cvs checkout
148 eggdrop1.6'
149 (6) in ~/eggdrop1.6, you should have a copy of the
150 latest CVS version of eggdrop.
151
152 Notes:
153
154 (1) you can 'cvs logout', but you don't need to.
155 (2) you don't need to go through this whole
156 process every time; if you want to get a CVS
157 version of eggdrop at a later time, you can just
158 'cd ~/eggdrop1.6' and type 'cvs update -A'.
159 (3) if you experience errors when using 'export',
160 you might be using tclsh as a shell. If so, try
161 using the command 'setenv' instead of 'export':
162 'setenv CVSROOT
163 :pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot'
164
165 (3) QUICK STARTUP
166
167 #### NOW INCLUDED IN 'INSTALL' - READ IT *AFTER* FINISHING
168 THIS ####
169
170 (4) UPGRADING
171
172 (4a) FROM A PRE-1.3 VERSION TO 1.6
173
174 #### BACK UP YOUR USERFILE ####
175
176 We can't re-iterate this enough, if you are
177 upgrading, and you have even a slight possibility
178 of downgrading again later you will HAVE to back
179 up your userfile, or you will lose it. v1.3 of
180 eggdrop radically changed a lot of things.
181
182 There are many major changes between v0.9, v1.0,
183 v1.1 and v1.6 so PAY ATTENTION to this part if you
184 have a v0.9, 1.0 or 1.1 bot already. If you're just
185 starting out, you can skip this section.
186
187 to 1.6: * If you run sharebots, you will
188 need to upgrade them all at the same time because
189 of the new userfile format. Older bots will be
190 able to link in, but will not get or send a
191 userfile. MAKE A NEW CONFIG FILE from the example,
192 there are some radical extras.
193
194 from 0.9/1.0 to 1.6: * Just redo the whole thing,
195 absolutely everything has changed including
196 the userfile and config file formats.
197
198 from 1.1/1.2 to 1.6: * You will likely want to redo
199 the config file, as much as changed. BACK UP!! You
200 will need to run 'tclsh scripts/weed/<userfile> c'
201 to convert your userfile from v3 (1.1/1.2) to v4
202 (1.3/1.4/1.5)
203
204 (4b) FROM AN OLDER 1.3/1.4/1.5/1.6 VERSION TO A NEWER ONE
205
206 If you followed the INSTALL file and did a 'make
207 install' (or 'make install DEST=<path>') after
208 'make', this will be pretty easy. Just upload the
209 new eggdrop1.6.xx.tar.gz file to the home dir of
210 your shell, gunzip and untar it, and type 'cd
211 ~/eggdrop1.6.xx'. Then, type './configure',
212 'make config' or 'make iconfig', 'make', then kill
213 the bot ('.die' on the partyline, or use 'kill' on
214 the shell) and 'make install' to the same directory
215 your bot is currently in. Then, you can just restart
216 your bot.
217
218 You should read through the new eggdrop.complete.conf
219 file for all the new options in Eggdrop 1.6.x if you
220 are upgrading from 1.3.x or 1.4.x. You can copy and
221 paste any of these settings into you current conf file
222 if you do not want to use the default settings.
223
224 (5) FREQUENTLY ASKED QUESTIONS (or "Why doesn't this thing work?")
225
226 1. WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"?
227
228 (1) Run eggdrop with the "-m" option (i.e.,
229 "./eggdrop -m mybot").
230 (2) Go to IRC and send "hello" to your bot (i.e.,
231 "/msg mybot hello").
232 (3) You will become an owner on your bot. You can
233 leave the bot running (nobody else will become a
234 master if they say "hello"), but in the future,
235 don't use the "-m" option when running the bot.
236
237 2. MY EGGDROP WON'T RUN; IT JUST SAYS "CAN'T FIND YOUR
238 HOSTNAME!"
239
240 Your machine is set up strangely, and eggdrop
241 can't figure out its network hostname. You can get
242 around this by setting an environment variable
243 called HOSTNAME.
244
245 In sh or ksh:
246
247 $ HOSTNAME=myhost.domain.edu
248 $ export HOSTNAME
249
250 In csh or tcsh:
251
252 % setenv HOSTNAME myhost.domain.edu
253
254 It should work after that. You may want to bug
255 your system administrator to set up her /etc/hosts
256 file correctly, or add those above commands to
257 your '.login' file (sh or ksh: '.profile').
258
259 3. WHAT THE HECK IS TCL?
260
261 TCL is a scripting language written by John
262 Ousterhout. It's much better than most "in-built"
263 script languages (like the one in ircII) and is
264 meant to be linked with anything needing a script
265 language. So I linked it with eggdrop. The file
266 "tcl-commands.doc" in the eggdrop directory
267 contains a list of the commands added to TCL by
268 eggdrop. There are also several example scripts in
269 the scripts/ directory, and there are gobs of
270 scripts floating around on the ftp sites if you
271 like working by example (which is typically the
272 best way).
273
274 4. MY BOT DIES AND THE LAST ENTRY IN THE LOGFILE IS
275 "RECEIVED TERMINATE SIGNAL". WHAT DOES THAT MEAN AND CAN I
276 PREVENT IT?
277
278 There's nothing you can do to prevent it. It means
279 the system administrator is killing the eggdrop
280 process. Most of the time, it's an automatic thing
281 that happens when the system is being rebooted, so
282 it's harmless. If you have a crontab running, the
283 bot will get restarted when the system is back
284 online. Occasionally the system administrator will
285 kill the bot manually -- for example, if he/she
286 doesn't want bots running on the system.
287
288 5. MY COMPILE DIES AT THE LAST MINUTE WITH "LD FATAL SIGNAL
289 11"!
290
291 This happens on Linux machines that have recently
292 been converted to ELF by upgrading to Slackware
293 3.0. Apparently Slackware 3.0 comes with a non-ELF
294 (a.out) TCL library, and the compiler doesn't
295 handle that well. (It should give you an error;
296 instead it barfs.) Fixing it is tricky because
297 even if you recompile libtcl.a, the linker will
298 most likely find the "bad" one first, and your
299 work will be in vain.
300
301 Here's a fix that's been floating around on the
302 eggdrop list:
303
304 1. Recompile 'libtcl.a' for yourself, to
305 make sure an ELF librar is created.
306 2. Copy it into your eggdrop/src
307 directory, naming it 'libtcl2.a'.
308 3. Edit the Makefile and change the line
309 that says '-L/usr/lib -ltcl' to '-L.
310 -ltcl2'.
311 4. Recompile eggdrop.
312
313 Also send hate-mail to the Slackware guy telling
314 him to stop messing up the libraries. He seemed to
315 assume that everyone would still want to compile
316 old-style (a.out) binaries.
317
318 6. SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY
319 BACKDOORS I CAN USE TO TAKE THEIR BOT DOWN?
320
321 No, there have never been any backdoors and there
322 never will be, so please stop asking. Every once
323 in a while, someone finds a way to exploit a bug
324 in eggdrop, but we fix these bugs as soon as we
325 find out about them. If you want to bring down
326 someone else's bot, you will not have my/our help.
327
328 7. WHAT ARE MODULES?
329
330 Modules are a way of adding extra C code from the
331 bot, much like TCL scripts, without requiring the
332 bot recompiling, see doc/MODULES for more info.
333
334 8. CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES?
335
336 Yes, you can, if ./configure detects that your
337 system CAN'T run modules it will setup 'make' to
338 link the modules in statically for you, you can
339 also choose this option if you can do dynamic
340 modules by typing 'make static'. You can also try
341 to compile dynamic modules on a static-only system
342 by typing 'make eggdrop'.
343
344 8.1 DO I STILL NEED TO 'loadmodule modules' ???
345
346 YES, when you compile statically, all
347 the modules are linked into the main
348 executable *but* they are not enabled
349 until you use loadmodule to enable then,
350 hence you get nearly the same
351 functionality with static modules as
352 dynamic modules.
353
354 9. WHERE CAN I GET A PRE-COMPILED EGGDROP FOR MY COMPUTER?
355
356 It is HIGHLY recommended AGAINST using pre-compiled
357 Eggdrops from un-trusted sources. Eggdrop has been
358 a regular target for hacking and crashing.
359 Distribution of pre-compiled (binary) versions of
360 Eggdrop are the easiest way of hackers to provide
361 you with the easiest (and most dangerous) way of
362 gaining access to not only your bot, but to your
363 computer account directly. Don't advertise your
364 pre-compiled eggdrop binary sites on the eggdrop
365 list either =P
366
367 10. I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING
368 WHEN I TRY TO 'make'
369
370 Try 'gmake'
371
372 11. WHEN I 'tclsh scripts/weed <userfile> c' IT BARFS CHUNKS
373 AT ME AND DIES :(
374
375 UPGRADE YOUR TCL, you are probably using tcl 7.5
376 or earlier, some of the commands in weed require
377 tcl7.6 to run, so either upgrade it, or removing
378 the offending lines from you userfile (those
379 starting with '.' generally) and accept the loss
380 of that data.
381
382 12. I get "ld-elf.so.1: Shared object "libtcl80.so.1" not
383 found" or "eggdrop: error in loading shared libraries /
384 libtcl8.1.so: cannot open shared object file: No such file
385 or directory" when I try to start my bot.
386
387 './configure' is looking in the wrong place for
388 tcl; it looks like it compiled with one version of
389 tcl and tries to load another. Maybe your sysadmin
390 upgraded tcl and didn't tell you. In that case,
391 you should just need to recompile your bot.
392
393 Or maybe when upgrading he didn't clean the old
394 version of tcl, and './configure' is looking for
395 the files in the wrong places, or trying to use
396 different versions of tcl.h and libtcl*. Smack
397 your admin and have him install tcl properly ;) Or
398 try to:
399
400 ./configure --with-tcllib=<path-to-tcl-lib>
401 --with-tclinc=<path-to-tcl-inc>
402
403 tell configure where to look for the tcl files.
404 try to look for them like:
405 for libtcl:
406
407 ls /usr/lib/libtcl*
408 ls /usr/local/lib/libtcl*
409
410 for tcl.h:
411
412 ls /usr/include/tcl.h
413 ls /usr/local/include/tcl.h
414
415 If everything else fails, try to install tcl to
416 your home dir ;) (Suggested by dw@Undernet,
417 dw@lixom.nu)
418
419 13. I get a whole pile of "Unresolved symbol
420 'Tcl_AppendResult'" (or some other symbol) when I try to
421 load a modules.
422
423 POSSIBILITY A: see 12.
424
425 POSSIBILITY B:
426
427 Some of the standard libraries have been compiled
428 for static linking only on your machine, you have
429 3 options:
430
431 (1) if it's your own machine, recompile TCL using
432 dynamic linking by using './configure
433 --enable-shared' when you configure TCL (not the
434 bot) and then remake, & reinstall
435 (2) if it's not you machine, you make have to
436 resort to 'make static' and 'make sinstall
437 DESTDIR=<dir>' to make and install your bot.
438 (3) if you are of a more aggressive sense of mind,
439 go beat the stuffing out of your admin for have
440 lame static libraries :)
441
442 (6) SETTING UP A CRONTAB
443
444 Eggdrop has become more stable with time, thanks mostly to
445 people reporting bug details and helping find places where
446 it crashes. However, there are still a -few- places where
447 things aren't perfect. Few if any things in life are.
448
449 Also, most systems go down from time to time. These things
450 cause your bot to disappear from IRC, and you have to
451 restart it.
452
453 The eggdrop source file includes a csh script called
454 'botchk' that will help keep the bot online. It will make
455 the machine check every ten minutes to make sure your bot is
456 still running. To use it, you have to add a line to your
457 crontab. First, edit 'botchk' and change the directory and
458 command line parameters so that it will be able to start up
459 your bot. Then, add this line to your crontab:
460
461 0,10,20,30,40,50 * * * * /home/mydir/botchk
462
463 If you don't want to get emails from cron, put this:
464
465 0,10,20,30,40,50 * * * * /home/mydir/botchk >/dev/null 2>&1
466
467 Naturally, you need to change the path to the correct path
468 for botchk. If you've never used crontab before, here is a
469 simple way to add that line: Create a new file called
470 'mycron' and put the above line into it. Then, from your
471 shell prompt, type % crontab mycron That will create a new
472 crontab entry for you, with a line that runs botchk every
473 ten minutes. Botchk will then restart the bot when necessary
474 (and send you email informing you).
475
476 (6a) SETTING UP A CRONTAB USING AUTOBOTCHK
477
478 Included with your eggdrop is an eggdrop utility called
479 'autobotchk'. Using autobotchk is probably the fastest way
480 of creating your botchk and crontabbing it with just a few
481 required steps.
482
483 To crontab your bot follow the following steps:
484
485 (1) type 'cp scripts/autobotchk ..'
486 (2) type './autobotchk <eggdrop config file>'
487
488 This will hopefully crontab your bot using the default
489 setup. If you want a list of autobotchk options, type
490 './autobotchk'. An example with options would be:
491
492 ./autobotchk <eggdrop config file> -noemail -5
493
494 This would setup crontab to run the botchk every 5 minutes
495 and also to not send you e-mail saying that it restarted
496 your bot.
497
498 (7) BORING LEGAL STUFF
499
500 The eggdrop bot is copyright (C) by Robey Pointer. As of
501 January 1997, eggdrop is distributed according to the GNU
502 General Public License. There should be a copy of this
503 license in the file COPYING. If not, write to the Free
504 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
505 02139, USA.
506
507 As of eggdrop1.3.28 all changes made by the Eggheads
508 development team to the eggdrop source code and any related
509 files are copyright (C) by Eggheads. The source code will
510 still be distributed according to the GNU General Public
511 License as Robey Pointer did in the past.
512
513 Releases previous to 1.0m were made using a different
514 licensing scheme. You may, at your option, use the GNU
515 General Public License on those versions (instead of the
516 license packaged with them) with my blessing. For any
517 versions bearing a copyright date of 1997 or later, you have
518 no choice -- you must use the GNU General Public License.
519
520 The files "match.c", "net.c", and "blowfish.c" are exempt
521 from the above restrictions. "match.c" is original code by
522 Chris Fuller (email: crf@cfox.bchs.uh.edu) and has been
523 placed by him into the public domain. "net.c" is by me and I
524 [who?] also choose to place it in the public domain.
525 "blowfish.c" is by various sources and is in the public
526 domain. All 3 files contain useful functions that could
527 easily be ported to other applications -- the other parts of
528 the bot generally don't.
529
530 TCL is by John Ousterhout and is in no way affiliated with
531 eggdrop, and likely has its own set of copyrights and
532 whatnots.
533
534 There is no warranty, implied or whatever. You use this
535 software at your own risk, no matter what purpose you put it
536 to.
537
538 You didn't pay for it, so don't expect magic.
539
540 (8) MAILING LIST
541
542 There are currently a couple of mailing lists about eggdrop.
543 eggheads@eggheads.org is the one relevant for posts about
544 eggdrop 1.4 and up (and bug fixes, and suggestions, etc).
545
546 To subscribe to the eggheads mailing list, send email to:
547 eggheads-request@eggheads.org In the body of the message,
548 put "subscribe eggheads"; or go to
549 http://scrambled.eggheads.org/mailman/listinfo/eggheads
550
551 ### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP ###
552
553 Robey is no longer developing the eggdrop code so don't bother
554 emailing him. If you have a serious problem, email the
555 eggdrop mailing list and it will get to the coders.
556
557 Please, before posting to this list, see what things are
558 like, and when you do post, read over your post for
559 readability, spelling, and grammar mistakes. Obviously,
560 we're all human (or are we?) and we all make mistakes (heck,
561 look at this document! ;).
562
563 Open discussion and debate is integral to change and
564 progress. Don't flame others over mere form (grammar and
565 spelling), or even substantive issues either for that
566 matter. Please read and follow the mailing list rules.
567
568 The eggheads@eggheads.org mailing list is not dedicated to those
569 all too common questions we have all seen on other lists...
570 for example:
571
572 "Why does my bot say this: Please edit your config file."
573 "How do I telnet my bot?"
574 "Where do I get eggdrop for windows??????"
575 etc..
576
577 Technical questions, your thoughts or suggestions on new
578 features being added to Eggdrop, things that should be
579 removed or fixed, amazing problems that even stump the
580 guru's, etc... are what we want to see here.
581
582 Bug reports should be sent to bugs@eggheads.org. Please read
583 and fill out the BUG-REPORT file in the doc directory.
584
585 (9) DOCUMENTATION
586
587 We're trying to keep the documentation up to date. If you
588 feel that anything is missing here, or that anything should
589 be added etc, please email eggheads@eggheads.org about it,
590 thank you.
591
592 (10) OBTAINING HELP
593
594 There is currently no uniform channel in existence to
595 support eggdrop. At one time, such channels did exist, but
596 they most often deteriorate into a vanity channel, where no
597 one is willing to help.
598
599 However, we'll list a few places here where you *might* get
600 help. Note though that we are not responsible for those
601 channels, or necessarily run those channels ourselves.
602
603 Undernet - #eggdrop, #eggheads
604 EFNet - #egghelp, #eggfaq
605 IRCNet - #eggdrop
606
607 However, if you are going to ask some questions there, we can give
608 you some important advices:
609 - don't ask if you may ask or anyone awake, just ask and wait
610 - don't msg people without their agreement, if they know help and
611 have time, they will answer.
612 - don't repeat yourself. This will result in being kicked
613 - don't use !!, colors or only CAPITAL letters.
614
615 If there are any serious places that should be added, let us
616 know.
617
618 ------------------------------------------------------------------------
619 Copyright (C) 1997 Robey Pointer
620 Copyright (C) 1999, 2000, 2001 Eggheads Development Team

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23