Как мне получить rpmbuild для загрузки всех источников для определенного .spec?
Я добавляю некоторые источники в существующий файл rpm .spec
по URL-адресу и пока не загружаю их. Есть ли способ получить rpmbuild
для загрузки источников, а не для этого вручную?
Ответы
Ответ 1
spectool
утилита из rpmdevtools
может это сделать. Просто установите rpmdevtools
и укажите spectools
на .spec
так:
spectool -g -R SPECS/nginx.spec
Он загрузит любые отсутствующие источники в каталог rpm %{_sourcedir}
(обычно SOURCES
).
Ответ 2
Для потомков существует другой способ сделать это, что не требует каких-либо дополнительных инструментов или загрузок:
rpmbuild --undefine=_disable_source_fetch -ba /path/to/your.spec
Загрузка источников автоматически запрещена по умолчанию, потому что RPM не имеет встроенных проверок целостности исходных архивов. Сети необходимо доверять, и проверяются контрольные суммы и сигнатуры. Это ограничение имеет смысл для сопровождающих пакетов, поскольку они несут ответственность за доставку доверенного кода.
Однако, когда вы знаете, что делаете и понимаете риски, вы можете просто принудительно снять ограничение.
Ответ 3
В файле spec вы можете разместить %undefine _disable_source_fetch
где угодно до исходного URL-адреса.
В целях безопасности вы также должны указать sha256sum и проверить его в разделе %prep
перед настройкой.
Вот рабочий пример:
Name: monit
Version: 5.25.1
Release: 1%{?dist}
Summary: Monitoring utility for unix systems
Group: Applications/System
License: GNU AFFERO GENERAL PUBLIC LICENSE version 3
URL: https://mmonit.com/monit/
%undefine _disable_source_fetch
Source0: https://mmonit.com/monit/dist/%name-%version.tar.gz
%define SHA256SUM0 4b5c25ceb10825f1e5404f1d8a7b21507716b82bc20c3586f86603691c3b81bc
%define debug_package %nil
BuildRequires: coreutils
%description
Monit is a small Open Source utility for managing and monitoring Unix systems. Monit conducts automatic maintenance
and repair and can execute meaningful causal actions in error situations.
%prep
echo "%SHA256SUM0 %SOURCE0" | sha256sum -c -
%setup -q
...
Кредиты
@YaroslavFedevych для undefine _disable_source_fetch.