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

Contents of /eggdrop1.9/README

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


Revision 1.24 - (show annotations) (download)
Thu Dec 11 00:49:10 2003 UTC (15 years, 3 months ago) by wcc
Branch: MAIN
Changes since 1.23: +1 -1 lines
* 2004 copyright.

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://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.7'
149 (6) in ~/eggdrop1.7, 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.7' and type 'cvs update -dAP'.
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 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 'configure --disable-shared'.
341
342 8.1 DO I STILL NEED TO 'loadmodule modules' ???
343
344 YES, when you compile statically, all
345 the modules are linked into the main
346 executable *but* they are not enabled
347 until you use loadmodule to enable then,
348 hence you get nearly the same
349 functionality with static modules as
350 dynamic modules.
351
352 9. WHERE CAN I GET A PRECOMPILED EGGDROP FOR MY COMPUTER?
353
354 It is HIGHLY recommended AGAINST using precompiled
355 Eggdrops from untrusted sources. Eggdrop has been
356 a regular target for hacking and crashing.
357 Distribution of precompiled (binary) versions of
358 Eggdrop are the easiest way of hackers to provide
359 you with the easiest (and most dangerous) way of
360 gaining access to not only your bot, but to your
361 computer account directly. Don't advertise your
362 precompiled eggdrop binary sites on the eggdrop
363 list either =P
364
365 10. I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING
366 WHEN I TRY TO 'make'
367
368 Try 'gmake'
369
370 11. WHEN I 'tclsh scripts/weed <userfile> c' IT BARFS CHUNKS
371 AT ME AND DIES :(
372
373 UPGRADE YOUR TCL, you are probably using tcl 7.5
374 or earlier, some of the commands in weed require
375 tcl7.6 to run, so either upgrade it, or removing
376 the offending lines from you userfile (those
377 starting with '.' generally) and accept the loss
378 of that data.
379
380 12. I get "ld-elf.so.1: Shared object "libtcl80.so.1" not
381 found" or "eggdrop: error in loading shared libraries /
382 libtcl8.1.so: cannot open shared object file: No such file
383 or directory" when I try to start my bot.
384
385 './configure' is looking in the wrong place for
386 tcl; it looks like it compiled with one version of
387 tcl and tries to load another. Maybe your sysadmin
388 upgraded tcl and didn't tell you. In that case,
389 you should just need to recompile your bot.
390
391 Or maybe when upgrading he didn't clean the old
392 version of tcl, and './configure' is looking for
393 the files in the wrong places, or trying to use
394 different versions of tcl.h and libtcl*. Smack
395 your admin and have him install tcl properly ;) Or
396 try to:
397
398 ./configure --with-tcllib=<path-to-tcl-lib>
399 --with-tclinc=<path-to-tcl-inc>
400
401 tell configure where to look for the tcl files.
402 try to look for them like:
403 for libtcl:
404
405 ls /usr/lib/libtcl*
406 ls /usr/local/lib/libtcl*
407
408 for tcl.h:
409
410 ls /usr/include/tcl.h
411 ls /usr/local/include/tcl.h
412
413 If everything else fails, try to install tcl to
414 your home dir ;) (Suggested by dw@Undernet,
415 dw@lixom.nu)
416
417 13. I get a whole pile of "Unresolved symbol
418 'Tcl_AppendResult'" (or some other symbol) when I try to
419 load a modules.
420
421 POSSIBILITY A: see 12.
422
423 POSSIBILITY B:
424
425 Some of the standard libraries have been compiled
426 for static linking only on your machine, you have
427 3 options:
428
429 (1) if it's your own machine, recompile TCL using
430 dynamic linking by using './configure
431 --enable-shared' when you configure TCL (not the
432 bot) and then remake, & reinstall
433 (2) if it's not you machine, you make have to
434 resort to './configure --disable-shared'.
435 (3) if you are of a more aggressive sense of mind,
436 go beat the stuffing out of your admin for have
437 lame static libraries :)
438
439 (6) SETTING UP A CRONTAB
440
441 Eggdrop has become more stable with time, thanks mostly to
442 people reporting bug details and helping find places where
443 it crashes. However, there are still a -few- places where
444 things aren't perfect. Few if any things in life are.
445
446 Also, most systems go down from time to time. These things
447 cause your bot to disappear from IRC, and you have to
448 restart it.
449
450 The eggdrop source file includes a csh script called
451 'botchk' that will help keep the bot online. It will make
452 the machine check every ten minutes to make sure your bot is
453 still running. To use it, you have to add a line to your
454 crontab. First, edit 'botchk' and change the directory and
455 command line parameters so that it will be able to start up
456 your bot. Then, add this line to your crontab:
457
458 0,10,20,30,40,50 * * * * /home/mydir/botchk
459
460 If you don't want to get emails from cron, put this:
461
462 0,10,20,30,40,50 * * * * /home/mydir/botchk >/dev/null 2>&1
463
464 Naturally, you need to change the path to the correct path
465 for botchk. If you've never used crontab before, here is a
466 simple way to add that line: Create a new file called
467 'mycron' and put the above line into it. Then, from your
468 shell prompt, type % crontab mycron That will create a new
469 crontab entry for you, with a line that runs botchk every
470 ten minutes. Botchk will then restart the bot when necessary
471 (and send you email informing you).
472
473 (6a) SETTING UP A CRONTAB USING AUTOBOTCHK
474
475 Included with your eggdrop is an eggdrop utility called
476 'autobotchk'. Using autobotchk is probably the fastest way
477 of creating your botchk and crontabbing it with just a few
478 required steps.
479
480 To crontab your bot follow the following steps:
481
482 (1) type 'cp scripts/autobotchk ..'
483 (2) type './autobotchk <eggdrop config file>'
484
485 This will hopefully crontab your bot using the default
486 setup. If you want a list of autobotchk options, type
487 './autobotchk'. An example with options would be:
488
489 ./autobotchk <eggdrop config file> -noemail -5
490
491 This would setup crontab to run the botchk every 5 minutes
492 and also to not send you e-mail saying that it restarted
493 your bot.
494
495 (7) BORING LEGAL STUFF
496
497 The eggdrop bot is copyright (C) by Robey Pointer. As of
498 January 1997, eggdrop is distributed according to the GNU
499 General Public License. There should be a copy of this
500 license in the file COPYING. If not, write to the Free
501 Software Foundation, Inc., 59 Temple Place, Suite 330,
502 Boston, MA 02111-1307 USA
503
504 As of eggdrop1.3.28 all changes made by the Eggheads
505 development team to the eggdrop source code and any related
506 files are copyright (C) by Eggheads. The source code will
507 still be distributed according to the GNU General Public
508 License as Robey Pointer did in the past.
509
510 Releases previous to 1.0m were made using a different
511 licensing scheme. You may, at your option, use the GNU
512 General Public License on those versions (instead of the
513 license packaged with them) with my blessing. [Robey Pointer]
514 For any versions bearing a copyright date of 1997 or later,
515 you have no choice -- you must use the GNU General Public
516 License.
517
518 The files "match.c", "net.c", and "blowfish.c" are exempt
519 from the above restrictions. "match.c" is original code by
520 Chris Fuller (email: crf@cfox.bchs.uh.edu) and has been
521 placed by him into the public domain. "net.c" is by me and I
522 [Robey Pointer] also choose to place it in the public domain.
523 "blowfish.c" is by various sources and is in the public
524 domain. All 3 files contain useful functions that could
525 easily be ported to other applications -- the other parts of
526 the bot generally don't.
527
528 Tcl is by John Ousterhout and is in no way affiliated with
529 eggdrop, and likely has its own set of copyrights and
530 whatnots.
531
532 There is no warranty, implied or whatever. You use this
533 software at your own risk, no matter what purpose you put it
534 to.
535
536 You didn't pay for it, so don't expect magic.
537
538 (8) MAILING LIST
539
540 There are currently a couple of mailing lists about eggdrop.
541 eggheads@eggheads.org is the one relevant for posts about
542 eggdrop 1.4 and up (and bug fixes, and suggestions, etc).
543
544 To subscribe to the eggheads mailing list, send email to:
545 eggheads-request@eggheads.org In the body of the message,
546 put "subscribe eggheads"; or go to
547 http://scrambled.eggheads.org/mailman/listinfo/eggheads
548
549 ### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP ###
550
551 Robey is no longer developing the eggdrop code so don't bother
552 emailing him. If you have a serious problem, email the
553 eggdrop mailing list and it will get to the coders.
554
555 Please, before posting to this list, see what things are
556 like, and when you do post, read over your post for
557 readability, spelling, and grammar mistakes. Obviously,
558 we're all human (or are we?) and we all make mistakes (heck,
559 look at this document! ;).
560
561 Open discussion and debate is integral to change and
562 progress. Don't flame others over mere form (grammar and
563 spelling), or even substantive issues either for that
564 matter. Please read and follow the mailing list rules.
565
566 The eggheads@eggheads.org maillist is not dedicated to those
567 all too common questions we have all seen on other lists...
568 for example:
569
570 "Why does my bot say this: Please edit your config file."
571 "How do I telnet my bot?"
572 "Where do I get eggdrop for windows??????"
573 etc..
574
575 Technical questions, your thoughts or suggestions on new
576 features being added to Eggdrop, things that should be
577 removed or fixed, amazing problems that even stump the
578 guru's, etc... are what we want to see here.
579
580 Bug reports should be sent to bugs@eggheads.org. Please read
581 and fill out the BUG-REPORT file in the doc directory.
582
583 (9) DOCUMENTATION
584
585 We're trying to keep the documentation up to date. If you
586 feel that anything is missing here, or that anything should
587 be added etc, please email eggheads@eggheads.org about it,
588 thank you.
589
590 (10) OBTAINING HELP
591
592 There is currently no uniform channel in existence to
593 support eggdrop. At one time, such channels did exist, but
594 they most often deteriorate into a vanity channel, where no
595 one is willing to help.
596
597 However, we'll list a few places here where you *might* get
598 help. Note though that we are not responsible for those
599 channels, or necessarily run those channels ourselves.
600
601 Undernet - #eggdrop, #eggheads
602 EFNet - #egghelp, #eggfaq
603 IRCNet - #eggdrop
604
605 However, if you are going to ask some questions there, we can give
606 you some important advices:
607 - don't ask if you may ask or anyone awake, just ask and wait
608 - don't msg people without their agreement, if they know help and
609 have time, they will answer.
610 - don't repeat yourself. This will result in being kicked
611 - don't use !!, colours or only CAPITAL letters.
612
613 If there are any serious places that should be added, let us
614 know.
615
616 ------------------------------------------------------------------------
617 Copyright (C) 1997 Robey Pointer
618 Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Eggheads Development Team

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23