Издаване на пакетния мениджър RPM 4.16

След година разработка се състоя издания на пакетния мениджър RPM 4.16.0. Проект RPM4 се развива от компанията Red Hat и се използва в дистрибуции като RHEL (включително производни проекти CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen и много други. Преди е бил независим екип от разработчици се развиваше проект RPM5, който не е пряко свързан с RPM4 и в момента е изоставен (не е обновяван от 2010 година). Кодът на проекта се разпространява е под лицензите GPLv2 и LGPLv2.

Най-забележителните подобрения в RPM 4.16:

  • Реализиран е нов бекенд за съхранение на БД в СУБД 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 е добавена опцията «—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 е обявена за остаряла.
  • Добавена е поддръжка за DSA2 (gcrypt) и EdDSA.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster