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

Пасля амаль двух гадоў распрацоўкі адбыўся рэліз пакетнага мэнэджэра Абаротаў 4.15.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 года).

Найбольш прыкметныя паляпшэння у RPM 4.15:

  • Дададзена эксперыментальная падтрымка непрывілеяванай зборкі ў chroot-акружэнні;
  • Рэалізавана падтрымка распаралельвання зборкі пакетаў на шмат'ядравых сістэмах. Абмежаванне колькасці патокаў задаецца праз макрас "%_smp_build_ncpus" і зменную $RPM_BUILD_NCPUS. Для вызначэння ліку CPU прапанаваны макрас "% getncpus";
  • У spec-файлах з'явілася падтрымка ўмоўных аператара "% elif" (else if), а таксама варыянтаў "% elifos" і "% elifarch" для прывязкі да дыстрыбутыва і архітэктуры;
  • Дададзены новыя секцыі «%patchlist» і «%sourcelist», якія могуць выкарыстоўвацца для дадання патчаў і зыходных тэкстаў простым пералікам імёнаў без указання нумароў запісаў (напрыклад, замест
    "Patch0: popt-1.16-pkgconfig.patch" у секцыі %patchlist можна паказаць "popt-1.16-pkgconfig.patch");

  • У rpmbuild дададзена падтрымка дынамічнай зборкі залежнасцяў з іх уключэннем у src.rpm. У spec-файле дададзеная падтрымка секцыі "%generate_buildrequires", змесціва якой апрацоўваецца як спіс залежнасцяў (BuildRequires), які патрабуе праверкі (калі залежнасць адсутнічае будзе выведзена памылка).
  • Рэалізаваны аператар «^» для праверкі версій старэйшых за зададзеную дату, які выконвае дзеянне, супрацьлеглае аператару «~». Напрыклад,
    "1.1^20160101" ахопіць версію 1.1 і патчы, дададзеныя пасля 1 студзеня 2016 года;

  • Дададзена опцыя "-scm" для ўключэння рэжыму "%autosetup SCM";
  • Дададзены ўбудаваны макрас "%{expr:…}" для вылічэння адвольных выразаў (некалькі дзён таму таксама быў прапанаваны фармат «%[expr]»);
  • Забяспечана выкарыстанне па змаўчанні кадоўкі UTF-8 для радковых дадзеных у загалоўках;
  • Дададзеныя глабальныя макрасы %build_cflags, %build_cxxflags, %build_fflags і %build_ldflags са сцягамі для кампілятара і кампаноўніка;
  • Дададзены макрас "% dnl" (Discard to Next Line) для ўстаўкі каментароў;
  • У біндзінгах для Python 3 забяспечаны зварот радкоў у выглядзе экранаваных паслядоўнасцяў UTF-8 замест байтавых дадзеных;
  • Дададзены фіктыўны бэкенд БД для паляпшэння падтрымкі сістэм без rpmdb (напрыклад, Debian);
  • Палепшана вызначэнне архітэктуры ARM і дададзена падтрымка armv8;
  • Забяспечана бясшвоўная падтрымка Lua 5.2-5.3, не патрабавальная азначэнняў compat у кодзе.

Крыніца: opennet.ru

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