[devel] Упаковка openssl (was: Вопросы новичка)

Victor B. Wagner vitus на altlinux.org
Вт Май 5 15:31:10 MSD 2009


On 2009.05.05 at 14:46:26 +0400, Evgeny Sinelnikov wrote:

>    4 мая 2009 г. 19:00 пользователь Victor B. Wagner <[1]vitus на altlinux.org>
>    написал:
>    [...]
>       В Alt зачем-то openssldir указывает в /var. При этом конфигурационный
>       файл, как и положено, лежит в /etc, engines посредством более менее
>       глубокого хака в исходниках перетащены в /usr/lib, каталог
>       сертификатов пустой, даже при установленном пакете ca-certificates,
>       а вот скрипты - остались. Исполняемые файлы радостно инсталлируются в
>       /var. Зачем?
> 
>    Видимо, для следования FHS. Настройки кладутся в /etc, данные - в /var.

По-моему, FHS ни разу не одобряет исполняемых файлов в /var.
Опять же, пакет ca-certificates ставит свои данные в /usr/share.


>    lrwxrwxrwx 1 root root   48 Мар 30 12:56 cert.pem ->
>    ../../../usr/share/ca-certificates/ca-bundle.crt
>    drwxr-xr-x 2 root root 4096 Мар 30 12:56 certs
>    drwxr-xr-x 2 root root 4096 Мар 30 12:56 misc

Вот это самое misc, оно на самом деле такое bin. И в var ему не место.
Хотя по хорошему счету ему место в /usr/share/doc/<something>/examples

>    lrwxrwxrwx 1 root root   32 Мар 30 12:56 openssl.cnf ->
>    ../../../etc/openssl/openssl.cnf
>    drwx------ 2 root root 4096 Мар 27 20:35 private
> 
>    Но, в целом, идея проста - в /var/lib/ssl/ обычная свалка, как везде... А,

Похоже, что наиболее правильным с точки зрения FHS будет держать
openssldir в /etc Раз уж engines оттуда совсем оторвали.

Каталоги private и сerts сделать линками в /var/lib/ssl, а openssl.cnf
пусть прямо там лежит. 

>    Кстати, здесь же стоит отметить, что файл настроек
>    /etc/openssl/openssl.cnf
> 
>    Упакован, опять-таки по старому legacy (ибо я не придумал, как должно и
>    сделал как было), в два пакета libssl7 и libssl6, а ранее и в третьем
>    libssl4... По счастливому набору обстоятельств файлы идентичны и проблемы
>    вроде как не видно... Но тут, тоже стоит что-нибудь решить.

А вот теперь начнется. Потому что в файл openssl.cnf прописываются
подключенные engines. У старого openssl gost engine нету, а у нового -
есть.

Кстати, да. Каталог хешированных сертификатов между openssl 0.9.x и
openssl 1.0 несовместим. Они там алгоритм хэширования поменяли.
Так что, видимо, openssldir для 0.9.8 и 1.0 придется разносить.


 
>    отсутствие engines определимо и, на этапе загрузки, будет выглядеть как

Между "определимо" и "аккуратно обрабатывается конкретным приложением"
есть некоторая разница.

Впрочем функция OPENSSL_config вообще void и ничего вышележащему
приложению не рассказывает. Так что по идее приложению, которое честно
инициализирует  OpenSSL последовательностью 
OPENSSL_config(NULL)
SSL_library_init()
SSL_load_error_strings()
ничего не грозит.

> 
>    Смена soname у них прошла ещё в январе:
>    * Thu Jan 15 2009 Tomas Mraz <[2]tmraz на redhat.com> 0.9.8j-1
>    - new upstream version with necessary soname bump (#455753)

Ну, наверное в описании бага #455753 про причины написано.
> 
>    Я тогда не увидел особых изменений в ABI, но, видимо, они
>    перестраховались, а может я что-то пропустил...

Честно сказать не в курсе. После 0.9.8f от перехода на которую мы
отказались с в связи с большим объемом работы и сосредоточили все усилия
на 1.0 (тогда 0.9.9) я за веткой 0.9.8 не особенно следил.

> 
>    Да, кстати, стоит подумать какой soname будет у openssl-1.0.0 ...

Предлагаю 10. Тогда и заодно и сразу будет видно, что это 1.0.
Может, конечно, мы и промахнемся и когда fedora решит переходить на 1.0
они туда поставят 9. Но очевидно, что уже не 8.

Или можно оставить как в upstream - 1.0.0




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