[jdev] Server independant transport packages (for package maintainers!)

Sander Devrieze s.devrieze at pandora.be
Tue Apr 5 06:32:57 CDT 2005


Last week I made three tutorials describing how to install the "old" Jabber 
transports in a way that they are compatible with *every* server 
implementation supporting gateways. Although it is focussed on ejabberd, it 
will be applicable to other server implementations too.

The biggest problem with the old transports is that they need some (not all) 
parts of jabberd 1.4.x. So, even if you are running a server like ejabberd, 
you need these parts. I know there is the Jabber Runtime Component 
( http://jabber.terrapin.com/JCR/ ), but the disadvantages of using this as a 
solution instead of using the native parts of jabberd14 are:
* a higher chance for bugs in JCR than just using native jabberd 1.4.x code
* you have not the newest jabberd 1.4.x code (which fixes bugs).

That's why I created these three tutorials (currently only tested with success 
under Debian):
http://ejabberd.jabber.ru/aim-transport (the old AIM/ICQ-Transport)
http://ejabberd.jabber.ru/yahoo-transport-2 (the old Yahoo-transport-2)
http://ejabberd.jabber.ru/msn-transport (the old MSN Transport)

P.S. In http://ejabberd.jabber.ru/tutorials-transports-privative you can find 
more tutorials and I am planning tutorials for jabber-gg-transport, ILE (I 
Love Email), and JIT. So, in case you are interested ;-)

So, how can package maintainers make there old jabberd14-only transports 
server independant?

They need to do only two things:

1) First, they need to split the jabberd14 package into two parts: 
"jabberd-base" which contains the library for xdb_file and the jabberd 
binary, and another package with the name "jabberd" which contains all other 
parts. The "jabberd" package should have a dependancy on "jabberd-base". The 
transport packages should also have a dependancy on "jabberd-base".

2) Second, they need to make the transport configuration files in the 
transport packages server independant (see examples in tutorials). Also they 
need to add separate init scripts for the transports. Eventually they can 
create an init script that calls all the scripts in /etc/init.d/jabber/ in 
one time. e.g.:

/etc/init.d/jabber-server (the script that calls all other scripts)
/etc/init.d/jabber-server-parts/ejabberd (or jabberd, or...)

As you can see this will make it very stream-lined, transparant, *and* easy to 
document! In the documentation you just need for example "apt-get install 
<choose a Jabber/XMPP server>", install the transports you want, and run 
"/etc/init.d/jabber-server start". As you can see, that will be server 
independant documentation! :O)

So, spread the word to your distributions package maintainers! :-)

Mvg, Sander Devrieze.

xmpp:sander at l4l.be ( http://jabber.tk/ )
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.jabber.org/pipermail/jdev/attachments/20050405/665a96ab/attachment-0002.pgp>

More information about the JDev mailing list