1 subscribers Search:
last edited 6 years ago by Will

Jabberd 2 FAQ

General

Client-Side Issues

Building and Installation

Database Specific

System Specific

General

Q. I've read the guide and the FAQ; however, I still have a question. Where can I search for answers?
A. There are several good sources for answers. The Jabber FAQ's cover general Jabber questions:

You can also try searching the Jadmin Archive for questions about jabber administration, or subscribe to the Jadmin Mailing List to post your own question. You may also want to check out Troubleshooting Tips for Jabberd 2.

Q. Where is the Jabberd 2 homepage?
A. Jabberd 2 Homepage

Q. There's a feature that I'd like to see included with Jabberd 2. Where should I post my suggestion?
A. You can post a feature request to Jabberd 2 Feature Requests

Q. I think I've found a bug in Jabberd 2. Where should I post this information?
A. If you are confident that you've found a bug, you can post it to the Jabberd 2 Bug List, or you can post a question to the Jabberd List.

Q. How does Jabberd 2 handle multiple domains?
A. You can add multiple ID's to the Client to Server (C2S) configuration; however, you have to setup individual instances of the session manager (SM) for each domain.

Q. When will components be available for Jabberd 2?
A: Existing components can all be made to work with Jabberd 2. Jabberd 2 does not have an internal component API, so shared object components are impossible.

Q. How do I get existing components to work with Jabberd 2?
A. "External" components (ie components that connect to a Jabber server over TCP using the "jabber:component:accept" protocol will work as-is. Simply configure the component to connect to the router using the port and secret specified in router.xml.

"Internal" or "library load" components that load at runtime into a jabberd 1.4 instance can be used by placing the 1.4 instance into "uplink" mode. An appropriate "linker" alias needs to be added to router.xml to support this.

Jabberd 2 does not provide XDB and logging facilities. For "internal" components, these can be provided by the enclosing jabberd 1.4 instance. For "external" components, they will need to connect to a 1.4 instance that provides these services, which in turn uplinks to the Jabberd 2 router.

Client-Side Issues

Q. I just created a user in the database. Why can't I login as the user I just created?
A. It is not enough to add users to the authreg table because this only introduces users to the c2s component, but not to the sm component. Correct entries are required in the active table as well. It is best to use a Jabber client to register users. If this is not acceptable, corresponding entries can be manually created in the active table, or the session manager can be configured to create new users automatically the first time they log in. Uncomment the auto-create tag in the User options section of sm.xml to enable auto-creation of new users. (Note that enabling auto-create does not enable inband registration, as only users that pass the c2s component are created.)

Building and Installation

Q. Why does configuration fail to find my MySQL installation?
A. The most common reason why Jabberd cannot find the MySQL libraries is that not all of the required libraries are installed. In addition to the basic MySQL installation, Jabberd requires that the development libraries and headers be installed. Either perform a Max installation as listed on the MySQL Downloads page, or install Server, Client Programs, Libraries and header files, and Dynamic client libraries separately.

Q. Where can I find packages (RPM's, Debian, etc.) for Jabberd 2?
A. Debian packages for Jabberd 2 are now available (see rpmseek.com). RPM's are not available at this time.

Q. When configuring Jabberd 2 stable 3, why does configure say it cannot find Libidn?
A. Starting with Jabberd 2 Stable 3, Libidn no long ships with the Jabberd 2 distribution. This is due to a licensing conflict. Users must install Libidn themselves. See Section 2.4.2 and Appendix 5.

Q. When configuring Jabberd 2 Stable 3, why can't configure find MySQL (or other package) that worked fine with a previous release?
A. The configure script and options have changed with Jabberd 2 stable 3. The --with-package=path has been replaced with --with-extra-include-path path and --with-extra-library-path path. The paths searched also changed with stable 3; therefore, it may be necessary to specify a path(s) to a package that was automatically found by a previous release. See Section 3.3.

Q. Why does Jabberd 2 stable 3 crash after a successful configure and build?
A. The configure script and options have changed with Jabberd 2 stable 3. The --enable-authreg=package and --enable-storage=package have been replaced with a simpler --enable-package option. Thus to enable MySQL for authreg and/or storage, one would use the option --enable-mysql. See Section 3.3. Because the configure script does not report invalid options, using an option such as --enable-authreg=mysql would cause neither the configure nor the build to crash; however, the MySQL driver would not be compiled in. If you then set the XML configuration files to use MySQL, Jabberd 2 would crash.

Database Specific

PostgreSQL

Q. Why do login and user-create fail on my installation using PostgreSQL?
A. In order for PostgreSQL to work with Jabberd 2, PostgreSQL must be setup to accept TCP/IP connections. Verify that PostgreSQL is listening on an inet socket (netstat -l |grep postgres). If not, modify postgresql.conf, setting tcpip_socket = true and restart. If problems still exist, check the pg_hba.conf file and check if TCP/IP connections are authorized (i.e. an appropriate host record exists).
Berkeley DB

Q. Why does ./configure fail to find my Berkeley DB installation?
A. The ./configure script searches several locations; however, if the script cannot find your Berkeley DB installation, you should specify the location as a parameter when running ./configure. For example, if you are running Berkeley DB version 4.2, you may need to run ./configure as below:
          ./configure --with-berkeley-db=/usr/local/BerkeleyDB.4.2/
MySQL

Q. When working in the MySQL console, why can't I query table names that are hyphenated?
A. In MySQL statements, you need to enclose hyphenated names with back ticks as shown below:
          select `collection-owner`, `object-sequence`, `jid`, `group` from `roster-groups`;

Q. I just installed Jabberd 2 stable 3. Why do I get errors stating that the database connection to MySQL failed?
A. Jabberd 2 stable 3 connects to the MySQL server socket at /tmp/mysql.sock. The default socket when installing MySQL from source is /var/lib/mysql/mysql.sock. You will need to create a symlink to /tmp/mysql.sock if it does not exist:
          ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock    

System Specific

Redhat

Q. On Redhat, why does ./configure fail to find MySQL?
A. The most likely reason for ./configure to fail on Redhat is that Redhat ships with a MySQL installation that does not include the development libraries required by Jabberd 2. See the MySQL question under Building and Installation above. The second reason that ./configure might fail is that Redhat stores the MySQL libraries and include files separately. Run ./configure with both paths (as below) to identify both locations:
          ./configure --with-mysql=/usr/include/mysql:/usr/lib/mysql

Q. On Redhat 9, why does the build crash after a successful configure?
A. The most likely reason for the build to crash on Redhat 9 is that RH 9 ships with its own version of Kerberos. The OpenSSL libraries are found when ./configure is run. However, Kerberos references cause the Jabberd 2 build to crash.

There is an easy work around for this problem. Execute the command below before running ./configure :

            export CFLAGS="-I/usr/kerberos/include"

Q. On Redhat, why does ./configure fail to find Berkeley DB even when I specify a path to it?
A. If ./configure cannot find Berkeley DB, it may be because libpthreads is not linked. Run ./configure as below to fix this:
          ./configure [options] LDFLAGS=-lpthread
Mandrake

Q. On Mandrake, why does ./configure fail with the error that mysql (or pgsql)cannot be found?
A. Either the database include files or library files cannot be found by ./configure. To fix this, run ./configure with the paths to both as below (replacing "mysql" with "pgsql" for PostgreSQL installations):
          ./configure --with-mysql=/usr/include/mysql:/usr/lib/mysql
Debian

Q. On a clean Debian install, why does ./configure fail to find MySQL?
A. On Debian, zlib must be installed.

View as PDF

Up

Comments about this Document


full simple minimal   UserOptions ChangeLog   loginhelp

© 2003 Will Kamishlian and Robert Norris

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Powered by Zope Valid HTML 4.01! Valid CSS! Creative Commons License