Dopu un annu di sviluppu hè accadutu liberazione di u gestore di pacchetti 4.16.0 RPM. U prughjettu RPM4 hè sviluppatu da Red Hat è hè utilizatu in distribuzioni cum'è RHEL (cumpresi prughjetti derivati CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen è assai altri. Prima squadra di sviluppu indipendente sviluppatu scrive RPM 5, который непосредственно не связан с RPM4 и в настоящее время заброшен (не обновлялся с 2010 года). Код проекта distribuitu da licenziatu sottu GPLv2 è LGPLv2.
Реализован новый бэкенд для хранения БД в СУБД 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 aghjustatu опция «—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.