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

Contents of /eggdrop1.6/README

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


Revision 1.40 - (show annotations) (download)
Sun Jul 25 03:56:58 2004 UTC (15 years, 2 months ago) by wcc
Branch: MAIN
Changes since 1.39: +28 -33 lines
* And just when you guys thought there wouldn't be any more 5,000 line doc
  commits.. =P

1 $Id: README,v 1.39 2004/04/13 03:57:51 wcc Exp $
2
3 Readme
4 Last revised: June 5, 2002
5 _________________________________________________________________
6
7 Readme
8
9
10 Please at least SKIM this document before asking questions. In fact, READ IT
11 if you've never successfully set up an Eggdrop bot before. PLEASE! READ IT!
12
13 Contents
14
15 0. Important notice
16 1. What is Eggdrop?
17 2. How do I get Eggdrop?
18 2a. How to get the latest version of Eggdrop via CVS
19 3. Quick startup
20 4. Upgrading
21 4a. Upgrading from a pre-1.3 version to 1.6
22 4b. Upgrading from an older 1.3/1.4/1.5/1.6 version to a newer one
23 5. Command line
24 6. Frequently Asked Questions
25 6a. What do I do if I get the error "User file not found"?
26 6b. My Eggdrop won't run; It just says "Can't find your hostname!"
27 6c. What the Heck is Tcl?
28 6d. My bot dies and the last entry in the logfile is "Received terminate
29 signal". What does that mean and can I prevent it?
30 6e. Someone else set up a bot I don't like. Are there any backdoors I
31 can use to take their bot down?
32 6f. What are modules?
33 6g. Can I compile Eggdrop without dynamic modules?
34 6g1. Do I still need to "loadmodule" modules?
35 6h. Where can I get a pre-compiled Eggdrop for my computer?
36 6i. I get "Makefile:3 : invalid operator" or some such thing when I
37 try to "make".
38 6j. When I "tclsh scripts/weed <userfile> c" It barfs chunks at me
39 and dies.
40 6k. I get "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or
41 "eggdrop: error in loading shared libraries / libtcl8.1.so: cannot
42 open shared object file: No such file or directory" when I try to
43 start my bot.
44 6l. I get a whole pile of "unresolved symbol 'Tcl_AppendResult'" (or
45 some other symbol) when I try to load a module.
46 7. Setting up a crontab
47 7a. Setting up a crontab using autobotchk
48 8. Boring legal stuff
49 9. Mailing list
50 10. Documentation
51 11. Obtaining help
52
53 _________________________________________________________________
54
55
56 (0) NOTICE
57
58 Please read this file carefully before trying to set up Eggdrop. Also,
59 make SURE that you select your +n (owner) users wisely! They have 100%
60 access to your bot and account! ONLY GIVE THIS POWER TO SOMEONE YOU
61 TRUST COMPLETELY!!
62
63
64 (1) WHAT IS EGGDROP?
65
66 Eggdrop is the World's most popular Internet Relay Chat (IRC) bot; it is
67 freely distributable under the GNU General Public License (GPL). Eggdrop
68 is a feature rich program designed to be easily used and expanded upon by
69 both novice and advanced IRC users on a variety of hardware and software
70 platforms.
71
72 An IRC bot is a program that sits on an IRC channel and preforms automated
73 tasks while looking just like a normal user on the channel. Some of these
74 functions include protecting the channel from abuse, allowing privileged
75 users to gain op or voice status, logging channel events, providing
76 information, hosting games, etc.
77
78 One of the features that makes Eggdrop stand out from other bots is module
79 and Tcl scripting support. With scripts and modules, you can make the bot
80 preform almost any task you want. They can do anything from preventing
81 floods to greeting users and banning advertisers from channels.
82
83 You can also link multiple Eggdrop bots together to form a botnet. This
84 can allow bots to op each other securely, control floods efficiently, and
85 even link channels across multiple IRC networks. It also allows the
86 Eggdrops share user lists, ban lists, exempt/invite lists, and ignore
87 lists with other bots if userfile sharing is enabled. This allows users
88 to have the same access on every bot on your botnet. It also allows the
89 bots to distribute tasks such as opping and banning users. See doc/BOTNET
90 for information on setting up a botnet.
91
92 Eggdrop is always being improved and adjusted because there are bugs to
93 be fixed and features to be added (if the users demand them, and they make
94 actually sense). In fact, it existed for several years as v0.7 - v0.9
95 before finally going 1.0. This version of Eggdrop is part of the 1.6 tree.
96 A valiant effort has been made to chase down and destroy bugs.
97
98 This README file contains information about how to get Eggdrop, command
99 line options for Eggdrop, what you may need to do when upgrading from
100 older versions, a list of frequently asked questions, how to set up a
101 crontab, some boring legal stuff, info about the mailing list (a great
102 place to ask questions, and a good place to report bugs, too), some basics
103 about CVS usage, and some channels where you might get help with Eggdrop.
104
105
106 (2) HOW TO GET EGGDROP
107
108 Before you can compile Eggdrop, you need to have Tcl installed on your
109 system. Most systems should have Tcl on them by now -- you can check by
110 trying the command "tclsh". If it works, you will be given a "%" prompt,
111 and you can type "exit" to exit the program. This means Tcl is installed
112 on your system. If tclsh doesn't load, then Tcl probably isn't on your
113 system, and you will need to install it. The best ftp site for Tcl is
114 ftp://tcl.activestate.com/pub/tcl/.
115
116 Tcl comes with the most distributions of Linux. HOWEVER, the one that comes
117 on Slackware 3.0 is goofed up and you'll have to re-install it for yourself
118 to get it working.
119
120 Currently, the 1.6 tree of Eggdrop is developed at eggheads.org. You can
121 get the latest version of Eggdrop from the following url:
122
123 http://www.geteggdrop.com
124
125 You might try www.eggheads.org for help and information.
126
127
128 (2a) CVS USAGE
129
130 You can obtain the VERY LATEST version of Eggdrop, that is still under
131 development, by using CVS. CVS means 'Concurrent Versions System' and is
132 a tool for developers to always keep source code up to date. Try 'man cvs'
133 on your shell for more information about CVS.
134
135 This is intended only for users that know a good bit about Eggdrop. Be
136 aware that the versions of Eggdrop that you get via CVS are still being
137 developed, and may be buggy. The Eggheads Development Team will in NO WAY
138 take any responsibility for whatever might happen to you or your shell if
139 you use a CVS version of Eggdrop.
140
141 To obtain Eggdrop over CVS, do as follows:
142
143 1. Log into your shell.
144
145 2. Type: 'export
146 CVSROOT=:pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot'.
147
148 3. Type 'cvs login'.
149
150 4. Press <enter> when prompted for a password.
151
152 5. In your home dir, type 'cvs checkout eggdrop1.6'
153
154 6. In ~/eggdrop1.6, you should have a copy of the latest CVS version
155 of Eggdrop.
156
157 Notes:
158
159 o You can 'cvs logout', but you don't need to.
160
161 o You don't need to go through this whole process every time. If you
162 want to get a CVS version of Eggdrop at a later time, you can just
163 'cd ~/eggdrop1.6' and type 'cvs update -CdAP'.
164
165 o If you experience errors when using 'export', you might be using tclsh
166 as a shell. If so, try using the command 'setenv' instead of 'export':
167
168 setenv CVSROOT :pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot
169
170
171 (3) QUICK STARTUP
172
173 Please see the 'INSTALL' file AFTER you finish reading this file.
174
175
176 (4) UPGRADING
177
178
179 (4a) UPGRADING FROM A PRE-1.3 VERSION TO 1.6
180
181 #### BACK UP YOUR USERFILE ####
182
183 We can't stress this enough. If you are upgrading and you have even a
184 slight possibility of downgrading again later, you will HAVE to back up
185 your userfile, or you will lose it. v1.3 of Eggdrop radically changed a
186 lot of things.
187
188 There are many major changes between v0.9, v1.0, v1.1 and v1.6, so PAY
189 ATTENTION to this part if you have a v0.9, 1.0 or 1.1 bot currently. If
190 you're just starting out, you can skip this section.
191
192 If you run share bots, you will need to upgrade them all at the same time
193 because of the new userfile format. Older bots will be able to link in,
194 but will not get or send a userfile. MAKE A NEW CONFIG FILE from the
195 example; there are some radical changes.
196
197 If you are upgrading from 0.9/1.0 to 1.6, just redo the whole thing.
198 Absolutely everything has changed, including the userfile and config file
199 formats.
200
201 If you are upgrading from 1.1/1.2 to 1.6, you will likely want to redo
202 the config file, as much as changed. BACK UP! You will need to run 'tclsh
203 scripts/weed/<userfile> c' to convert your userfile from v3 (1.1/1.2) to
204 v4 (1.3/1.4/1.5/1.6).
205
206
207 (4b) UPGRADING FROM AN OLDER 1.3/1.4/1.5/1.6 VERSION TO A NEWER 1.6 VERSION
208
209 If you followed the 'INSTALL' file and did a 'make install' (or 'make
210 install DEST="path"') after 'make', this will be pretty easy. Just upload
211 the new eggdrop1.6.x.tar.gz file to your home dir on your shell, gunzip
212 and untar it, and type 'cd ~/eggdrop1.6.x'. Next, type './configure',
213 'make config' or 'make iconfig', then 'make'. Then, kill the bot ('.die'
214 on the party line), and 'make install' to the same directory your bot
215 is currently in. After that, you can just restart your bot. You may wish
216 to delete the old Eggdrop executable and modules as well, especially if
217 you have limited disk space.
218
219 You should read through the new eggdrop.conf file for all of the new
220 options in Eggdrop 1.6.x if you are upgrading from 1.3.x or 1.4.x. You
221 can copy and paste any of these settings into you current conf file if
222 you do not want to use the default settings.
223
224
225 (5) COMMAND LINE
226
227 Eggdrop has some command-line options -- not many, because most things
228 should be defined through the config file. However, sometimes you may
229 want to start up the bot in a different mode, and the command-line
230 options let you do that. Basically, the command line for Eggdrop is:
231
232 % eggdrop [options] [config-file]
233
234 The options available are:
235
236 -n: Don't background. Normally, Eggdrop will move itself into the
237 background when you start it up, meaning you'll get another shell
238 prompt, and you can do other things while the bot is running. With
239 -n, you won't return to the shell prompt until the bot exits (which
240 won't normally happen until it's killed). By default, -n will send
241 all log entries to the console.
242
243 -nt: Don't background, use terminal. This is just like -n, except that
244 instead of seeing log entries, your console will simulate a DCC
245 chat with the bot.
246
247 -nc: Don't background, show channel info. This is just like -n, except
248 that instead of seeing log entries, every 10 seconds your screen
249 will clear and you will see the current channel status, sort of
250 like "top".
251
252 -m: Create userfile. If you don't have a userfile, this will make Eggdrop
253 create one and give owner status to the first person that introduces
254 himself or herself to it. You'll need to do this when you first set
255 up your bot.
256
257 -v: Show version info, then quit.
258
259 Most people never use any of the options except -m, and you usually only
260 need to use that once.
261
262
263 (6) FREQUENTLY ASKED QUESTIONS (or "Why doesn't this thing work?")
264
265 6a. WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"?
266
267 1. Run Eggdrop with the "-m" option (i.e. "eggdrop -m eggdrop.conf").
268
269 2. Go to IRC and send "hello" to your bot (i.e. "/msg mybot hello").
270
271 3. You will become an owner on your bot. You can leave the bot running
272 (nobody else will become an owner if they say "hello"), but in the
273 future, don't use the "-m" option when running the bot.
274
275 6b. MY EGGDROP WON'T RUN; IT JUST SAYS "CAN'T FIND YOUR HOSTNAME!"
276
277 Your machine is set up strangely, and Eggdrop can't figure out its
278 network hostname. You can get around this by setting the my-ip setting
279 in the config file correctly.
280
281 6c. WHAT THE HECK IS Tcl?
282
283 Tcl is a scripting language written by John Ousterhout. It's much better
284 than most "built-in" script languages (like the one in ircII) and is
285 meant to be linked with anything needing a scripting language, so I
286 linked it with Eggdrop. The file "tcl-commands.doc" in the doc directory
287 contains a list of additional Tcl commands provided by Eggdrop. There
288 are also several example scripts in the scripts/ directory, and one in
289 the doc directory called first_script.txt. Hundreds of scripts floating
290 around on the ftp/web sites if you like working by example (which is
291 typically the best way).
292
293 6d. MY BOT DIES, AND THE LAST ENTRY IN THE LOGFILE IS "RECEIVED TERMINATE
294 SIGNAL". WHAT DOES THAT MEAN, AND CAN I PREVENT IT?
295
296 There's nothing you can do to prevent it. It means the system
297 administrator is killing the Eggdrop process. Most of the time, it's an
298 automatic thing that happens when the system is being rebooted, so it's
299 harmless. If you have a crontab running, the bot will get restarted when
300 the system is back online. Occasionally, the system administrator will
301 kill the bot manually. For example, if he/she doesn't want bots running
302 on the system.
303
304 6e. SOMEONE ELSE SET UP A BOT I DON'T LIKE. ARE THERE ANY BACKDOORS I CAN
305 USE TO TAKE THEIR BOT DOWN?
306
307 No, there have never been any backdoors and there never will be, so
308 please stop asking. Every once in a while, someone finds a way to
309 exploit a bug in Eggdrop, but we fix these bugs as soon as we find out
310 about them. If you want to bring down someone else's bot, you will not
311 have my/our help.
312
313 6f. WHAT ARE MODULES?
314
315 Modules are a way of adding extra features to the bot, much like Tcl
316 scripts, without requiring the bot to be recompiled. See doc/MODULES
317 for more information.
318
319 6g. CAN I COMPILE EGGDROP WITHOUT DYNAMIC MODULES?
320
321 Yes, you can. If the configure script detects that your system CAN'T
322 run modules, it will setup 'make' to link the modules in statically
323 for you. You can choose this option yourself by using 'make static'.
324 You can also try to compile dynamic modules on a static-only system
325 by using 'make eggdrop'.
326
327 6g1. DO I STILL NEED TO 'loadmodule' MODULES?
328
329 YES, when you compile statically, all the modules are linked into the
330 main executable. HOWEVER, they are not enabled until you use loadmodule
331 to enable them, hence you get nearly the same functionality with static
332 modules as with dynamic modules.
333
334 6h. WHERE CAN I GET A PRE-COMPILED EGGDROP FOR MY COMPUTER?
335
336 It is HIGHLY recommended AGAINST using pre-compiled Eggdrops from
337 un-trusted sources. Eggdrop has been a regular target for hacking and
338 crashing. Distribution of pre-compiled (binary) versions of Eggdrop are
339 the easiest way for hackers to provide you with the easiest (and most
340 dangerous) way of gaining access to, not only your bot, but to your
341 computer account directly. Don't advertise your pre-compiled Eggdrop
342 binary sites on the Eggdrop list either. =P
343
344 6i. I GET 'Makefile:3 :invalid operator' OR SOME-SUCH-THING WHEN I TRY
345 TO 'make'.
346
347 Try 'gmake'.
348
349 6j. WHEN I 'tclsh scripts/weed <userfile> c' IT BARFS CHUNKS AT ME AND
350 DIES. :(
351
352 Upgrade your Tcl. You are probably using Tcl 7.5 or earlier. Some of the
353 commands in weed require Tcl7.6 to run, so either upgrade it or remove
354 the offending lines from you userfile manually (those starting with '.'
355 generally) and accept the loss of that data.
356
357 6k. I GET "ld-elf.so.1: Shared object "libtcl80.so.1" not found" or
358 "eggdrop: error in loading shared libraries libtcl8.1.so: \
359 cannot open shared object file: No such file or directory" WHEN I TRY
360 TO START MY BOT.
361
362 './configure' is looking in the wrong place for Tcl; it looks like it
363 compiled with one version of Tcl and tries to load another. Maybe your
364 sysadmin upgraded Tcl and didn't tell you. In that case, you should just
365 need to recompile your bot.
366
367 Maybe, when upgrading, he didn't clean the old version of Tcl and
368 './configure' is looking for the files in the wrong places, or trying
369 to use different versions of tcl.h and libtcl*. Smack your admin and
370 have him install Tcl properly. ;)
371
372 You can also try:
373
374 ./configure --with-tcllib=<path-to-tcl-lib>
375 --with-tclinc=<path-to-tcl-inc>
376
377 This will tell configure where to look for the Tcl files.
378
379 Try looking for libtcl by:
380
381 ls /usr/lib/libtcl*
382 ls /usr/local/lib/libtcl*
383
384 Try looking for tcl.h by:
385
386 ls /usr/include/tcl.h
387 ls /usr/local/include/tcl.h
388
389 If everything else fails, try to install Tcl to your home dir ;)
390 (Suggested by dw@Undernet, dw@lixom.nu)
391
392 6l. I GET A WHOLE PILE OF "Unresolved symbol 'Tcl_AppendResult'" (OR SOME
393 OTHER SYMBOL) WHEN I TRY TO LOAD A MODULES.
394
395 POSSIBILITY A: See section 6k.
396
397 POSSIBILITY B:
398
399 Some of the standard libraries have been compiled for static linking
400 only on your machine, you have 3 options:
401
402 1. If it's your own machine, recompile Tcl using dynamic linking by
403 using './configure --enable-shared' when you configure Tcl (not
404 the bot) and then remake, and reinstall.
405
406 2. If it's not your machine, you may have to resort to 'make static'
407 and 'make install DEST="path"' to make and install your bot.
408
409 3. If you are of a more aggressive sense of mind, go beat the
410 stuffing out of your admin for having lame static libraries. :)
411
412
413 (7) SETTING UP A CRONTAB
414
415 Eggdrop has become more stable with time, thanks mostly to people
416 reporting bug details and helping find places where it crashes. However,
417 there are still a -few- places where things aren't perfect. Few, if any,
418 things in life are.
419
420 Also, most systems go down from time to time. These things cause your bot
421 to disappear from IRC, and you have to restart it.
422
423 Eggdrop comes with a shell script called 'botchk' that will help keep the
424 bot online. It will make the machine check every ten minutes to make sure
425 your bot is still running. To use it, you have to add a line to your
426 crontab. First, edit 'botchk' and change the directory and command line
427 parameters so that it will be able to start up your bot. Then, add this
428 line to your crontab:
429
430 0,10,20,30,40,50 * * * * /home/mydir/botchk
431
432 If you don't want to get e-mails from cron, use this:
433
434 0,10,20,30,40,50 * * * * /home/mydir/botchk >/dev/null 2>&1
435
436 Naturally, you need to change the path to the correct path for botchk. If
437 you've never used crontab before, here is a simple way to add that line:
438
439 1. Create a new file called 'mycron' and put the above line into it.
440
441 2. From your shell prompt, type '% crontab mycron'.
442
443 That will create a new crontab entry for you with a line that runs botchk
444 every ten minutes. Botchk will then restart the bot when necessary (and
445 send you email informing you).
446
447
448 (7a) SETTING UP A CRONTAB USING AUTOBOTCHK
449
450 Included with your Eggdrop is an Eggdrop utility called 'autobotchk'.
451 Using autobotchk is probably the fastest way of creating your botchk and
452 crontabbing it with just a few required steps:
453
454 1. Type 'cp scripts/autobotchk ..'.
455
456 2. Type './autobotchk <Eggdrop config file>'.
457
458 This will hopefully crontab your bot using the default setup. If you want
459 a list of autobotchk options, type './autobotchk'. An example with options
460 would be:
461
462 ./autobotchk <Eggdrop config file> -noemail -5
463
464 This would setup crontab to run the botchk every 5 minutes and also to
465 not send you e-mail saying that it restarted your bot.
466
467
468 (8) BORING LEGAL STUFF
469
470 The Eggdrop bot is Copyright (C) by Robey Pointer. As of January, 1997,
471 Eggdrop is distributed according to the GNU General Public License. There
472 should be a copy of this license in the file 'COPYING'. If not, write to
473 the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
474
475 As of Eggdrop 1.3.28, all changes made by the Eggheads Development Team to
476 the Eggdrop source code and any related files are Copyright (C) by Eggheads
477 Development Team. The source code will still be distributed according to
478 the GNU General Public License as Robey Pointer did in the past.
479
480 Releases previous to 1.0m were made using a different licensing scheme.
481 You may, at your option, use the GNU General Public License on those
482 versions (instead of the license packaged with them) with my blessing.
483 For any versions bearing a copyright date of 1997 or later, you have
484 no choice -- you must use the GNU General Public License.
485
486 The files "match.c", "net.c", and "blowfish.c" are exempt from the above
487 restrictions. "match.c" is original code by Chris Fuller (email:
488 crf@cfox.bchs.uh.edu) and has been placed by him into the public domain.
489 "net.c" is by me, and I [who?] also choose to place it in the public
490 domain. "blowfish.c" is by various sources and is in the public domain
491 as well. All 3 files contain useful functions that could easily be
492 ported to other applications.
493
494 Tcl is by John Ousterhout and is in no way affiliated with Eggdrop. It
495 likely has its own set of copyrights and whatnots.
496
497 There is no warranty, implied or whatever. You use this software at your
498 own risk, no matter what purpose you put it to.
499
500
501 (9) MAILING LIST
502
503 There are currently a couple of mailing lists about Eggdrop.
504 eggheads@eggheads.org is the one relevant for posts about Eggdrop 1.4 and
505 up (suggestions, help, etc).
506
507 To subscribe to the eggheads mailing list, send e-mail to
508 eggheads-request@eggheads.org. In the body of the message, put "subscribe
509 eggheads". You can also go to the following url:
510
511 http://scrambled.eggheads.org/mailman/listinfo/eggheads
512
513 ### DO NOT SEND ROBEY EMAIL ABOUT EGGDROP! ###
514
515 Robey is no longer developing the Eggdrop code, so don't bother e-mailing
516 him. If you have a serious problem, email the eggheads mailing list and
517 it will get to the coders.
518
519 Please, before posting to this list, see what things are like. When you do
520 post, read over your post for readability, spelling, and grammar mistakes.
521 Obviously, we're all human (or are we?) and we all make mistakes (heck,
522 look at this document! ;).
523
524 Open discussion and debate is integral to change and progress. Don't flame
525 others over mere form (grammar and spelling), or even substantive issues
526 for that matter. Please read and follow the mailing list rules.
527
528 The eggheads@eggheads.org mailing list is not dedicated to those all too
529 common questions we have all seen on other lists... For example:
530
531 o "Why does my bot say this: Please edit your config file."
532 o "How do I telnet my bot?"
533 o "Where do I get Eggdrop for windows??????"
534
535 Technical questions, your thoughts or suggestions on new features being
536 added to Eggdrop, things that should be removed or fixed, amazing problems
537 that even stump the guru's, etc. are what we want to see here.
538
539 Bug reports should be sent to bugs@eggheads.org. Please read and fill out
540 the BUG-REPORT file in the doc directory.
541
542 DO NOT SEND HTML E-MAILS TO ANY OF THE EGGHEADS.ORG MAILING LISTS. ANYONE
543 CAUGHT SENDING HTML E-MAILS TO ONE OF THESE LISTS WILL BE REMOVED
544 IMMEDIATELY!
545
546
547 (10) DOCUMENTATION
548
549 We're trying to keep the documentation up to date. If you feel that
550 anything is missing here or that anything should be added, etc, please
551 e-mail bugs@eggheads.org about it. Thank you.
552
553
554 (11) OBTAINING HELP
555
556 You can obtain help with Eggdrop in the following IRC channels:
557
558 Undernet - #eggdrop, #eggies
559 EFnet - #egghelp, #eggfaq
560 IRCnet - #eggdrop
561 DALnet - #eggdrop, #botcentral
562 OPN - #eggdrop, #egghelp
563 QuakeNet - #eggdrop
564
565 If you plan to ask questions in any of the above channels, you should be
566 familiar with and follow IRC etiquette.
567
568 o Don't type using CAPITAL letters, colors, or bold.
569
570 o Don't use "!" and "?" excessively.
571
572 o Don't /msg people without their permission.
573
574 o Don't repeat or paste large amounts of text to the channel.
575
576 If there are any other serious Eggdrop related channels that should be
577 added to the above list, please let us know.
578
579 ________________________________________________________________________
580
581 Copyright (C) 1997 Robey Pointer
582 Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Eggheads Development Team
583

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23