В рассылке Fedora опубликовано предложение по стандартизации макросов в спек-файлах RPM, позволяющее добавить в RPM-пакеты возможность выбора флагов компиляции и дополнительных зависимостей на этапе сборки.
Пример использования:
%if %{use ssl}
BuildRequires: openssl-devel
%endif
%prep
%configure %{use_enable ssl openssl}
%check
make test %{?_use_ssl:-DSSL}
В этом примере при задании USE-макроса ssl
в спек-файле будет добавлена дополнительная зависимость на пакет openssl-devel, будет выполнен шаг конфигурации с включенной опцией --enable-openssl
, а также при сборке будут выполнены соответствующие тесты.
Предполагается что опция сборки будет задаваться бинарным макросом %_use_<feature>
с дополнительными обертками вида:
%{use <feature>}
– принимает значения 0 или 1,%{use_enable <feature> [<configure name> [<configure option>]]}
– разворачивается в--disable-<feature>
или--enable-<feature>
.
Добавление опций такого вида в спек-файлы позволит собирать различные варианты дистрибутива из одних и тех же исходников.
Например, для минимизации дерева build-зависимостей можно будет использовать глобальный параметр %{use docs}
отключающий сборку документации.
Задавать подходящий набор опций можно будет сконфигурировав сборочное окружение. Причем опции можно будет задать как глобально, так и переопределив отдельно по каждому пакету.
Предложение пока не принято и находится на стадии обсуждения.