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

След почти две години разработка се състоя издание на пакетния мениджър RPM 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 и много други. По-рано е разработван от независима екип от разработчици се е развивал проект RPM5, който не е свързан с 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

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