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

Annotation of /eggdrop1.6/README

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


Revision 1.11 - (hide 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 fabian 1.7 README
2     ------------------------------------------------------------------------
3 segfault 1.1
4 fabian 1.7 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 johoho 1.10 expect to be told to READ the README file first! or rtfm :)
8 fabian 1.7
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 johoho 1.10 4a From a pre-1.3/1.4/1.5 version to 1.5
19 fabian 1.7 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 segfault 1.1
402 fabian 1.7 ls /usr/lib/libtcl*
403     ls /usr/local/lib/libtcl*
404 segfault 1.1
405 fabian 1.7 for tcl.h:
406 segfault 1.1
407 fabian 1.7 ls /usr/include/tcl.h
408     ls /usr/local/include/tcl.h
409 segfault 1.1
410 fabian 1.7 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 fabian 1.9 ./autobotchk <eggdrop config file> -noemail -5
488 fabian 1.7
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 johoho 1.8 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 tothwolf 1.11 - don't msg people without their agreement, if they know help and
604 johoho 1.8 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 fabian 1.7
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