Wydanie menedżera pakietów RPM 4.16

Po roku prac rozwojowych miał miejsce 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 pochodne projekty CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen i wielu innych. Wcześniej niezależny zespół deweloperów był rozwijany projekt RPM5, który nie jest bezpośrednio związany z RPM4 i obecnie jest porzucony (nie aktualizowano od 2010 roku). Kod projektu rozpowszechniany jest dostępny na licencjach GPLv2 i LGPLv2.

Najbardziej zauważalne ulepszenia w RPM 4.16:

  • Zrealizowano nowy backend do przechowywania baz danych w systemie SQLite. Ten backend zostanie użyty w Fedora Linux 33 zamiast backendu opartego na BerkeleyDB.
  • Zrealizowano 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 poprzedniego backendu BerkeleyDB, który został uznany za przestarzały, ale wciąż jest włączany domyślnie.
  • Usunięto eksperymentalny backend baz danych oparty na LMDB.
  • Ogłoszono stabilny backend baz danych oparty na magazynie NDB.
  • Do makr i wyrażeń „%if” dodano wsparcie operatora trójargumentowego (%{expr:1==0?»yes»:»no»}) i zaproponowano wbudowaną możliwość porównania wersji (‘%[v»3:1.2-1″ > v»2.0″]’).
  • Zrealizowano wsparcie dla klasyfikacji plików na podstawie typów MIME ich zawartości.
  • Dodano możliwość generowania zależności przy pomocy makr parametrycznych.
  • Zaproponowano nową wersję API analizy i porównania dla języków C i Python.
  • Zabezpieczono równoległość wykonania brp-strip i komponentów zestawu testowego. Przeprowadzono optymalizację procesu generacji pakietów.
  • W narzędziu rpmdb dodano dodano opcję „—salvagedb” do przywracania uszkodzonej bazy danych (działa tylko z backendem NDB).
  • Dodano nowe makra %arm32, %arm64 i %riscv do określenia architektury. Dodano również wbudowane makro %{macrobody:…} do uzyskania zawartości makr.
  • W wyrażeniach zabroniono używania nieobudowanych w cudzysłów słów, tzn. zamiast ‘a == b’ teraz należy pisać ‘»a» == «b»‘.
  • W parserze wyrażeń zrealizowano składnię „%[…]” do wykonania wyrażenia z rozszerzeniem makr (różni się od „%{expr:…}” tym, że makra są wykonywane jako pierwsze).
  • W wyrażeniach dodano wsparcie dla krótkiego rozszerzenia operatorów logicznych i trójargumentowych („%[0 && 1 / 0]” jest traktowane jako 0, a nie powoduje błędu z powodu próby dzielenia przez zero).
  • Dodano wsparcie dla zastosowania operatora logicznego NOT w dowolnych kontekstach (!»%?foo»).
  • Zachowanie operatorów «||» i «&&» zostało dostosowane do Perl/Python/Ruby, tzn. zamiast zwracać wartość logiczną teraz zwraca ostatnią obliczoną wartość (np. «%[2 || 3]» zwróci 2).
  • Dodano możliwość weryfikacji alternatywnych formatów podpisów cyfrowych i hashy.
  • Dodano wsparcie dla meta-zależności (Requires(meta): somepkg), które nie wpływają na kolejność instalacji i usuwania.
  • W rpmsign dodano opcję «—rpmv3» do wymuszonego użycia podpisów cyfrowych w formacie RPM3.
  • Dodano opcję instalacyjną «—excludeartifacts» do pominięcia instalacji dokumentacji, przykładów plików konfiguracyjnych i innych danych towarzyszących.
  • Ogłoszono ostateczne zakończenie wsparcia dla RPMv3 oraz backendów kryptograficznych beecrypt i NSS.
  • Dodano wsparcie dla DSA2 (gcrypt) i EdDSA.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster