パッチ送付についてまとめ
自分用に纏めを作っておくことに。
準備
とりあえず準備としては
- カーネルなリポジトリをクローンしとく
- パッチをメイル送付できるようにしとく
あとはお気に入りのエディタと gcc (でびあんで言う build-essential) があれば何とかなるはず。
パッチのメイル送付準備
以下エントリを参考に設定してください。
これで git send-email でパッチ送付が可能になります。
すること
基本的に drivers/staging 配下の以下な方々について checkpatch.pl な検査をパスするよう修正してパッチを送付します。
$ find drivers/staging/|xargs grep checkpatch drivers/staging/asus_oled/TODO: - checkpatch.pl cleanups drivers/staging/rtl8187se/TODO:- checkpatch.pl fixes drivers/staging/panel/TODO: - checkpatch.pl cleanups drivers/staging/winbond/TODO: - checkpatch cleanups drivers/staging/vt6656/TODO:- checkpatch.pl fixes drivers/staging/rtl8712/TODO:- checkpatch.pl fixes - only a few remain drivers/staging/media/go7007/README: - checkpatch.pl cleanups drivers/staging/tidspbridge/TODO:* checkpatch.pl fixes drivers/staging/frontier/TODO: - checkpatch.pl clean drivers/staging/vt6655/TODO:- checkpatch.pl fixes drivers/staging/ft1000/TODO: - checkpatch.pl cleanups drivers/staging/rts5139/TODO:- checkpatch.pl fixes drivers/staging/bcm/TODO: - checkpatch warnings drivers/staging/comedi/TODO: - checkpatch.pl cleanups drivers/staging/slicoss/README: - any remaining sparse and checkpatch.pl warnings drivers/staging/olpc_dcon/TODO: - checkpatch.pl cleanups drivers/staging/android/TODO: - checkpatch.pl cleanups drivers/staging/rts_pstor/TODO:- checkpatch.pl fixes drivers/staging/keucr/TODO: - checkpatch.pl clean drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c: /* no matter what checkpatch says, the braces are needed */ drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c: /* no matter what checkpatch says, braces are needed */ drivers/staging/wlan-ng/README: - checkpatch.pl cleanups $
基本的な流れとしては
- branch 作る
- checkpatch.pl --file --terse で微妙な箇所を確認
- 修正して checkpatch.pl によるチェック
- make が通るか確認
- コミット作成
- patch を作成してメイル送付
- 一度は自分宛てに送付して諸々確認しないと微妙なことになるかも
みたいな感じになるのか。
そしてそれぞれ以下にポイントを控えておきます。
checkpatch.pl
以下なカンジで確認可能。
$ find drivers/staging/android -name "*.[ch]"|xargs ./scripts/checkpatch.pl --file --terse
make
修正後に make が通るかは以下な形で確認可能 (なはず)。
$ make -C $(KERNELSRCDIR) M=`pwd` modules
基本的に手を入れたソースファイルのタイムスタンプがアレなのでいちいち clean しなくても良いとは思うのですが clean して云々の方が良いのかどうなのか。
コミット作成
ええと、コミットメセジは色々な意味でアレです。あと、パッチは別ディレクトリに保存した方が良いと思います。
$ mkdir ~/tmp/patch $ git format-patch -o ~/tmp/patch origin
メイル送付
まずは自分宛てに送付しましょう。
$ git send-email --to hoge@fuga ~/tmp/patch/0001-Fix-checkpatch.pl-issue.patch
あと、送付したパッチを別なブランチで適用して checkpatch および make で確認も必要ですね。作成したパッチは以下で apply できる模様です。
$ git checkout master $ git checkout -b patchtest $ git apply ~/tmp/patch/0001-Fix-checkpatch.pl-issue.patc
で、メイルなんですが TODO に記載されてるアドレスに送付すれば OK。次からは kernel.org には送付しない方向です。
と、いうことで
これから android なナニについて作業着手の方向です。