GLEP 70:添加发行版环境变量
作者 | A. Wilcox <awilfox@adelielinux.org> |
---|---|
类型 | 标准跟踪 |
状态 | 已延期 |
版本 | 1 |
创建日期 | 2016-12-15 |
最后修改日期 | 2017-10-13 |
发布历史 | |
GLEP 源码 | glep-0070.rst |
状态
超过 60 天没有进展。GLEP 编辑 Michał Górny 于 2017 年 10 月 13 日标记为已延期。
摘要
此 GLEP 概述了向未来的 EAPI 添加环境变量,以指定为其编译 ebuild 的发行版的名称,以及用于针对该发行版提交错误报告的 URL。此外,它还描述了将其更直接地添加到 Gentoo 软件包树中的路径。
动机
背景
Gentoo 软件包仓库不仅被数千用户使用,还被其他发行版和组织使用,例如 Funtoo、CoreOS 和 Google ChromeOS。从 Gentoo 基金会自己的章程来看,它自身描述如下:“Gentoo 是一个元发行版”。这允许用户自己创建自己的 Gentoo 版本。已经存在几个分支,包括 Exherbo、Funtoo、Sabayon、Galapagos、Vida 和 Calculate。Google 还为其 Chromebook 笔记本电脑维护了一个分支 ChromeOS。CoreOS 还使用 Gentoo 的仓库作为其发行版。此外,还有 Pentoo 和 Adélie 等二进制发行版提供了额外的价值,但严格来说,它们不是 Gentoo 的“分支”。
当前状况
目前,Gentoo 的分支和派生版本需要选择两个选项之一。它们可以原样使用树,这会导致软件包识别为针对 Gentoo 构建,并导致大多数基于 autoconf 的软件包(以及 KDE 中的一些 CMake 软件包)的错误报告 URL 指向 bugs.g.o。或者,他们可以分叉 Git 仓库,在发生冲突时需要手动合并,以及在上游发布新软件版本时需要额外的浪费工作。
缺陷
如果 Gentoo 的分支/派生版本没有足够的人力或资源来修改和维护所有提到 Gentoo 名称和错误 URL 的 ebuild(大约 496 个 ebuild 中大约有 1,656 个出现),那么这两个发行版都会受到影响。分支的用户会向 Gentoo 提交错误报告,而这些错误报告并非 Gentoo 中的错误。分支的开发者不会知道这些错误,也无法修复它们。Gentoo 的错误处理人员和开发人员将不得不浪费时间和资源来测试错误,发现它们甚至不是 Gentoo 的错误,并将其关闭为 WONTFIX 或 WORKSFORME。
如果他们选择分叉存储库并更改 ebuild 中的这些参数作为替代方案,那么这将使他们上游改进变得更加困难。Sabayon 在 GitHub 上专门为此创建了一个仓库,而 Adélie 则不断地将补丁应用到树上,因为它在不断发展。
解决方案目标
- 通过避免任何衍生发行版与 Gentoo 相关的表象,来保护 Gentoo 的名称、商标和声誉。
- 减少由于分支和派生版本导致的 bugs.g.o 上不适当的错误报告数量。
- 促进 Gentoo 及其分支/派生版本之间更好的协作和改进共享。
- 未来对错误报告 URL 的潜在更改虽然极不可能发生,但也更容易实现。
规范
以下变量将添加到 Gentoo 的基本配置文件中
- ${DISTRO}:发行版的名称。这将在 Gentoo 上设置为“Gentoo”。
- ${DISTRO_BUG_URL}:用于报告发行版上软件错误的 URL。这将在 Gentoo 上设置为“https://bugs.gentoo.org/”。
基本原理
通过替换传递给 ./configure、make 等的“Gentoo”的引用${DISTRO},像 Sabayon、Calculate 和 Adélie 这样的发行版将能够在软件包上将他们的名称标注为分发者。这将影响 LibreOffice、OpenRC、X.Org 和 KDE 等软件包,它们都在内部使用发行版的名称进行编译。它们使用它来获取错误信息,并且拥有正确发行版的名称将允许更适当的错误处理,并确保不会错误地将责任归咎于 Gentoo。这也确保在联系 Gentoo 之前,会搜索和联系分支或派生版本自己的邮件列表、论坛等。
通过替换传递给 ./configure 的“bugs.gentoo.org”的引用${DISTRO_BUG_URL},据信 Gentoo 项目将显着减少在处理错误提交的错误报告方面浪费的工作量,而这些错误报告是由分支和派生版本进行的更改引起的。
向后兼容性
由于这些变量将添加到基本配置文件中,因此对现有站点和安装应该没有影响。基本配置文件将在任何 ebuild 之前更改,因此不可能有${DISTRO}或${DISTRO_BUG_URL}为空。
版权
此作品根据知识共享署名-相同方式共享 3.0 未更改许可发布。要查看此许可证的副本,请访问 https://creativecommons.org/licenses/by-sa/3.0/。