USE-макросы в rpm-пакетах

good-penguin.png

В рассылке 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_ с дополнительными обертками вида:

  • %{use } — принимает значения 0 или 1,
  • %{use_enable [ []]} — разворачивается в --disable- или --enable-.

Добавление опций такого вида в спек-файлы позволит собирать различные варианты дистрибутива из одних и тех же исходников.

Например, для минимизации дерева build-зависимостей можно будет использовать глобальный параметр %{use docs} отключающий сборку документации.

Задавать подходящий набор опций можно будет сконфигурировав сборочное окружение. Причем опции можно будет задать как глобально, так и переопределив отдельно по каждому пакету.

Предложение пока не принято и находится на стадии обсуждения.

>>> Обсуждение в рассылке

©  Linux.org.ru