# jabberd2
Jabber Open Source Server (2.x)

[![Build Status](https://travis-ci.org/jabberd2/jabberd2.svg?branch=master)](https://travis-ci.org/jabberd2/jabberd2)
[![Coverity Scan Build Status](https://scan.coverity.com/projects/8550/badge.svg)](https://scan.coverity.com/projects/jabberd)
[![Join the chat at Gitter](https://badges.gitter.im/jabberd2/jabberd2.svg)](https://gitter.im/jabberd2/jabberd2?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Flattr this](https://button.flattr.com/flattr-badge-large.png)](https://flattr.com/submit/auto?fid=8n22qr&url=https%3A%2F%2Fgithub.com%2Fjabberd2%2Fjabberd2)

Thanks for downloading jabberd2. Below are some basic instructions to
get you started. Complete documentation is available at http://jabberd2.org/

-- the jabberd team


## Required packages:

 - expat - XML parsing libraries
     http://expat.sourceforge.net/
 - GnuSASL (1.1 or higher) - Simple Authentication and Security Layer library
     http://www.gnu.org/software/gsasl/
 - UDNS - asynchronous DNS resolver library
     http://www.corpit.ru/mjt/udns.html

### Optional packages:

 - GNU Libidn (0.3.0 or higher) - needed for JID canonicalisation
     http://www.gnu.org/software/libidn/
 - OpenSSL (0.9.6b or higher) - needed for SSL/TLS support
     http://www.openssl.org/news/
 - zlib (1.2.3 or higher) - needed for stream compression
     http://www.zlib.net/
 - Berkeley DB (4.1.24 or higher)
     http://www.sleepycat.com/download/
 - OpenLDAP (2.1.0 or higher)
     http://www.openldap.org/software/download/
 - PostgresSQL (8.0 or higher; development libraries and headers)
     http://www.postgresql.org/
 - MySQL (5.0 or higher; development libraries and headers)
     http://www.mysql.com/
 - PAM
     http://www.linux-pam.org/  (for Linux)
 - SQLite (3.0 or higher)
     http://www.sqlite.org/
 - http-parser
     http://github.com/nodejs/http-parser


## Build:

    % ./configure
    % make
    % make install

### Options to ./configure:

    % ./configure --help
    [...]


## Configure:

  Edit $prefix/etc/(router|sm|c2s|s2s).xml to taste. In
  particular, make sure you setup for your choice of data storage
  correctly. If you're using the Berkeley DB backend, you'll need to
  create /var/run/jabberd and sets its permissions so that the server
  processes can find it.
  
  If you're using a SQL backend, you'll need to create an account for
  the server to use, and create the tables. Load db-setup.mysql or
  db-setup.pgsql from the tools/ directory into your database to do
  this.

  If you plan to use the jabberd wrapper script, make sure you look at
  the paths in the $prefix/etc/jabber/jabberd.cfg.


## Run:

  You can either run all of the pieces separately:

    % $prefix/bin/router &
    % $prefix/bin/s2s &
    % $prefix/bin/sm &
    % $prefix/bin/c2s &

  Or you can run them all from the jabberd wrapper script:

    % $prefix/jabberd &

  All the processes can take the following switches:

    -c use an alternate config file
    -D output lots of debugging info (if compiled with --enable-debug)


## Upgrade:

  Please see NEWS file.


## Support:

- Webpage: http://jabberd2.org/
- Mailinglist: jabberd2@lists.xiaoka.com
  (Subscribe by sending mail to jabberd2-subscribe@lists.xiaoka.com)

When requesting assistance, please note that the following things can
provide useful information which may assist with finding your problem:

 - debug logs (compile with --enable-debug and run with -D)
 - running components seperately (ie without the wrapper script)
 - config.log

Please try to provide as much relevant information as possible when
reporting problems - it will make helping you much easier.


## Copyright & License:
  
    jabberd - Jabber Open Source Server
    Copyright (c) 2002-2012 Jeremie Miller, Thomas Muldowney,
                            Ryan Eatmon, Robert Norris, Tomasz Sterna.
  
    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., 59 Temple Place, Suite 330, Boston, MA02111-1307USA
  
    As a special exception, the authors give permission to link this
    program with the OpenSSL library and distribute the resulting binary.


 subst/snprintf.c and util/base64.c were originally taken from the
 Apache web server project.
   Originally copyright (c) 1995-2003 Apache Software Foundation.
 
 util/md5.c was taken from Ghostscript.
   Originally copyright (c) 1999-2002 Aladdin Enterprises.
 
 util/sha1.c was taken from Mozilla.
   Originally copyright (c) 1995-1999 Cryptography Research, Inc.
 
 subst/getopt.[ch] was taken from GNU Libc.
   Originally copyright (c) 1987-1993 Free Software Foundation, Inc.
 
 subst/gettimeofday.c was taken from PostgreSQL.
   Originally copyright (c) 2003 SRA, Inc. & SKC, Inc.
 
 subst/syslog.[ch] was taken from Bind.
   Originally copyright (c) 2001 Internet Software Consortium.
 
 subst/inet_aton.c
   Originally copyright (c) 1995-1997 Kungliga Teniska Hogskolan
 
 subst/ip6_misc.h
   Originally copyright (c) 1993,1994,1997 The Regents of the University of California.
 
 subst/dirent.[ch]
   Originally copyright (c) 1997,2003 Kevlin Henney.
