Frequently Asked Questions (FAQ) concerning Anope
------------------------------------------------

NOTE: 
An updated version of this FAQ can be found on our website: www.anope.org

Table of Contents
-----------------

1) General
    1.1) What is Anope?
    1.2) Where can I find Anope?
    1.3) Does Anope run under Windows?
    1.4) Can I send you questions without reading the FAQ, INSTALL or README
         files?
    1.5) I need support for the XYZ protocol.
    1.6) Your Services program doesn't do XYZ like DALnet (or other) Services.
         What's wrong?
    1.7) I've got a great new idea for Services.  Do you want it?
    1.8) 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:
    1.9) Can you help me?
    1.10) Where is RootServ?

2) Installation / Configuration
    2.1) When I run "make", I get an error message like "missing separator",
         "Unassociated shell command", "Unexpected end of line seen", etc.
    2.2) I get an error like "Makefile.inc not found".
    2.3) I typed "./services" at the command line, but nothing happened!
    2.4) 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: ...".
    2.5) 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?
    2.6) When I say "/connect services.*", it doesn't work!
    2.7) Anope starts up okay, but if I try to register a nickname, it comes
         back with "Sorry, registration failed."
    2.8) Anope reports (via /stats u or /msg OperServ STATS) a different number
         of users online than I get from doing /lusers.

3) OperServ
    3.1) Using the OperServ JUPE command results in server messages like 
         "Server juped.server introduced by non-hub server services.my.net".
    3.2) I can't use the ADMIN command to add Services admins, it tells me
         "Permission denied."
    3.3) When I add an AKILL, the users matching it don't get killed.
    3.4) 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.
    3.5) When I used the OperServ RAW command, Anope and/or my network crashed,
         or did weird things! Please fix this bug!
    3.6) I would like to have the list of the different RAW on OperServ.
    3.7) I can't get /OS UMODES and /OS SVSNICK to work!
    3.8) What is a Super-Admin? How does it work? Why might it not work?
    3.9) How can i enable the OperServ RAW command?

4) Bugs / Crashes
    4.1) Anope always dies after about five minutes, saying "FATAL ERROR! Can't
         back up nick.db".
    4.2) Anope crashed with a segmentation fault.
    4.3) I've found a bug that's not mentioned here or in the README or BUGS
         files.  What should I do?
    4.4) My FreeBSD box complains about 'Shared object "nss_dns.so.1" not
         found'
    4.5) Anope and long (more then 30 character) nicknames.

5) ChanServ
    5.1) 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.
    5.2) Anope ignored the SET SUCCESSOR setting and deleted a channel when the
         founder expired.
    5.3) How to auto voice all those whom join my #channel?
    5.4) Channel options like RESTRICTED or SECUREOPS don't work. What's wrong?

6) BotServ
    6.1) How do I add bots to BotServ?
    6.2) Why do kick triggers and fantasy commands fail to work with my Bahamut
         IRCd?

7) Language
    7.1) Anope complains in the logfile about being unable to load the default
         language.
    7.2) Anope spricht kein Deutsch!, etc. (Anope doesn't speak my language!)
    7.3) I selected a language other than English, but sometimes Anope sends
         responses in English instead.

8) DevNull
    8.1) What is the purpose of DevNull?

-------------------------------------------------------------------------------

1) General

1.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
    :)

1.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://www.anope.org/ in the
    main page.

1.3) Does Anope run under Windows?

    Yes. For more information on how to obtain the windows version of Anope
    visit http://wiki.anope.org/Windows

1.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.

1.5) I need support for the XYZ protocol.

    Since Anope 1.7.9, support for other IRCD's, and thus protocols, has been
    made modular. More information on making a support file for your favorite
    IRCD can be found in the docs/IRCD file.

1.6) 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.

1.7) 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 question 1.8 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 on our online Forum, in the Feature
    Requests section.

1.8) 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.

1.9) Can you help me?

    No, we can't help you unless you tell us what you need help with.

1.10) Where is RootServ?

    Anope does not supply RootServ. All functions you would find in RootServ
    have been integrated into OperServ. If you really want to use RootServ, you
    can set the OperServAlias in services.conf to be RootServ. This will enable
    the RootServ nick to be used for OperServ as well. Read the comments near
    OperServAlias in the configuration file for more information.


2) Installation / Configuration

2.1) 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.

2.2) I get an error like "Makefile.inc not found".

    You forgot to run the Config script first.  See the INSTALL file for
    compilation instructions.

2.3) 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 in the
    configuration file.  (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 we 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. You can also start services with the -nofork command line option
    to prevent it from running in the background, and it will output the
    messages written to the log file to the console as well.

2.4) 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 section 3 of the INSTALL file.

2.5) 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.

2.6) When I say "/connect services.*", it doesn't work!

    Of course not.  RTFM (Read The Fine Manual), and see the previous answer.

2.7) 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 2.4 for details.

2.8) 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, while the IRC server does.


3) OperServ

3.1) 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

3.2) 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. Also, you must be
    a global IRC Operator and your nickname must be registered and properly
    indentified with NickServ.

3.3) When I add an AKILL, the users matching it don't get killed.

    Use the AkillOnAdd configuration directive.

3.4) 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 a global oper (i.e. user mode +o) to access OperServ. This
    can be configured via the OSOpersOnly directive in services.conf .

3.5) 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.

3.6) I would like to have the list of the different RAW on OperServ.

    If you have to ask, you should not be messing with RAW :)

3.7) I can't get /OS UMODES and /OS SVSNICK to work!

    You need to be a SuperAdmin to be able to use these commands.

3.8) 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 Roots. It is set using OperServ and is not persistent. It only
    works if SuperAdmin is not commented in the services configuration file.
    This is commented by default. Read /msg OperServ HELP SET SUPERADMIN for
    further help.

3.9) How can i enable the OperServ RAW command?

    Enabling the OperServ RAW command is VERY dangerous and should never be
    done on a real network without thinking about it very well first. The RAW
    command can easily break your whole network if used incorrectly, and thus
    you will receive NO SUPPORT if you enable RAW on your network.
    
    Before you enable RAW, be very sure you really want to enable it, and keep
    in mind that you will NOT BE ABLE to receive ANY SUPPORT anymore, because
    Anope's stability cannot be guaranteed if RAW is enabled.
    
    The RAW command comes bundled as a core module for operserv. To load it,
    add the os_raw module to the list of OperServ core modules. But be sure to
    keep in mind that when you enable the RAW command, you CANNOT GET ANY
    SUPPORT for Anope anymore.


4) Bugs / Crashes

4.1) 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 Config 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.

4.2) 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.

4.3) 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.

4.4) My FreeBSD box complains about 'Shared object "nss_dns.so.1" not found'

    We haven't figured out the exact cause yet, but as a quickfix you can
    delete the /etc/nsswitch.conf file. Please keep in mind that removing a
    configuration file can be dangerous, so only do this if you know what you
    are doing.

4.5) Anope and long (more then 30 character) nicknames.

    By default anope only supports nicknames up to 30 characters (NICKLEN=30).
    If your IRCd allows for longer nicknames or has been modified to do so 
    anope will start logging a lot of ("NICK from nonexistent nick") messages.
    This is because once a user uses a nick that is too long for anope to handle, 
    anope loses track of the user for the remainder of the session.
    It is POSSIBLE but not NOT RECOMMENDED to extend the maximum length of nicknames
    anope can track, however this will also break database compatibility. DBs saved
    with anope set to allow for example 40 chars cannot be read by a default anope
    and vice versa. So changing the maximum nick length is only possible
    when starting with fresh databases and even then the consequences of this are
    UNTESTED.
    In order to change the maximum internal nick length, change the NICKMAX setting
    in include/config.h, recompile anope and start without databases.


5) ChanServ

5.1) 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 server on your network has a U: line for Services in
    ircd.conf, for example:
    
        U:services.whatever.net:*:*

5.2) 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).

5.3) How to auto voice all those whom join my #channel?

    Execute the following commands (/cs is an alias for /msg ChanServ):
    
        /cs set #channel secure off
        /cs set #channel xop off
        /cs levels #channel set AUTOVOICE -1

5.4) Channel options like RESTRICTED or SECUREOPS don't work. What's wrong?

    Make sure that you didn't put any of your normal IRCd's as a ULined server
    in Anope. Some access checks for clients from ULined servers are skipped to
    avoid fights between the ULined servers. This is usually only useful when
    you have a statistics server connected to your network.


6) BotServ

6.1) How do I add bots to BotServ?

    Read /msg BotServ HELP and /msg BotServ HELP BOT. Note that you need to be
    opered up and identified as a Services Administrator before you can use the
    BOT command.

6.2) Why do kick triggers and fantasy commands fail to work with my Bahamut
     IRCd?

    Bahamut allows you to setup a server as 'serviceshub'. This will filter
    certain data services usually don't need to process. This option also
    filters channel messages, because DALnet's services have no use for them.
    Anope parses the channel messages for kick triggers and fantasy commands.
    To make sure these work the server type of the hub they're linked to should
    be simply 'hub' and not 'serviceshub'.


7) Language

7.1) Anope complains in the logfile about being unable to load the default
     language.

    You forgot to run "make install".

7.2) Anope spricht kein Deutsch!, etc. (Anope doesn't speak my language!)

    See section 5 of the README file.

7.3) 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.


8) DevNull

8.1) What is the purpose of DevNull?

    DevNull functions as a message sink. Any message sent to it will be
    ignored. It will not be logged, there will be no response. It will be lost
    forever. Whether it's useful or not is up to you; we just provide you with
    the option.
