Wydanie RPM 4.16

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.
  • Dodano możliwość generowania zależności za pomocą makra parametryczne.
  • 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.
  • Dodano obsługę DSA2 (gcrypt) i EdDSA.

Źródło: opennet.ru

Dodaj komentarz