$RPM_SOURCE_DIR o %{_sourcedir}

Los paquetes que utilizan archivos clasificados como archivos Source#, deben referir a aquellos archivos por su nombre de macro %{SOURCE#} y deben no utilizar $RPM_SOURCE_DIR o %{_sourcedir} para referenciar a aquellos archivos.

Esto se hace para garantizar que los SRPM de Fedora se generen apropiadamente. Si se renombra un elemento Source#, una especificación la cual haga referencia a su nombre anterior puede lograrse localmente (ya que el archivo aún se encuentra en %{_sourcedir} junto con el nuevo), pero el archivo correcto no será incluido en el SRPM.

Empleo Incorrecto:

Fuente: php.conf
Fuente: php.ini
Fuente: macros.php

…

install -m 644 $RPM_SOURCE_DIR/php.conf $RPM_BUILD_ROOT/etc/httpd/conf.d
sed -e "s/@PHP_APIVER@/%{apiver}/;s/@PHP_ZENDVER@/%{zendver}/;s/@PHP_PDOVER@/%{pdover}/" \
    < $RPM_SOURCE_DIR/macros.php > macros.php

Empleo correcto:

Fuente: php.conf
Fuente: php.ini
Fuente: macros.php

…

install -m 644 %{SOURCE1} $RPM_BUILD_ROOT/etc/httpd/conf.d
sed -e "s/@PHP_APIVER@/%{apiver}/;s/@PHP_ZENDVER@/%{zendver}/;s/@PHP_PDOVER@/%{pdover}/" \
    < %{SOURCE3} > macros.php

Excepciones

Cuando hay disponible un listado de archivos fuente suplementarios, se permitiría utilizar este listado junto con %{_sourcedir} para simplificar operaciones en esos archivos fuente suplementarios.

Un ejemplo de esto desde el paquete kde-l10n:

for i in $(cat %{SOURCE1000}) ; do
  echo $i | grep -v '^#' && \
  bzip2 -dc %{_sourcedir}/%{name}-$i-%{version}.tar.bz2 | tar -xf -
done

donde Source1000: subdirs-kde-l10n es in listado proporcionado por desarrollo de todos los idiomas admitidos, y hay ~50 etiquetados SourceN:, los cuales pueden variar desde versión, pero coincide los idiomas enumerados en Source1000, para los paquetes tar proporcionados por desarrollo.