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

Після року розробки відбувся реліз пакетного менеджера Об / хв 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

Додати коментар або відгук