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

Добавить комментарий