В спецфайле 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.spec Source7, Source9, Source10 и Source11 нигде не упоминаются в spec-файле.

0
the_endian 18 Июн 2020 в 23:48
О каких командах вы говорите в заголовке?
 – 
muru
18 Июн 2020 в 20:32
Можете ли вы привести пример такого файла спецификаций, где Source1: используется без последующей ссылки на него через %{SOURCE1} ? Это было бы обычным для Source0, против которого используются макросы %setup и %autosetup, но не для остальных.
 – 
Danila Vershinin
18 Июн 2020 в 20:33
Я привел пример в вопросе выше того, что я имею в виду.
 – 
the_endian
18 Июн 2020 в 23:48

1 ответ

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

EXTSRCDIR=`dirname %{SOURCE0}`

Затем позже один из аргументов конфигурации:

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

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

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

1
jsbillings 19 Июн 2020 в 04:10