[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