Комментарии 15
Как-то раз столкнулся с этим, когда файл, зашифрованный openssl'ем на старой системе, не хотел расшифровываться на новой.
В гугле информация о несовместимости версий находится легко по словам вроде "openssl decrypt file encrypted on old version". Сложность в том, чтобы понять, что проблема из-за разницы версий OpenSSL.
Я понимаю, конечно, бесплатно — чего жаловаться.
Но вроде бы считается хорошим тоном менять API только в мажорных версиях…
Не у всех проектов циферки в версиях являются major.minor.patch в смысле semver. OpenSSL точно к semver не относится.
Только прошу не считать это рекламой POCO, сейчас я вряд ли бы стал с ней связываться.
Ещё и API они поломали, из-за чего старый софт требует изменения исходных кодов для сборки с новым OpenSSL. Работаю с Postgres, привык к 3-й версии PgAdmin'a, а он с новой версией OpenSSL не собирается.
Хорошо, что нашёлся патч для сборки с новым OpenSSL, он довольно большой, несколько сот изменённых строк. То же самое относится и к Qt 4 (хотя я его ставил без патча, просто отключив поддержку OpenSSL, мне она не нужна была).
Это одна из самых противных системных библиотек — часто ломается совместимость старых версий с новыми. Она вызывает больше всего проблем при переносе старых версий ПО на новые системы.
Когда добавляются новые, более правильные функции — это прекрасно.
Когда старые функции обьявляются как deprecated — это нормально.
Когда старые функции (не deprecated) начинают работать как-то не так — это плохо.
История одного «сломанного» тестового задания или осторожнее с версиями OpenSSL…