Выпуск пакетнага мэнэджара RPM 4.16

Пасля года распрацоўкі адбыўся рэліз пакетнага мэнэджэра Абаротаў 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 і многіх іншых. Раней незалежнай камандай распрацоўшчыкаў развіваўся праект 5 абаротаў, Які непасрэдна не звязаны з 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

Дадаць каментар