如何解决rpmbuild 如何计算要生成哪些字段?
在比较不同的 RPM 文件时,我注意到并非所有文件都公开相同的标头标签。所以必须有一些逻辑来激活/停用其中一些的创建。
一个例子是构建时间和主机。我偶然发现了两个 RPM 规范。两者都没有提到任何看起来像规范或提供信息的开关。尽管如此,其中一个是用 Build Time
和 Build Host
字段生成的,另一个不是(我不允许发布任何一个)。
我知道新的 _buildhost
宏。用于生成两者的 RPM 版本不足以使用它。据我所知,这两个包都是从源列表中创建的。不显示构建信息的一个是使用 CMake/CPack 构建的,另一个直接使用 rpmbuild
,这是我唯一了解的关于严重差异的信息。
两者都定义为 Group: AddOn
。到目前为止,我还没有找到任何关于哪些组是有效的或其含义的远程确定资源。我唯一发现的是 Fedora 中的 list of deprecated 组。我对支持的列表更感兴趣,但到目前为止还没有成功。
到目前为止我发现的资源(省略无意义的): Max RPM Package Building Page、RedHat blog-ish tutorial、The RPM build guide、The actual RPM tags documentation、The RPM packaging guide
遗憾的是,以上都没有提供我正在寻找的信息。
“Give a man a fish”问题: 如何在 Build Time
4.11 中禁止创建 Build Host
或 rpm
,无论是在规范语法还是rpmbuild
的用法?
“教一个人如何钓鱼”问题:是否有任何关于使用哪些设置创建的标题标签的文档?
解决方法
您可以使用 Mock 来构建 rpm(无论如何都推荐)。并使用 config_opts['hostname'] = 'my.own.hostname'
。
Mock 将在 chroot 中调用 sethostname()
。
这是AFAIK的唯一方法。
rpmbuild 应该尊重 SOURCE_DATE_EPOCH
- 但我从未使用过它。
您可以使用以下方法设置环境变量:
config_opts['environment']['SOURCE_DATE_EPOCH'] = 'foo'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。