パッチ送付についてまとめ

自分用に纏めを作っておくことに。

準備

とりあえず準備としては

  • カーネルなリポジトリをクローンしとく
  • パッチをメイル送付できるようにしとく

あとはお気に入りのエディタと gcc (でびあんで言う build-essential) があれば何とかなるはず。

リポジトリ

以下。

  • git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

clone には少々時間がかかります。

パッチのメイル送付準備

以下エントリを参考に設定してください。

これで 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 なナニについて作業着手の方向です。