On 2008.12.18 at 16:38:54 +0200, Aleksey Cheusov wrote: > Это понятно. То, что софт с вашим openssl нужно пересобирать я и не > ставил под сомнение. Разьве есть на свете "сборщики пакетов", которые > не умеют пересобирать приложения, если указано, что изменился API > базовой библиотеки? А если есть, имеют ли они право так называться?
API - НЕ ИЗМЕНИЛСЯ. Измениля ABI. Если изменяетя API, то исходники редактировать надо. Вот для Apache API изменился, потому что то API, которое он использует - ни разу не I (в смысле интерфейс), а внутренние недокументированные потроха. А для честных программ, которые используют документированный API (ну плюс тот API, который разработчики OpenSSL должны бы были документировать, но забыли), API не изменился. Другое дело что когда-то давно, в OpenSSL 0.9.7 (а при переходе от 0.9.6 к 0.9.7 и от 0.9.7 к 0.9.8 API действительно менялся) в API появилась функция, позволяющая отконфигурировать библиотеку. И в man на эту функцию категорически рекомендуется её использовать. Но вот авторы приложений про это в большинстве своем забывают. Или забивают, считая, что то, что было хорошо во времена OpenSSL 0.9.6 (в прошлом веке), сгодится и сейчас. Кроме того, есть алгоритм-специфичные API и универсальные API, которые работают с тем алгоритмом, ключ от которого дали. И многие авторы приложений почему-то думают, что алгоритмов с открытым ключом кроме RSA не бывает (а я скорее склонен считать, что если программа может не использовать RSA, его не надо использовать, ибо взломают его со дня на день). И используют алгоритм-специфичный API. Собственно наши патчи к приложениям в массе своей именно эти вещи и правят. Единственное место, где МЫ меняем API - это добавление возможности работать с MAC-алгоритмами, отличными от HMAC. Тут уже разработчики OpenSSL не подумали что на свете есть несколько больше алгоритмов чем один HMAC, и людям они могут понадобиться (у некоторых даже в качестве государственного стандарта принят именно такой алгоритм). Что характерно, та бинарная несовместимось которая у нас есть, как правило, дальше одного уровня динамической линковки не идет. Если, скажем, пересобрать с нашим OpenSSL libldap, то она будет прекрасно работать с любым родным debian-овским пакетом, её испольующим, если только он не тащит за собой родную openssl непосредственно. Вот две openssl подгруженные в один бинарник - точно подерутся. Поэтому apache-1.3 мы не пересобирали. Пересобрали libapache-mod-ssl и этого достаточно. Вот с 2.2 этот номер не проходит. Там mod_ssl - часть самого apache а не сторонний модуль. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

