Anope -- a set of IRC services for IRC networks
|Anope is||2003-2009 Anope Team||<firstname.lastname@example.org>.|
|Based on Epona||2000-2002 PegSoft||<email@example.com>.|
|Based on IRCServices||1996-1999 Andrew Church||<firstname.lastname@example.org>.|
This program is free but copyrighted software; see Documentation:License for details.
Information about Anope may be found at http://www.anope.org/
Information about Epona may be found at http://www.epona.org/
Information about IRCServices may be found at http://www.ircservices.esper.net/
Anope is based on Lara's Epona version 1.4.14.
Epona is based on Andy Church's IRCServices version 4.3.3.
The original credits:
- Mauritz Antunes -- Portuguese translation
- Jose R. Holzmann, Raul S. Villarreal -- Spanish translation
- Andrew Kempe <email@example.com> -- news system
- <firstname.lastname@example.org> -- Italian translation
- <email@example.com> -- Turkish translation
- Andrew Kempe <firstname.lastname@example.org> -- session limiting
- lara <email@example.com> -- Main coding
- CafeiN <firstname.lastname@example.org> -- Turkish translation
- Sylvain Cresto aka tost <email@example.com> -- FreeBSD 5 patch
- Marcelo Conde Foscarini aka Bras <firstname.lastname@example.org> -- Portuguese translation
- Alvaro Toledo aka POLLITO <email@example.com> -- Spanish translation
- chemical <firstname.lastname@example.org> -- German translation
- shine <email@example.com> -- German translation
- Guven Guzelbey aka MeShGuL <firstname.lastname@example.org> -- Turkish translation
- Jordi Pujol <email@example.com> -- Catalan translation
- Eva Dachs <firstname.lastname@example.org> -- Catalan translation
- Toni Perez <email@example.com> -- Catalan translation
- Sergios Karalis <firstname.lastname@example.org> -- Greek translation
- Thomas Juberg Stensås aka ShadowMaster <shadowmaster [at] shadow-realm [dot] org> -- Ultimate 3.x support
- Adam Kramer <email@example.com>
- Alvaro Toledo <firstname.lastname@example.org>
- Amanda Folson <email@example.com>
- Andrew Berquist <firstname.lastname@example.org>
- Björn Stiddien <email@example.com>
- Charles Kingsley <firstname.lastname@example.org>
- Chris Hogben <email@example.com>
- Daniel Engel <firstname.lastname@example.org>
- David <email@example.com>
- David Narayan <firstname.lastname@example.org>
- David Robson <email@example.com>
- Daniele Nicolucci <firstname.lastname@example.org>
- Florian Schulze <email@example.com>
- Gabriel Acevedo H. <firstname.lastname@example.org>
- Jan Milants <email@example.com>
- JH <firstname.lastname@example.org>
- Joris Vink <email@example.com>
- Lucas Nussbaum <firstname.lastname@example.org>
- Mark Summers <email@example.com>
- Matthew Beeching <firstname.lastname@example.org>
- Naram Qashat <email@example.com>
- Pieter Bootsma <firstname.lastname@example.org>
- Robin Burchell <email@example.com>
- Thomas Juberg Stensås <ShadowMaster@Shadow-Realm.org>
- Trystan .S Lee <firstname.lastname@example.org>
- openglx <email@example.com>
- GeniusDex <firstname.lastname@example.org> (nl.l)
- Kein <email@example.com> (ru.l)
- Stuff <firstname.lastname@example.org> (de.l)
- Gabriel Acevedo H. <email@example.com> (es.l)
- Janos Kapitany <firstname.lastname@example.org> (hun.l)
- Szymon S'wierkosz <email@example.com> (pl.l)
Anope uses the strlcat() and strlcpy() functions from OpenSSH 2.5.1p2. These functions are copyrighted by Todd C. Miller:
Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com> All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED `AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Anope is a set of Services for IRC networks that allows users to manage their nicks and channels in a secure and efficient way, and administrators to manage their network with powerful tools.
Currently available services are:
- NickServ, a powerful nickname manager that users can use to protect themselves against nick stealing. Each user has its own nickname group, that allows him to register as many nicks as he needs while still being able to take profit of his privileges and to modify his nick configuration. NickServ also has an optional password retrieval feature.
- ChanServ, a powerful channel manager that helps users to administer their channels in a totally customizable way. ChanServ has an internal list of privileged users and banned users that controls accesses on a per-channel basis. It eliminates all takeover problems, because of its powerful op/unban/invite and even mass deop and mass kick functions.
- MemoServ, an helpful companion that allows sending short messages to offline users, that they can then read when they come online later.
- BotServ, an original service that allows users to get a permanent, friendly bot on their channels in an easy way. Each bot can be configured to monitor the channels against floods, repetitions, caps writing, swear, and take appropriate actions. It also can handle user-friendly commands (!op,!deop,!voice,!devoice,!kick,...), say a short greet message when an user joins a channel, and even "take over" ChanServ actions such as auto-opping users, saying the entry notice, and so on. This service can be disabled if you want to save some bandwidth.
- OperServ, the IRCops' and IRC admins' black box, that allows them to manage the list of network bans (also known as AKILL (DALnet) or GLINE (Undernet)), to configure messages displayed to users when they log on, to set modes and to kick users from any channel, to send notices quickly to the entire network, and much more!
- HostServ, a neat service that allows users to show custom vHosts (virtual hosts) instead of their real IP address; this only works on daemons supporting ip cloaking, such as UnrealIRCd and UltimateIRCd.
- HelpServ, a skeleton service used to serve help files.
Anope currently works with:
- Bahamut 1.4.27 or later (including 1.8)
- Charybdis 1.0 or later
- DreamForge 4.6.7
- Hybrid 7 or later
- InspIRCd 1.0 or later (including 1.1)
- Plexus 2.0 or later (including 3.0)
- PTlink 6.15 or later
- RageIRCd 2.0 beta-6 or later
- Ratbox 2.0.6 or later
- ShadowIRCd 4.0 beta 7 or later
- Solid IRCd 3.4.6 or later
- UltimateIRCd 2.8.2 or later (including 3.0)
- UnrealIRCd 3.1.1 or later (including 3.2)
- ViagraIRCd 1.3 or later
Anope could also work with some of the daemons derived by the ones listed above, but there's no support for them if they work or don't work.
Anope also supports the following Operating Systems, and their derivatives:
- Mac OSX
- Windows (NT-based)
Command Line Options
Normally, Anope can be run simply by invoking the "services" executable. Anope will then use the defaults specified in the services.conf file, and connect to the specified uplink server. Alternatively, any of the following command-line options can be specified to change the default values:
-remote server[:port] Connect to the specified server -local host -or- Connect from the specified address (e.g. [host]:[port] for multihomed servers) -name servername Our server name (e.g. services.some.net) -desc string Description of us (e.g. SomeNet Services) -user username Username for Services' nicks (e.g. services) -host hostname Hostname for Services' nicks (e.g. esper.net) -dir directory Directory containing Services' data files (e.g. /usr/local/lib/services) -log filename Services log filename (e.g. services.log) -update secs How often to update databases (in seconds) -expire secs How often to check for nick/channel expiration (in seconds)
Additionally, the following command-line options can be used to modify the behavior of Anope:
-debug Enable debugging mode; more info sent to log (give option more times for more info) -readonly Enable read-only mode; no changes to databases allowed, .db files and log not written -skeleton Enable skeleton mode; like read-only mode, but only OperServ is available -nofork Do not fork after startup; log messages will be written to terminal (as well as to the log file if not in read-only mode) -forceload Try to load as much of the databases as possible, even if errors are encountered -noexpire Expiration routines won't be run at all -logchan Startup with logchan enabled -version Display the version of Anope -nothird Do not load the modules specified in ModulesAutoload or ModulesDelayedAutoload in the config file -protocoldebug Debug each incoming message after protocol parsing -support Used for support, same as -debug -nofork -nothird
Upon starting, Anope will parse its command-line parameters, open its logfile, then (assuming the -nofork option is not given) detach itself and run in the background. If Anope encounters a problem reading the database files or cannot connect to its uplink server, it will terminate immediately; otherwise, it will run until the connection is terminated (or a QUIT, SHUTDOWN, or RESTART command is sent--see OperServ's help). In the case of an error, an appropriate error message will be written to the log file.
If Anope is run with the "-readonly" command-line option, it can serve as a "backup" to the full version of services. A "full" version of services (run without -readonly) will automatically reintroduce its pseudo-clients (NickServ, ChanServ, etc.), while a "backup" services will not, thus allowing full services to be brought up at any time without disrupting the network (and without having to take backup services down beforehand).
If Anope is run with the "-skeleton" command-line option, it will not try to load the nickname or channel databases, and will respond with "service is inactive" messages to any commands sent to NickServ, ChanServ, MemoServ or BotServ. This can be useful as an emergency stopgap measure when the main copy of Anope cannot be started.
The "-debug" option is useful if you find or suspect a problem in Anope. Giving it once on the command line will cause all traffic to and from services as well as some other debugging information to be recorded in the log file; if you send a bug report, PLEASE include an excerpt from the log file WITH DEBUGGING ACTIVE--I cannot emphasize enough how important this is to tracking down problems. (You can also enable debugging while Services is running using OperServ's SET DEBUG command.) If you repeat the -debug option more than once, the debugging level will be increased, which provides more detailed information but may also slow Anope down considerably and make the log file grow dramatically faster (in particular, at debug level 4 a message is written to the log for every character received from the server). In general, a debug level of 1 is sufficient for the coding team to be able to trace a problem, because all network traffic is included and we can usually reproduce the problem.
The "-forceload" option is provided to attempt recovery of data from corrupted or truncated databases. Normally, if Anope encounters an error writing to a database file, it will attempt to restore the original version of the file and report an error to the logfile and through WALLOPS. However, if this should fail (which normally should not happen), or if Anope is terminated abruptly e.g. by kill -9 or a power failure, then one or more of the databases may be corrupt. Normally, this will cause Anope to abort the next time you try to run it; however, if you give the -forceload option to Anope, it will instead read as much as it can, then skip to the next database. For obvious reasons, it's recommended to keep backup copies of your databases in case something does happen (since Anope will stop at the first error even with -forceload, meaning you lose any data after that).
Anope has a powerful option in NickServ allowing users to choose what language it must use when sending messages to users. Messages are stored in language files (located in the lang directory).
Anope is currently provided with thirteen languages: Catalan, Dutch, English, French, German, Greek, Hungarian, Italian, Polish, Portuguese, Russian, Spanish and Turkish. If you want to translate Anope messages into another language, follow the following instructions:
- Copy the lang/en_us.l file to a meaningful name (for example, if you would like to translate messages in Spanish, you would rename it to es.l).
- Edit the file with your favorite text editor. Carefully read the instructions given at the top of the file, and start translating the whole file. The file is big so make sure you have some coffee available. ;) Try to avoid the use of English words as much as possible. If the new language contains only a few 'special' characters, try and use latin representations of it, if possible. Remember that most clients are only capable of handling the ISO-8859-1 charset. Of course, if you are translating Anope to a language with a totally different charset, such as Russian, feel free to use the one that suites it best (and the one that is in use by most speakers of that language ;).
- When this is done, you have two solutions: either patch Services source code so they take in account the new language file (basically, you'll have to modify lang/Makefile, language.c and maybe services.h), or send us the translated file so we can make the patch and include your language in the next Anope release.
- Note that there is a language tool on bin/langtool.pl that can aid the verification process on newly created language files. Try to use it before you submit a language file.
When new major releases come out, you'll not have to retranslate the whole file; the Changes.lang file will help you to know which messages were added, modified or deleted.
If you did a language file translation, and want to let others use it, please send it to firstname.lastname@example.org (don't forget to mention clearly your (nick)name, your e-mail and the language name). You'll of course get full credit for it, and will even get future final major releases before anyone else to complete the translation!... ;)
- For announcements and discussions about Anope, please visit our Portal and Forums at http://www.anope.org/ -- make sure you register yourself and your network to get full benefits.
- If you read the documentation carefully, and didn't find the answer to your question, feel free to post on the website forums or join our irc channel (irc.anope.org #anope). Once you join our Support channel, just type "? report" for instructions on how to report a Bug. Be as precise as possible when asking a question, because we have no extraordinary powers and can't guess things if they aren't provided. The more precise you are, the sooner you'll be likely to get an answer.
- If you think you found a bug, add it to the bug tracking system (http://bugs.anope.org) and - again - be as precise as possible. Also say whether the bug happens always or under what circumstances, and anything that could be useful to track your bug down. If you wrote a patch, send it over. :)
README Version: Revision 1908 - Thu Jan 1 12:12:51 2009 UTC by sjaz