1
0
mirror of https://github.com/anope/anope.git synced 2026-07-09 11:13:13 +02:00

Initial Anope Import

git-svn-id: svn://svn.anope.org/anope/trunk@1 31f1291d-b8d6-0310-a050-a5561fc1590b


git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
svn svn@31f1291d-b8d6-0310-a050-a5561fc1590b
2004-03-28 21:59:56 +00:00
commit 55bf4dbcab
103 changed files with 119474 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
Reported Bugs from Mantis: http://www.anope.org/bug
===================================================
.- Strange Segfault on expiring nicknames. Almost arbitrary, very hard
to reproduce.
.- Clone detection can give false warnings if a user connects and then
signs off several times in rapid succession. Clone detection also
goes off wrongly if a server links and has a number of clients from
the same hostname.
.- If there is absolutely no activity on your network, Services may delay
timed events (nick kills, database saving, etc.) until the next message
comes in from Services' uplink server.
.- Modules will not work on OpenBSD machines, due to limitations on libdl.
+339
View File
@@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
+111
View File
@@ -0,0 +1,111 @@
Anope DefCon
------------
Introduction:
Anope 1.6 onwards supports a unique protection mechanism based on the
military "Defense Readiness Condition" (DefCon) system. It is based on
5 levels of defense readiness defined as:
DEFCON5 Normal peacetime readiness
DEFCON4 Increased intelligence and security readiness
DEFCON3 Increase in force readiness
DEFCON2 Further increase in force readiness
DEFCON1 Maximum force readiness.
These are configurable levels that mandates what actions Anope should
take in case of emergency and change in readiness status.
It is used to prevent abuse to both Services, and the ircd on which they
are running. Also to protect the users, primarily in the event of Clones
and/or FloodBOT attacks.
Installation:
The DefCon system is part of Anope's core,
The DefCon system has to be configured on your services.conf file to
be enabled. All directives are optional unless they depend on what
options you enable for each level. Look for the "DefCon configuration"
section on your services.conf file for more information.
Make sure you restart Anope after changing the DefCon configuration
directives.
Configuration:
Pre-defined DefCon actions:
No new channel registrations 1
No New Nick Registrations 2
No MLOCK changes 4
Force Chan Mode 8
Use Reduced Session Limit 16
KILL any new clients trying to connect 32
Services will ignore everyone but opers 64
Services will silently ignore everyone but opers 128
AKILL all new clients trying to connect 256
No new memos sent to block memoserv attacks 512
These are the values used to determine each defcon setting, are set via:
DefCon1 XX
DefCon2 XX
DefCon3 XX
DefCon4 XX
To set the desired value, you simply add the value of the numbers together
and place that as your DefCon# setting. For instance:
Say you wish to set:
No Channel Registrations, No Nickname Registrations and Services Ignoring
everyone except for Operators. You would do this by:
1 + 2 + 128 (Each value listed above is added together)
Giving: 131
You would then place this as which ever Defcon setting you want:
DefCon1 131
The recommended default values are safe to use on any network.
Usage:
Anope starts up in DEFCON5 (normal readiness). To change the Defcon level
in action use:
/msg OperServ DEFCON 1|2|3|4|5
Example:
Place the network on DEFCON4:
/msg OperServ DEFCON 4
*** Global -- from OperServ: dengel Changed the DEFCON level to 4
-OperServ- Services are now at DEFCON 4
-OperServ- * No new channel registrations
-OperServ- * No new nick registrations
-OperServ- * No MLOCK changes
-OperServ- * Use the reduced session limit of 5
-Global- The Defcon Level is now at Level: 4
Restore normal readiness:
/msg OperServ DEFCON 5
*** Global -- from OperServ: dengel Changed the DEFCON level to 5
-OperServ- Services are now at DEFCON 5
-Global- Services are now back to normal, sorry for any inconvenience
Support:
You might get DefCon support by posting on our online forum, or maybe on
our #anope channel at /server irc.anope.org.
+423
View File
@@ -0,0 +1,423 @@
Frequently Asked Questions (FAQ) concerning Anope
=================================================
Index:
1. What is Anope?
2. Where can I find Anope?
3. Does Anope run under Windows?
4. Can I send you questions without reading the FAQ, INSTALL or
README files?
5. When I run "make", I get an error message like "missing separator",
"Unassociated shell command", "Unexpected end of line seen", etc.
6. I get an error like "Makefile.inc not found".
7. I typed "./services" at the command line, but nothing happened!
8. I need support for the XYZ protocol.
9. Whenever I start Anope, I get a message on my IRC server saying
"connection refused" or something similar, and Anope gives an error
message from the server saying "Closing Link: ...".
10. My IRC server is giving me messages like "Connection to
services.whatever.net[127.0.0.1] activated" and then "Access denied --
no N line". Why?
11. When I say "/connect services.*", it doesn't work!
12. Anope complains in the logfile about being unable to load the
default language.
13. Anope always dies after about five minutes, saying "FATAL ERROR!
Can't back up nick.db".
14. Anope starts up okay, but if I try to register a nickname, it comes
back with "Sorry, registration failed."
15. Anope crashed with a segmentation fault.
16. Anope's channel mode setting doesn't work. I can't set modes with
OperServ, and every time ChanServ tries to set a mode, my server
reverses the change.
17. Using the OperServ JUPE command results in server messages like
"Server juped.server introduced by non-hub server services.my.net".
18. I can't use the ADMIN command to add Services admins--it tells me
"Permission denied."
19. When I add an AKILL, the users matching it don't get killed.
20. Anope reports (via /stats u or /msg OperServ STATS) a different
number of users online than I get from doing /lusers.
21. Anope ignored the SET SUCCESSOR setting and deleted a channel when
the founder expired.
22. Trying to use OperServ gives me "Access denied", but my nick is in the
ServicesRoot directive and is registered, and I've identified for my
nick.
23. Anope spricht kein Deutsch!, etc. (Anope doesn't speak my
language!)
24. I selected a language other than English, but sometimes Anope sends
responses in English instead.
25. I've found a bug that's not mentioned here or in the
BUGS files. What should I do?
26. Your Services program doesn't do XYZ like DALnet Services. What's
wrong?
27. I've got a great new idea for Anope. Do you want it?
28. Examples of features I have been asked about and why we won't add (or
haven't yet added) them--so don't ask us about them.
29. How do I add bots to BotServ?
30. When I used the OperServ RAW command, Anope and/or my network
crashed, or did weird things! Please fix this bug!
31. I would like to have the list of the differents RAW on operserv
32. I can't get /OS UMODES and /OS SVSNICK do not work!
33. What is a Super-Admin? How does it work? Why might it not work?
---------------------------------------------------------------------------
1. What is Anope?
Anope is a set of services for IRC networks. See the README
file for more information. And in case you were wondering,
Anope is Epona spelt backwards :)
2. Where can I find Anope?
The latest version can always be found at the official Anope
distribution site:
http://www.anope.org/
New version announcements can also be found at http://anope.zero.org/
in the Announcement section.
3. Does Anope run under Windows?
Well... not officialy. Bu there is a cygwin based patch that makes
Anope work on Windows. Note, however, that some features might not
work, and you should take that into consideration when answering
the questions of ./configure (i.e. MySQL, Modules).
You can obtain a pre-build copy of Anope for Windoes from
http://www.wircds.net/ although we have "blessed" that port,
we do not provide support for it. If you can't get it work,
go to wIRCds.net forum.
If you feel capable of taking ownership of an official windows
port, and to keep it current, please let the current Development
team know.
4. Can I send you questions without reading the FAQ, INSTALL or README
files?
No. If you don't read those files, your messages will most probably
be ignored. We don't mean to be rude, but if we took the time
to write down some documentation, we'd expect you to take some
time to read it.
5. When I run "make", I get an error message like "missing separator",
"Unassociated shell command", "Unexpected end of line seen", etc.
Your make program isn't compatible with the Makefile for Anope.
The Makefile was designed to work with GNU make, and as such may
not work on other systems' "make" programs. If you get an error
from "make", obtain GNU make from ftp://prep.ai.mit.edu/pub/gnu/
(or wherever you prefer) and use it instead of your system's
default "make". Note that GNU make may already be installed on
your system; try using the command "gmake" instead of "make".
The make programs bundled with SunOS/Solaris and FreeBSD have been
reported not to work; you will need to use GNU make on these
systems.
6. I get an error like "Makefile.inc not found".
You forgot to run the configure script first. See the INSTALL file
for compilation instructions.
7. I typed "./services" at the command line, but nothing happened!
Anope puts itself in the background when it starts, so you get
your shell prompt right back. Meanwhile, Anope will continue
setting up, then connect to the IRC server specified in
services.conf (or on the command line). If it doesn't connect, you
probably specified the wrong server type when running the configure
script. (Also make sure that you are actually running one of the
supported servers. There are a gazillion different variations on
the basic IRC protocol out there, and I have neither the time nor
the desire to add support for them.)
The recommended server, under which Epona (the original code base
used by Anope) was developed, is Bahamut. DreamForge 4.6.7 will also
work fine, but it's a bit obsolete nowadays. Derivatives of Bahamut
and DreamForge may also work, if they don't change the server<->server
protocol too much; contact their authors for more information.
Most people, though, are running Anope with UnrealIRCd, UltimateIRCd
or Bahamut.
As always, you can check the log file (services.log by default) for
error messages.
8. I need support for the XYZ protocol.
Hang in there! We are working on making Anope protocol independent.
It should show up sometime soon... more details to follow.
9. Whenever I start Anope, I get a message on my IRC server saying
"connection refused" or something similar, and Anope gives an error
message from the server saying "Closing Link: ...".
See seection 3 of the INSTALL file.
10. My IRC server is giving me messages like "Connection to
services.whatever.net[127.0.0.1] activated" and then "Access denied --
no N line". Why?
This is typically caused by including a port number in the C:line
for services, which tells your server to try to autoconnect to it
(depending on the class (Y:line) settings). This is not what you
want, because Anope will connect to the server itself, but does
not listen for servers to connect to it. The solution is to remove
the port number from the C:line.
11. When I say "/connect services.*", it doesn't work!
Of course not. RTFM (Read The Fine Manual), and see the previous
answer.
12. Anope complains in the logfile about being unable to load the
default language.
You forgot to run "make install".
13. Anope always dies after about five minutes, saying "FATAL ERROR!
Can't back up nick.db".
Make sure that the user Anope runs as has write access to the
data directory, and that the data directory actually exists (the
latter shouldn't be a problem if you ran the configure script).
This means Anope needs write and execute permission on the data
directory itself and execute permission on every parent directory
of the data directory.
14. Anope starts up okay, but if I try to register a nickname, it comes
back with "Sorry, registration failed."
Make sure you've selected the correct IRC server type in the
configure script; see question 9 for details.
15. Anope crashed with a segmentation fault.
See if you can reproduce this by doing a certain sequence of
things. If so, please report it to us (see part 6 of README file). If
not, you're probably out of luck; if you like, you can report it to
us anyway, but chances are it won't get fixed if we don't have
instructions on reproducing it. If you do have such a problem, you
may find the crontab utility useful for dealing with it.
Also, see the DumpCore directive in the configuration file. It allows
Anope to dump its core whenever it's segfaulting, usually calling it
core and placing it into Anope's main directory.
Open up gdb by issuing the following command at your shell:
gdb services core
(of course replacing 'core' with the name of the core if different)
and type 'bt' at the gdb prompt. After that, send us the output you
got and keep the core file in a safe place, in case we need it to
dig deeper into the problem.
16. Anope's channel mode setting doesn't work. I can't set modes with
OperServ, and every time ChanServ tries to set a mode, my server
reverses the change.
Make sure EVERY servers on your network has a U: line for Services in
ircd.conf, for example:
U:services.whatever.net:*:*
17. Using the OperServ JUPE command results in server messages like
"Server juped.server introduced by non-hub server services.my.net".
Services' uplink must have an H: line for Services in the
ircd.conf file, which looks something like:
H:*::services.whatever.net
18. I can't use the ADMIN command to add Services admins--it tells me
"Permission denied."
Did you define yourself as the Services root? You need to insert
your nickname in the ServicesRoot directive in services.conf.
19. When I add an AKILL, the users matching it don't get killed.
Use the AkillOnAdd configuration directive.
20. Anope reports (via /stats u or /msg OperServ STATS) a different
number of users online than I get from doing /lusers.
Anope doesn't count its own pseudo-clients (NickServ, ChanServ,
etc.) in its user count.
21. Anope ignored the SET SUCCESSOR setting and deleted a channel when
the founder expired.
Normally, this is because the successor had too many channels
registered; in this case, you will see an entry in the log file
like the following:
[date] Successor (SuccessorNick) of channel #somechannel owns too
many channels, deleting channel #somechannel
If you don't get a message like this or you can verify that the
successor wasn't running into the channel limit, please report it
using the bug-reporting procedure below (see section 6 of the
README file).
22. Trying to use OperServ gives me "Access denied", but my nick is in the
ServicesRoot directive and is registered, and I've identified for my
nick.
You need to be opered (i.e. user mode +o) to access OperServ.
23. Anope spricht kein Deutsch!, etc. (Anope doesn't speak my
language!)
See section 5 of the README file.
24. I selected a language other than English, but sometimes Anope sends
responses in English instead.
Some language files are not complete--in other words, they don't
have a translation of every message Anope uses, but only some of
them. In this case, the missing messages will be displayed in
English. You can either wait for the primary translator to provide
us with a translation, or do the translation yourself and send us
the messages translated into your language.
25. I've found a bug that's not mentioned here or in the README or
BUGS files. What should I do?
See section 6 of the README file.
26. Your Services program doesn't do XYZ like DALnet (or other) Services.
What's wrong?
Nothing is wrong, except your expectations. Anope is a
completely different program from that used on DALnet; they are
similar in concept only.
27. I've got a great new idea for Services. Do you want it?
We are always interested in hearing new ideas. HOWEVER, do not
expect your proposal to be in the next Anope release for sure.
As a rule, we usually don't add anything that can be equivalently
done by other means, or that we consider totally useless; see below
for examples of things we don't plan to add.
Our general intent is for Anope to provide as much functionality
as possible--while staying as lean as possible. So features which
are arguably beneficial will tend to be added, while features of
limited or no benefit or which can be equally provided by something
else already in use will tend to be passed over.
If you'd like to give us your idea, you can go to our website at
http://www.anope.org/ and add it as a Feature Request on our Bug
Tracking System. Or, if unsure, you can discuss it on our online
Forum, in the Ideas and Suggestions section.
28. Examples of features we have been asked about and why we won't add (or
haven't yet added) them--so don't ask us about them:
- An option to make ChanServ stay in some/all registered channels:
we see absolutely no necessity for this feature, since BotServ
already does this anyway.
- A "current time" field in NickServ and ChanServ INFO displays:
Most people have clocks of some sort either on their computer
screens or on their walls (or both), and all IRC servers, as well
as Services, have a command to return the server's current time.
Thus a current-time field in INFO displays would simply take up
extra space for no reason.
29. How do I add bots to BotServ?
Read /msg BotServ HELP and /msg BotServ HELP BOT.
30. When I used the OperServ RAW command, Anope and/or my network
crashed, or did weird things! Please fix this bug!
"That's not a bug, it's a feature."
Have you ever typed /msg OperServ HELP RAW? It's clearly stated
there that this command is dangerous and that its use may result
in very bad things.
And that's why this command has been disabled by default. If you
enabled and used it, YOU'RE ON YOUR OWN. All help requests will
be ignored, even if the problem happens not immediately.
31. I would like to have the list of the differents RAW on operserv
If you have to ask, you should not be messing with RAW :)
32. I can't get /OS UMODES and /OS SVSNICK do not work!
Make sure you the USE_OSSVS is defined on config.h. Since these
are very controversial commands, they are turned off by default.
Then, make clean ; make ; make install
33. What is a Super-Admin? How does it work? Why might it not work?
Super-Admin's have extra privileges, including being founder on
all channels. It must be activated on a per user basis and is
only available to Services Admins and Services Roots.
It is set using OperServ and is not persistent.
It only works if SuperAdmin is uncommented in the services
configuration file. This is commented by default.
Read /msg OperServ HELP SET SUPERADMIN for further help.
+177
View File
@@ -0,0 +1,177 @@
ANOPE INSTALLATION INSTRUCTIONS
===============================
Table of contents
-----------------
1. Installing Anope
2. Upgrading Anope
3. Setting up the IRCd
4. Starting Anope
5. Setting up a crontab
You should also read the README and FAQ files!
1. Installing Anope
-------------------
IMPORTANT NOTE: it is not recommended to use (and therefore install)
Anope as root. Use an unprivileged user instead -- the one you're
using for the ircd or a dedicated one will be good enough.
The very first thing you need to do is to get the Anope package
(if not already done). You can find it at the following place:
http://www.anope.org/
Next, unpack the package in your home directory, and go into the
created directory.
Now type ./configure to start the configuration script. It will
ask you a few questions, and figure out how to compile Anope on
your system. If you are unsure about the answer to a question,
use the default value.
NOTE: although you may specify different binary and data paths,
it is RECOMMENDED that you use the same value for both.
You can now type make to compile Anope. If there are errors in the
Makefile, *try to use gmake* instead. If it still doesn't work, you
(or the system administrator if it's a shell) must install GNU
make. You may find it at ftp://prep.ai.mit.edu/pub/gnu/.
Now type make install (or gmake install; see above). This will
install all the needed files in the paths you specified with the
configure script, and setup file permissions. You should ensure
that the data directory is not accessible by other users, as malicious
users may cause troubles on your network if passwords are not
encrypted, or read the memos of any user.
If you see errors during this process, please mail us with the
*complete* error output, and don't forget to mention your OS,
compiler and C library versions.
Now go into the data directory (by default, ~/services). Copy the
example.conf file to services.conf, and open the latter with your
favourite text editor. It contains all the configuration
directives Anope will use at startup. Read the instructions contained
in the file carefully. Using the default values is NOT a good idea,
and will most likely not work!
If you need help, you should subscribe to the Anope mailing list and
mail there to get help from other users. See the README file for more
information.
2. Upgrading Anope
------------------
If you got a .diff file and want to patch the old Anope sources with it, do
the following:
* Copy the .diff file into the root Anope sources directory.
* Type patch -p1 <file.diff
To upgrade Anope, just follow the installation instructions described in
section 1. There are however a few specific guidelines:
* IMPORTANT: Back up your old databases!
* If you are upgrading to a new major release, ALWAYS restart a
fresh configuration file from example.conf.
3. Setting up the IRCd
----------------------
Services acts as an IRC server with pseudo-clients on it. To link
them to your network, you'll need to add some lines in the ircd.conf
of their hub server (as stated in the RemoteServer configuration
directive).
For samples below we'll take Services.LocalHost.Net as the name of
the Services (as stated in the ServerName configuration directive).
First, the C/N lines, that allow Services to link. They also need a
Y:line to work correctly.
Y:27:180:0:0:4000000
C:127.0.0.1:mypass:Services.LocalHost.Net::30
N:127.0.0.1:mypass:Services.LocalHost.Net::30
mypass is the same password you mentionned in the RemoteServer
configuration directive. 127.0.0.1 is the IP from which Services
connect from (linking in localhost is the most efficient way
to run Services).
Then, you have to set-up an U:line, that will allow Services to
change channel modes, topics, and much more without being opped
in the channel.
U:Services.LocalHost.Net:*:*
NOTE: if you have more than one server in your network, this line
MUST be added on ALL servers, or things won't work.
Finally, you'll need to add an H:line, to make the OperServ JUPE
command work correctly.
H:*::Services.LocalHost.Net
Don't forget to /rehash to apply changes.
A new trend in ircd configuration is popping all over the place,
good examples are the latest Hybrid and Unreal, which use a more
"readable" for of configuration. For those, use something like:
link Services.LocalHost.Net
{
username *;
hostname localhost;
bind-ip *;
port 6667;
hub *;
password-connect "mypass";
password-receive "mypass";
class servers;
};
4. Starting Anope
-----------------
Go into the directory where binaries were installed (by default,
~/services). Type ./services to launch Anope.
If there are syntax errors in the configuration file they will be
displayed on the screen. Correct them until there are no errors
anymore. A successful startup won't generate any message.
Give to Services at least one minute to link to your network, as
certain IRCds on some OSes may be really slow for the link process.
If nothing happens then, it is probably a configuration problem.
Try to launch Anope with ./services -debug -nofork to see any errors
that it encounters, and try to correct them.
If you need help to solve errors, feel free to subscribe to the
Anope mailing list and ask there. See the README file for details.
5. Setting up a crontab
-----------------------
A crontab entry will allow you to check periodically whether Anope
is still running, and restart it if not. You'll need to have
Anope binaries and data installed in the same directory for this to
work without modification.
First rename the example.chk script that is in Anope path (by default,
~/services) to services.chk and edit it. You'll need to modify the
CONFIGURATION part of the file. Then ensure that the file is marked as
executable by typing chmod +x services.chk, and try to launch the script
to see if it works (Anope must not be running when you do this ;).
When this is done, you'll have to add the crontab entry. Type crontab -e.
This will open the default text editor with the crontab file. Enter the
following (with correct path):
*/5 * * * * /home/ircd/services/services.chk >/dev/null 2>&1
The */5 at the beginning means "check every 5 minutes". You may replace
the 5 with other another number if you want (but less than 60).
Save and exit, and it's installed.
+110
View File
@@ -0,0 +1,110 @@
Anope Modules
-------------
Introduction:
Anope 1.6 onwards supports external modules. External modules are pieces
of code that can be attached to a running Anope process dynamically. These
modules can serve several purposes, and perform all kind of operations to
enhance your network.
Installation:
1. You need to configure Anope to be compiled with module support. To
do so you must run ./configure and answer "Yes" when asked for
Module Support, and selecting a folder where your modules will live
in (the default path is safe for most people).
Notes:
* Modules are not supported on the following platforms: OpenBSD, Windows.
* You might need to run "make distclean" prior to running ./configure
2. Compile Anope as usual. The gmake process will now compile module
support into Anope, and compile the default sample modules, and/or
any other module located on the "modules" folder.
3. Install Anope as usual. The install process will place the compiled
modules in their runtime location, making them available for loading.
4. Start or restart services to make use of the new Anope executable.
Usage:
All module manipulation commands are done through OperServ. These are:
MODLOAD Load a module
MODUNLOAD Un-Load a module
MODLIST List loaded modules
MODINFO Info about a loaded module
These commands available to Service Roots only.
You can also load (and pre-load) Modules automatically by loading them
on startup. To do so, edit your services.conf file and change the values
of "ModuleAutoload" and "ModuleDelayedAutoload" to include the modules
you want to load every time Anope starts.
Example:
/msg OperServ modload hs_moo
*** Global -- from OperServ: dengel loaded module hs_moo
-OperServ- Module hs_moo loaded
/msg OperServ modinfo hs_moo
-OperServ- Module: hs_moo Version: 1.1 Author: Anope loaded: Mar 21 10:54:37 2004 CLT
-OperServ- Providing command: /msg HostServ moo
/msg HostServ moo
-HostServ- MOO! - This command was loaded via a module!
/msg OperServ modunload hs_moo
*** Global -- from OperServ: dengel unloaded module hs_moo
-OperServ- Module hs_moo unloaded
/msg HostServ moo
-HostServ- Unknown command moo. "/msg HostServ HELP" for help.
* Note that the name of the module file is "hs_moo.c", yet we load
and reference the module as "hs_moo" only. By naming convention
modules have an abreviated service name they attach to (hs_ for
HostServ, cs_ for ChanServ, etc) followed by a descriptive keyword.
More Modules:
Anope ships with two sample modules that only ilustrates some of the
implemented module capabilities. They don't really do much or anything
useful.
You can download more useful modules from http://www.anope.org/ or from
our interim modules development website http://modules.anope.org/. Just
grab the module file (usualy with a .c extension). Place the module
file on your compile "modules" folder. The same folder that contain both
hs_moo.c and catserv.c module files.
The new modules need to be compiled and installed before you can make
use of them:
1. Change directories to your compile "modules" folder.
2. Run ./configure
3. Run make
4. Run make install
You can now use /msg OperServ MODLOAD to load the new modules.
Support:
The Anope team is not responsible or liable for any unofficial module
(i.e. anything other than what was released with the Anope package).
Use modules at your own risk, and make sure you get them from a
reputable source. You might get module support by contacting the module
author, posting on our online forum, or maybe on our #anope channel
at /server irc.anope.org.
Developers:
Please take a look at:
* http://geniusdex.dezeserver.nl/anope
+97
View File
@@ -0,0 +1,97 @@
Anope MySQL Support
-------------------
Introduction:
Anope 1.6 onwards supports MySQL databases. On Anope 1.6.0 only PHASE 1
has been implemented. Since the next phases require major changes in the
core, we decided to save it for 2.0. However, having your db's easily
accessible on your website is still a great feature.
PHASE 1:Anope will be able to save all it's databases to MySQL. It will
happen in conjuction with the current FFF databases. This first step is
nothing more than a MySQL dump of the databases (i.e. read-only), since
Anope will not (for now) read from Mysql. (COMPLETED)
PHASE 2:The next step is load the databases from mysql, being able to
replace the FFF completely as an archive method (since all changes to
the mysql db would be lost on the next Services save). All, while keeping
FFF intact. This is still not the final goal, but it's a milestone.
PHASE 3:The next step, and most convoluted of all (since we'll need to
modify pretty much all the source) is to load/save (SELECT/INSERT) data
in realtime. That way the mysql db could be modified externaly (web?).
Again, the FFF will be kept intact.
Requirements:
1. MySQL server version 3.23.32 or greater
2. MySQL libs and development files (usualy called mysql-dev).
3. A MySQL user account
4. A MySQL database
Installation:
1. You need to configure Anope to be compiled with MySQL support. To
do so you must run ./configure and answer "Yes" when asked for
MySQL Support.
Notes:
* MySQL is not supported on the following platforms: Windows.
* You might need to run "make distclean" prior to running ./configure
2. Compile Anope as usual. The gmake process will now compile MySQL
support into Anope.
3. Install Anope as usual.
Configuration:
1. Run bin/mydbgen to help on the schema creation and adjustments.
2. Edit services.conf and add your mysql data to the MySQL configuration
block.
3. Start or restart services to make use of the new Anope executable.
Security:
To add a layer of security you have the option of encrypting or encoding
all passwords for nicks and chans. Use the "MysqlSecure" directive on your
services.conf file to enable it. The availabe storage methods are:
#MysqlSecure "" or MysqlSecure ""
Disables security. All passwords will be saved on the MySQL database
as clear text, with no encryption or encoding. FASTEST
MysqlSecure "des"
Encrypts all passwords using a unix DES encription. This is a one way
encryption algorithm. You can only validate it agains another DES
encrypted string, using the same "salt" (the first two characters of
the encrypted string). FAST
MysqlSecure "md5"
Calculates an MD5 128-bit checksum for the password. The value is
returned as a 32-digit hex number that may be used as a hash key.
SLOW
MysqlSecure "sha"
Calculates an SHA 160-bit checksum for the password. The value is
returned as a 40-digit hex number. SLOWEST
MysqlSecure "mykey"
Encodes the passwords using "mykey" as the encryption password. It
produces a binary string and can be decoded using the MySQL builtit
function DECODE(crypt_str,mykey). VARIABLE
Caveat: Keep in mind that this if you use any method other than clear
text, services will need to encrypt/encode every single password on
every database save. On large networks, it may impact responsiveness
during the saves.
+92
View File
@@ -0,0 +1,92 @@
Highlighted News in Anope 1.6
=============================
* Fixed various exploits and vulverabilities.
* Fixed various language typos and inconsistencies.
* Improved ignore system.
* Improved ./configure script.
* Removed all compile warning fixed.
* Converted HelpServ into a proper service.
* Added external module support.
* Added Defense Condition (DEFCON) System.
* Added MySQL support for mirroring databases.
* Added multi-server configuration.
* Added multi-domain /OS GLOBAL support.
* Added combined +oq +oa +ha +va on net-joins.
* Added support for ircd changes and upgrades.
* Added HostSetters configuration directive.
* Added /OS STAFF command.
* Added /OS SVSNICK command.
* Added /OS CHANKILL command.
* Added /MS STAFF command.
* Added /NS UPDATE command.
* Added /MS SENDALL command.
* Added /NS GETMAIL command.
* Added /HS DELALL command.
* Added /HS LIST command with pattern matching.
* New support scripts and tools.
* New ircd support, complete list: DreamForge 4.6.7, Bahamut 1.4.27,
UnrealIRCd 3.1.1, UltimateIRCd 2.8.2,
UltimateIRCd 3.0.0, Hybrid IRCd 7.0
ViagraIRCd 1.3.x, PTlink 6.15.0
* New Language files, complete list: cat.l, de.l, en_us.l, es.l, fr.l,
gr.l, it.l, nl.l, pt.l, ru.l, tr.l
Highlighted News in Anope 1.4
=============================
After the change from Epona to Anope
------------------------------------
* New Italian Language file
* Added support for UltimateIRCd 3.0 and later
* Services realtime logging to a channel
* SuperAdmin directive for access to "super" commands.
* Ban system is now exception aware.
* HostServ for hostname masquarading.
* Smarter XOP System.
* Email verification/handshake upon registration.
* Services can now /ignore users.
* Smarter memo notification for channels.
* Channel can be SUSPENDed instead of FORBIDen.
Before the change from Epona to Anope
-------------------------------------
* HostServ for networks that support them.
* UnrealIRCd support has been rewritten, it is now fully
working (hopefully) and officially supported again.
* Added support for UltimateIRCd 2.8.2 and later.
* A multi-threaded proxy detector that can scan Wingates,
SOCKS 4/5 and HTTP proxies on ports 3128 and 8080. Don't use
it if you have not been authorized to use it by your system
administrator!
* The ChanServ AOP/SOP/VOP commands, and, on networks that
support halfops, the HOP command, have been added. They
allow a more user-friendly control of channel privileges.
* Use of services IDs that allow an user to be automatically
identified after a split (if he was identified before the split)
in a secure way. This also saves lots of bandwidth.
* Services' default language can now be set in services.conf.
* The OperServ RANDOMNEWS command provides an easy way to show
network news in a random manner without flooding your users
with them (one news per connection).
* The BotServ SET PRIVATE option allows services admins to
make the bot usable by IRC operators only.
* The OperServ SQLINE command allows you to forbid nick masks
and even channel masks with the latest Bahamut.
* The ChanServ AKICK STICK command allows akicks to be permanently
kept on channel.
* The ChanServ SET TOPIC command has been renamed to TOPIC, and
a new BAN command has been added. They both have their own
associated levels.
* A SET PEACE command has been added to ChanServ. It prevents
users to use pejorative services commands (DEOP, KICK, ...)
on users with greater or equal levels.
Networks using Bahamut must upgrade to Bahamut 1.4.27 or later,
while networks using UnrealIRCd must upgrade to Unreal 3.1.1.
For the full changes, see the Changes file.
For announcements and discussions about Anope, subscribe to the mailing
list by sending an e-mail to epona-request@epona.org with "subscribe"
in the body (quotes excluded). You can then post to the mailing list
by sending an e-mail to epona@epona.org.
+307
View File
@@ -0,0 +1,307 @@
Anope -- a set of IRC services for IRC networks
===============================================
Anope is 2003-2004 Anope Team <info@anope.org>
Based on Epona 2000-2002 PegSoft <epona@pegsoft.net>.
Based on Services 1996-1999 Andrew Church <achurch@dragonfire.net>.
This program is free but copyrighted software; see the file COPYING 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 Services may be found at http://www.ircservices.za.net/
TABLE OF CONTENTS
-----------------
1. Credits
2. Presentation
3. Installation
4. Command line options
5. Messages translation
6. Contact and mailing list
1. CREDITS
----------
Anope is based on Lara's Epona version 1.4.14.
Epona is based on Andy Church's IRC Services version 4.3.3.
The original credits:
Mauritz Antunes -- Portuguese translation
Jose R. Holzmann, Raul S. Villarreal -- Spanish translation
Andrew Kempe <theshadow@shadowfire.org> -- news system
<d.duca@eurcom.net> -- Italian translation
<mikado@holyfire.com> -- Turkish translation
Andrew Kempe <theshadow@shadowfire.org> -- session limiting
Epona credits:
lara <lara@pegsoft.net> -- Main coding
CafeiN <oytuny@yahoo.com> -- Turkish translation
Sylvain Cresto aka tost <scresto@netsante.fr> -- FreeBSD 5 patch
Marcelo Conde Foscarini aka Bras <ircadmin@brmarket.net> -- Portuguese translation
Alvaro Toledo aka POLLITO <atoledo@keldon.org> -- Spanish translation
chemical <chemical@musicplay.de> -- German translation
shine <dh@shinewelt.de> -- German translation
Guven Guzelbey aka MeShGuL <guzelbey@cs.utk.edu> -- Turkish translation
Jordi Pujol <jordi.pujol@aujac.org> -- Catalan translation
Eva Dachs <evadachs@terra.es> -- Catalan translation
Toni Perez <toni.perez@aujac.org> -- Catalan translation
Sergios Karalis <sergios_k@hotmail.com> -- Greek translation
Thomas J. Stensas aka ShadowMaster <shadowmaster@shadow-realm.org> -- Ultimate 3.x support
Anope credits:
Adam Kramer <ribosome@anope.org>
Alvaro Toledo <atoledo@keldon.org>
Björn Stiddien <keeper@anope.org>
Daniel Engel <dane@zero.org>
David <dv@diboo.net>
David Narayan <jester@phrixus.net>
David Robson <rob@anope.org>
Daniele Nicolucci <jollino@sogno.net>
Florian Schulze <certus@anope.org>
JH <jh@irc-chat.net>
Joris Vink <joris@anope.org>
Lucas Nussbaum <lucas@lucas-nussbaum.net>
Thomas Juberg Stensås <ShadowMaster@Shadow-Realm.org>
Trystan .S Lee <trystan@anope.org>
openglx <openglx@brasnerd.com.br>
Anope Translations:
GeniousDex (nl.l)
Oleg Nikolaev aka Isot <isot@complife.ru> (ru.l)
Stuff <the.stuff@gmx.de> (de.l)
DrStein (es.l)
2. PRESENTATION
---------------
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 privilegied 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 deamons supporting ip cloaking, such as UnrealIRCd and
UltimateIRCd.
* HelpServ, a skeleton service used to serve help files.
Anope currently works with:
- DreamForge 4.6.7
- Bahamut 1.4.27 or later
- UnrealIRCd 3.1.1 or later (including 3.2)
- UltimateIRCd 2.8.2 or later (including 3.0.0)
- ViagraIRCd 1.3 or later
- Hybrid 7 or later
- PTlink 6.15 or later
Anope could also work with some of the deamons derivated by the ones
listed above.
3. INSTALLATION
---------------
See the INSTALL file.
4. 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
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).
5. MESSAGES TRANSLATIONS
------------------------
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 eleven languages: Catalan, Dutch, English,
French, German, Greek, Italian, 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 favourite 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 dev@anope.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!... ;)
6. CONTACT
---------------------------
* For announcements and discussions about Anope, please visit our Portal
and Forums at http://www.anope.org/ make sure you register yourself and
your netowrk 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 on our
website (http://www.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. :)
* We do *not* support Windows versions of Anope. You must seek support from
the website you downloaded the Windows port from. Anope Services was never
meant to run on Windows... it might in the future, but for the time being
you are on your own. And for Mac fans... Anope runs like a champ on OSX.