在构建RPM时,如何相对于.spec文件的位置创建_topdir?

时间:2011-06-08 22:02:25

标签: relative-path rpm rpmbuild specfiles

我有一个.spec文件,它依赖于一个名为_topdir的变量。

现在当您从git结帐SRPM来源时,您必须更改_topdir所指向的位置,以使rpmbuild正常运行。

# We need the following line so that RPM can find the BUILD and SOURCES and RPMS dirs.
%define _topdir /root/projects/my-project/my-project-srpm/

如何指定_topdir应该相对于.spec文件的位置,以便_topdir不是硬编码的?

3 个答案:

答案 0 :(得分:17)

在命令行中指定你的topdir,就像这样......

rpmbuild --define "_topdir \`pwd\`" ...

答案 1 :(得分:11)

您可以在规范文件中定义_topdir变量(例如,在顶部)

%define _topdir %(echo $PWD)/

答案 2 :(得分:-3)

在〜/ .rpmmacros文件中,执行以下操作:

%_topdir      %(echo $PWD)/subdir

我不确定你是否可以在spec文件中做到这一点,我不明白为什么不这样做,但我不确定如何记录它。