パッチの作成

外部依存関係を手動で修正することができます:

  • 依存関係が Omnibus 組み込みパッケージングで動作することを確認します。
  • アップストリームメンテナーが修正していないイシューを修正しました。

ブートストラップ・パッチファイル

Omnibusには、ビルドプロセスの一部として自動的にパッチを出荷し、適用するための特定のDSLと規約があります。

パッチファイルを適用するには、patch DSL メソッドを使用して、変更を含む.patch ファイルを特定のディレクトリ構造に格納します:

config/patches/<software-name>

たとえば、gitlab-rails の実行中に適用されるパッチでは、.patch ファイルを次の場所に格納します:

config/patches/gitlab-rails

パッチの作成

パッチファイルを作成するには

  • diff コマンドで、元のファイルと変更後のファイルを比較します。
  • 1つ以上のコミットに基づいてパッチを出力する Git。

diff を使ってパッチを作成します。

diff コマンドを使ってパッチファイルを作成します:

  1. 変更するファイルを複製し、新しいファイルに新しい名前を付けます。
  2. 元のファイルを変更します。
diff -Naur <original_file> <new_file> > <patch_filename>.patch

Git を使ってパッチを作成します。

二つの Git コミットの間にパッチファイルを作成するには、git diff コマンドを使います。両方のコミット ID を知っている必要があります。

git diff <commitid1> <commitid2> > <patch_filename>.patch

ひとつの Git コミットとベースの HEAD をもとにパッチファイルを作成することもできます。

git diff <commitid1> > <patch_filename>.patch

パッチは

1つまたは複数のファイルにパッチを適用します:

  1. ダウンロード、バンドルインストール、または同様の方法でオリジナルのファイルを入手してください。
  2. 各オリジナルファイルに以下の行を追加します:

    patch source: '<patch_filename>.patch', target: "#{<install_directory>}/embedded/<target_file>.txt"