Portageを使用してユーザースペースパッケージごとのパッチを維持することは可能ですか?

Portageを使用してユーザースペースパッケージごとのパッチを維持することは可能ですか?

たとえば(必ずしもそうではありません)、Gentooにはソースコードにハードコードされたデフォルトの分岐名を持つebuildがありますgitmain

Gentooユーザーとして、Aliceは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として使用され、デフォルトのブランチとして別の名前を選択することです。master2.28.0 サポート

しかし、私が知っている限り、あなたの要件を達成するための簡単で直接的な方法はありません。私のアプローチは、現在ebuildを次にコピーすることです。ローカルカスタムストア(私は/usr/local/portageこの目的に使用します)おそらく改訂番号を増やして(*-r100 + xGentooバージョンよりも先に行くことができます)、そこにパッチを適用することもできます。このebuildを最新の状態に保つことはあなた次第です。

関連情報