如何在我的spec文件中下载github源代码

时间:2016-09-06 09:06:52

标签: rpm rpmbuild specfiles

我一直在尝试使用spec文件创建rpm。我想用github代码。我正在提供Source0:http://github.com/some_project.tat.gz,但它正在下载,它正在/ root / rpmbuild / SOURCES中寻找tat.gz。

我希望我的spec文件从git下载源代码,而不是从SOURCE目录下载。知道我该怎么办?我是否需要在spec文件中添加其他选项?

TIA。

2 个答案:

答案 0 :(得分:1)

它不是内置的。您告诉rpm 声明的位置可以找到来源,但rpmbuild不会为您提取。你需要一个包装器脚本来做这件事,或者看看像spectool这样的东西应该为你做的事情(我自己没有用过,对不起)。

答案 1 :(得分:1)

您可以在%prep中结帐,而无需使用%setup。以下是在构建之前检查libbson的重要细节(主要问题是您需要在不使用%setup时向脚本允许和%doc添加显式" cd%{NVdir}" )。

根据%{NVdir}目录是否存在,执行git clone或git pull并不困难。

%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.*