パッチの作成
外部依存関係を手動で修正することができます:
- 依存関係が Omnibus 組み込みパッケージングで動作することを確認します。
- アップストリームメンテナーが修正していないイシューを修正しました。
ブートストラップ・パッチファイル
Omnibusには、ビルドプロセスの一部として自動的にパッチを出荷し、適用するための特定のDSLと規約があります。
パッチファイルを適用するには、patch
DSL メソッドを使用して、変更を含む.patch
ファイルを特定のディレクトリ構造に格納します:
config/patches/<software-name>
たとえば、gitlab-rails
の実行中に適用されるパッチでは、.patch
ファイルを次の場所に格納します:
config/patches/gitlab-rails
パッチの作成
パッチファイルを作成するには
-
diff
コマンドで、元のファイルと変更後のファイルを比較します。 - 1つ以上のコミットに基づいてパッチを出力する Git。
diff
を使ってパッチを作成します。
diff
コマンドを使ってパッチファイルを作成します:
- 変更するファイルを複製し、新しいファイルに新しい名前を付けます。
- 元のファイルを変更します。
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つまたは複数のファイルにパッチを適用します:
- ダウンロード、バンドルインストール、または同様の方法でオリジナルのファイルを入手してください。
-
各オリジナルファイルに以下の行を追加します:
patch source: '<patch_filename>.patch', target: "#{<install_directory>}/embedded/<target_file>.txt"