/[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.11 - (show annotations) (download)
Mon Oct 9 12:26:32 2000 UTC (18 years, 9 months ago) by tothwolf
Branch: MAIN
Changes since 1.10: +1 -1 lines
Documentation updates

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/1.4/1.5 version to 1.5
19 4b From an older 1.3/1.4/1.5 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 precompiled 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.5 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.5 tree of eggdrop is developed at
118 eggheads.org. You can get the latest version of eggdrop from
119 ftp.eggheads.org.
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.5'
149 (6) in ~/eggdrop1.5, 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.5' 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/1.4/1.5 VERSION TO 1.5
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 alot of things.
181
182 There are many major changes between v0.9, v1.0,
183 v1.1 and v1.3/1.4/1.5 so PAY ATTENTION to this
184 part if you have a v0.9, 1.0 or 1.1 bot already.
185 If you're just starting out, you can skip this
186 section.
187
188 to 1.3/1.4/1.5: * If you run sharebots, you will
189 need to upgrade them all at the same time because
190 of the new userfile format. Older bots will be
191 able to link in, but will not get or send a
192 userfile. 1.2's will also tend to refuse to share
193 with another pre1.2. MAKE A NEW CONFIG FILE from
194 the example, there are some radical extras.
195
196 from 0.9/1.0 to 1.3/1.4/1.5: * Just redo the whole
197 thing, absolutely everything has changed including
198 the userfile and config file formats.
199
200 from 1.1/1.2 to 1.3/1.4/1.5: * You will likely
201 want to redo the config file, as much as changed.
202 BACK UP!! You will need to run 'tclsh
203 scripts/weed/<userfile> c' to convert your
204 userfile from v3 (1.1/1.2) to v4 (1.3/1.4/1.5)
205
206 (4b) FROM AN OLDER 1.3/1.4/1.5 VERSION TO A NEWER ONE
207
208 If you followed the INSTALL file and did a 'make
209 install' (or 'make install DEST=<path>') after
210 'make', this will be pretty easy. Just upload the
211 new eggdrop1.5.xx.tar.gz file to the home dir of
212 your shell, gunzip and untar it, and type 'cd
213 ~/eggdrop1.5.xx'. Then, type './configure',
214 'make', then kill the bot ('.die' on the
215 partyline, or use 'kill' on the shell) and 'make
216 install' to the same directory your bot is
217 currently in. Then, you can just restart your bot.
218
219 (5) FREQUENTLY ASKED QUESTIONS (or "Why doesn't this thing work?")
220
221 1. WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"?
222
223 (1) Run eggdrop with the "-m" option (i.e.,
224 "eggdrop -m mybot").
225 (2) Go to IRC and send "hello" to your bot (i.e.,
226 "/msg mybot hello").
227 (3) You will become an owner on your bot. You can
228 leave the bot running (nobody else will become a
229 master if they say "hello"), but in the future,
230 don't use the "-m" option when running the bot.
231
232 2. MY EGGDROP WON'T RUN; IT JUST SAYS "CAN'T FIND YOUR
233 HOSTNAME!"
234
235 Your machine is set up strangely, and eggdrop
236 can't figure out its network hostname. You can get
237 around this by setting an environment variable
238 called HOSTNAME.
239
240 In sh or ksh:
241
242 $ HOSTNAME=myhost.domain.edu
243 $ export HOSTNAME
244
245 In csh or tcsh:
246
247 % setenv HOSTNAME myhost.domain.edu
248
249 It should work after that. You may want to bug
250 your system administrator to set up her /etc/hosts
251 file correctly, or add those above commands to
252 your '.login' file (sh or ksh: '.profile').
253
254 3. WHAT THE HECK IS TCL?
255
256 Tcl is a scripting language written by John
257 Ousterhout. It's much better than most "in-built"
258 script languages (like the one in ircII) and is
259 meant to be linked with anything needing a script
260 language. So I linked it with eggdrop. The file
261 "tcl-commands.doc" in the eggdrop directory
262 contains a list of the commands added to Tcl by
263 eggdrop. There are also several example scripts in
264 the scripts/ directory, and there are gobs of
265 scripts floating around on the ftp sites if you
266 like working by example (which is typically the
267 best way).
268
269 4. MY BOT DIES AND THE LAST ENTRY IN THE LOGFILE IS
270 "RECEIVED TERMINATE SIGNAL". WHAT DOES THAT MEAN AND CAN I
271 PREVENT IT?
272
273 There's nothing you can do to prevent it. It means
274 the system administrator is killing the eggdrop
275 process. Most of the time, it's an automatic thing
276 that happens when the system is being rebooted, so
277 it's harmless. If you have a crontab running, the
278 bot will get restarted when the system is back
279 online. Occasionally the system administrator will
280 kill the bot manually -- for example, if he/she
281 doesn't want bots running on the system.
282
283 5. MY COMPILE DIES AT THE LAST MINUTE WITH "LD FATAL SIGNAL
284 11"!
285
286 This happens on Linux machines that have recently
287 been converted to ELF by upgrading to Slackware
288 3.0. Apparently Slackware 3.0 comes with a non-ELF
289 (a.out) Tcl library, and the compiler doesn't
290 handle that well. (It should give you an error;
291 instead it barfs.) Fixing it is tricky because
292 even if you recompile libtcl.a, the linker will
293 most likely find the "bad" one first, and your
294 work will be in vain.
295
296 Here's a fix that's been floating around on the
297 eggdrop list:
298
299 1. Recompile 'libtcl.a' for yourself, to
300 make sure an ELF librar is created.
301 2. Copy it into your eggdrop/src
302 directory, naming it 'libtcl2.a'.
303 3. Edit the Makefile and change the line
304 that says '-L/usr/lib -ltcl' to '-L.
305 -ltcl2'.
306 4. Recompile eggdrop.
307
308 Also send hate-mail to the Slackware guy telling
309 him to stop messing up the libraries. He seemed to
310 assume that everyone would still want to compile
311 old-style (a.out) binaries.
312
313 6. SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY
314 BACKDOORS I CAN USE TO TAKE THEIR BOT DOWN?
315
316 No, there have never been any backdoors and there
317 never will be, so please stop asking. Every once
318 in a while, someone finds a way to exploit a bug
319 in eggdrop, but we fix these bugs as soon as we
320 find out about them. If you want to bring down
321 someone else's bot, you will not have my/our help.
322
323 7. WHAT ARE MODULES?
324
325 Modules are a way of adding extra C code from the
326 bot, much like Tcl scripts, without requiring the
327 bot recompiling, see doc/MODULES for more info.
328
329 8. CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES?
330
331 Yes, you can, if ./configure detects that your
332 system CAN'T run modules it will setup 'make' to
333 link the modules in statically for you, you can
334 also choose this option if you can do dynamic
335 modules by typing 'make static'. You can also try
336 to compile dynamic modules on a static-only system
337 by typing 'make eggdrop'.
338
339 8.1 DO I STILL NEED TO 'loadmodule modules' ???
340
341 YES, when you compile statically, all
342 the modules are linked into the main
343 executable *but* they are not enabled
344 until you use loadmodule to enable then,
345 hence you get nearly the same
346 functionality with static modules as
347 dynamic modules.
348
349 9. WHERE CAN I GET A PRECOMPILED EGGDROP FOR MY COMPUTER?
350
351 It is HIGHLY recommended AGAINST using precompiled
352 Eggdrops from untrusted sources. Eggdrop has been
353 a regular target for hacking and crashing.
354 Distribution of precompiled (binary) versions of
355 Eggdrop are the easiest way of hackers to provide
356 you with the easiest (and most dangerous) way of
357 gaining access to not only your bot, but to your
358 computer account directly. Don't advertise your
359 precompiled eggdrop binary sites on the eggdrop
360 list either =P
361
362 10. I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING
363 WHEN I TRY TO 'make'
364
365 Try 'gmake'
366
367 11. WHEN I 'tclsh scripts/weed <userfile> c' IT BARFS CHUNKS
368 AT ME AND DIES :(
369
370 UPGRADE YOUR TCL, you are probably using tcl 7.5
371 or earlier, some of the commands in weed require
372 tcl7.6 to run, so either upgrade it, or removing
373 the offending lines from you userfile (those
374 starting with '.' generally) and accept the loss
375 of that data.
376
377 12. I get "ld-elf.so.1: Shared object "libtcl80.so.1" not
378 found" or "eggdrop: error in loading shared libraries /
379 libtcl8.1.so: cannot open shared object file: No such file
380 or directory" when I try to start my bot.
381
382 './configure' is looking in the wrong place for
383 tcl; it looks like it compiled with one version of
384 tcl and tries to load another. Maybe your sysadmin
385 upgraded tcl and didn't tell you. In that case,
386 you should just need to recompile your bot.
387
388 Or maybe when upgrading he didn't clean the old
389 version of tcl, and './configure' is looking for
390 the files in the wrong places, or trying to use
391 different versions of tcl.h and libtcl*. Smack
392 your admin and have him install tcl properly ;) Or
393 try to:
394
395 ./configure --with-tcllib=<path-to-tcl-lib>
396 --with-tclinc=<path-to-tcl-inc>
397
398 tell configure where to look for the tcl files.
399 try to look for them like:
400 for libtcl:
401
402 ls /usr/lib/libtcl*
403 ls /usr/local/lib/libtcl*
404
405 for tcl.h:
406
407 ls /usr/include/tcl.h
408 ls /usr/local/include/tcl.h
409
410 If everything else fails, try to install tcl to
411 your home dir ;) (Suggested by dw@Undernet,
412 dw@lixom.nu)
413
414 13. I get a whole pile of "Unresolved symbol
415 'Tcl_AppendResult'" (or some other symbol) when I try to
416 load a modules.
417
418 POSSIBILITY A: see 12.
419
420 POSSIBILITY B:
421
422 Some of the standard libraries have been compiled
423 for static linking only on your machine, you have
424 3 options:
425
426 (1) if it's your own machine, recompile TCL using
427 dynamic linking by using './configure
428 --enable-shared' when you configure TCL (not the
429 bot) and then remake, & reinstall
430 (2) if it's not you machine, you make have to
431 resort to 'make static' and 'make sinstall
432 DESTDIR=<dir>' to make and install your bot.
433 (3) if you are of a more aggressive sense of mind,
434 go beat the stuffing out of your admin for have
435 lame static libraries :)
436
437 (6) SETTING UP A CRONTAB
438
439 Eggdrop has become more stable with time, thanks mostly to
440 people reporting bug details and helping find places where
441 it crashes. However, there are still a -few- places where
442 things aren't perfect. Few if any things in life are.
443
444 Also, most systems go down from time to time. These things
445 cause your bot to disappear from IRC, and you have to
446 restart it.
447
448 The eggdrop source file includes a csh script called
449 'botchk' that will help keep the bot online. It will make
450 the machine check every ten minutes to make sure your bot is
451 still running. To use it, you have to add a line to your
452 crontab. First, edit 'botchk' and change the directory and
453 command line parameters so that it will be able to start up
454 your bot. Then, add this line to your crontab:
455
456 0,10,20,30,40,50 * * * * /home/mydir/botchk
457
458 If you don't want to get emails from cron, put this:
459
460 0,10,20,30,40,50 * * * * /home/mydir/botchk >/dev/null 2>&1
461
462 Naturally, you need to change the path to the correct path
463 for botchk. If you've never used crontab before, here is a
464 simple way to add that line: Create a new file called
465 'mycron' and put the above line into it. Then, from your
466 shell prompt, type % crontab mycron That will create a new
467 crontab entry for you, with a line that runs botchk every
468 ten minutes. Botchk will then restart the bot when necessary
469 (and send you email informing you).
470
471 (6a) SETTING UP A CRONTAB USING AUTOBOTCHK
472
473 Included with your eggdrop is an eggdrop utility called
474 'autobotchk'. Using autobotchk is probably the fastest way
475 of creating your botchk and crontabbing it with just a few
476 required steps.
477
478 To crontab your bot follow the following steps:
479
480 (1) type 'cp scripts/autobotchk ..'
481 (2) type './autobotchk <eggdrop config file>'
482
483 This will hopefully crontab your bot using the default
484 setup. If you want a list of autobotchk options, type
485 './autobotchk'. An example with options would be:
486
487 ./autobotchk <eggdrop config file> -noemail -5
488
489 This would setup crontab to run the botchk every 5 minutes
490 and also to not send you e-mail saying that it restarted
491 your bot.
492
493 (7) BORING LEGAL STUFF
494
495 The eggdrop bot is copyright © by Robey Pointer. As of
496 January 1997, eggdrop is distributed according to the GNU
497 General Public License. There should be a copy of this
498 license in the file COPYING. If not, write to the Free
499 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
500 02139, USA.
501
502 As of eggdrop1.3.28 all changes made by the Eggheads
503 development team to the eggdrop source code and any related
504 files are copyright © by Eggheads. The source code will
505 still be distributed according to the GNU General Public
506 License as Robey Pointer did in the past.
507
508 Releases previous to 1.0m were made using a different
509 licensing scheme. You may, at your option, use the GNU
510 General Public License on those versions (instead of the
511 license packaged with them) with my blessing. For any
512 versions bearing a copyright date of 1997 or later, you have
513 no choice -- you must use the GNU General Public License.
514
515 The files "match.c", "net.c", and "blowfish.c" are exempt
516 from the above restrictions. "match.c" is original code by
517 Chris Fuller (email: crf@cfox.bchs.uh.edu) and has been
518 placed by him into the public domain. "net.c" is by me and I
519 [who?] also choose to place it in the public domain.
520 "blowfish.c" is by various sources and is in the public
521 domain. All 3 files contain useful functions that could
522 easily be ported to other applications -- the other parts of
523 the bot generally don't.
524
525 Tcl is by John Ousterhout and is in no way affiliated with
526 eggdrop, and likely has its own set of copyrights and
527 whatnots.
528
529 There is no warranty, implied or whatever. You use this
530 software at your own risk, no matter what purpose you put it
531 to.
532
533 You didn't pay for it, so don't expect magic.
534
535 (8) MAILING LIST
536
537 There are currently a couple of mailing lists about eggdrop.
538 eggheads@eggdheads.org is the one relevant for posts about
539 eggdrop 1.4 & 1.5 (and bug fixes, and suggestions, etc).
540
541 To subscribe to the eggheads mailing list, send email to:
542 eggheads-request@eggheads.org In the body of the message,
543 put "subscribe eggheads"; or go to
544 http://scrambled.eggheads.org/mailman/listinfo/eggheads
545
546 ### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP ###
547
548 Robey is no longer developing the eggdrop code (although he
549 does put a word in every now and then) so don't bother
550 emailing him. If you have a serious problem, email the
551 eggdrop mailing list and it will get to the coders.
552
553 Please, before posting to this list, see what things are
554 like, and when you do post, read over your post for
555 readability, spelling, and grammar mistakes. Obviously,
556 we're all human (or are we?) and we all make mistakes (heck,
557 look at this document! ;).
558
559 Open discussion and debate is integral to change and
560 progress. Don't flame others over mere form (grammar and
561 spelling), or even substantive issues either for that
562 matter. Please read and follow the mailing list rules.
563
564 The eggheads@eggheads.org maillist is not dedicated to those
565 all too common questions we have all seen on other lists...
566 for example:
567
568 "Why does my bot say this: Please edit your config file."
569 "How do I telnet my bot?"
570 "Where do I get eggdrop for windows??????"
571 etc..
572
573 Bug reports, technical questions, your thoughts or
574 suggestions on new features being added to Eggdrop, things
575 that should be removed or fixed, amazing problems that even
576 stump the guru's, etc... are what we want to see here.
577
578 (9) DOCUMENTATION
579
580 We're trying to keep the documentation up to date. If you
581 feel that anything is missing here, or that anything should
582 be added etc, please email eggheads@eggheads.org about it,
583 thank you.
584
585 (10) OBTAINING HELP
586
587 There is currently no uniform channel in existence to
588 support eggdrop. At one time, such channels did exist, but
589 they most often deteriorate into a vanity channel, where no
590 one is willing to help.
591
592 However, we'll list a few places here where you *might* get
593 help. Note though that we are not responsible for those
594 channels, or necessarily run those channels ourselves.
595
596 Undernet - #eggdrop
597 EFNet - #eggheads, #eggtcl
598 IRCNet - #eggdrop, #bothelp
599
600 However, if you are going to ask some questions there, we can give
601 you some important advices:
602 - don't ask if you may ask or anyone awake, just ask and wait
603 - don't msg people without their agreement, if they know help and
604 have time, they will answer.
605 - don't repeat yourself. This will result in being kicked
606 - don't use !!, colours or only CAPITAL letters.
607
608 If there are any serious places that should be added, let us
609 know.
610
611 ------------------------------------------------------------------------
612 (c) 1997 Robey Pointer
613 (c) 2000 Eggheads Development Team

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23