Red Hat Training

A Red Hat training course is available for RHEL 8

3.2.6. Um exemplo de arquivo SPEC para um programa escrito em C

Esta seção mostra um arquivo SPEC de exemplo para o programa cello que foi escrito na linguagem de programação C. Para maiores informações sobre cello, veja Seção 2.1.1, “Exemplos de código fonte”.

Um arquivo SPEC de exemplo para o programa cello escrito em C

Name:           cello
Version:        1.0
Release:        1%{?dist}
Summary:        Hello World example implemented in C

License:        GPLv3+
URL:            https://www.example.com/%{name}
Source0:        https://www.example.com/%{name}/releases/%{name}-%{version}.tar.gz

Patch0:         cello-output-first-patch.patch

BuildRequires:  gcc
BuildRequires:  make

%description
The long-tail description for our Hello World Example implemented in
C.

%prep
%setup -q

%patch0

%build
make %{?_smp_mflags}

%install
%make_install

%files
%license LICENSE
%{_bindir}/%{name}

%changelog
* Tue May 31 2016 Adam Miller <maxamillion@fedoraproject.org> - 1.0-1
- First cello package

A diretiva BuildRequires, que especifica as dependências de tempo de compilação para o pacote, inclui dois pacotes que são necessários para realizar o processo de compilação:

  • O pacote gcc
  • O pacote make

A diretiva Requires, que especifica as dependências de tempo de execução para o pacote, é omitida neste exemplo. Todos os requisitos de tempo de execução são tratados por rpmbuild, e o programa cello não requer nada fora das bibliotecas centrais do padrão C.

A seção %build reflete o fato de que neste exemplo foi escrito um Makefile para o programa cello, daí que o comando GNU make fornecido pelo utilitário rpmdev-newspec pode ser usado. Entretanto, é necessário remover a chamada para %configure porque não foi fornecido um script de configuração.

A instalação do programa cello pode ser realizada utilizando a macro %make_install que foi fornecida pelo comando rpmdev-newspec. Isto é possível porque o Makefile para o programa cello está disponível.