$RPM_SOURCE_DIR
oder %{_sourcedir}
Pakete, die Dateien verwenden, die als Source#
-Dateien aufgelistet sind, müssen auf diese Dateien mit ihrem Makronamen %{SOURCE#}
verweisen und dürfen nicht $RPM_SOURCE_DIR
oder %{_sourcedir}
verwenden, um auf diese Dateien zu verweisen.
Dies geschieht, um sicherzustellen, dass Fedora-SRPMS ordnungsgemäß generiert werden. Wenn ein Source#
-Element umbenannt wird, kann eine Spec-Datei, die auf den alten Namen verweist, lokal OK sein (da sich die Datei zusammen mit der neuen Datei noch in %{_sourcedir}
befindet), aber die richtige Datei wird nicht in das SRPM aufgenommen.
Inkorrekte Verwendung:
Source: php.conf Source: php.ini Source: 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
Korrekte Verwendung:
Source1: php.conf Source2: php.ini Source3: 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
Ausnahmen
Wenn eine Liste mit zusätzlichen Quelldateien verfügbar ist, ist es zulässig, diese Liste in Verbindung mit „%{_sourcedir}“ zu verwenden, um Aktionen mit diesen zusätzlichen Quelldateien zu vereinfachen.
Ein Beispiel dazu aus dem Paket lde-l10n:
for i in $(cat %{SOURCE1000}) ; do echo $i | grep -v '^#' && \ bzip2 -dc %{_sourcedir}/%{name}-$i-%{version}.tar.bz2 | tar -xf - done
wobei Source1000: subdirs-kde-l10n
eine vom Upstream-Projekt bereitgestellte Liste aller unterstützten Sprachen ist. Es gibt etwa 50 SourceN:
-Tags, die von Version zu Version unterschiedlich sein können, aber mit den in Source1000
aufgeführten Sprachen für die vom Upstream-Projekt bereitgestellten Tarballs übereinstimmen.
Want to help? Learn how to contribute to Fedora Docs ›