[devel] I: Jabber policy, jabber-config, jabberd2

Mikhail Yakshin =?iso-8859-1?q?greycat_=CE=C1_altlinux=2Eorg?=
Чт Мар 15 18:57:11 MSK 2007


Приветствую всех!

В Сизиф 2 дня назад отправлены пакеты jabber-common и ejabberd, в 
которых реализована функциональность, которую условно можно назвать 
jabber-config. Подробнее ее идея описана в "Jabber policy", кратко 
сообщу детали ее реализации:

============================================================================

1. Есть пакет jabber-common, в котором есть:

* директории /usr/share/jabber/server, /usr/share/jabber/component
* скрипт "сделать-все-хорошо" /usr/sbin/jabber-config
* RPM-макросы /etc/rpm/macros.d/jabber, указывающие на эти директории и 
для вызова этого скрипта, сейчас такие вот:

%_jabber_server_dir %_datadir/jabber/server
%_jabber_component_dir %_datadir/jabber/component
%_jabber_config %_sbindir/jabber-config

2. Для каждого джаббер-сервера в Сизифе предлагается добавить следующие 
вещи:

* Req и BuildReq на jabber-common в спек
* вызов %_jabber_config в post-install
* написать маленький скрипт-адаптер, который бы лежал в 
%_jabber_server_dir/имя_сервера и который бы, будучи вызванный с 
параметрами --port=... --host=... --password=... регистрировал 
соответствующий компонент в конфиге сервера.

Пример есть в виде сервера ejabberd.

3. Для каждого джаббер-компонента в Сизифе предлагается добавить следующее:

* Req и BuildReq на jabber-common в спек
* вызов %_jabber_config в post-install
* скрипт-адаптер в %_jabber_component_dir/имя_компонента, который бы при 
вызовах с параметрами --port, --host, --password отдавал бы 
соответствующие значения из конфига компонента.

Пример скрипта для mrim есть в предыдущем письме:
http://lists.altlinux.org/pipermail/devel/2007-March/042616.html

============================================================================

Кроме этого, в процессе общения с новым мейнтейнером jabberd2, был 
выяснен следующий факт: по умолчанию, его роутер принимает соединения от 
всех компонентов на один порт - 5437, различая компоненты по хостнейму, 
которые они ему говорят, и паролю. ejabberd, кажется, умеет так же 
работать - слушая несколько возможных компонентов на 1 порте. jabberd1.4 
так точно не умеет работать. Wildfire - не знаю, не проверял.

Альтернативы, которые у нас есть - либо:
1) паковать все компоненты на 5437 порт, отбросить поддержку jabberd1.4;
2) паковать все компоненты на разные порты, сделать (возможно, запатчив) 
в jabberd2 поддержку прослушки;
3) хитро переделать всю систему в обратную сторону - чтобы порт 
передавался компоненту в зависимости от установленного сервера;

Вопрос: что кому больше нравится, нужна ли нам более универсальная 
система, которая бы поддерживала в том числе и jabberd1.4 и как обстоят 
дела с этим у Wildfire?

============================================================================

Предыдущие серии см. в
http://lists.altlinux.org/pipermail/devel/2007-March/042592.html
http://lists.altlinux.org/pipermail/devel/2007-March/042616.html

-- 
WBR, Mikhail Yakshin



Подробная информация о списке рассылки Devel