[Tartarus] Портирование tartarus на Debian
Boris Savelev
=?iso-8859-1?q?boris_=CE=C1_etersoft=2Eru?=
Чт Июн 11 17:46:09 MSD 2009
11 июня 2009 г. 16:35 пользователь Evgeny Sinelnikov (sin на etersoft.ru) написал:
> 11 июня 2009 г. 15:33 пользователь Boris Savelev <boris на etersoft.ru> написал:
>> 11 июня 2009 г. 15:19 пользователь Evgeny Sinelnikov (sin на etersoft.ru) написал:
>>> 11 июня 2009 г. 14:33 пользователь Boris Savelev <boris на etersoft.ru> написал:
>>>>>> В Ubuntu (8.10,9.04) тоже самое.
>>>>>> Расскажи как эта проблема решилась для 4.1. Вы собрали только
>>>>>> libssl+libcrypto+dev или же там полноценный форк openssl?
>>>>>
>>>>> Всё просто - достаточно добавить ключ сборки with-krb5-flavor=MIT. У
>>>>> нас это выглядит так:
>>>>> ./Configure shared -DSSL_ALLOW_ADH --prefix=%prefix \
>>>>> openssldir=%openssldir \
>>>>> enginesdir=%_libdir/openssl/engines \
>>>>> %if_with krb
>>>>> with-krb5-flavor=MIT \
>>>>> with-krb5-dir=%prefix \
>>>>> %endif
>>>>> #
>>>>>
>>>>>> Как решать вопрос с конфликтами?
>>>>>
>>>>> Конфликтов быть не должно. Откуда им взяться... Будет дополнительная
>>>>> зависимость у libssl на libkrb5, причём циклическая, ибо pkinit в krb5
>>>>> использует libcrypto. Для решения этой проблемы libcrypto у нас
>>>>> вынесен из libssl в отдельный подпакет.
>>>>>
>>>>
>>>> Стоп-) в 4.1 пакеты собраны с libssl без kerberos. если им просто
>>>> подложить libssl с krb5 то они скорее всего упадут, т.к. ABI у них
>>>> получается действительно разный. Стало быть появляется пакет с libssl
>>>> собранный с krb5 с либой с другим soname нежели изначально был у
>>>> libssl в 4.1. Кроме этого появляется явный конфликт по devel пакетам у
>>>> новой libssl c krb5 и старой libssl. Да? Или нет?-)
>>>
>>> Нет. Всё не так.
>>>
>>> Мы не собираем новую версию libssl7, как раньше... ABI не меняется. Мы
>>> пересобирем libssl6 с дополнительной опцией. С чего, при этом ABI,
>>> должно поменяться? В чём должен отличаться ABI в сборках libssl с
>>> kerberos от libssl без kerberos?
>>
>> Хохо. И оно так работает? При сборке с krb5 меняются структуры.
>
> Вот так вот... А ведь даже работает ;)
>
>> например -- http://git.altlinux.org/people/sin/packages/?p=openssl.git;a=blob;f=openssl/ssl/ssl.h;h=ff8a128d3c2d76df900faf9fd07af47df4e201b4;hb=HEAD#l420
>> я не силен в С, но думаю это изменение ABI важнее добавившихся функций.
>>
>
> Выглядит это жутко, и на ABI, конечно, влияет. Всё вывалится на
> доступе к данным этой структуры ssl_session_st. Клиентам хоть и
> возвращается ссылка, а число полей роль уже другое, а соответственно и
> смещения другие.
>
> Проблема появится и при обратной ситуации, когда клиент попытается
> обратиться к полям это структуры...
>
> Как я это умудрился просмотреть... :(
>
>> Не думаю что все приложения с честью это перенесут и не упадут... даже
>
> Ну, не все и не сразу... В общем, да... нужна полная пересборка...
> Альты и федора для этого готовы... Для Debian, придётся писать модуль
> krb для Ice. Давно пора... Боюсь с openssl там нам быстро не
> пробиться...
>
>> если это и так, такая халява в дебиане вряд ли пройдет. придется
>
> Ну, да... тут доказывать что-то сложно и вряд ли нужно... Проще модуль
> всё-таки начать писать...
>
>> потратить значительное время чтобы убедить что это действительно
>> никого не коснется.
>
> Это сложный процесс... Я его уже один раз проходил...
>
> Итого, пока не будет готов модуль krb для Ice в Ubuntu и Debian можно
> не соваться... Но можно попытаться как-то форсировать включение опции
> KRB5 для openssl, но это, я думаю, сложнее, чем модуль написать... Да
> и пользы от модуля больше будет.
Есть идея сделать-таки форк openssl в дебиане.
--
Boris
Подробная информация о списке рассылки Tartarus