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