是否可以使用 Portage 维护用户空间包特定的补丁?

是否可以使用 Portage 维护用户空间包特定的补丁?

例如(不一定是事实),Gentoo 有一个 ebuild ,它在源代码中硬编码git了默认分支名称。main

Alice作为Gentoo的用户,希望将其更改为master构建之前,以便恢复原来的默认分支名称。

虽然 Gentoo 可能不接受这样的补丁,但 Alice 仍然可以在 Portage 进行 ebuild 之前应用用户空间补丁。

有这样的方法可以实现吗?

答案1

听起来你正在寻找/etc/portage/patches目录。https://wiki.gentoo.org/wiki//etc/portage/patches

放置在此处(特别是在/etc/portage/patches/${CATEGORY}/${P}tec.)的补丁将在构建期间应用,(通常)不需要对 ebuild 进行任何更改。 Wiki 页面讨论了 EAPI 5 和 6,但大多数树现在使用 EAPI 6 或更高版本,因此您不太可能遇到问题。如果您将补丁放在软件包名称下(无版本),那么 portage 将尝试将其应用到您构建的软件包的每个版本。

我发现它对于在提交包含之前测试上游修复非常有用,而无需为 KDE 等主要软件设置单独的开发/构建环境。

答案2

一个不好的例子,git已经用作master默认分支,并且选择不同的名称作为默认分支将是2.28.0 支持

然而,据我所知,没有简单直接的方法来实现您的要求。我的方法是将当前的 ebuild 复制到本地自定义存储库(我用于/usr/local/portage此目的),也许增加修订号(您可以*-r100 + x先于 Gentoo 版本)并在那里应用您的补丁。由您来保持此 ebuild 更新。

相关内容