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

Annotation of /eggdrop1.9/README

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


Revision 1.3 - (hide annotations) (download)
Wed Nov 10 00:01:12 1999 UTC (19 years, 4 months ago) by segfault
Branch: MAIN
Changes since 1.2: +13 -14 lines
Part 1 of numbering revision

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

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23