SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
初めてのパッチ投稿(体験談)

   Tetsuyuki Kobayashi



                         1
初めてのパッチ投稿
● 体験談です。正解とは限りません。
● LinuxカーネルとU-Boot


    ●   mailing listでパッチをやり取りする方法
        – AndroidのAOSPではgerritというWeb
          ベースのツールを使うらしい
    ●   初投稿は2012年6月。LTSIのMLへ。


                                       2
Who am I?
●   20+ years involved in embedded systems
    ●   10 years in real time OS, such as iTRON
    ●   10 years in embedded Java Virtual Machine
    ●   Now GCC, Linux, QEMU, Android, …
●   Blogs
    ●   http://d.hatena.ne.jp/embedded/ (Personal)
    ●   http://blog.kmckk.com/ (Corporate)
    ●   http://kobablog.wordpress.com/(English)
●   Twitter
    ●   @tetsu_koba
LinuxCon JapanでのGregさんの話
●   http://events.linuxfoundation.org/images/stories/pdf
●   パッチのべからず集




                                                    4
パッチを投稿で重要なこと
●
  内容          当然。

●
  書式、送り方      教えてくれる人が
●
  誰に送るか?      いないときつい。




                         5
メイル環境の整備
● 予想外に手間どった
● パッチの送信にThunderbirdは不向き


    ●   それ以外の読み書きには使用できる。
●   結論で言えば、まずgit send-emailが使
    えるようにすべし。



                                6
パッチ投稿の注意点
●   内容はともかく、フォーマットについて
●   添付ファイル禁止
●   パッチがあたらなくなるような余計な変換禁止(メイルソ
    フトの余計なお世話)
    ●   余計な改行
    ●   タブをスペースに変換したり
●   スレッドを途切らせない。
●   checkpatch.pl スクリプトで確認する。
●   メンテナは一日に数百のパッチを処理する。厳格な
    ルールはそのためのもの。
                                7
git format-patch
●   コミットの内容をメールの形式にしてくれる。
●   -s オプションでSigned-off-byの行を追加
●   --cover-letter オプションで複数パッチの表紙
    作成
●   --subject-prefix=”PATCH v2” v2以降のパッ
    チのとき



                                          8
git imap-send
●   imapのメールの下書きのフォルダに送信できる。
    それを編集して投稿。
●   Firefoxではメールを編集したときに、message ID
    が上書きされ、In-Reply-Toは消されてしまう。うま
    くいかない。
●   お奨めしない。




                                      9
git send-email
●   SMTPサーバと通信してメールを送信してくれる。
●   In-Reply-Toの指定可。
●   PATCH Seriesの扱いも簡単。
●   パッチの投稿にはこれを使うべし。
●   git format-patchでファイルに書き出し→ そのファ
    イルを編集 → git send-emailで送信。



                                       10
git send-emailの設定
●   Gmailのアカウントを使うならば簡単。git send-
    email単体で可能。
●   私の場合は会社のアカウントを使いたかった。なか
    なかうまくいかない。msmtpを経由したらできた。
●   最悪の場合でも、Gmail経由で送信しつつ、From
    は別名にする方法がある。
    ●   Gmailのアカウントの設定で別名を登録しておく。




                                    11
コマンドの使用例

  $ git format-patch -s -3 --subject-prefix="PATCH v2" --cover-letter -o /tmp/patch001


                        パッチの個数                                出力先のディレクトリ

 $ scripts/checkpatch.pl /tmp/patch001/00*.patch

          0000-cover-letter.patch はエラーになるが気にしない。

  テキストエデュタで内容を編集。
$ git send-email --in-reply-to=__ --thread --to=__ --cc=__ /tmp/patch001/00*.patch

                               メッセージID

                             例: 1347599285-11830-1-git-send-email-koba@kmckk.co.jp
                                                                                  12
誰に送るか?
●   メイルの流量が多いので単にML宛てに送る
    だけだと必要な人から見逃される可能性があ
    る。
●   To: にメンテナ or Custodian
    ●   (パッチを取り込むというアクションをする人。)
    ●
        カテゴリごとに異なる
    ●   http://www.denx.de/wiki/U-Boot/Custodians
●   Cc: にレビューして欲しい人とML
●   慣れればわかる。神経質にならなくてもOK。
                                                    13
実際にやってみて
●   パッチはそのままで受理されることは少ない。2回く
    らいの書き直しは当たり前。
    ●   更新したパッチの投稿のしかた
    ●   http://www.denx.de/wiki/view/U-Boot/Patches#Sending_
●   [RFC]はRequest For Comment。意見求む。
    ●
        逆にこのパッチをこのまま受理して欲しいわけではない
        という意味にもなる。
●   人間同士のやりとり。
●
    英語の良し悪しは気にするな。
MLに参加しよう
●   パッチを投稿する以外にもできることはある。
●   バグ報告
    ● 最新版だと起動しないなど。

    ● エラーログを添えて。

●   パッチのレビュー
    ●   Acked-by name <addr>
    ●   賛意の表明。(イイネ!)
                                お奨め
●   パッチのテスト
    ●   Tested-by name <addr>
                                      15
MLのアーカイブ
●   LKML
    ● http://www.spinics.net/lists/kernel/
●   ARM Kernel
    ●  http://lists.infradead.org/pipermail/linux-arm-kernel/
●   Linux SH
    ● http://www.spinics.net/lists/linux-sh/
●   LTSI
    ● http://lists.linuxfoundation.org/pipermail/ltsi-dev/
●   U-Boot
    ●   http://lists.denx.de/pipermail/u-boot/
実例
●   [PATCH] arm: bugfix: save_boot_params_default ac
●   [PATCH] arm: bugfix: save_boot_params_default ac
●   [RFC][PATCH] net: nfs: extend NFS_TIMEOUT
●   [RFC][PATCH] net: nfs: make NFS_TIMEOUT confi




                                               17

Mais conteúdo relacionado

Mais procurados

ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxをちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxをKenichiro MATOHARA
 
SECCON2014 crypt200
SECCON2014 crypt200SECCON2014 crypt200
SECCON2014 crypt200boropon
 
Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-boropon
 
Lagopus performance
Lagopus performanceLagopus performance
Lagopus performanceMasaru Oki
 
Python Kyoto study LT
Python Kyoto study LTPython Kyoto study LT
Python Kyoto study LTNaoya Inada
 
Python Kyoto study
Python Kyoto studyPython Kyoto study
Python Kyoto studyNaoya Inada
 
とある帽子の大蛇料理Ⅱ
とある帽子の大蛇料理Ⅱとある帽子の大蛇料理Ⅱ
とある帽子の大蛇料理ⅡMasami Ichikawa
 
Using rump on NetBSD 7.0
Using rump on NetBSD 7.0Using rump on NetBSD 7.0
Using rump on NetBSD 7.0Masaru Oki
 
Lagopus, raw socket build
Lagopus, raw socket buildLagopus, raw socket build
Lagopus, raw socket buildMasaru Oki
 
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会slankdev
 
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。(^-^) togakushi
 
Open stack+lagopus できるかな
Open stack+lagopus できるかなOpen stack+lagopus できるかな
Open stack+lagopus できるかなMasaru Oki
 
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1Hirotaka Kawata
 
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会Hirotaka Kawata
 
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchOpen flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchMasaru Oki
 
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2Fuminobu Takeyama
 
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Masaru Oki
 

Mais procurados (20)

ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxをちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxを
 
NanoStrand
NanoStrandNanoStrand
NanoStrand
 
SECCON2014 crypt200
SECCON2014 crypt200SECCON2014 crypt200
SECCON2014 crypt200
 
Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-Trend Micro CTF Asia Pacific & Japan -defensive100-
Trend Micro CTF Asia Pacific & Japan -defensive100-
 
Open vzでdr hbstudy
Open vzでdr hbstudyOpen vzでdr hbstudy
Open vzでdr hbstudy
 
Lagopus performance
Lagopus performanceLagopus performance
Lagopus performance
 
Python Kyoto study LT
Python Kyoto study LTPython Kyoto study LT
Python Kyoto study LT
 
Python Kyoto study
Python Kyoto studyPython Kyoto study
Python Kyoto study
 
とある帽子の大蛇料理Ⅱ
とある帽子の大蛇料理Ⅱとある帽子の大蛇料理Ⅱ
とある帽子の大蛇料理Ⅱ
 
Using rump on NetBSD 7.0
Using rump on NetBSD 7.0Using rump on NetBSD 7.0
Using rump on NetBSD 7.0
 
Lagopus, raw socket build
Lagopus, raw socket buildLagopus, raw socket build
Lagopus, raw socket build
 
サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会サイボウズ・ラボユース成果報告会
サイボウズ・ラボユース成果報告会
 
tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。tcpdumpとtcpreplayとtcprewriteと他。
tcpdumpとtcpreplayとtcprewriteと他。
 
Open stack+lagopus できるかな
Open stack+lagopus できるかなOpen stack+lagopus できるかな
Open stack+lagopus できるかな
 
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
バイナリより低レイヤな話 (プロセッサの心を読み解く) - カーネル/VM探検隊@北陸1
 
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
自作コンピューターでなんかする - 第八回 カーネル/VM探検隊&懇親会
 
Open flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitchOpen flow tunnel extension on lagopus vswitch
Open flow tunnel extension on lagopus vswitch
 
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
 
Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編Lagopus as open flow hybrid switch 実践編
Lagopus as open flow hybrid switch 実践編
 
Lagopus 0.2
Lagopus 0.2Lagopus 0.2
Lagopus 0.2
 

Semelhante a Patch101

ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 
自分的pkgsrcの課題
自分的pkgsrcの課題自分的pkgsrcの課題
自分的pkgsrcの課題Ryo ONODERA
 
Scala + Finagleの魅力
Scala + Finagleの魅力Scala + Finagleの魅力
Scala + Finagleの魅力Kota Mizushima
 
(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話Masanori Masui
 
Programming camp 2010 debug hacks
Programming camp 2010 debug hacksProgramming camp 2010 debug hacks
Programming camp 2010 debug hacksHiro Yoshioka
 
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会Shigeru Hanada
 
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011 Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011 Hiro Yoshioka
 
読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラムamusementcreators
 
Chromeが落ちる問題を 追いかけていたら libgcryptのbugに出会った
Chromeが落ちる問題を 追いかけていたら libgcryptのbugに出会ったChromeが落ちる問題を 追いかけていたら libgcryptのbugに出会った
Chromeが落ちる問題を 追いかけていたら libgcryptのbugに出会ったMitsutoshi Nakano
 
20120706-readablecode
20120706-readablecode20120706-readablecode
20120706-readablecodeMasanori Kado
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりYuya Rin
 
140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoonRyo ONODERA
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜Takashi Uemura
 

Semelhante a Patch101 (20)

ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 
PostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もうPostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もう
 
kyotovim#1
kyotovim#1kyotovim#1
kyotovim#1
 
Let's play with Goldfish
Let's play with GoldfishLet's play with Goldfish
Let's play with Goldfish
 
自分的pkgsrcの課題
自分的pkgsrcの課題自分的pkgsrcの課題
自分的pkgsrcの課題
 
Scala + Finagleの魅力
Scala + Finagleの魅力Scala + Finagleの魅力
Scala + Finagleの魅力
 
Symfony2#5 LT
Symfony2#5 LTSymfony2#5 LT
Symfony2#5 LT
 
Runtime c++editing
Runtime c++editingRuntime c++editing
Runtime c++editing
 
(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話(ゲームじゃない方の)switchで遊びたい話
(ゲームじゃない方の)switchで遊びたい話
 
Programming camp 2010 debug hacks
Programming camp 2010 debug hacksProgramming camp 2010 debug hacks
Programming camp 2010 debug hacks
 
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
 
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011 Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011
 
読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム読みやすいプログラム、書き換えやすいプログラム
読みやすいプログラム、書き換えやすいプログラム
 
Golang tokyo #7 qtpm
Golang tokyo #7 qtpmGolang tokyo #7 qtpm
Golang tokyo #7 qtpm
 
Chromeが落ちる問題を 追いかけていたら libgcryptのbugに出会った
Chromeが落ちる問題を 追いかけていたら libgcryptのbugに出会ったChromeが落ちる問題を 追いかけていたら libgcryptのbugに出会った
Chromeが落ちる問題を 追いかけていたら libgcryptのbugに出会った
 
20120706-readablecode
20120706-readablecode20120706-readablecode
20120706-readablecode
 
ゆるかわPhp
ゆるかわPhpゆるかわPhp
ゆるかわPhp
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
 
140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 

Mais de Tetsuyuki Kobayashi

Try new transport protocol SRT (ver. 2)
Try new transport protocol SRT  (ver. 2)Try new transport protocol SRT  (ver. 2)
Try new transport protocol SRT (ver. 2)Tetsuyuki Kobayashi
 
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機Tetsuyuki Kobayashi
 
WebOS Open Source Edition を試してみた
WebOS Open Source Edition を試してみたWebOS Open Source Edition を試してみた
WebOS Open Source Edition を試してみたTetsuyuki Kobayashi
 
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くLinuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くTetsuyuki Kobayashi
 
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)Tetsuyuki Kobayashi
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメTetsuyuki Kobayashi
 
Simple and efficient way to get the last log using MMAP
Simple and efficient way to get the last log using MMAPSimple and efficient way to get the last log using MMAP
Simple and efficient way to get the last log using MMAPTetsuyuki Kobayashi
 
Basic of virtual memory of Linux
Basic of virtual memory of LinuxBasic of virtual memory of Linux
Basic of virtual memory of LinuxTetsuyuki Kobayashi
 
ADB(Android Debug Bridge): How it works?
ADB(Android Debug Bridge): How it works?ADB(Android Debug Bridge): How it works?
ADB(Android Debug Bridge): How it works?Tetsuyuki Kobayashi
 
Inter-process communication of Android
Inter-process communication of AndroidInter-process communication of Android
Inter-process communication of AndroidTetsuyuki Kobayashi
 
Android is NOT just 'Java on Linux'
Android is NOT just 'Java on Linux'Android is NOT just 'Java on Linux'
Android is NOT just 'Java on Linux'Tetsuyuki Kobayashi
 

Mais de Tetsuyuki Kobayashi (20)

some topic of ffmpeg
some topic of ffmpeg some topic of ffmpeg
some topic of ffmpeg
 
New VIdeo CODEC AV1
New VIdeo CODEC AV1 New VIdeo CODEC AV1
New VIdeo CODEC AV1
 
Try new transport protocol SRT (ver. 2)
Try new transport protocol SRT  (ver. 2)Try new transport protocol SRT  (ver. 2)
Try new transport protocol SRT (ver. 2)
 
Try new transport protocol SRT
Try new transport protocol SRTTry new transport protocol SRT
Try new transport protocol SRT
 
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
 
WebOS Open Source Edition を試してみた
WebOS Open Source Edition を試してみたWebOS Open Source Edition を試してみた
WebOS Open Source Edition を試してみた
 
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くLinuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
 
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
 
ARM 64bit has come!
ARM 64bit has come!ARM 64bit has come!
ARM 64bit has come!
 
Virtual memory 20070222-en
Virtual memory 20070222-enVirtual memory 20070222-en
Virtual memory 20070222-en
 
Simple and efficient way to get the last log using MMAP
Simple and efficient way to get the last log using MMAPSimple and efficient way to get the last log using MMAP
Simple and efficient way to get the last log using MMAP
 
Tips of Malloc & Free
Tips of Malloc & FreeTips of Malloc & Free
Tips of Malloc & Free
 
Basic of virtual memory of Linux
Basic of virtual memory of LinuxBasic of virtual memory of Linux
Basic of virtual memory of Linux
 
ADB(Android Debug Bridge): How it works?
ADB(Android Debug Bridge): How it works?ADB(Android Debug Bridge): How it works?
ADB(Android Debug Bridge): How it works?
 
Tweaking Google TV emulator
Tweaking Google TV emulatorTweaking Google TV emulator
Tweaking Google TV emulator
 
Inter-process communication of Android
Inter-process communication of AndroidInter-process communication of Android
Inter-process communication of Android
 
Android is NOT just 'Java on Linux'
Android is NOT just 'Java on Linux'Android is NOT just 'Java on Linux'
Android is NOT just 'Java on Linux'
 
Android ipm 20110409
Android ipm 20110409Android ipm 20110409
Android ipm 20110409
 
Init of Android
Init of AndroidInit of Android
Init of Android
 

Último

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Último (9)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

Patch101

  • 2. 初めてのパッチ投稿 ● 体験談です。正解とは限りません。 ● LinuxカーネルとU-Boot ● mailing listでパッチをやり取りする方法 – AndroidのAOSPではgerritというWeb ベースのツールを使うらしい ● 初投稿は2012年6月。LTSIのMLへ。 2
  • 3. Who am I? ● 20+ years involved in embedded systems ● 10 years in real time OS, such as iTRON ● 10 years in embedded Java Virtual Machine ● Now GCC, Linux, QEMU, Android, … ● Blogs ● http://d.hatena.ne.jp/embedded/ (Personal) ● http://blog.kmckk.com/ (Corporate) ● http://kobablog.wordpress.com/(English) ● Twitter ● @tetsu_koba
  • 4. LinuxCon JapanでのGregさんの話 ● http://events.linuxfoundation.org/images/stories/pdf ● パッチのべからず集 4
  • 5. パッチを投稿で重要なこと ● 内容 当然。 ● 書式、送り方 教えてくれる人が ● 誰に送るか? いないときつい。 5
  • 6. メイル環境の整備 ● 予想外に手間どった ● パッチの送信にThunderbirdは不向き ● それ以外の読み書きには使用できる。 ● 結論で言えば、まずgit send-emailが使 えるようにすべし。 6
  • 7. パッチ投稿の注意点 ● 内容はともかく、フォーマットについて ● 添付ファイル禁止 ● パッチがあたらなくなるような余計な変換禁止(メイルソ フトの余計なお世話) ● 余計な改行 ● タブをスペースに変換したり ● スレッドを途切らせない。 ● checkpatch.pl スクリプトで確認する。 ● メンテナは一日に数百のパッチを処理する。厳格な ルールはそのためのもの。 7
  • 8. git format-patch ● コミットの内容をメールの形式にしてくれる。 ● -s オプションでSigned-off-byの行を追加 ● --cover-letter オプションで複数パッチの表紙 作成 ● --subject-prefix=”PATCH v2” v2以降のパッ チのとき 8
  • 9. git imap-send ● imapのメールの下書きのフォルダに送信できる。 それを編集して投稿。 ● Firefoxではメールを編集したときに、message ID が上書きされ、In-Reply-Toは消されてしまう。うま くいかない。 ● お奨めしない。 9
  • 10. git send-email ● SMTPサーバと通信してメールを送信してくれる。 ● In-Reply-Toの指定可。 ● PATCH Seriesの扱いも簡単。 ● パッチの投稿にはこれを使うべし。 ● git format-patchでファイルに書き出し→ そのファ イルを編集 → git send-emailで送信。 10
  • 11. git send-emailの設定 ● Gmailのアカウントを使うならば簡単。git send- email単体で可能。 ● 私の場合は会社のアカウントを使いたかった。なか なかうまくいかない。msmtpを経由したらできた。 ● 最悪の場合でも、Gmail経由で送信しつつ、From は別名にする方法がある。 ● Gmailのアカウントの設定で別名を登録しておく。 11
  • 12. コマンドの使用例 $ git format-patch -s -3 --subject-prefix="PATCH v2" --cover-letter -o /tmp/patch001 パッチの個数 出力先のディレクトリ $ scripts/checkpatch.pl /tmp/patch001/00*.patch 0000-cover-letter.patch はエラーになるが気にしない。 テキストエデュタで内容を編集。 $ git send-email --in-reply-to=__ --thread --to=__ --cc=__ /tmp/patch001/00*.patch メッセージID 例: 1347599285-11830-1-git-send-email-koba@kmckk.co.jp 12
  • 13. 誰に送るか? ● メイルの流量が多いので単にML宛てに送る だけだと必要な人から見逃される可能性があ る。 ● To: にメンテナ or Custodian ● (パッチを取り込むというアクションをする人。) ● カテゴリごとに異なる ● http://www.denx.de/wiki/U-Boot/Custodians ● Cc: にレビューして欲しい人とML ● 慣れればわかる。神経質にならなくてもOK。 13
  • 14. 実際にやってみて ● パッチはそのままで受理されることは少ない。2回く らいの書き直しは当たり前。 ● 更新したパッチの投稿のしかた ● http://www.denx.de/wiki/view/U-Boot/Patches#Sending_ ● [RFC]はRequest For Comment。意見求む。 ● 逆にこのパッチをこのまま受理して欲しいわけではない という意味にもなる。 ● 人間同士のやりとり。 ● 英語の良し悪しは気にするな。
  • 15. MLに参加しよう ● パッチを投稿する以外にもできることはある。 ● バグ報告 ● 最新版だと起動しないなど。 ● エラーログを添えて。 ● パッチのレビュー ● Acked-by name <addr> ● 賛意の表明。(イイネ!) お奨め ● パッチのテスト ● Tested-by name <addr> 15
  • 16. MLのアーカイブ ● LKML ● http://www.spinics.net/lists/kernel/ ● ARM Kernel ● http://lists.infradead.org/pipermail/linux-arm-kernel/ ● Linux SH ● http://www.spinics.net/lists/linux-sh/ ● LTSI ● http://lists.linuxfoundation.org/pipermail/ltsi-dev/ ● U-Boot ● http://lists.denx.de/pipermail/u-boot/
  • 17. 実例 ● [PATCH] arm: bugfix: save_boot_params_default ac ● [PATCH] arm: bugfix: save_boot_params_default ac ● [RFC][PATCH] net: nfs: extend NFS_TIMEOUT ● [RFC][PATCH] net: nfs: make NFS_TIMEOUT confi 17