Red Hat Training

A Red Hat training course is available for RHEL 8

3.2.6. Un ejemplo de archivo SPEC para un programa escrito en C

Esta sección muestra un archivo SPEC de ejemplo para el programa cello que fue escrito en el lenguaje de programación C. Para más información sobre cello, véase Sección 2.1.1, “Ejemplos de código fuente”.

Un archivo SPEC de ejemplo para el programa cello escrito en 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

La directiva BuildRequires, que especifica las dependencias en tiempo de compilación para el paquete, incluye dos paquetes que son necesarios para realizar el proceso de compilación:

  • El paquete gcc
  • El paquete make

La directiva Requires, que especifica las dependencias en tiempo de ejecución para el paquete, se omite en este ejemplo. Todos los requisitos de tiempo de ejecución son manejados por rpmbuild, y el programa cello no requiere nada fuera de las bibliotecas estándar del núcleo de C.

La sección %build refleja el hecho de que en este ejemplo se escribió un Makefile para el programa cello, por lo que se puede utilizar el comando make de GNU proporcionado por la utilidad rpmdev-newspec. Sin embargo, es necesario eliminar la llamada a %configure porque no se proporcionó un script de configuración.

La instalación del programa cello puede realizarse utilizando la macro %make_install que fue proporcionada por el comando rpmdev-newspec. Esto es posible porque el Makefile para el programa cello está disponible.