/[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.7 - (hide annotations) (download)
Wed Nov 17 19:39:50 1999 UTC (20 years ago) by guppy
Branch: MAIN
CVS Tags: eggdrop10403RC1, eggdrop10402RC1, eggdrop10402
Changes since 1.6: +6 -6 lines
toth's sync patch

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

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23