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

Annotation of /eggdrop1.4/README

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


Revision 1.3 - (hide annotations) (download)
Sat Jun 26 23:49:43 1999 UTC (20 years, 2 months ago) by guppy
Branch: MAIN
Changes since 1.2: +4 -3 lines
*** empty log message ***

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

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23