Foi publicada uma proposta na mailing list do Fedora a proposta para a padronização de macros em arquivos de especificação RPM, permitindo adicionar a capacidade de seleção de flags de compilação e dependências adicionais durante o processo de construção dos pacotes RPM.
Exemplo de uso:
%if %{use ssl}
BuildRequires: openssl-devel
%endif
%prep
%configure %{use_enable ssl openssl}
%check
make test %{?_use_ssl:-DSSL}
Neste exemplo, ao definir a macro USE ssl no arquivo de especificação, uma dependência adicional para o pacote openssl-devel será adicionada, a etapa de configuração será executada com a opção —enable-openssl ativada, e os testes correspondentes serão realizados durante a construção.
Pressupõe-se que a opção de construção será definida pela macro binária %_use_ com envoltórios adicionais do tipo:
- %{use } – aceita valores 0 ou 1,
- %{use_enable [ []]} – é expandido em —disable- ou —enable-.
Adicionar opções desse tipo aos arquivos de especificação permitirá construir diferentes variantes da distribuição a partir dos mesmos fontes.
Por exemplo, para minimizar a árvore de dependências de build, pode-se utilizar o parâmetro global %{use docs} que desabilita a construção da documentação.
Um conjunto apropriado de opções poderá ser definido configurando o ambiente de construção. As opções podem ser definidas tanto globalmente quanto redefinidas individualmente por pacote.
A proposta ainda não foi aceita e está em discussão.
Fonte: linux.org.ru
