[devel] Nettle 4
Mikhail Efremov
sem на altlinux.org
Чт Авг 20 13:16:16 MSK 2026
Hello!
Nettle 4.0 вышла еще в феврале, в ней изменился ABI (soname bump), и,
что самое главное, API.
Summary по изменению API от ИИ:
1. Функции хэширования:
Функции *_digest больше не принимают желаемый
размер дайджеста (digest size) в качестве аргумента.
2. Удаление старых интерфейсов AES:
Окончательно удален старый struct aes_ctx и все функции для работы с
ним (вместо него следует использовать фиксированные размеры ключей
вроде struct aes256_ctx, появившиеся еще в ветке v3).
3. Изменения в SHA-3:
Все варианты SHA-3 теперь используют единый struct sha3_ctx и функцию
sha3_init (старые специфичные имена оставлены как макросы препроцессора
для совместимости).
4. Очистка заголовков: Удален старый заголовочный файл
sha.h (нужно использовать sha1.h или sha2.h), а также целиком удален
устаревший и неполный модуль pgp.h.
5. Прочие удаления: Убран недокументированный struct nettle_armor,
функция base64_encode_group и устаревшие функции
_rsa_blind/_rsa_unblind.
Чаще всего проблемы вызывает первый пункт, но патч обычно тривиальный.
Я решил, что полгода достаточное время, чтобы апстримы
добавили поддержку и можно попробовать собрать nettle-4 в Сизиф.
С клиентами, которые к этому не готовы, ситуация следующая:
chrony rider
Фикс в апстримном git, поддержка должна быть в следующей версии.
curl rider ldv glebfm
Поддержка есть, но curl сейчас не пересобирается в Сизифе.
libdatachannel antohami @everybody
Поддержка в версии 0.24.5, нужно обновить.
mailfromd asy
Поддержки нет.
neatvnc aris
Фикс в апстримном git, поддержка должна быть в следующей версии.
ocaml-ocamlnet rider @everybody
Поддержки нет.
ocserv shaba @everybody
Поддержка в версии 1.5.0, нужно обновить.
octave-general manowar viy cas @everybody
Поддержка в версии 2.1.4, нужно обновить.
opendht lakostis nenderus oddity @everybody
Поддержка в версии 4.0.2, нужно обновить.
radcli shaba @everybody
Фикс в апстримном git, поддержка должна быть в следующей версии.
rdesktop shad @everybody
Поддержки нет.
rdfind @nobody
Поддержка в версии 1.8.0, нужно обновить.
sequoia-sqv tyaplyapych @everybody
Напрямую nettle не использует, скорее всего нужно обновить
vendored crates, возможно вместе с обновлением версии.
srt rider @everybody
Поддержки нет.
stoken cow @everybody
Поддержки нет.
tigervnc protvin rider @everybody
Фикс в апстримном git, поддержка должна быть в следующей версии.
unvanquished shad @everybody
Фикс в апстримном git, поддержка должна быть в следующей версии.
viking snk rider @everybody
Фикс в апстримном git, поддержка должна быть в следующей версии.
Вывод: собирать nettle-4 в Сизиф пока рано, ждем еще некоторое время.
Но перейти на nettle-4 на все равно будет нужно, как максимум до конца
года стоит это сделать.
Так что предлагаю готовиться уже сейчас, т.е. мантейнеров
пакетов, для которых есть фикс в новой версии, прошу эти пакеты
обновить. Мантейнерам же тех пакетов, для которых фикса нет, предлагаю
поискать патчи у коллег в других дистрибутивах.
P.S. Делать compat-библиотеку в данном случае плохая идея, т.к.
очень высока вероятность попадания двух версий библиотек в одно
адресное пространство, помню это по предыдущему смену soname у nettle.
В основном потому, что обычно клиенты libnettle слинкованы и с gnutls,
которая сама клиент nettle.
--
WBR, Mikhail Efremov
Подробная информация о списке рассылки Devel