USE-макроси в 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_ з додатковими обгортками виду:

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

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

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

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

Пропозиція поки що не прийнята і перебуває на стадії обговорення.

Джерело: linux.org.ru

Додати коментар або відгук