9.3.3 Имена файлов архивов с исходным кодом

Большинство пакетов имеют более одного источника исходного кода, к которым необходимо обращаться из spec-файла. Как правило, это tar.gz-архивы с файлами кода. Это могут быть архивы от вендора или загруженные с сайтов сторонних разработчиков. Определять источники кода следует с помощью полей Source, начиная счет с 0:

Source0: telnet-client.tar.gz

Source1: telnet-xinetd

Source2: telnet.wmconfig

В этом примере 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.

Далее - Имена патчей
Назад - Установка пути сборки
Содержание