【问题标题】:Macro expansion in rpm spec files and ltibrpm 规范文件和 ltib 中的宏扩展
【发布时间】:2013-11-20 23:12:48
【问题描述】:

我正在为我在通过 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 时,我在我的规范文件的标题中使用 %define 定义的任何宏都表现为未定义。使用prep、scbuild 和scinstall 模式执行ltib 时,宏都按预期工作。

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

【问题讨论】:

    标签: packaging rpm specifications


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      相关资源
      最近更新 更多