Po roku rozwoju odbyła się wydanie menedżera pakietów RPM 4.16.0. Projekt RPM4 jest rozwijany przez firmę Red Hat i jest używany w takich dystrybucjach jak RHEL (w tym projekty pochodne CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen i wiele innych. Wcześniej niezależny zespół programistów rozwinięty projekt obr/min 5, który nie jest bezpośrednio powiązany z RPM4 i jest obecnie porzucony (nie aktualizowany od 2010). Kod projektu dystrybuowane przez na licencji GPLv2 i LGPLv2.
Najbardziej godne uwagi ulepszenia na obrotach 4.16:
Zaimplementowano nowy backend do przechowywania baz danych w SQLite DBMS. Ten backend będzie użyty w Fedorze Linux 33 zamiast backendu opartego na BerkeleyDB.
Zaimplementowano nowy eksperymentalny backend do przechowywania baz danych w BDB (Oracle Berkeley DB), działający w trybie tylko do odczytu. Implementacja została napisana od podstaw i nie wykorzystuje kodu ze starszego backendu BerkeleyDB, który stał się przestarzały, ale nadal jest domyślnie dołączony.
Eksperymentalny backend bazy danych oparty na LMDB został usunięty.
Baza danych backendu oparta na pamięci NDB została uznana za stabilną.
Dodano obsługę makr i wyrażeń „%if”. operator thenar (%{expr:1==0?"yes":"no"}) i oferuje wbudowaną funkcję porównywania wersji ('%[v"3:1.2-1″ > v"2.0″]').
Zaimplementowano obsługę klasyfikowania plików na podstawie typów MIME ich zawartości.
Zaproponowano nową wersję API do analizowania i porównywania dla języków C i Python.
Zapewniona jest równoległość wykonywania komponentów brp-strip i zestawu testów. Przeprowadzono optymalizację zrównoleglenia procesu generowania pakietów.
Do narzędzia RPMdb dodany opcja „—salvagedb”, aby przywrócić uszkodzoną bazę danych (działa tylko z backendem NDB).
Dodano nowe makra %arm32, %arm64 i %riscv do wykrywania architektury. Dodano także wbudowane makro %{macrobody:...}, aby uzyskać zawartość makr.
Zabronione jest używanie w wyrażeniach słów nieoddzielonych cudzysłowem, tj. zamiast „a == b” musisz teraz napisać „a” == „b””.
Parser wyrażeń implementuje składnię „%[...]” do wykonywania wyrażenia z rozwinięciem makra (różni się od „%{expr:...}” tym, że makra są wykonywane jako pierwsze).
Dodano obsługę krótkiego rozwijania operatorów logicznych i tenarnych w wyrażeniach („%[0 && 1 / 0]” jest traktowane jako 0, a nie powoduje błąd w wyniku próby dzielenia przez zero).
Dodano obsługę używania operatora logicznego NOT w dowolnych kontekstach (!"%?foo").
Zachowanie operatorów „||”. a „&&” jest zgodne z Perl/Python/Ruby, tj. Zamiast zwracać wartość logiczną, zwraca teraz ostatnią obliczoną wartość (na przykład „%[2 || 3]” zwróci 2).
Dodano możliwość weryfikacji alternatywnych formatów podpisów cyfrowych i skrótów.
Dodano obsługę metazależności (Requires(meta): Somepkg), które nie wpływają na kolejność instalacji i usuwania.
Dodano opcję „--rpmv3” do RPMsign, aby wymusić użycie podpisów cyfrowych w formacie RPM3.
Dodano opcję instalacji „--excludeartifacts”, aby pominąć instalację dokumentacji, przykładowych plików konfiguracyjnych i innych powiązanych danych.
Przestarzała obsługa RPMv3 oraz backendów kryptograficznych beecrypt i NSS.