rpm规范文件和ltib中的宏扩展

时间:2013-11-08 20:02:17

标签: packaging rpm specifications

我正在解决一个问题,我正在通过LTIB构建rpms。我正在尝试编写自己的spec文件,并且出于某种原因,似乎我定义的简单宏不会在%Files部分中展开。

例如,在我的spec文件的顶部,我有以下内容:

%define myfilepath %{pfx}/lib/python%{pyver}/site-packages/wx-2.8-gtk2-unicode/

我的%Files部分如下所示:

%Files
%defattr(-,root,root)
%{myfilepath}

然而,当我运行./ltib -m scdeploy -p时,我收到以下错误

  

RPM构建错误:   文件必须以“/”开头:%{myfilepath}   wxPython的构建时间:0秒

有什么我想念的吗?在文档中没有任何地方我看到%Files部分中不允许使用宏。预定义的宏似乎在%files部分中扩展得很好,但是我在我的spec文件的头文件中使用%define定义的任何宏在我使用scdeploy选项运行ltib时就好像它是未定义的。在执行ltib withprep,scbuild和scinstall模式时,宏都按预期工作。

编辑:使用ltib版本9.1.1,rpmbuild版本4.0.4

1 个答案:

答案 0 :(得分:1)

在查看ltib源代码后管理好了解。事实证明,ltib在scdeploy模式下运行时会生成spec文件。这个伪造的spec文件只保留你编写的spec文件中%files部分的内容,因此标题和你在那里定义的所有宏都会丢失。

不确定为什么LTIB对scdeploy采用这种方式而不是sbuild,scinstall等。我对LTIB邮件列表有疑问。