1

我正在为通过 LTIB 构建 rpm 时遇到的问题而烦恼。我正在尝试编写自己的规范文件,但由于某种原因,我定义的简单宏似乎不会在 %Files 部分中展开。

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

%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 部分中扩展得很好,但是当我使用 scdeploy 选项运行 ltib 时,我在我的 spec 文件的标题中使用 %define 定义的任何宏都表现为未定义。使用prep、scbuild 和scinstall 模式执行ltib 时,宏都按预期工作。

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

4

1 回答 1

1

在查看 ltib 源代码后设法弄清楚了。事实证明 ltib 在 scdeploy 模式下运行时会制造一个规范文件。这个伪造的规范文件仅保留您编写的规范文件中 %files 部分的内容,因此您在其中定义的标题和所有宏都丢失了。

不知道为什么 LTIB 对于 scdeploy 而不是 sbuild、scinstall 等的行为方式是这样的。我有一个关于 LTIB 邮件列表的问题。

于 2013-11-11T15:44:24.437 回答