Como determinar se o sistema no qual um pacote RPM é construído é o CentOS de dentro de um arquivo de especificações?

1

Eu tenho um arquivo de especificação onde seus campos Requires: dependem da distribuição específica em que está sendo construído. Então eu preciso ser capaz de criar uma estrutura condicional ao longo das linhas de:

%if %{?fedora}
Requires:       xterm libssh clang
BuildRequires:  wxGTK3-devel  cmake clang-devel lldb-devel libssh-devel hunspell-devel sqlite-devel desktop-file-utils
%endif
%if (centos test)
Requires:       xterm libssh clang
BuildRequires:  wxGTK3-devel cmake clang-devel lldb-devel libssh-devel hunspell-devel
%endif

onde (centos test) deve ser substituído por algum teste para ver se a distribuição em que estamos é o CentOS. Eu tentei usar %{?rhel} e %{?centos} como este teste. Mas ambos falharam. Eu também tentei os testes %{rhel} e %{centos} , mas não funcionaram (pois não parecem reconhecer essas macros). Pesquisei referências de macro do RPM (como link e link ), mas não mencionam esses tipos de macros.

    
por Brenton Horne 31.12.2016 / 04:06

1 resposta

0

Citações de link :

Keep in mind that if you are checking for a specific family of distributions, that you need to use:

%if 0%{?rhel}

and NOT

%if %{?rhel}

Without the extra 0, if %{rhel} is undefined, the %if conditional will cease to exist, and the rpm will fail to build.

E, similarmente, você precisa usar 0% {? fedora} na primeira condição.

    
por 01.01.2017 / 08:27

Tags