清单
生成清单文件
在树中,每个软件包都有一个 Manifest
文件。此文件与该软件包的 ebuild 位于同一个目录中。 Manifest
文件包含摘要(当前列表可以在 metadata/layout.conf
中找到,名为 manifest-hashes
)以及每个软件包使用的 distfile 的文件大小数据。这用于在获取它们时验证其完整性。
要生成 Manifest
,请使用 ebuild foo.ebuild manifest
或 pkgdev manifest -m
。您可能希望在调用它时设置 GENTOO_MIRRORS=
,以便立即从其原始位置获取 distfile。
薄清单和厚清单
Gentoo 中有两种类型的清单文件:用于开发库的薄清单,以及通过 rsync 分发给最终用户的厚清单。薄清单在上面进行了描述。
厚清单添加了对存储库中所有文件的校验和以及 OpenPGP 签名。这在存储库通过不安全通道传输时,提供了完整性和真实性检查。厚清单是在 Gentoo 基础设施上自动生成的,开发者不需要进行任何特定操作。
更新清单文件
更新清单中的现有条目必须谨慎操作。上游对 tarball 进行就地修改,而不使用新文件名,可能是对 tarball 的无意重新打包,也可能表示之前的或新的 tarball 是恶意的。
开发者应该对旧版本和新版本的 distfile 进行 diff 操作,比较两者,并在更新 Manifest
的提交消息中记录差异,以说明发生了什么(如果有任何已知上下文)以及确定了两个 distfile 之间的哪些差异。
请注意,如果上游进行了影响构建软件包的任何更改,或者它具有很大的差异,您还需要增加 ebuild 的版本号。最后,请记住删除与旧 distfile 关联的 ebuild,或者如果存在任何 ebuild,则在 Manifest
中重新生成其校验和。这是必需的,因为这些 ebuild 会导致校验和不匹配错误,因为清单文件中记录的校验和与获取的 distfile 的计算校验和不再匹配。
对于 镜像,也需要特别小心。