rpm പാക്കേജുകളിൽ മാക്രോകൾ ഉപയോഗിക്കുക

В рассылке Fedora опубликовано നിർദ്ദേശം по стандартизации макросов в спек-файлах RPM, позволяющее добавить в RPM-пакеты возможность выбора флагов компиляции и дополнительных зависимостей на этапе сборки.

ഉപയോഗ ഉദാഹരണം:

%if %{use ssl}
BuildRequires: openssl-devel
%endif

% തയ്യാറെടുപ്പ്
%configure %{use_enable ssl openssl}

% ചെക്ക്
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} отключающий сборку документации.

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

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

അവലംബം: linux.org.ru

ഒരു അഭിപ്രായം ചേർക്കുക