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

Contents of /eggdrop1.4/README

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


Revision 1.6 - (show annotations) (download)
Tue Nov 9 21:16:12 1999 UTC (19 years, 8 months ago) by guppy
Branch: MAIN
Changes since 1.5: +48 -53 lines
eggdrop1.4 test

1 _
2 ___ __ _ __ _ __| |_ __ ___ _ __
3 / _ \ / _` |/ _` |/ _` | '__|/ _ \| '_ \
4 | __/| (_| | (_| | (_| | | | (_) | |_) |
5 \___| \__, |\__, |\__,_|_| \___/| .__/
6 |___/ |___/ |_| v1.4
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 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 part of the 1.4 tree. A valiant effort has been made to chase down
40 and destroy bugs.
41
42 This README file contains information about how to get eggdrop, how to
43 quickly compile the bot, what you may need to do when upgrading from
44 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 Currently, the 1.4 tree of eggdrop is developed at eggheads.org. You can
70 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 being developed, and may be buggy. The Eggheads devteam will in *NO WAY*
84 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 (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
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 you can just 'cd ~/eggdrop1.4' and type 'cvs update -A'.
103
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 (4a) FROM A PRE-1.3/1.4 VERSION TO 1.4
117
118 #### BACK UP YOUR USERFILE ####
119
120 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 to back up your userfile, or you will lose it. v1.3 of eggdrop radically
123 changed alot of things.
124
125 There are many major changes between v0.9, v1.0, v1.1 and v1.3/1.4 so
126 PAY ATTENTION
127 to this part if you have a v0.9, 1.0 or 1.1 bot already. If you're
128 just starting out, you can skip this section.
129
130 to 1.3/1.4:
131 * 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 from 0.9/1.0 to 1.4:
139 * Just redo the whole thing, absolutely everything has changed
140 including the userfile and config file formats.
141 from 1.1/1.2 to 1.4:
142 * You will likely want to redo the config file, as much as
143 changed. BACK UP!! You will need to run
144 'tclsh scripts/weed <userfile> c' to convert your userfile
145 from v3 (1.1/1.2) to v4 (1.3/1.4)
146
147 (4b) FROM A 1.3 VERSION TO A NEWER ONE
148
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 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 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 (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 (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 (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 Your machine is set up strangely, and eggdrop can't figure out its
171 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 It should work after that. You may want to bug your system
178 administrator to set up her /etc/hosts file correctly, or add those
179 above commands to your '.login' file (sh or ksh: '.profile').
180
181 3. WHAT THE HECK IS TCL?
182
183 Tcl is a scripting language written by John Ousterhout. It's much
184 better than most "in-built" script languages (like the one in ircII)
185 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 There's nothing you can do to prevent it. It means the system
198 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 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 This happens on Linux machines that have recently been converted
208 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
238 Modules are a way of adding extra C code from the bot, much
239 like Tcl scripts, without requiring the bot recompiling, see
240 doc/MODULES for more info.
241
242 7. CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES?
243
244 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
250 7.1 DO I STILL NEED TO 'loadmodule modules' ???
251
252 YES, when you compile statically, all the modules are linked into
253 the main executable *but* they are not enabled until you use
254 loadmodule to enable then, hence you get nearly the same
255 functionality with static modules as dynamic modules.
256
257 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
271 Try 'gmake'
272
273 10. WHEN I 'tclsh scripts/weed <userfile> c' IT BARFS CHUNKS AT ME
274 AND DIES :(
275
276 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 userfile (those starting with '.' generally) and accept the
280 loss of that data.
281
282 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 Maybe your sysadmin upgraded tcl and didn't tell you.
290 In that case, you should just need to recompile your bot.
291
292 Or maybe when upgrading he didn't clean the old version of tcl, and
293 './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 (Suggested by dw@Undernet, dw@lixom.nu)
309
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
318 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 (2) if it's not you machine, you make have to resort to
324 '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
329 (6) SETTING UP A CRONTAB
330
331 Eggdrop has become more stable with time, thanks mostly to people
332 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 The eggdrop source file includes a csh script called 'botchk' that will
340 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
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 (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
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 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 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 "net.c" is by me and I [who?] also choose to place it in the public domain.
404 "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 and likely has its own set of copyrights and whatnots.
410
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 There are currently a couple of mailing lists about eggdrop.
420 eggheads@eggdheads.org is the one relevant for posts about
421 new eggdrop v1.3.24+ (and bug fixes, and suggestions, etc).
422
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 http://scrambled.eggheads.org/mailman/listinfo/eggheads
427
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 make mistakes (heck, look at this document! ;).
438
439 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 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 "Where do I get eggdrop for windows??????"
450 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 (9) DOCUMENTATION
459
460 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
464
465 (10) OBTAINING HELP
466
467 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 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 though that we are not responsible for those channels, or necessarily
473 run those channels ourselves.
474
475 Undernet - #eggdrop
476 EFNet - #eggtcl, #eggheads
477 IRCNet - #eggdrop, #egghelp, #bothelp
478
479 If there are any serious places that should be added, let us know.
480
481
482
483 The Eggheads devteam.
484

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23