Большинство пакетов имеют более одного источника исходного кода, к которым необходимо обращаться из spec-файла. Как правило, это tar.gz-архивы с файлами кода. Это могут быть архивы от вендора или загруженные с сайтов сторонних разработчиков. Определять источники кода следует с помощью полей Source, начиная счет с 0:
Source0: telnet-client.tar.gz |
В этом примере Source0: ссылается на tar.gz-архив. Утилита rpmbuild распакует его в каталог buildroot. Source1: и Source2: указывают на отдельные файлы с исходным кодом. Если существует только один файл с исходниками, можно пропустить 0:
Source: telnet-client.tar.gz |
Также допустимо использовать ссылки на сетевые источники кода (FTP или HTTP):
Source0: ftp://somesite.yow/pub/linux/%{telnet_version}.tar.gz |
RPM не загружает файлы по этим ссылкам, они нужны только для дальнейшего обращения к источнику кода. Код по-прежнему будет загружаться из каталога SOURCES по имени файла.
Довольно часто возникает необходимость исключить какие-то файлы исходного кода из src.rpm-пакета по соображениям проприетарности или чтобы сократить объем пакета. Для выполнения этой операции используется директива NoSource:
NoSource: 3 |
Данный пример означает, что из коллекции исходников, помещаемых в src.rpm будет исключен источник 3. Подобным же образом действует директива NoPatch, она позволяет не включать в пакет с исходным кодом патчи разработчика. Директивы NoSource: и NoPatch: принимают только один номер патча (файла исходного кода) за раз. Если необходимо исключить несколько источников, потребуется задать соответвствующее количество строк.
Если в spec-файле присутствуют директивы NoSource: или NoPatch:, вместо src.rpm будет собран пакет nosrc.rpm.
Далее - Имена патчей
Назад - Установка пути сборки
Содержание