¿Qué hace el siguiente paso de rpm "%prep"?

¿Qué hace el siguiente paso de rpm "%prep"?

Asumiendo

Source0:        %{gnu_download_url}/coreutils/coreutils-%{version}.tar.gz
Source1:        mk7distro.tar.bz2
Patch0:         hostutils.patch.bz2

¿Alguien puede decirme qué hace el siguiente comando en la %prepsección del archivo de especificaciones RPM?

%setup -q -n %{name} -c -a 1

Respuesta1

Es unmacro que descomprime las fuentes:

the %setup macro is used to unpack the original sources, in preparation for the
build. In its simplest form, the macro is used with no options and gets the name
of the source archive from the source tag specified earlier in the spec file.

Respuesta2

Para responder la pregunta con mayor precisión y proporcionar un enlace actualizado, sí, el%comando de configuracióndescomprimirá el archivo tar de Fuente1, sin embargo, no descomprimirá el archivo tar de Fuente0 debido a la -a 1opción especificada. La -copción hará que extraiga el archivo tar a un subdirectorio llamado según -n %{name}, que proviene de la parte "Nombre:" del archivo de especificaciones.

%setup -q Este comando cambia al directorio de compilación, normalmente /usr/src/redhat/BUILD, y luego extrae los archivos fuente. Esta macro espera que al menos uno de los archivos fuente cree el subdirectorio necesario en /usr/src/redhat/BUILD. Este subdirectorio debe tener el nombre y la versión del paquete, como telnet-1.0.1. Si no está utilizando un archivo tar comprimido que creará automáticamente el subdirectorio correcto, agregue la opción –c a la macro %setup. La opción –c crea el subdirectorio para extraer las fuentes.

La directiva %setup puede extraer automáticamente archivos comprimidos tar, zip, gzip, bzip2, pack, compress y lzh. Sin embargo, el formato tar-gzip es el más utilizado.

información relacionada