[Tartarus] Tartarus Samba libraries

Evgeny Sinelnikov sin на etersoft.ru
Чт Июл 9 23:58:20 MSD 2009


Здравствуйте,

хочу прояснить некоторые соображения по поводу текущих задач проекта Tartarus.

На текущий момент, самым слабым звеном на клиентах является довольно
разбросанный и несогласованный набор модулей клиентской поддержки. С
некоторых пор я обнаружил, что большая часть моих чаяний и надежд в
этом направлении, уже развивается в проекте SSSD -
https://fedoraproject.org/wiki/Features/SSSD
который ведётся в рамках проекта FreeIPA (http://freeipa.org/).

Подробное описание архитектуры клиентской поддержки FreeIPA,
представленное на странице
http://freeipa.org/page/IPA_Client_Design_Overview
на деле представляет собой подробное описание проекта SSSD.

Примечательным и полезным качеством SSSD, для проекта Tartarus,
является его модульность и независимость от FreeIPA. Я полагаю, что
этот момент позволит сблизить архитектурно различные подходы,
используемые в Tartarus и FreeIPA, путём использования и развития
общего клиентского кода.

Всё было бы замечательно, если бы не несколько осложняющих моментов. А
именно. SSSD использует три базовых библиотеки из проекта Samba:
libtalloc - библиотека управления памятью;
libtevent - библиотека управления циклом обработки сообщений;
libtdb - библиотека миниатюрной базы данных.

Проблема с этими библиотеками состоит в том, что они привязаны к
разным версиям Samba и при одинаковом API имеют различное ABI.

Моё недавнее пожелание собрать Samba4 совместно с последними версиями
нужных библиотек привело к довольно яркому флейму:
http://lists.altlinux.org/pipermail/devel/2009-May/170971.html
и разногласиям с текущим мейнтейнером Samba.

Суть разногласий свелась, в итоге, к несущественным моментам...
Существенным же было то, что во избежание конфликтов необходимо
держать отдельные версии библиотек для samba3 и samba4. Поскольку эта
задача оказалась трудоёмкой, а вопрос из-за которого возникли
разногласия упёрся в особенности новых выпусков Samba, я решил
подождать выхода нового релиза Samba-3.4.

Этот выпуск знаменует публичный выход прошлогоднего плана,
осуществляющего сращивание исходников Samba3 и Samba4. Этот проект
называется Франкинштейн:
http://wiki.samba.org/index.php/Franky

Возвращаясь к вопросу о сборке Samba хочу отметить, что за последнее
время успело произойти:
- вышла Samba-4.0.0alpha8
- вышла Samba-3.4.0 вместе с которой можно собрать код samba4, но
который совсем не соответствует коду выпуска Samba-4.0.0alpha8

На текущий момент мне известно о различных сборках samba4, но,
поскольку SSSD ведут в Fedora, я бы полагался на их вариант сборки. А
в их варианте тоже произошли изменения:
- libtalloc и libtdb собраны отдельно от пакетов Samba и взяты из Samba4-alpha8
- Обе сборки (samba3 и samba4) слинкованы с одной внешними
libtalloc.so.1 и libtdb.so.1

Примечательно здесь и то, что в последний месяц, как вероятно и ранее,
было много обсуждений на тему совместимости библиотек:
http://lists.samba.org/archive/samba-technical/2009-July/thread.html
Довольно интересным оказалось для меня недавнее обсуждение, в котором
явно прослеживаются терния вокруг версионирования библиотек, и где
участник из RedHat (Simo Sorce), который в поддерживает в Fedora пакет
samba4 и ведёт, интересующий нас SSSD дискутирует по этому поводу с
главным разработчиком Samba (Andrew Tridgell):
"the sorry saga of the talloc soname 'fix'"
http://lists.samba.org/archive/samba-technical/2009-July/065573.html

Суть их спора сводится к тому? как правильнее вести версионирование с
помощью стандартных "soname bump" или новомодных GNU GCC "Symbol
Versioning".

Подытоживая, хочу указать на то, что дальнейшее развитие Tartarus
будет так или иначе связано с этими проектами. Сейчас я решаю в каком
виде стоит начать с ними взаимодействие, чтобы в наименьшие сроки
получить хоть какой-то готовый вариант, использующий наработки,
дублировать разработку которых просто бессмысленно.

Готов обсудить предложения, если у кого-нибудь они возникли.

-- 
Sin (Sinelnikov Evgeny)


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