Выпуск пакетного менеджера RPM 4.16

После года разработки состоялся релиз пакетного менеджера RPM 4.16.0. Проект RPM4 развивается компанией Red Hat и используется в таких дистрибутивах, как RHEL (включая производные проекты CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen и многих других. Ранее независимой командой разработчиков развивался проект RPM5, который непосредственно не связан с RPM4 и в настоящее время заброшен (не обновлялся с 2010 года). Код проекта распространяется под лицензиями GPLv2 и LGPLv2.

Наиболее заметные улучшения в RPM 4.16:

  • Реализован новый бэкенд для хранения БД в СУБД SQLite. Данный бэкенд будет использован в Fedora Linux 33 вместо бэкенда на основе BerkeleyDB.
  • Реализован новый экспериментальный бэкенд для хранения БД в BDB (Oracle Berkeley DB), работающий в режиме только для чтения. Реализация написана с нуля и не использует код прошлого бэкенда BerkeleyDB, который объявлен устаревшим, но по прежнему включается по умолчанию.
  • Удалён экспериментальный бэкенд БД на базе LMDB.
  • Объявлен стабильным бэкенд БД на базе хранилища NDB.
  • В макросы и выражения «%if» добавлена поддержка тенарного оператора (%{expr:1==0?»yes»:»no»}) и предложена встроенная возможность сравнения версий (‘%[v»3:1.2-1″ > v»2.0″]’).
  • Реализована поддержка классификации файлов на основе MIME-типов их содержимого.
  • Добавлена возможность генерации зависимостей при помощи параметрических макросов.
  • Предложена новая версия API парсинга и сравнения для языков C и Python.
  • Обеспечено распараллеливание выполнения brp-strip и компонентов тестового набора. Проведена оптимизация распараллеливания процесса генерации пакетов.
  • В утилиту rpmdb добавлена опция «—salvagedb» для восстановления повреждённой БД (работает только с бэкендом NDB).
  • Добавлены новые макросы %arm32, %arm64 и %riscv для определения архитектуры. Также добавлен встроенный макрос %{macrobody:…} для получения содержимого макросов.
  • В выражениях запрещено использования не обособленных кавычками слов, т.е. вместо ‘a == b’ теперь нужно писать ‘»a» == «b»‘.
  • В парсере выражений реализован синтаксис «%[…]» для выполнения выражения с раскрытием макросов (от «%{expr:…}» отличается тем, что макросы выполняются первыми).
  • В выражениях добавлена поддержка короткого раскрытия логических и тенарных операторов («%[0 && 1 / 0]» рассматривается как 0, а не приводит к ошибке из-за попытки деления на ноль).
  • Добавлена поддержка применения логического оператора NOT в произвольных контекстах (!»%?foo»).
  • Поведение операторов «||» и «&&» приведено в соответствие с Perl/Python/Ruby, т.е. вместо возврата булевого значения теперь выдаёт последнее вычисленное значение (например, «%[2 || 3]» вернёт 2).
  • Добавлена возможность верификации альтернативных форматов цифровых подписей и хэшей.
  • Добавлена поддержка мета-зависимостей (Requires(meta): somepkg), не влияющих на порядок установки и удаления.
  • В rpmsign добавлена опция «—rpmv3» для принудительного использования цифровых подписей в формате RPM3.
  • Добавлена установочная опция «—excludeartifacts» для пропуска установки документации, примеров файлов конфигурации и прочих сопутствующих данных.
  • Объявлена устаревшей поддержка RPMv3 и криптобэкенды beecrypt и NSS.
  • Добавлена поддержка DSA2 (gcrypt) и EdDSA.

Источник: opennet.ru

Добавить комментарий