/[cvs]/eggdrop-alpha/README
ViewVC logotype

Contents of /eggdrop-alpha/README

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


Revision 1.9 - (show annotations) (download)
Wed Jun 23 05:32:06 2004 UTC (14 years ago) by tothwolf
Branch: MAIN
CVS Tags: HEAD
Changes since 1.8: +1 -1 lines
* Updated copyright info for 2004.

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

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23