Po roku rozwoju wydanie menedżera pakietów Projekt RPM4 jest rozwijany przez firmę Red Hat i jest używany w dystrybucjach takich jak RHEL (w tym projektach pochodnych) CentOS, Naukowy Linux, AzjaLinuxCzerwona flaga Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxSystem operacyjny, Tizen i wiele innych. Dawniej niezależny zespół programistów projekt , który nie jest bezpośrednio powiązany z RPM4 i jest obecnie porzucony (nie aktualizowany od 2010). Kod projektu na licencji GPLv2 i LGPLv2.
Najbardziej godne uwagi na obrotach 4.16:
- Zaimplementowano nowy backend do przechowywania baz danych w SQLite DBMS. Ten backend w Fedorze Linux 33 zamiast zaplecza bazującego 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”. (%{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.
- Dodano możliwość generowania zależności za pomocą .
- 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 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.
- Dodano obsługę DSA2 (gcrypt) i EdDSA.
Źródło: opennet.ru
