--- /dev/null
+The following people have contributed code to newserv:
+
+David Mansell <splidge@quakenet.org>
+Chris Porter <slug@quakenet.org>
+Paul <paul@quakenet.org>
+Gunnar Beutner <shroud@quakenet.org>
+Cruicky <cruicky@quakenet.org>
+froo <froo@quakenet.org>
+strutsi <strutsi@quakenet.org>
+wiebe <wiebe@quakenet.org>
+Ian Barker <brks@quakenet.org>
+Dan <dan@quakenet.org>
+Tim Gordon <quantumtim@quakenet.org>
+bdl <abdul@quakenet.org>
+meeb <meeb@quakenet.org>
+Zarjazz <zarjazz@quakenet.org>
+Henrik <henrik@quakenet.org>
+++ /dev/null
-newserv Installation
-~~~~~~~~~~~~~~~~~~~
-
-In order to install newserv you will have to run the configure script:
-
-$ ./configure
-
-The configure script will list any missing dependencies. If you're unsure why
-a certain library or header file was not found you can run the configure script
-with the -v option or check the .configure.log file after your first configure
-run.
-
-Please refer to the "Local Settings" section in this file if you're using
-non-standard library/header search paths. Once you've resolved all dependency
-issues you can build newserv:
-
-$ make
-
-This might take a while. After all modules are built you can install newserv:
-
-$ make install
-
-By default the newserv binary and the modules are installed into your source
-tree. The recommended setup is to now create a separate directory and symlink
-the "newserv" binary and the "modules" directory into it:
-
-$ cd
-$ mkdir newserv-install && cd newserv-install
-$ ln -s ../newserv-src/newserv
-$ ln -s ../newserv-src/modules
-
-You will also need to copy the newserv.conf.example configuration file to your
-installation directory and rename it to newserv.conf. The MODULES file has a
-list of available modules and their configuration settings.
-
-After you have updated your newserv.conf file you can start newserv:
-
-$ ./newserv
-
-newserv does not detach from the console. Consider running it in a
-screen(1) session.
-
-User Accounts
-~~~~~~~~~~~~
-
-You can create a user on your control instance using /msg N hello (where N is
-the nick of your control user). You need to be opered and authed in order to
-use this command.
-
-If your network does not have an authentication service that supports account
-IDs you can load the "auth" module. Note that this module lets opers set
-arbitrary account names and IDs and therefore should probably not be loaded on
-production networks.
-
-Once you have an account you should have a look at /msg N showcommands for a
-list of available commands.
-
-Local Settings
-~~~~~~~~~~~~~
-
-If you are using non-standard library/include paths you can create a file
-called configure.ini.local (using configure.ini.local.example as a template) to
-override some of the settings.
-
-Workspaces
-~~~~~~~~~
-
-If you're planning to write your own modules you might consider using
-workspaces.
-
-For this to work you will need to create a directory for your modules:
-
-$ mkdir custom
-
-Create a skeleton configure.ini in your new module directory:
-
-[modules]
-mymodule=
-
-And finally add your workspace to the workspaces.ini file:
-
-[workspaces]
-custom=
-
-You will need to re-run configure for it to pick up your new workspace and
-whatever modules you have in it.
-newserv is copyrighted by the individual authors who wrote it. It
-is licensed under the GNU General Public License version 2 and no
-later versions.
+Copyright (C) 2002-2013 David Mansell (splidge).
+Copyright (C) 2002-2013 QuakeNet development team.
+
+newserv is licensed under the GNU General Public License Version 2
+only (no later version).
This license applies to all files in the newserv distribution unless
-a file's license header says otherwise. This license also does not
-apply to files contained in the "quakenet" directory.
+a file's license header says otherwise.
A copy of the GNU General Public License version 2 follows below.
----------------------------------------------------------------------
newserv Modules
-~~~~~~~~~~~~~~
+===============
This is a brief overview of the newserv modules.
core
-~~~
+----
This is not actually a module. Instead, this is the code of the "newserv" binary
which provides minimal support for loading modules.
authext, bans, chanindex, channel, irc, nick, server
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+----------------------------------------------------
These modules provide basic support for accounts, channels, nicks and server
connections. Virtually all other modules depend on at least some of these
modules.
localuser
-~~~~~~~~
+---------
Implements functionality for creating local users that are "connected" to the
newserv instance.
control
-~~~~~~
+-------
Spawns the control user for your newserv instance. The control user provides
an IRC-based interface for newserv commands, e.g. to manage loaded modules
nick=N3
#ident=control
#hostname=your.hostname.here
-#realname=NewServ Control Service
+#realname=newserv Control Service
#authname=C
control_commands
-~~~~~~~~~~~~~~~
+----------------
Provides commonly-used oper commands.
control_management
-~~~~~~~~~~~~~~~~~
+------------------
Provides user management commands.
auth
-~~~
+----
Supports sending AC tokens. You should only use this module if you don't have
some other form of authentication service on your network (such as Q). This
module lets opers use arbitrary account names and IDs.
chanfix
-~~~~~~
+-------
Keeps track of channel ops and can be used to re-op opless channels.
chanserv
-~~~~~~~
+--------
This is QuakeNet's channel service (Q). In order to load this module you will
need also need to load the pqsql module.
pqsql
-~~~~
+-----
Provides support for PostgreSQL database queries.
password=changeme
dbapi2
-~~~~~
+------
Implements database functionality used by some other modules. In addition to
loading the dbapi2 module you will also need to load one of the database
provider modules: sqlite-dbapi2 or pqsql-dbapi2
fakeusers
-~~~~~~~~
+---------
Provides a way to spawn fake users.
glines
-~~~~~
+------
Implements gline commands and general gline functionality that is used by other
modules.
geoip
-~~~~
+-----
Provides geo-location services for other modules.
#db=GeoIP.dat
helpmod2
-~~~~~~~
+--------
This is QuakeNet's G service. It is primarily used on official support channels.
invalidbans
-~~~~~~~~~~
+-----------
This module automatically removes invalid IPv6 bans as these can desync channel
modes on snircd 1.3.4a.
jupe
-~~~
+----
Provides commands to set, list and remove jupes.
lua
-~~
+---
Provides support for Lua scripts. For an example of a fairly complex script
have a look at the labspace repository at http://hg.quakenet.org/lua-labspace/
lua/lib directory into it.
newsearch
-~~~~~~~~
+---------
Provides functionality to search for nicks and channels based on certain
criteria.
nickwatch
-~~~~~~~~
+---------
Implements event-based nicksearch queries.
miscreply
-~~~~~~~~
+---------
Implements rping and various other status query commands.
#admin3=No administrative info available
patrol
-~~~~~
+------
Implements functionality to spawn trojanscan swarm clones.
#minpoolhosts=5000
patricia, patricianick, patriciasearch
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+--------------------------------------
Implements finding nicks based on CIDR prefixes.
proxyscan
-~~~~~~~~
+---------
Does on-connect proxy scans and glines open proxies.
request
-~~~~~~
+-------
This is QuakeNet's channel service request bot (R).
#qserver=cserve.quakenet.org
serverlist
-~~~~~~~~~
+----------
Implements the serverlist command which shows various information about
connected servers (including their network latency).
settime
-~~~~~~
+-------
Provides commands to set the network time.
splitlist
-~~~~~~~~
+---------
Keeps track of servers that were lost during a netsplit. This module is used
by chanfix to determine when it shouldn't re-op users.
trojanscan
-~~~~~~~~~
+----------
Used to find and gline drones on the network.
trusts
-~~~~~
+------
Implements connection limits. Supports the TRUST protocol which is used
by quakenet-iauthd to determine whether to allow users to connect to the
than g:lines.
whowas, whowas_channels
-~~~~~~~~~~~~~~~~~~~~~~
+-----------------------
Keeps track of historical user records. Used by the glines module to chase
nicks and by newsearch.
were on.
xsb
-~~
+---
-Provides replication capabilities. Used by the trusts modules to sync
-trusts between newserv instances.
+Provides newserv<->newserv communication capabilities. Used by the trusts
+modules to sync trusts between newserv instances.
Configuration:
-
- _ _ _ _ _ _ _
- / \ / \ / \ / \ / \ / \ / \
- ( n )( e )( w )( s )( e )( r )( v )
- \_/ \_/ \_/ \_/ \_/ \_/ \_/
-
+Introduction
+============
newserv is a P10 protocol services daemon developed for the QuakeNet IRC
-Network since April 2002. It is modular, fast and easily customizable.
+Network.
-newserv is available for download and use under the GPLv2 open source license.
+It is modular, fast and easily customisable.
-The official website for newserv is http://dev.quakenet.org/
+The official website for newserv is https://www.quakenet.org/development
-Requirements
-~~~~~~~~~~~
-
-* IRC Server running the P10 Protocol. Full support for all modules may require
- use of QuakeNet's snircd IRC server [available from
- https://www.quakenet.org/development], which is based upon Undernet's IRCU
- server [http://coder-com.undernet.org/].
-
-* Please read the INSTALL file for build and installation instructions.
+Please refer to the LICENSE file for licensing details.
Features
-~~~~~~~
+========
* Role-based access checks for oper commands
-
* Search functionality
-
- * Lua integration
-
+ * Scripting (Lua)
* Proxy detection (P)
-
* Connection limits ("trusts")
-
* Transactional g:line support
-
* Jupes
-
* Chanfix
-
- * Chanserv (Q)
-
+ * Chanserv (Q9)
* Help Service (G)
-
* Channel Service Request (R)
-
* QA/Tutor Bots
-
* Server list with latency checks
+Requirements
+============
+
+* IRC Server running the P10 Protocol. Full support for all modules may require
+ use of QuakeNet's snircd IRC server [available from
+ https://www.quakenet.org/development], which is based upon Undernet's IRCU
+ server [http://coder-com.undernet.org/].
+* Linux system (BSDs may work, but not actively tested)
+* flex
+* bison
+* GNU Make
+* Python 2.4
+
Support & Development
-~~~~~~~~~~~~~~~~~~~~
+=====================
Please read the documentation provided before you ask us for support. You may
find some assistance in #dev on QuakeNet for specific questions.
If you've found any bugs or you're working on any cool new features please give
us a shout.
-License
-~~~~~~
+Installation
+============
+
+First run configure script:
+
+$ ./configure
+
+The configure script will list any missing dependencies. If you're unsure why
+a certain library or header file was not found you can run the configure script
+with the -v option or check the .configure.log file after your first configure
+run.
+
+Please refer to the "Local Settings" section in this file if you're using
+non-standard library/header search paths. Once you've resolved all dependency
+issues you can build newserv:
+
+$ make
+
+After all modules are built you can install newserv:
+
+$ make install
+
+By default the newserv binary and the modules are installed into your source
+tree. The recommended setup is to now create a separate directory and symlink
+the "newserv" binary and the "modules" directory into it:
+
+$ cd
+$ mkdir newserv-install && cd newserv-install
+$ ln -s ../newserv-src/newserv
+$ ln -s ../newserv-src/modules
+
+You will also need to copy the newserv.conf.example configuration file to your
+installation directory and rename it to newserv.conf. The MODULES file has a
+list of available modules and their configuration settings.
+
+After you have updated your newserv.conf file you can start newserv:
+
+$ ./newserv
+
+newserv does not detach from the console. Consider running it in a
+screen(1) session.
+
+User Accounts
+-------------
+
+You can create a user on your control instance using /msg N hello (where N is
+the nick of your control user). You need to be opered and authed in order to
+use this command.
+
+If your network does not have an authentication service that supports account
+IDs you can load the "auth" module. Note that this module lets opers set
+arbitrary account names and IDs and therefore should probably not be loaded on
+production networks.
+
+Once you have an account you should have a look at /msg N showcommands for a
+list of available commands.
+
+Local Settings
+--------------
-Please refer to the LICENSE file for details about the license.
+If you are using non-standard library/include paths you can create a file
+called configure.ini.local (using configure.ini.local.example as a template) to
+override some of the settings.