Как источники сопоставляются с командами в спецфайле RPM?

В спецфайле RPM иногда я увижу:

Source0: /some/path/or/url/file.tar.xz
Source1: /another/path/or/url/file2.tar.gz
Source2: /some/path/library.so
Source4: /other/path/icon.ico
...

Иногда до 10+ источников различных типов файлов. Однако часто я не вижу ссылок, таких как %{SOURCE1}далее в файле. Анализируются ли эти источники и/или используются ли они в тех случаях, когда в файле нет ссылок на них? Я читал Создание RPM-пакетов, но этот пример очень прост и не содержит ответа на этот конкретный вопрос. Я не понимаю различных вариантов использования разделов исходного кода.

ПРИМЕР: https://src.fedoraproject.org/rpms/libreoffice/blob/master/f/libreoffice.specSource7, Source9, Source10 и Source11 нигде не упоминаются в spec-файле. .

0
18.06.2020, 23:48
1 ответ

Если вы посмотрите в разделе %build, там есть строка с:

EXTSRCDIR=`dirname %{SOURCE0}`

Позже одним из аргументов конфигурации является:

--with-external-tar="$EXTSRCDIR" \

Оттуда он использует архивы как часть сборки. Все записи исходного кода хранятся в том же каталоге, что и часть сборки пакета, поэтому спецификация просто находит имя каталога и ссылается на него позже. (Я не понимаю, почему вы указываете локальный путь в своем примере, это либо имя файла, либо URL-адрес в обычном файле спецификации ).

Я не очень хорошо знаком с процессом сборки libreoffice, но предполагаю, что все упомянутые вами записи исходного кода подтягиваются с помощью аргумента configure выше.

1
18.03.2021, 23:26

Теги

Похожие вопросы