Выпуск пакетного менеджера 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 в коде.



Источник: http://www.opennet.ru/opennews/art.shtml? num=51582

© OpenNet