/[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.5 - (hide annotations) (download)
Mon Nov 15 17:42:31 1999 UTC (19 years, 11 months ago) by fabian
Branch: MAIN
CVS Tags: eggdrop105020
Changes since 1.4: +35 -35 lines
Toth's sync-1.5-14Nov1999-1

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

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23