2016-09-06 15 views
0

Я пытался создать rpm, используя spec-файл. Я хочу использовать с ним код github. Я предоставляю Source0: http://github.com/some_project.tat.gz, но он загружает это, он ищет tat.gz в/root/rpmbuild/SOURCES.Как загрузить исходный код github в моем спецификационном файле

Я хочу, чтобы мой файл спецификации загружал исходный код с git и не получал его из каталога SOURCE. Любая идея, как я могу это сделать? Нужно ли добавить дополнительный параметр в файл spec?

TIA.

+0

Возможный дубликат [Как получить rpmbuild, чтобы загрузить все источники для конкретного .spec?] (Https://stackoverflow.com/questions/33177450/how-do-i-get-rpmbuild -в-загрузки-все-оф-источников-для-а-конкретной-спецификации) –

ответ

1

Это не встроенный. Вы говорите rpm, где претензии источник может быть найден, но rpmbuild не тянет его за вас. Для этого вам понадобится скрипт-оболочка или посмотрите на что-то вроде spectool, которое должно сделать это за вас (я сам не использовал его, извините).

1

Вы можете сделать checkout в% prep без использования% setup. Вот важные детали, чтобы сделать проверку libbson перед созданием (основная проблема заключается в том, что вам нужно добавить явный «cd% {NVdir}» для сценариев и до% doc, если вы не используете% setup).

Это не слишком сложно сделать либо клон git, либо git pull, в зависимости от того, существует ли каталог% {NVdir}.

%define NVdir %{name}-%{version} 
... 
URL: https://github.com/mongodb/libbson 
... 
%prep 
rm -rf %{NVdir} 
git clone %{url}.git %{Nadir} 
cd %{NVdir} 
... 
%build 
cd %{NVdir} 
make %{?_smp_mflags} 
... 
%files 
%doc %{NVdir}/COPYING %{NVdir}/NEWS %{NVdir}/README 
%{_libdir}/*.so.*